This post will be entirely in English but feel free to comment in Polish if you want. The reason is my laziness as I need to provide an English translation anyway and it’s just easier to write one version instead of two.
Troll warning: I am sane and have spent more than last 3 years actively developing PLD Linux. If you want to tell me to shut up, you better find something to support your statements.
The problem
Or several problems really:
- The first and most obvious one is poldek still has some bugs.
- That in turn is caused by the fact that noone is working on poldek any more.
- The above is caused by poldek’s poor source code documentation.
- That in fact is because there is only one author and maintainer.
And sure all the above may not seem immediate. That is, until you realize Mis (Paweł Gajda) — despite having good intentions &,dash; can no longer spend his time actively working on the project. It might not be obvious at first but check the spec in our CVS. The last snapshot was taken four months ago and we already have 6 patches on top of that. This is not bad if we are talking about an upstream project. But here upstream is actually us.
I am afraid that one day we might be unable to follow rpm in terms of both features and compatibility. There are some people today who know C well enough to hack on the sources and a small percentage of them is actually capable of understanding poldek’s internals but one day there may be none.
But the problems don’t end here. Poldek was a marvellous tool back when it was created. In the dark ages of early apt we already had an interactive tool to use. But today the situation is quite different:
- Fedora/RHEL are actively working on yum.
- Gentoo is actively maintaining emerge.
- Debian/Ubuntu have their apt and synaptic
- We still have the same poldek with no one to maintain it.
And there’s more. In particular libpoldek and python-poldek need to be completely redesigned to become usable in something even resembling a GUI tool. And there are some dependency interpretation issues too. More details further below.
The solution
I can see two solutions here. The first and most obvious is to find a new active maintainer and programmer for poldek. Sign up today, lots of fun and joy awaits you as you enter the abandoned world. There are some things to fix, some to refactor and maybe a little set of desired new features too.
The other solution is to introduce a new package manager with equal rights to those of poldek. That means keeping it up to date and making sure it always works. I’ve already taken the first step and PLD now has basic yum compatibility. There are yum repositories, there is yum and yumex — a nice little GUI tool to help all desktop users out there. This way we can avoid being chained to a single tool that in future could turn into a single point of failure.
However adding yum is not enough as there is something more…
Poldek's architecture
Long time ago in the galaxy not so far away a tool was created to aid package management. It was called poldek and it relied and still relies on a broken idea of calling rpm directly instead of using proper librpm bindings. This in turn forced poldek to reinvent a mechanism for dependency checks.
Most tools just pass the list of packages to librpm and the library in turn asks them what to do in specific cases (like unsatisfied deps or file conflicts). Poldek needed external one because there was no way to ask the rpm binary for anything and get usable feedback. It was either a success or a failure so every single check in rpm had to be doubled in poldek’s code to detect all errors before asking rpm to jump in and do its job.
Then the High Council of One decided it was worth caching the rpm’s database in yet another database but this time using a different schema. That’s why poldek takes up to several minutes on some machines every other restart (when you see a rebuilding rpm database
message).
The result? Yum’s sources take as much as 2.4MB versus 35MB for poldek.
Inconsistent dependency checks
There are some problems adapting any other tool for PLD however. The reason is that for quite a long time noone bothered to use any other tool to manage packages. And PLD was fixed for poldek and poldek was fixed for PLD. And none of them handle the dependencies like the rest of the world does.
For some reason PLD decided to use the Obsoletes header to hold information about conflicting packages. Not that it makes any sense but that’s how poldek implemented it in the first place. You see, when you try to use the proper Conflicts header and drop the Obsoletes header poldek displays an error message and refuses to install anything.
Patching yum to handle conflicts and uninstall the conflicting package took me about 3 minutes. But it treats Obsoletes the way it was supposed to be used: to tell the manager that a package is being dropped from the distribution and another one provides a replacement. Not that two packages are mutually exclusive (hint: mutual Conflicts). Now image what yum does when it sees two mutually obsoleting packages. Yup. It cycles them every time you upgrade. And now the fun part — we have more than 10 issue
versions (send your answers on post cards to my home address).
That’s why I propose fixing out packaging policy and poldek to handle deps like the rest of the world does (and maybe start using Suggests once poldek is fixed).


