[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#963205: libmpg123-dev no longer multiarch installable



On 2020-06-20 20:37:08 +0200, Thomas Orgis wrote:
> Am Sat, 20 Jun 2020 15:03:32 +0200
> schrieb Christian Klein <dvlohp@gmail.com>: 
> 
> > A diff of the header files reveals that the i386 and amd64 versions are now
> > different:
> 
> > -#    define syn123_resample_total   syn123_resample_total_32
> > -#    define syn123_resample_intotal syn123_resample_intotal_32
> > +#    define syn123_resample_total   syn123_resample_total_64
> > +#    define syn123_resample_intotal syn123_resample_intotal_64
> 
> > I guess the problem was introduced by upstream.
> 
> Indeed. I am upstream and I confirm that I wrote this. But I did not
> intend to break multiarch … I just didn't think about it. This is a
> fallback for _FILE_OFFSET_BITS not being defined by the client
> application. The fallback is to define off_t as long, basically, which
> differs on 32 or 64 bit arch. Well one could drop the fallback and
> return an error that the client application needs to define
> _FILE_OFFSET_BITS … but then, there is no good solution when you got
> off_t sometimes as 32 bit and sometimes as 64 bit on the same platform,
> depending on a switch.
> 
> The largefile (off_t) stuff in libsyn123 is simpler than all the hoops
> libmpg123 goes through, with implementing dual mode and wrappery in the
> library. Here, the library works with fixed 64 or 32 bits and the
> header shall choose the implementation that matches the client offset
> size. It has the side effect of the fallback being different.
> 
> You could argue that I should have just used int64_t externally, but
> the unspecific off_t is the natural type for file/stream offsets … at
> least I'd like to pretend that it is:-/ Same reason I use size_t for
> memory sizes.
> 
> Is it big trouble to separate the syn123 header into multiarch subdirs
> to fix debian again? Would you rather have some switch in the same
> header about native off_t/long size?

I am wondering why syn123 and mpg123 use different approaches to achieve
the same thing. The mpg123-way of handling off_t using functions is
known to work and doesn't require any quirks on the Debian packaging
side. Why doesn't syn123 also use MPG123_LARGENAME?

Cheers
-- 
Sebastian Ramacher

Attachment: signature.asc
Description: PGP signature


Reply to: