Podzielenie heimdal-libs

Tomasz Pala gotar at polanet.pl
Mon Aug 1 14:32:07 CEST 2011


On Mon, Aug 01, 2011 at 13:18:45 +0200, Jan Rękorajski wrote:

>> > zadałeś sobie trudu wykonania 'what-requires lib<towar heimdalowy>' w
>> > poldku.
>> 
>> Sprawdzałem każdą bibliotekę (rsearch -r /libXX.so/ z osobna na wszystkich
>> indeksach th+ti/main+updates+test+obsoletes) plus wewnętrzne wymagania
>> tego co do tej pory było w heimdal-libs (objdump -p | grep NEEDED), więc napisz konkretnie, czego
>> nie znalazłem, później mogę Ci podesłać nawet moje .poldek_history do
>> wglądu.
> 
> Przypisanie konkretnych bibliotek do pakietów było dość losowe, np
> klienckie libkadm5clnt.so.7 siedziało w części serwerowej.

Przyznasz chyba, że to w żaden sposób nie wynika z 'what-requires', lecz
zastosowania (którego od samego początku pisałem, że nie znam - dla mnie
kadm* to do robienia czegoś przy serwerze i stąd taka a nie inna część).

>> > Żeby MIT stanowił jakąkolwiek aternatywę to po pierwsze libkrb5 nie
>> > wystarczy (jeszcze libkadm5* trzeba by wydłubać),
>> 
>> Przykro mi, że nawet nie przejżałeś moich zmian - one przecież też były
>> wydzielone.
> 
> Miałem na myśli osobne pakiety, tak jak zrobiłeś z libkrb5.

Tam pozostale liby mają inne nazwy, tylko krb5 się nakłada (to również
był jeden z powodów, dla których tylko jego oddzieliłem od reszty).

>> Nie pomyślałeś o pakietach pozadystrybucyjnych?
> 
> Nie. Nie znam takowych (w sensie wymagających krb).
[...]
>> Nie tylko mojego, starsze wersje tego co wydzieliłem są właśnie używane
>> przez różny zamknięty soft.
> 
> Jaki? Serio pytam.

Teraz np. instaluję greenpluma:
  NEEDED               libnuma.so.1
  NEEDED               libesmtp.so.5
  NEEDED               libnetsnmp.so.20
  NEEDED               libpam.so.0
  NEEDED               libssl.so.0.9.8
  NEEDED               libcrypto.so.0.9.8
  NEEDED               libkrb5.so.3
  NEEDED               libz.so.1
  NEEDED               libdl.so.2
  NEEDED               libm.so.6
  NEEDED               libcurl.so.4
  NEEDED               libpthread.so.0
  NEEDED               libldap-2.3.so.0
  NEEDED               libc.so.6
  NEEDED               libcom_err.so.3

Kompilowane 1 grudnia, taka wersja mi wygląda jednak na MIT a nie
heimdala. I wolałbym to mieć zainstalowane z pakietu PLD.

>> > Następnym razem skonfliktuje Ci np. libheimntlm,
>> 
>> Ten, który od zawsze ma so.0? - jakoś dam radę. Nie
> 
> Aha, więc na czy polega problem z libkrb5?

Że chcąc zainstalować np. równolegle so.24 i so.26 mam konflikty na
wszystkich plikach niewersjonowanych/bez wyższej werji, np. właśnie
libheimntlm.so.0 - jeśli wszystkie.so.0 są osobno, to nie próbują się
instalować na sobie, a ich aktualizację przeprowadzam tylko wtedy, gdy
dochodzą do nich nowe symbole (co nie wymaga podnoszenia SOVER).

Ponadto taką aktualizację łatwiej zrobić w kawałkach - doinstalowuję
wyższą wersję libkrb5 przez just-install, aktualizuję wszystkie.so.0
normalnie przez upgrade (install).


I w zasadzie należałoby odpowiedzieć na jedno bardzo ogólne pytanie: czy
PLD na takiej samej zasadzie, jak dopuszczamy kernele dystrybucyjne (tj.
nie robimy pakietów tak, aby konfliktowały z własnymi kompilacjami, mamy
na uwadze taką możliwość) dopuszcza formalnie instalowanie więcej niż
jednej wersji tej samej biblioteki na tej samej architekturze (czyli
ortogolalnie do multiliba)?

Rationale: stare wersje bywają wymagane przez:
1. 3rd party software,
2. pakiety, których nie ma w Th, a były w Ra czy Ac (!),
3. pakiety, których z dowolnych przyczyn nie można/nie chce się,
   przynajmniej w danym momencie, aktualizować - czyli szeroko rozumiany
   okres przejściowy.

Z większością bibliotek takiego problemu nie ma (np. teraz mam po 2-3
wersje libjpeg czy libpng), problem pojawiał się z openssl (i tam
wydzieliłem bez niczyich sprzeciwów rok temu podpakiet engines, rev.
1.225) oraz cały czas z heimdalem (szczególnie jak przeszło tornado
krb5).

>> zauważyłeś/przeczytałeś również, że właśnie takie były zgrupowane (skoro
>> im się wersja nie zmienia, to praktycznie jest mało prawdopodobne, aby
>> kiedykolwiek skonfliktowały będąc osobnym i samodzielnym bytem).
> 
> Chodzi o to że były pogrupowane losowo i bez związku z ich
> przeznaczeniem/użyciem.

