[csw-maintainers] Adding files from /usr/lib/64/ won't work

Dagobert Michelsen dam at opencsw.org
Tue Jul 2 10:54:49 CEST 2013


Hi Laurent,

Am 01.07.2013 um 23:45 schrieb Laurent Blume <laurent at opencsw.org>:

> On 01/07/2013 22:43, Dagobert Michelsen wrote:
>> Sure :-) It goes like this:
>> 
>> - there are versions built for 32 and 64 bit built in different directories like
>>   work/<platform>/build-isa-<isa>
>> - these are then merged together to work/<platform>/pkgroot
>> - from there the files for the packages are picked
>> 
>> Please see also my "Advanced mGAR" talk at
>>   http://sourceforge.net/apps/trac/gar/wiki/Learning%20the%20details
>> 
>> Inspection shows that the files are already missing in pkgroot/, so the problem is
>> in the merge phase. The relevant definitions are beginning at
>>   http://sourceforge.net/apps/trac/gar/browser/csw/mgar/gar/v2/gar.mk#L772
>> Per default only stuff from bin/, sbin/, lib/ and libexec/ (all in /opt/csw)
>> is propagated for a 64 bit build, but not /usr/lib. If you also want /usr/lib
>> you need something like
>>   EXTRA_MERGE_DIRS_isa-extra += /usr/lib
>> 
>> I have not tested it, please give it a try, if it doesn't work I'll have a deeper
>> look, then please mail your directory on the buildfarm in your home directory.
> 
> It's going somewhere :-)
> 
> I tried your line, then this:
> EXTRA_MERGE_DIRS_isa-extra += /usr/lib/amd64
> EXTRA_MERGE_DIRS_isa-extra += /usr/lib/sparcv9

Ah, I see. The normal case is stuff is installed to /usr/lib/64
which is then relocated during merge. This is what merge-copy-relocated-only
does:
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/gar/v2/gar.mk#L947

> The result is just a iittle off:
> 
> work/install-isa-amd64/usr
> work/install-isa-amd64/usr/lib
> work/install-isa-amd64/usr/lib/amd64
> work/install-isa-amd64/usr/lib/amd64/nss_wins_csw.so.1
> work/install-isa-amd64/usr/lib/amd64/nss_winbind_csw.so.1
> work/pkgroot/usr
> work/pkgroot/usr/lib
> work/pkgroot/usr/lib/amd64
> work/pkgroot/usr/lib/amd64/amd64
> work/pkgroot/usr/lib/amd64/amd64/nss_wins_csw.so.1
> work/pkgroot/usr/lib/amd64/amd64/nss_winbind_csw.so.1
> 
> 
> Should I just install in /usr/lib even in 64 bit? It feels a little wrong…

You should install in /usr/lib/64 and set
  EXTRA_MERGE_DIRS_isa-extra += /usr/lib

This will relocate /usr/lib/64 to /usr/lib/amd64 and /usr/lib/sparcv9.

I know this is complex, but I am only responsible for the implementation,
not the concept ;-)


Best regards

  -- Dago

-- 
"You don't become great by trying to be great, you become great by wanting to do something,
and then doing it so hard that you become great in the process." - xkcd #896



More information about the maintainers mailing list