taczka po wymoanie koła

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pon, 26 Kwi 1999, 01:47:28 CEST


W tym tygodniu po zmianie rpm-a (na 3.0) ilość zmian jest już bardzo duża
i dość spora ich część nie wynika li tylko ze zmian technologi robienia
pakietów (czyli doś prostych przeróbek wcześniej zgromadzonych speców do
pakietów). Kiedy ilość pakietów w test podeszła pod 200 chciałem cześć
pakietów wypuścić nieco wcześniej. W ostaniej chwili Artur Frysiak zaczął
dołączać nowe poprawki .. w sumie dość kosmetyczne ale wynikające z tego,
że tak naprawdę dopiero po kilku dniach rzeczywistego używania tylko
nowego rpm-a można było się oswoić z jego nowymi możliwościami.

Tak czy inaczej nowym narzędziem do budowania pakietów stał się od tego
tygodnia rpm 3.0 (final). Przypomnę podstawowe różnice dotykające sposobu 
robienia pakietów:

* Możliwość używania pola BuildPrereq w nagłówkach pakietów które
  umożliwia wymuszanie środowiska w jakim ma być budowany pakiet. Jest
  to dość ważne gdyż w na dłuższą metę powinno wyrugować wszelkie pytania
  i nieporozumienia wynikające z tego, że coś nie chce się budować z
  powodu tego, że coś potrzebnego w trakcie budowania nie jest
  zainstalowane systemie, w którym odbywa się budowanie pakietu.

* Rozwiajanie makr także w %files - upraszcza to dość znacznie konstrukcję
  listy plików jakie mają wpaść do pakietu o ile ściaka ta np. jest
  zależna od wersji czy architektóry. Do powyższego odchodzi także
  możliwoś uzupełniania globalnej konfiguracji rpm-a o włąsne makra (tutaj
  pojawiło się klika mark "PLD specyfic", które można znaleźć w
  /usr/lib/rpm/macros.pld).

W zasadzie ciężko ocenieć która z tych zmian jest istotniejsza. Zanim sam
na pełną parę zacząłem używać nowego rpm-a uważałem, że ważniejsze bedą
makra ale dzisiaj jestem bardziej skłonny uważać, że jednak
faktyczną różnicę jakościową wprowadza BuildPrereq.
 
Jeszcze jedna rzecz zadecydowała o przejściu na nowego rpm-a. Otóż obecnie
używamy glibc 2.1 i tu okazuje się, że są pewne dyskretne różnice w
międzymordziu jakie wystawia nowe glibc w porównaniu do starego 2.0.7.
Dotąd próbowaliśmy się tu ratować przed pomyłkowym instalowaniem nowych
pakietów na starym systemie w ten sposób, że w różne newralgiczne pakiety
wpadała linijka:

Conflicts: glibc <= 2.0.7

Teraz dzięki pewnej drobnej modyfikacji skryptów find{requires,provides} o
ile dany lib z nagłówku elfowym ma pole "Version References" to SONAME
udostępnianego czy wymaganego przez pakiet liba ma postać:

SONAME(Version References)

Stąd powstają zależniści np. od liba libc.so.6(GLIBC_2.1).

Pakiety podobnie zachowujące się są obecnie obecne także w RH 5.9.

Sam rpm-a 3.0 posiada jeszcze nadal błędy, które dały już znać o sobie w
trakcie robienie nowych pakietów ale w sumie korzyści wynikające z jego
używania są zdaje się jednak dużo większe, a błedy są do obejścia.

Sczegółowa lista zmian:

glibc-2.1-10
	Od tego pakietu należy zacząć upgrade gdyż zawiera on w
	liście PROVIDES obiekty które będą wymagane prze wszystkie inne
	pakiety. Chodzi przedewszystkim o liby lib*.so.2(GLIBC_2.?). Po
	zainstalowaniu tego pakietu całość upgradeu powinna juz iść
	gładko.

rpm-3.0-8
	To powinien być w zasadzie drugi pakiet w kolejności do upgrade'u.
	Osoby które w miedzyczasie zmieniały format indeksów bazy rpm-a
	(na db2) powinny po upgrade z ręki wykonać "rpm --rebuilddb" żeby
	pzrebudować indeksy bazy. Rpm używa nadal indeksów w formacie db1
	czyli tak jak jest to w RH 5.x. Swoją droga chyba do tego pakietu
	z raz na miesiąc możnaby dodać z crona przebudowywanie bazy.

ElectricFence-2.2.0-3
	Poprawiony błąd w instalowaniu man-a do EF.

WindowMaker-0.53.0-1
	Pojawiły się podpakiety static i libs. Ten drugi
	będzie potrzebny dla kogoś kto będzie chciał korzystać z apletów
	WM niezależnie od samego WM i bez potrzeby jego instalowania.

ClanLib-0.1.14-1, Hermes-1.2.4-2, OpenPTC-x11-1.0.0-2
	Konradowi Stepieniowi nudziło i postanowił zająć się ciu pakietami
	z grami ;-)
	Nowe pakiety. Zwierają biblioteki do robienia gier (zeperne
	pierwszą grą jaka się pojawi w postaci gotowego pakietu 
	wykorzystującą te biblioteki będzie pingus ;)
	W tej porcji pakietów jest także ostatnia wersja freeciv :-)

popt-1.3-2, logrotate-3.2-2, chkconfig-1.0.5-2, pump-0.2-2
	Tutaj Piortek wprowadził dość ważną dla tego pakietu (i nie 
	tylko) zmianę. Pkiet jest kompilowany tak żby generował shared
	liba z którym są linkowane programy go wykorzystujące. Po mimo
	tego, że lib z tego pakietu zaiera dość newralgiczne fragmety kodu
	jak odbieranie i interpretowanie parametrów linii poleceń to
	linkowanie z shared libem nie powinno tu wprowadzać zagrożenia. 
	Dodatkow pakiet ma zasoby do gettext, których nie ma w pakiecie
	RH. Pozostałe pakiety (znane z RH) są nowe w stable i korzystają z
	libpopt.so.
	Co do pump to jest to bardzo mały klient BOOTP/DHCP i pod kontej
	jego użycia dobrze było modyfikować rc-scripts.

console-data-1999.04.15-1, console-tools-0.2.0-1
	To są nowe pakiety. Tutaj mamy chyba nareszcie spójne rozwiązanie
	do ustawiania parametrów konsoli. W RH/rh osobno jest ustawiany
	font i mapa klawiatóry (font jest ustawiany w initscripts, a mapa
	klawiatóry ze skryptu z console-tools). Teraz opis konsoli
	znajdije się /etc/sysconfig/console gdzie są zmienne za pomocą,
	których można sterować paramerrami konsoli. Z poziomu skryptu
	/etc/rc.d/init.d/console można także sterwać ustawieniami konsoli
	z użyciem SVGATextMode.
	Do console-tools trzeba jeszcze dodać tylko skrypt console.csh w
	profile.d żeby przestawianie na generator G0 także działało dla	
	osób używających [t]csh.

nvi-1.79-1
	Mały vi. Ten program będzie domyślnie robił za /bin/vi.

vim-5.4h-1
	Z źródłowego pakietu jest generowanych kilka wersji: vim-athena,
	vim-gtk, vim-lesstif, vim-static. vim-static jest w stanie
	zastapić miejsce pakietu nvi dzieki temu jak ktoś chce to /bin/vi
	to może być vim tak jak w RH. W kolejce czekają jeszcze dwa klony
	vi (vile i elvis).

procps-2.0.2-2
	Tutaj zniknął pakiet procps-X11. To co zawierał procps-X11 będzie
	teraz bezpośrednio w XFree86 (skrypt uruchamiający xconsole z
	odpowiednimi paraerami).

perl-5.005_03-2
	Oprócz update'u do ostatniej wersji stabilnej jest jeszcze też
	kolejna różnica. Perl jest kompilowany tak, że prawie cały jego
	kod siedzi shared libie. Many zostały przerzucone bezpośrednio do
	/usr/man (many z sekcji 3 uzyskały dla rozróznienia rozszerzenie
	.3pm). Przypomne, że kolejną różnicą w stosunku do RH w przypadku
	tego pakietu jest to, że sperl jest w osobnym pakiewcie (sperl).
	Suid root perl to dość niebezpieczne narzędzie na serwerach
	dostpowych. Za częśto w programie tym okazuje się, że jest
	poprostu dziura, a obszar zastosowań skryptów perlowych z suid-em
	jest naprawdę bardzo mały (powiedziałbym, że wręcz
	marginalny) więc można spokojnie pzbyć się potencjalnego ryzyka
	wynikającego z obecności w systemie tego programu poprostu nie
	instalując go.

