Budowanie dev-*rpm bez roota

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Czw, 12 Kwi 2001, 01:28:36 CEST


On Wed, 11 Apr 2001, Paweł Sakowski wrote:

> Naszedł mnie pomysł, żeby nieco zmienić zasady wkładania plików urządzeń
> do RPMów. Jak teraz to jest, każdy wie. A widziałbym to jakoś tak:
> 
> [cytat z "nowego" dev.spec]
> 
> cd $RPM_BUILD_ROOT/dev
> echo 'b 3 0' > hda
> echo 'c 108 0' > ppp
> for i in 0 1 2 3;do
>         echo "c 195 $i" > nvidia$i
> done
> 
> %files
> %attr(660,root,disk) %dev /dev/hda
> %attr(644,root,root) %dev /dev/ppp
> %attr(666,root,root) %dev /dev/nvidia*
> 
> A teraz się trochę wytłumaczę. Po co tworzyć pliki urządzeń, tylko po
> to, żeby RPM za chwilę stwierdził "to są urządzenia" i po dokonaniu
> wpisu do rpma je usunął? Przecież wystarczy jakoś dostarczyć RPMowi
> informacje, które sam uzyskuje statując plik (typ, major, minor). W sam
> raz dla krótkiego pliku tekstowego.
> 
> Zmiany, które trzebaby wykonać:
> - kompletna przebudowa dev-2.7.7.tar.gz (na szczęście w pełni
> automatyzowalna)
> - przekonanie RPMa do mojego pomysłu, czyli zaprogramowanie etykiety
> %dev
> 
> Jeśli pomysł się spodoba, zabiorę się za realizację.

Kilkadziesiąt dni temu zrobiłem pakiet fakeroot dzięki któremu można
zakładać pliki urządzeń z nie roota. To jak tworzone w trakcie budowania
pakietu pliki są opisywane na poziomie speca jest sprawą drugrzędną.
Wojtek Sas zrobił już takie zestawienie "typ, major, minor,
atrybuty, użytkownik, grupa" co prawda od ostaniej modyfikacji
zapewne sie troche to zdezaktyualizowało. Jeżeli przy tworzeniu devów z
takiego zestawienia posłużyć sie fakerootrm to zniknie ostatni pakiet
który bedzie musiał być robiony z roota.
Kolejna sprawa. Przy użyciu fakeroot do tworzenia plików urządzeń bedzie
można porozrzucać poszczególne grópy tych plików po pakietach choć z tym
raczje bym sie powstrzymał ze względu na devfs.
Tak czy inaczje utrzymałbym w mocy ze względu na powyższe zalecenie że
pliki urządzeń powinny być tylko w dev.

Na pewno odpadają tu różne haki polegające na tworzeniu i usuwaniu plików
w /dev w %post, %posun ze względu na to, że atrybuty, minor, major i
użytkownik, grupa, atrybuty nie beą podlegac kontroli poprzez rpm-a.

Co do %dev() to powinno mieć to raczej postać %dev(minor,majot,type) i
tego typu modyfikacja jak sam zauważasz wymagałaby przeróbki rpm-a co jest
przy możliwości użycia fakeroot w tej chwili juz zbędne, a przy używaniu
za jakis czas devfs stanie sie wręcz zbędne (będize miało zastosowanie
tylko dla pakietu dev który bedzie używany na systemach bez devfs jak
jakieś systemy z mocnymi obostrzeniami na zajetość pamieci przy których
używanie devfs może być niewskazane).

Kolejna sprawa to to, żeby uniknąć róznych kłopotliwych sytuacji
zwiazanych z wersją dev z róznych dystrybucji na jakim miejsce w danej
instalacji bezie wskakiwać PLD zmieniłbym nazwę pakietu z dev na devices
z. Potencjalnie IMHO dopuszczalne by było żeby z pakietu tego były
tworzone także podpakity z grupami plików urządzeń (choć z tym bym nie
przesadzał i jeszcze się pozastanawiał czy rzeczywiście do tego
dopuszczać).

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl