On Sun, 27 Jan 2013 16:12:37 +0100
Michał Górny <mgo...@gentoo.org> wrote:

> 5. Solutions to specific problems
> ---------------------------------
> 
> 1. x11-proto packages
> 
> Those packages install headers to /usr/include and pkg-config files
> to /usr/lib64. This supposedly means that the headers could be
> ABI-specific; however, so far I haven't seen a single difference.
> 
> Possible solutions:
> 
> a) check the headers by hand, move pkg-config files to /usr/share,
> 
> b) make the proto packages multilib. This will cause identical .pc
>    files to be installed to lib32 & lib64 but will also enable eclass
>    checks for header consistency.

b) sounds like what we should do by default while lobbying upstream to
do a) :)


> 2. packages which install ABI-dependent headers
> 
> e.g. libogg. The issue needs to be fixed in the specific ebuild.
> 
> a) fix the headers, e.g.:
> 
>   typedef short ogg_int16_t;
>   typedef unsigned short ogg_uint16_t;
>   typedef int ogg_int32_t;
> 
> to:
> 
>   #include <stdint.h>
> 
>   typedef int16_t ogg_int16_t;
>   ...
> 
> b) install the header(s) in an alternate location. With packages using
>    pkg-config, that would be easy.

b) is not an option: this will break those that do not use pkg-config
a) is the correct solution, in cooperation with upstream of course, and
it shouldn't be that hard for the libogg example since, as far as I can
see, they already have such typedefs for other OSes.


> 3. packages which still reinvent pkg-config with their *-config
> 
> e.g. llvm. Really painful to solve; probably will require action both
> on llvm ebuild side and consumer side.
> 
> a) long-term solution: convince upstream to use pkg-config.
> 
> b) short-term: rename the llvm-config script and use the renamed
>    version for 32-bit build.

yes, but b) is a mess as there will be no generic solution :(

Reply via email to