newt-0.40-9
	Tutaj w orównianiu do wersji z RH/rh pakiet ten został podzielony
	dodatkowo na podpakiety zależne dodatkowo od pythona i tcl/tk
	(umożliwi to instalowanie niektórych RH dodatków które nie
	korzystają z pythona/tch bez konieczności instalowanai tych trzech
	dość dużych pakietów jakimi są python, tcl i tk). Głowny pakiet
	zależny jest tylko od slang i popt.

ntalk-0.11-1
	Tutaj godnie z podejściem w którym rozdzielane są na osobne
	pakiety serwery i klienty usług z pakietu tego od tej wersji
	dodatkowo powstaje podpakiet ntalk-clien, który zawiera curses
	klienta talk/ntalk. Chodzi o to, żeby instalacja klienta nie
	pociągała za soba instalacji serwera usługi. Podobna zmiany
	powinny być wprowadzana w pozostałych pakietach z
	klientami i serwerami usług sieciowych jak telnet, rsh, finger czy
	inne. Jakie to może mieć znaczenie dla możliwości dobierania
	zestawu pakietów pod kontem prezycyjnej kontroli ruchu na
	interfejsach sieciowych i to już na poziomie instalowanych
	pakietów to chyba nie muszę dodawać. Tak czy inaczej tego typu
	zmian to jest krok w kierunku realizacji pomysłu jaki kilka
	miesięcy temu zgłosiłem (coś co wtedy sobie nazwałem AFuS czyli
	Automated Firewwal Setup ;) .. jakby ktoś chciał sobie odświeżyć
	zarys/ideę tego pomysłu to na http://lists.pld.org.pl/ powino się
	w archiwum dać odszukać ten list.

mgetty-1.1.20-3
	Tutaj Piotrek Czerwiński (pius) trochę posiedział nad tym stuffem :)
	i ta wersja pakietu jest IMHO o wiele lepsza od wersji z RH.
	W ostatniej chwili zauważyłem jeszcze jednen mały brak .. głównemu
	pakietowi brak jest zależnoći od logrotate (w RH też tego brak).
	Tak czy inaczej pakiet wylatuje już z test gdyż brak zależności od
	logrotate nie jest newralgiczny.

joe-2.8-20
	Tutaj doszedł patch z rh do uzywania LOCALE przy określaniu czy
	znak jest "printable". Włączyłem ta poprawkę ale tak czy inaczej
	jest ona jeszcze niekompletna gdyż skoro używa się już bazy LOCALE
	do określenia czy znak jaki przychodzi z klawiatóry możńa wpuścić
	do bufora edycji to można równie dobrze usunąć kod zależny od
	-asis (parametru linii poleceń).

gnome-libs-1.0.8-2
	Dużo drobnych poprawek. Rozluźnienie zależności od innych
	pakietów.

ncompress-4.2.4-15
	Pakiet ten zawiera many po polsku ale żeby je zainstalować trzeba
	obejść błąd jaki jest obecnie w rpm-ie. Otóż pakiet ten trzeba
	instalować z ustawioną zmieną LANG na "pl" w środowisku żeby
	polskie many zostały zainstalowane. Czyli powinno to wyglądać
	np. tak:

	# LANG="pl" rpm -U ncompress-4.2.4-15.i386.rpm

mswordview-0.5.8-1
	Tutaj oprócz updateu do wersji 0.5.8 całość jest teraz instalowana
	z prefixem /usr/X11R6, a zasoby potrzebne do pracy temu programowi
	weszły do /usr/X11R6/share/mswordview (poprzednio były w
	/usr/lib/mswordview).

e2fsprogs-1.14-2
	Sam się natknąłęm na to, że fsck przy braku pewnych brakach w
	/etc/fstab nie jezst w stanie sprawidzić wolumenów więc zacząłem
	szukać. Potrzebna poprawka okazało się, że jest już w Debianie.

