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