Dlatego konsultuję temat - jeśli chodzi o to co było w 'support', to AFS
i NTLM są czymś zewnętrznym względem Kerberosa, więc mogłem to także
nazwać 'mechs' albo cokolwiek innego. Istotne w tym miejscu dla mnie
jest to, że będąc (jeśli dobrze to rozumiem) tylko jakimiś midendami
zachowują stabilne API.

> Jaki sens ma wydzielanie libkrb5, skoro to i tak jest zlinkowane z całą
> resztą?

Sens ma wtedy, gdy ta właśnie cała reszta nie zmieniła wersji (a akurat
krb5 najszybciej podskakuje i to się dość często zdarza) - mając osobno,
po prostu doinstalowuję nową wersję, opcjonalnie aktualizuję do nowego
release'u tę całą resztę (która zachowała wersje) i mogę pojedynczo
aktualizować aplikacje zlinkowane ze starym krb do nowego, aby
ostatecznie tę starą wersję wywalić.

Dzisiaj wygląda to tak, że upgrade heimdal-libs wywala mi kilkanaście
ekranów (a czasem braknie bufora scrollback...), w tym jest zawsze
naście błędów (różne konflikty) oraz ze 3-4 krytyczne dla mnie usługi,
których zwyczajnie nie chcę jednocześnie ruszać, bo muszą działać (więc
po każdorazowej aktualizacji trzeba monitorować, czasem dopasować
konfiguracje itp.) - gdy jestem zmuszony już to zrobić, to którąś z
wersji tego heimdala po prostu wrzucam bezpańsko gdzieś do lib*,
ale wiem, że nie tylko ja borykam się z tym problemem i akurat ten
właśnie zestaw bibliotek stanowi prawdziwy wrzód na tyłku, co
szczególnie irytować może gdy się kerberosa w ogóle nie używa.

> Tylko po to żeby nie trzeba było robić --force? Ale to i tak
> prędzej czy później Cię trafi bo jakaś inna biblioteka zmieni soname i
> wrócimy do tej dyskusji tylko o innej bibliotece.

poldek:/all-avail> upgrade --test heimdal-libs-1.4-11.x86_64 
[...]
There are 122 packages to install (121 marked by dependencies), 106 to remove:
[...]
error: 14 unresolved dependencies, 1 conflicts
poldek:/all-avail> just-install heimdal-libs-1.4-11.x86_64 
[...]
        file /usr/share/info/heimdal.info.gz from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-0.7.2-1.amd64
        file /usr/share/man/man8/kerberos.8.gz from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-0.7.2-1.amd64
        file /etc/krb5.conf from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libasn1.so.8.0.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libgssapi.so.2.0.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libhdb.so.9.2.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libheimntlm.so.0.1.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libhx509.so.5.0.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libkadm5clnt.so.7.0.1 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libkadm5srv.so.8.0.1 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libkafs.so.0.5.1 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libkdc.so.2.0.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libotp.so.0.1.5 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libroken.so.18.1.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libsl.so.0.2.1 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /lib64/libwind.so.0.0.0 from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/lib64/heimdal/asn1_compile from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/lib64/heimdal/asn1_print from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/lib64/heimdal/slc from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/share/info/heimdal.info.gz from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/share/info/hx509.info.gz from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64
        file /usr/share/man/man5/krb5.conf.5h.gz from install of heimdal-libs-1.4-11.x86_64 conflicts with file from package heimdal-libs-1.3.1-4.x86_64

~:  rpm -V heimdal-libs-0.7.2-1.amd64 heimdal-libs-1.3.1-4.x86_64
S.5....T  d /usr/share/info/heimdal.info.gz
S.5....T  d /usr/share/man/man8/kerberos.8.gz

Teraz jak widzisz mam coś, co chciałbym (ale nadal kawałkami) podnieść
oraz jeden zabytek (którego się prędko nie pozbędę) - ten ostatni był
już potraktowany --force (co widać na dokumentacji).

Jeśli i tym razem dam force, to zmaltretuje mi wszystkie powyższe pliki
(może poza libkadm5clnt, bo pozostałe mają inny rozmiar).


Krótko mówiąc: ten sam problem, który występuje na FTP po zmianie
soname, czyli konieczność przemielenia wszystkich pakietów, zostaje
przeniesiony do maszyny użytkownika - musi w jednym secie wszystko
zaktualizować. Moja propozycja miała dać metodę na krokowe przejście do
nowej wersji, z jak najmniejszym zestawem pakietów do ogarnięcia
jednocześnie. To jest właśnie ten osławiony dependency hell.


Ale jeśli uważasz, że choćby niewielkie (bo nie twierdzę, że to jest
kompletne rozwiązanie) złagodzenie tego problemu jest warte podpakietów
- trudno, każdy sobie jakoś poradzi.

> BTW właśnie wyszedł Heimdal 1.5, zobaczymy gdzie się soname zmienił...

No ciekawe... Gdyby się zmieniły wszystkie, to mam problem z głowy:)
BTW jakiś szczególny powód, że dałeś rel. 12.1? W Th i tak nie było 12,
ale dobrze byłoby jeszcze tego 1.4 w jakiejś poprawionej formie zbudować.

-- 
Tomasz Pala <gotar w pld-linux.org>


More information about the pld-devel-pl mailing list