Pozostałe pakiety, które pierwszy raz pojawiły się stable:
	bin86-0.4-7, dialog-0.6-15, freeciv-1.8.0-1, chkconfig-1.0.5-2,
	mktemp-1.5-2, slang-1.2.2-5, strace-3.1-18, symlinks-1.2-4,
	tmpwatch-1.5.1-4, ytalk-3.1-4, unace-1.2b-2, which-1.0-12

Tylko update do ostatniej wersji + ewentualne poprawki do nowego
rpm-a (BuildPrereq):
	ImageMagick-4.2.3-1, bdflush-1.6.2-1, esound-0.2.12-1,
	fetchmail-5.0.1-1, glib-1.2.2-1, gnumeric-0.24-1, gtk+-1.2.2-1,
	libcap-1.02-1, ippl-1.4.5-1, wmakerconf-1.99.4-1,
	wmpinboard-0.8.3-1

I cała reszta pakietów ze zmaianami wynikające z przekompilowania z
użyciem nowego rpm-a i ewentualnie dodania regół BuildPrereq:

	Mesa-3.0-6, ORBit-0.4.3-2, bc-1.05a-6, binutils-2.9.1.0.23-2,
	bison-1.27-2, bzip2-0.9.0c-3, cpio-2.4.2-13, dia-0.41-2,
	file-3.26-5, fnlib-0.4-9, freetype-1.2-5, gftp-1.13-2, 
	glade-0.4.1-2, gpm-1.17.7-2, guile-1.3-6, gzip-1.2.4-17,
	imlib-1.9.4-3, kibble-0.7.3-2, lftp-1.2.4-3, libPropList-0.8.3-4,
	libtiff-3.4-8, libungif-4.1.0-4, libxml-1.0.0-4, make-3.77-6,
	mc-4.5.30-2,  ncurses-4.2-15, pine-4.10-3, pwdb-0.57-2,
	readline-4.0-3, rsync-2.3.1-2, sed-3.02-6, vlock-1.3-5,
	wmCalClock-1.22-2, wmMoonClock-1.1-3, wget-1.5.3-6, xbase-1.8.1-2,
	xdelta-1.1.1-2, xpdf-0.80-6, zlib-1.1.3-7

W test w tej chwili zostały jeszcze hdparm, pam i qt. Na hdparma nie
starczyło poprostu czasu, a nowa wersja będzie zawierać skrypt który
pozwoli automatycznie ustawiać przy starcie parametry posczagólnych dysków
czy partycji. PAM ze względu na ostanią poprawkę Janka Rękorajskiego
prawdopodobnie po za co tygodniowymi czyszczeniami test wpadnie do
podstawowej stróktóry. Tutaj podam tylko tekst z loga CVS dotyczący
ostatniej zmiany:
* pam.spec 1.23:
        Kazdy kto uzywa pam_unix z tej paczki niech KONIECZNIE zrobi upgrade!
        Poprzednia wersja nie updatowala /etc/shadow!

        %changelog
        * Tue Apr 20 1999 Jan Rękorajski <baggins w hunter.mimuw.edu.pl>
          [0.66-12]
        - new version of pam_unix modules - nasty BUG FIXED!
        - added remember patch. Ever wondered how to stop lusers from having
          two passwords for a lifetime? Just add remember=N to pam_pwdb or
          pam_unix_passwd and your system will remember last N passwords for
          each user.
        - uncommented crypt16 patch, if you want PAM to understand crypt16
          passwords add a crypt16 option to pam_pwdb.
        - fixed crypt16 patch for pam_pwdb - now it really works, you need to
          add "crypt16" option in auth line with pam_pwdb

Przy okazji. Jeżeli pwdb rzeczywiście w nowej wersji potrafi już odwoływać
się do NIS to chyba można zacząć myśleć o wydzieleniu modułów pam_unix_* w
osobny podpakiet (?).

W sumie wszystkiego ponad 280 pakietów źródłowych i wynikowych. Za tydzień
ilość pakietów może być nie wiele mniejsza gdyż dużo jeszcze pakietów
jednak nie zostało przerobionych pod kontem nowego rpm-a.

kloczek
PS. List idzie jako krospost na pl.comp.os.linux i na pld-list w pld.org.pl.
Uwagi w sprawie powyższego proszę kierować raczej na pld-list.
-- 
-----------------------------------------------------------
*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