by Michał Górny
30 maj 2007 at 21:48
And it would be nice to add some kind of dividing packages into user-wanted and dependency-installed, like emerge or aptitude does.
by carstein
30 maj 2007 at 23:33
problem doesn’t (zamiast problem don’t)
Pewnie będzie więcej, ale na razie nie skończyłem czytać.
by Łukasz Kowalczyk
31 maj 2007 at 08:20
Ja też nie byłem w stanie skończyć lektury, bo jest zbyt bolesna. „Noone” należy pisać oddzielnie, „and all the above my seem” — bez komentarza, „know C WELL enough”, „more details later below” — dlaczego later, skoro można o tym przeczytać już teraz?
Itd, itd. Na miejscu anglojęzycznego czytelnika wolałbym chyba przetłumaczyć sobie polski tekst przy pomocy babelfisha.
by gorzki
31 maj 2007 at 09:44
in short: Polish is better :)
by Pvt
31 maj 2007 at 12:57
Ale macie coś do powiedzenia w temacie? Czy tylko tak wpadliście potrollować?
–
Słabo w temacie jestem, kiedyś słyszałem sporo dobrego o poldku, ale z twoich słów wynika, że nie jest tak różowo. Osobiście proponowałbym przejście na któreś ze znanych rozwiązań. O ile oczywiście High Council of PLD nie cierpi na syndrom NIH ;-).
by Lipa
31 maj 2007 at 14:38
Używam PLD i w zasadzie jestem zadowolony z poldka; ale jeśli rzeczywiście w przyszłości mogą z nim być problemy to może zastanowić się nad przejściem na yum? (dużo dobrego słychać także o smarcie).
by Patrys
31 maj 2007 at 14:52
Carstein:
Nie potrafię znaleźć w kodzie notki kawałka, który chcesz, żebym poprawił.
Łukasz Kowalczyk:
Serdecznie dziękuję wszystkim, którzy zajęli się wyłapywaniem literówek w tekście pisanym o 20 w biurze, po 11 godzinach pracy. Szkoda, że zupełnie nie interesuje was merytoryczna zawartość notki.
by cli3nt
31 maj 2007 at 16:07
@Patrys: Nie usprawiedliwiaj sie wymowkami typu „pisalem to po 11 godzinach pracy” bo albo umiesz angielski i go uzywasz albo go nie umiesz i go nie uzywasz, a jezeli juz uzywasz i robisz bledy to nie wykrecaj sie tego typu tekstami bo to jest hmmm „preety lame”; po prostu zrobiles bledy i juz, ladnie podziekuj (bez ironii) i zapamietaj na przyszlosc.
Co do poldka, ba calego PLD, to wydaje mi sie, ze trzeba byloby zrobic liste rzeczy do poprawienia i nadac im range, cos w stylu natychmiast-pozniej-jeszcze_pozniej i zaczac po kolei szukac ludzi ktorzy podejma sie poprawiania, a tacy predzej czy pozniej sie znajda :).
by Patrys
31 maj 2007 at 16:31
cl3nt:
Jeśli poprawki literówek „my” na „may” i tym podobne uznajesz za powód do pisania o nieznajomości języka…
Jedyna rzecz, jaką faktycznie spieprzyłem, to zamiana „a good grasp on C” na „know C good enough.” I to zmieniłem na „well enough,” zgodnie z uwagą.
by grizz
31 maj 2007 at 18:36
Z punktu widzenia zwykłego użytkownika „desktopowego”.
Prędkośc działania poldka (wyszukiwanie zależności) jest o niebo lepsza niż ta, która doświadczyłem w yumie.
Wygoda obsługoi też nieporównywalna (w trybie interaktywnym).
Aktualnie uzywam Archa (lepsze wsparcie dla desktopowych paczek w repo ;)) i własnie poldka brakuje mi najbardziej.
Ale to tylko opinia szarego użyszkodnika ;)
by ljarochowski
01 cze 2007 at 09:00
Szczerze mówiąc, to używałem PLD przez kilka ładnych lat (od wczesnego Ra, do jakiegoś roku temu), na serwerach nadal używam…
co do poldka:
jako użytkownik tego narzędzia nie mam zastrzeżeń jest w porządku. Czasami brakuje mi opcji jak w apcie autoremove, żeby usunąć śmietnik bibliotek (nie potrzebnych).
co do samego PLD:
zrezygnowałem, bo nie ma stabilnych wydań — Ac ukazało się teraz, w distro imho jest jeden wielki burdel — wszyscy podchodzą do tego „jak chcesz to se zrób” nie ma żadnej ogólnej myśli przewodniej, żadnego lidera w sumie — jest to podejście które doskonale rozumiem, ale mi się ono nie podoba. Cały czas wszystko kręci się w kółko. MMazur obiecywał stabilne Ac hen hen, dawno temu … Domyślam się że z Th będzie tak samo, stabilne zobaczymy za 5 lat.
W PLD jest najlepszy chyba podział pakietów (np. moduły php, apache itd) jaki widziałem, wiele rzeczy jest super dopieszczonych — domyślne konfigi, rs-scripts itd. W ogóle uważam PLD za świetne distro, ale na serwerach będę instalował debiana (albo na życzenie centosa).
Na desktopie — ubuntu, w sumie jedna z lepszych distro na desktop. (żeby nie było że jestem lamerem co to w konsoli nie umie się obsługiwać — używałem pld na desktopie bez Xów przez 2–3 lata)
Tego posta przeczytałem z pewną nadzieją, nadzieją, że moja ulubiona dystrybucja zmierza w dobrym kierunku (tj. poprawianie fuckupów).
Pozdrawiam
Łukasz Jarochowski
PS: rozumiem podejście developerów PLD do PLD, więc jeśli ktoś chce odpowiedzieć, żebym dzisiaj usiadł i zaczął poprawiać to distro — to już mówię, że dziękuję postoję. Na szczęście w świecie OS jest mnogość wyboru.
by Ktos
01 cze 2007 at 10:49
Ja używam Linuksa, w tym PLD bardzo dorywczo, ale ostatnio jestem zmuszony używać dwóch dystrybucji opartych o yuma właśnie — CentOS i Fedory. I powiem jedno — jak zobaczyłem yuma, to zacząłem kompilować poldka dla Fedory ;-)
Wygoda obsługi (zwłaszcza tryb interaktywny), szybkość działania… naprawdę bardzo fajny projekt i była by wielka szkoda, gdyby poldka zabrakło. Bo jest to też coś, co bardzo odróżnia PLD od innych dystrybucji (oczywiście poza rozbiciem paczek, ich aktualnością oraz ilością, które też baaardzo cenię), IMO bez poldka to prawie nie ma PLD.
by Patrys
01 cze 2007 at 12:09
Czemu wszyscy traktują ten post jako próbę zastąpienia poldka czymkolwiek? Wyżej pokazałem tylko, że w poldku jest jeszcze dużo do zrobienia i że warto dodać drugi wspierany program do zarządzania pakietami, bo inaczej któregoś dnia możemy się obudzić z ręką w nocniku.
by ljarochowski
01 cze 2007 at 14:38
kiedyś był apt w PLD, co z nim teraz?
by shadzik
01 cze 2007 at 16:28
„Czemu wszyscy traktują ten post jako próbę zastąpienia poldka czymkolwiek?”
Bo tak napisałeś i kropka. Patryś jesteś kolejną osobą, w której wyczuwam tylko i wyłącznie gonitwę za numerkami. Owszem, w ostatnim czasie RPM zaczął się szybko rozwijać, ale zamiast narzekać na to, że poldek to przestarzałe gówno (tak wynika z Twojego opisu) i rezygnować z jednak flagowego produktu PLD na rzecz wiele gorszego, ale maintainowanego Yuma, to należałoby na spokojnie takie błędy poldkowe wylistować, znaleźć ludzi którzy by spokojnie zrozumieli kod poldka i zaczęli go poprawiać i dopiero wtedy gonić (ach jak bardzo) nam uciekającego rpma. Zawsze można zacząć pisać poldka2 który by już poprawnie korzystał z librpm i wnosił dobrze udokumentowaną libpoldek2, która dałoby się wykorzystać do napisania odpowiedniego GUI.
by Patrys
01 cze 2007 at 16:38
shadzik:
Kurs czytania dla najmłodszych:
A teraz reiteruj proszę przez swoją wypowiedź powyżej.
by shadzik
01 cze 2007 at 16:46
I to jest pełna Twoja riposta? Narzekasz, że inni czepiają się tylko błędów a nie wnoszą nic do tematu, a teraz sam tak robisz? Bardzo dorosły jesteś. Ale dobrze, wytłumaczę się z moich oszczerstw. Czytając pełny Twój artykuł można odnieść takie wrażenie jakie opisałem wyżej. Gdyby było inaczej przeczytałbym tylko końcówkę i prawdopodobnie nic nie odpisał.
by Patrys
01 cze 2007 at 16:53
shadzik:
Riposta na co? Yum nie jest „wiele gorszy,” ja nie proponowałem wywalenia poldka, a propozycję znalezienia programistów dla poldka znajdziesz w moim poście powyżej. Do której części miałbym się odnieść?
Jeśli chodzi o poldek2, to z mmazurem i hawkiem rozmawialiśmy o zrobieniu shella opartego na yumie.
by jpc
01 cze 2007 at 19:47
Jedyny problem jest taki, że yum jest wolny jak cholera i wygląda mi to na problem raczej algorytmiczny, a nie przypadkowy.
Problem z alternatywami do poldka jest taki, że poldek bije wszystko na głowę jeśli chodzi o wygodę użytkowania. Brakuje mu API, ale nie wiem czy jakość API jest ważniejsza od jakości programu (akurat w tym wypadku).
by grizz
02 cze 2007 at 09:48
pacman z Archa szybkością poldak spokojnie goni, ale brak mu wygodnego trybu interaktywnego — są wtyczki do basha i zsh z autouzupełnianiem nazw pakietów, ale to jeszcze nei to :/
by ljarochowski
02 cze 2007 at 17:15
a jaki jest problem z użytecznością takiego apta? Przecież na to jest sto tysięcy nakładek gui, cli cokolwiek??
Czemu tego nie używać, skoro to kiedyś było w PLD?
by andrzejk
02 cze 2007 at 23:19
@shadzik
Nie wiem jak Ty. Ja przeczytałem post i dla mnie był on informacją, że poszukiwani są ludzie do rozwijania PLD i dodatkowo szukane jest rozwiązanie, które pozwoli na sprawne zarządzanie pakietami/paczkami.
Wiec.. o czym w ogóle mówisz??
@patrys
Nie używam linuxa — niestety, nie ma na niego PS, który jest mi niezbędny, ale ciekaw jestem jak się ma PLD do rzeczywistości… może skuszę się na testy ;)
by Krymzon
04 cze 2007 at 11:24
W moim, niedeveloperskim, odczuciu tryb interaktywny poldka bije podobne, tekstowe, na głowę. Jednak możliwość użycia GUI jest dla mnie ważniejsza. Teraz używam apta/aptituda (nieinteraktywnie) gdy wiem, co konkretnie chcę zainstalować, oraz Synaptica, gdy muszę czegoś poszukać. Brakuje mi czasami funkcjonalności poldka, jednak generalnie jest mi wygodniej.
Skoro największe problemy w kodzie są z łącznością z rpmem i generalnie samymi operacjami na pakietach, może sensownie byłoby spróbować przenieść UI poldka do innego menadżera?
by hez
05 cze 2007 at 12:11
@Krymzon
Jest przecież „poldex”, który imo wygląda bardzo podobnie do aptitude.
by Krymzon
05 cze 2007 at 13:17
Tak, jest. Ale jak napisałem, nie uruchamiam trybu interaktywnego aptitude. Aptitude używam prawie tylko do sprawdzania opisu pakietów w terminalu (aptitude show) albo instalacji wraz z zalecanymi. Jak potrzebuję czegoś typu poldex, odpalam Synaptica.