[voikko] Voikon työkalubinääreissä on rpathit

Ville-Pekka Vainio vpivaini at cs.helsinki.fi
Tue Sep 15 19:11:10 EEST 2009


Yleensä käännän libvoikko-paketteja vain Fedoran mock-työkalun avulla,
joka kääntää paketit omassa chrootissaan. Kokeilin äskettäin kuitenkin
tehdä "tavallista" RPM-käännöstä, jossa luodaan rpm-käännöshakemisto ja
komennetaan spec-tiedostolle rpmbuild -ba.

Mockissa käännettäessä Fedora ei suorita rpath-tarkistusta, koska se
keskeyttäisi käännöksen, mahdollisesti turhaan. Tavallisesti
käännettäessä rpath-tarkistus kuitenkin tehdään ja libvoikon osalta se
tulostaa seuraavaa (rivitys saattaa mennä sähköpostissa rikki):

+ /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH and will cause
'rpmbuild'
*          to fail. To ignore these errors, you can set the '$QA_RPATHS'
*          environment variable which is a bitmask allowing the values
*          below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in
multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither
absolute
*               nor relative filenames and can therefore be a SECURITY
risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will
break
*               the functionality when the path before '..' is a symlink
*          
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$[ 0x0001|0x0010 ] rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute
check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*  
*******************************************************************************
ERROR   0001: file '/usr/bin/voikkospell' contains a standard rpath
'/usr/lib64' in [/usr/lib64]
ERROR   0001: file '/usr/bin/voikkogc' contains a standard rpath
'/usr/lib64' in [/usr/lib64]
ERROR   0001: file '/usr/bin/voikkohyphenate' contains a standard rpath
'/usr/lib64' in [/usr/lib64]

Sama ongelma on myös versiossa 2.1, aiempia en kokeillut. Nuo saattaisi
olla hyvä saada pois käytöstä, ellei niitä jostain syystä erikseen
tarvita. En ole ehtinyt tutustua asiaan, mutta esitän arvauksen, että
libtoolin asetusvivuilla niitä saisi ehkä säädettyä? Tiedättekö
tarkemmin?


-- 
Ville-Pekka Vainio





More information about the voikko mailing list