Portál AbcLinuxu, 30. dubna 2025 18:24
Právě si kompiluju druhé Gentoo tentokrát už s podporou SELinuxu. Začátek byl sice složitější, ale o tom až za chvilku
Během mého zkoušení Gentoo jsem narazil na jednu věc co by se dala docela vylepšit a to je pouze částečně přepsání ebuildu. Pro pochopení uvedu příklad. K počítači mám připojený skener, který potřebuje mít sane-backends zkompilované s přepínačem --enable-directio
, což ve výchozím stavu není. Má představa by byla, že bych si napsal sane-backends.ebuild, ve kterém bych specifikoval pouze pomocí nějaké funkce ten přepínač navíc a on by se odteď používal u všech ebuildů sane-backends.
Cílem je, aby šlo použít něco jako patch na oficiální ebuild, který by se aplikoval na každou verzi a zastínil by pouze některou část oficiálního ebuildu.
Na konec ještě jak zkopilovat Gentoo s podporou SELinuxu: Hned na začátku se objevila chyba s knihovnou libselinux, které se odmítala kompilovat, bez rekompilace GLibc, které ovšem tu knihovnu při kompilaci již potřebovalo. Na netu jsem nakonec našel patch, který to řeší a balíček libselinux jsem si dal do overlaye. Po dokončení kompilace glibc jsem ho zase z overlaye odstranil a použil jsem balíček originální.
Další problém nastal při instalace selinux-base-policy, kdy mi chtěl ebuild po instalaci do image relabelovat soubory v tom image, ale nemohl najít soubor /etc/selinux/targeted/contexts/files/file_contexts, který se tvoří až při natažení SELinuxu. Po delším pátrání jsem našel, že to celé je způsobené funkcí preinst_selinux_labels v /usr/lib/portage/bin/misc-functions.sh a ta se spouští, pokud FEATURES obsahuje selinux. Po té co jsem dal FEATURES=-selinux emerge selinux-base-policy
, tak již instalace proběhla v pořádku. Po rebootu už stačilo zadat pouze příkaz setfiles /etc/selinux/targeted/contexts/files/file_contexts /
a instalace SELinuxu proběhla v pořádku.
Tiskni
Sdílej:
EXTRA_ECONF="--enable-directio" emerge sane-backends
potřebuje mít sane-backends zkompilované s přepínačem --enable-directio, což ve výchozím stavu není. Má představa by byla, že bych si napsal sane-backends.ebuild, ve kterém bych specifikoval pouze pomocí nějaké funkce ten přepínač navíc a on by se odteď používal u všech ebuildů sane-backends.Zrovna tohle má mnohem jednodušší a lepší řešení – napsat patch pro ten
ebuild
, který na základě nějakého USE flagu zapne --enable-directio
. Buď nějaký globální USE flag, pokud má ten význam, nebo vytvořit nějaký lokální jenom pro daný balíček. A ten patch pak následně zaslat do bugzilly. Pak z toho patche budou moci těžit všichni gentooisti.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.