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 :(