Advice needed on ffcall packaging

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Advice needed on ffcall packaging

Ken Brown-6
A few years ago I adopted ffcall (32-bit only) in order to keep it from
disappearing from the distro:

   https://sourceware.org/ml/cygwin-apps/2015-07/msg00092.html

The latest upstream release builds on 64-bit Cygwin, so I'd like to
update the package, and I'd like to find a sensible way of breaking it
up into subpackages.  Here are the relevant facts:

1. Cygwin's existing (32-bit) ffcall is really a devel package: It
consists of headers, four (static) libs, and documentation.  There are
no subpackages and no shared libs.  The static libs are

   usr/lib/libavcall.a
   usr/lib/libcallback.a
   usr/lib/libtrampoline.a
   usr/lib/libvacall.a

2. The build of the current release produces the same four static libs,
plus shared versions of the first three, plus a new lib, both static and
shared (libffcall.a and cygffcall-0.dll).

If I were starting from scratch, I would have three packages: ffcall,
libffcall0, and libffcall-devel.  ffcall would be source only;
libffcall0 would contain the shared libs *.dll; and libffcall-devel
would contain the headers, the import libs *.dll.a, and the one static
lib for which there is no shared version.  I wouldn't ship the other
static libs unless I discover later that they're needed for some reason.

But I'm not starting from scratch, and users of the existing ffcall will
need the new libffcall-devel.  I can think of two possibilities for
handling this:

A) Pretend that I'm starting from scratch, and deal with the fallout.
There probably won't be any, since ffcall is not currently required by
any other package.  As far as I know, its only use is that it's a build
requirement for clisp, which I maintain.

B) Make three packages as above, with the source-only package being
called libffcall instead of ffcall.  (libffcall is the upstream name
anyway.)  I could then make libffcall-devel obsolete ffcall.

For the record, here's what Fedora does: Until a few months ago, there
was only one package, ffcall, which contained everything.  At that time
they created two subpackages, ffcall-devel and ffcall-static.
ffcall-devel corresponds to my proposed libffcall-devel; ffcall-static
contains all the static libs; and plain ffcall more-or-less corresponds
to my proposed libffcall0.  This doesn't make a lot of sense to me.

Maybe this is much ado about nothing, but I'd appreciate advice.

Ken
Reply | Threaded
Open this post in threaded view
|

Re: Advice needed on ffcall packaging

marco atzeri-4
On 20/02/2018 16:47, Ken Brown wrote:
> A few years ago I adopted ffcall (32-bit only) in order to keep it from
> disappearing from the distro:
>
>    https://sourceware.org/ml/cygwin-apps/2015-07/msg00092.html
>

>
> But I'm not starting from scratch, and users of the existing ffcall will
> need the new libffcall-devel.  I can think of two possibilities for
> handling this:
>
> A) Pretend that I'm starting from scratch, and deal with the fallout.
> There probably won't be any, since ffcall is not currently required by
> any other package.  As far as I know, its only use is that it's a build
> requirement for clisp, which I maintain.
>
> B) Make three packages as above, with the source-only package being
> called libffcall instead of ffcall.  (libffcall is the upstream name
> anyway.)  I could then make libffcall-devel obsolete ffcall.
>

>
> Maybe this is much ado about nothing, but I'd appreciate advice.
>
> Ken

Both are fine.
B is more in line with current trend in package name but it is
just personal taste.

Regards
Marco
Reply | Threaded
Open this post in threaded view
|

Re: Advice needed on ffcall packaging

Yaakov Selkowitz
In reply to this post by Ken Brown-6
On 2018-02-20 09:47, Ken Brown wrote:

