Hi Jan and Jonas,

Пн 04 мая 2020 @ 11:07 Jonas Smedegaard <[email protected]>:

> Quoting Jan Wielemaker (2020-05-04 09:32:52)
>> On 5/3/20 6:32 PM, Lev Lamberov wrote:
>> > Чт 30 апр 2020 @ 20:36 Lev Lamberov <[email protected]>:
>> > 
>> >> So, my proposal is to have to following packages:
>> >>
>> >> 1. swi-prolog-core (with Core_system)
>> >>
>> >> 2. swi-prolog-core-packages (with Core_packages), depends on
>> >> swi-prolog-core
>> >>
>> >> 3. swi-prolog-nox (original swi-prolog-nox, but without
>> >> swi-prolog-{core,core-packages}), depends on
>> >> swi-prolog-{core,core-packages}
>> >>
>> >> 4. swi-prolog-x (without changes at the moment)
>> >>
>> >> 5. swi-prolog-java (without changes at the moment)
>> >>
>> >> 6. swi-prolog-bdb (without changes at the moment)
>> >>
>> >> 7. swi-prolog-odbc (without changes at the moment)
>> >>
>> >> 8. swi-prolog-doc (without changes at the moment)
>> >>
>> >> 9. swi-prolog-test (without changes at the moment)
>> >>
>> >> 10. swi-prolog, depends on swi-prolog-{nox,x} as we have now
>> >>
>> >> 11. swi-prolog-full, depends on swi-prolog and
>> >> swi-prolog-{java,odbc,bdb}, that is all swi-prolog packages (maybe
>> >> except swi-prolog-test)
>> > 
>> > I've just uploaded 8.1.30 to experimental. swi-prolog source package
>> > builds 11 packages as in the quotation above.
>
> Nice.  When NEW processing (hopefully) succeeds, I will look further at 
> making use of the restructed packages for eye.
>
>
>> > swi-prolog-core provides virtual package 
>> > swi-prolog-abi-$(swi-prolog:ABI), the value of $(swi-prolog:ABI) is 
>> > based on the output of swipl --abi_version and massaged as follows:
>> > 
>> > $(shell LD_LIBRARY_PATH=debian/swi-prolog-core/usr/lib 
>> > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/swipl-abi//' | 
>> > tr -d '-')
>> 
>> I suggest 's/.*-abi-//' as the first part is basically flexible and may 
>> vary with the name of SWI-Prolog.   Personally I'd also be in favor of
>> not deleting the '-'.  Jonas doesn't see the need for that either.
>> There is a logical structure in that.  If you do it really correctly
>> you actually would have four virtual packages.  eye, not relying on
>> foreign extensions (except bundled with SWI-Prolog) could than drop
>> dependency on this part.   This is mostly theory though as this is
>> the most stable of the binary interfaces.
>
> If Lev finds it easier to maintain all 4 ABIs fused together as one, 
> then that's fine by me.
>
>
>> > That is, for 8.1.30+dfsg-1 it gives 267792e14f8de23899e, since the
>> > output of swipl --abi_version is swipl-abi-2-67-792e14f8-de23899e.
>
> ...I do worry, though, about the way you fuse them together.  Virtual 
> package names are permitted to contain dashes (single ones in the 
> middle), and because not all ABI parts are fixed-length stripping dashes 
> introduces a slight risk of different ABI combinations clashing.
>
> In other words, if you do want to have Debian packaging present only one 
> ABI (not some or all of the 4 exposed individually,,,

4 different ABIs... Hmmm, it fact it sounds interesting. What do you
(both) think about swi-prolog-core providing the following virtual
packages:

- swi-prolog-abi-foreign-FABI (currently, 2),
- swi-prolog-abi-binary-BABI (currently, 67),
- swi-prolog-abi-qlf-QLF (currently, 792e14f8),
- swi-prolog-abi-states-SSTATES (currently, de23899e)?

Or maybe even 5 virtual packages, the listed above plus
swi-prolog-abi-ABI, where ABI is 2-67-792e14f8-de23899e (that is,
without dashes)?

Since all of the values for FABI, BABI, and so on are fetched
programmatically, it is not a problem at all to provide such packages.
So, I propose

$(swi-prolog:ABI) = $(shell LD_LIBRARY_PATH=debian/swi-prolog-core/usr/lib 
debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//')

$(swi-prolog:FABI) = $(shell LD_LIBRARY_PATH=debian/swi-prolog-core/usr/lib 
debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut 
--delimiter=- -f 1)

And so on with '-f 1' to '-f 4'.

What do you think?

I can upload swi-prolog with these changes right after it is processed
in NEW. Anyway I should add Breaks and Replaces to make updating from
older versions smooth.

Cheers!
Lev

Reply via email to