> A few years ago I adopted ffcall (32-bit only) in order to keep it from
> disappearing from the distro:
>
> The latest upstream release builds on 64-bit Cygwin, so I'd like to
> update the package, and I'd like to find a sensible way of breaking it
> up into subpackages.  Here are the relevant facts:
>
> 1. Cygwin's existing (32-bit) ffcall is really a devel package: It
> consists of headers, four (static) libs, and documentation.  There are
> no subpackages and no shared libs.
>
> 2. The build of the current release produces the same four static libs,
> plus shared versions of the first three, plus a new lib, both static and
> shared (libffcall.a and cygffcall-0.dll).
>
> If I were starting from scratch, I would have three packages: ffcall,
> libffcall0, and libffcall-devel.  ffcall would be source only;
> libffcall0 would contain the shared libs *.dll; and libffcall-devel
> would contain the headers, the import libs *.dll.a, and the one static
> lib for which there is no shared version.  I wouldn't ship the other
> static libs unless I discover later that they're needed for some reason.
>
> But I'm not starting from scratch, and users of the existing ffcall will
> need the new libffcall-devel.
NAME=ffcall
...
PKG_NAMES="libffcall0 libffcall-devel"
libffcall0_CONTENTS=...
libffcall_devel_OBSOLETES="ffcall"
libffcall_devel_CONTENTS=...

--
Yaakov


signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Advice needed on ffcall packaging

Ken Brown-6
On 2/20/2018 1:41 PM, Yaakov Selkowitz wrote:

> On 2018-02-20 09:47, Ken Brown wrote:
>> A few years ago I adopted ffcall (32-bit only) in order to keep it from
>> disappearing from the distro:
>>
>> The latest upstream release builds on 64-bit Cygwin, so I'd like to
>> update the package, and I'd like to find a sensible way of breaking it
>> up into subpackages.  Here are the relevant facts:
>>
>> 1. Cygwin's existing (32-bit) ffcall is really a devel package: It
>> consists of headers, four (static) libs, and documentation.  There are
>> no subpackages and no shared libs.
>>
>> 2. The build of the current release produces the same four static libs,
>> plus shared versions of the first three, plus a new lib, both static and
>> shared (libffcall.a and cygffcall-0.dll).
>>
>> If I were starting from scratch, I would have three packages: ffcall,
>> libffcall0, and libffcall-devel.  ffcall would be source only;
>> libffcall0 would contain the shared libs *.dll; and libffcall-devel
>> would contain the headers, the import libs *.dll.a, and the one static
>> lib for which there is no shared version.  I wouldn't ship the other
>> static libs unless I discover later that they're needed for some reason.
>>
>> But I'm not starting from scratch, and users of the existing ffcall will
>> need the new libffcall-devel.
>
> NAME=ffcall
> ...
> PKG_NAMES="libffcall0 libffcall-devel"
> libffcall0_CONTENTS=...
> libffcall_devel_OBSOLETES="ffcall"
> libffcall_devel_CONTENTS=...

Thanks!  It would never have occurred to me that a package could be
obsoleted by one of its subpackages.

Ken

Reply | Threaded
Open this post in threaded view
|

Re: Advice needed on ffcall packaging

Brian Inglis
In reply to this post by Yaakov Selkowitz
On 2018-02-20 11:41, Yaakov Selkowitz wrote:
> NAME=ffcall
> ...
> PKG_NAMES="libffcall0 libffcall-devel"
> libffcall0_CONTENTS=...
> libffcall_devel_OBSOLETES="ffcall"
> libffcall_devel_CONTENTS=...

Does this generate the ("virtual") package setup entry for:

@ ffcall
...
category: _obsolete
requires: libffcall-devel
...

and does this need need to be kept in .cygport for future releases?

--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
Reply | Threaded
Open this post in threaded view
|

Re: Advice needed on ffcall packaging

Ken Brown-6
On 2/21/2018 12:43 AM, Brian Inglis wrote:

> On 2018-02-20 11:41, Yaakov Selkowitz wrote:
>> NAME=ffcall
>> ...
>> PKG_NAMES="libffcall0 libffcall-devel"
>> libffcall0_CONTENTS=...
>> libffcall_devel_OBSOLETES="ffcall"
>> libffcall_devel_CONTENTS=...
>
> Does this generate the ("virtual") package setup entry for:
>
> @ ffcall
> ...
> category: _obsolete
> requires: libffcall-devel

Yes.

> and does this need need to be kept in .cygport for future releases?

Probably.  In any case, it can't hurt to keep it.

Ken