Przywracamy działanie drukarek w CUPS 2.3.0

Co najmniej wraz z nastaniem CUPS 2.3.0 (choć problemy zgłaszane były już w późnych wersjach serii 2.2.x) część (i to spora) drukarek odmówiła współpracy. Nie było też możliwości ich zainstalowania. Problem związany był ze zmianą dokonaną w CUPS polegającą na tym, że przestał on "przyjmować" te PPD (czyli ogólnie sterowniki drukarek), które miały wpisane "Custom" w różnych deklaracjach. Obecnie CUPS przyjmował tam "Other", a "Custom" powodowało, że drukarki stawały się tańszą lub droższą, niemniej jednak wyłącznie ozdobą naszych biur i domów.
Sama zmiana dokonana w CUPS nie była zachcianką jego deweloperów, a powodowana była chęcią uniknięcia sygnalizowanego innego błędu powodującego wykrzaczanie się cupsd. I wszystko dobrze, ale spowodowała unieruchomienie znacznej ilości urządzeń.
Problem nie dotyczy wyłącznie Archa i jego pochodnych, ale dotknął niemal wszystkich w miarę świeżych dystrybucji.
Oczywiście owe PPD winny zostać przerobione przez ich twórców, jednakże znakomita ich część w przypadku "wspierania" linuksa ogranicza się do wypuszczenia sterownika i zapomnienia o nim.
Zasadniczo problemu by nie było, albowiem w tego typu sytuacjach często z pomocą przychodzi cofnięcie CUPS do poprzedniej wersji działającej. Tu jednak pojawił się kolejny problem, a mianowicie w takiej sytuacji koniecznym jest cofnięcie trzech paczek: cups, libcups oraz cups-filters - zasadniczo wszystkie muszą pochodzić z tego samego czasu (tj. być zbudowane w tym samym okresie). Tak przeprowadzona operacja kończyła się najczęściej jednak informacją "Filter failed", co sygnalizowało błąd z cups-filters. I słusznie, albowiem ta paczka wymaga przebudowy wraz z wprowadzeniem do systemu nowej wersji poppler, a ten się pojawił. I znów - w normalnych warunkach wystarczającym remedium powinno być przebudowanie cups-filters na nowym poppler. Niestety to się nie udawało. Cofnięcie poppler do wersji z okresu, w którym wyszły cups-filters nawet nie należało rozważać, albowiem pociągałoby to za sobą konieczność przebudowy znacznej ilości paczek (lub również ich cofnięcia), które muszą być budowane na określonej wersji poppler.
Zatem totalny pat.
Problem jednakże przeleciał różne fora, listy mailingowe. Proponowane rozwiązanie sprowadzało się do edycji pliku PPD i w zależności od porad bądź to usunięciu wszystkich deklaracji ze słowem "Custom" bądź jego zastąpienia słowem "Other'. W części przypadków rozwiązanie takie działało, ale w części drukarka nadal niczego nie była w stanie wydrukować.
Ostatecznie pojawiła się łatka w CUPS, która wejdzie do wersji 2.3.1. Wraz z zespołem POLAUR i kolegów z naszego IRC udało się nam stworzyć PKGBUILD, który buduje cups oraz libcups z nałożoną łatką. CUPS działa prawidłowo, pozwala na instalację drukarek z "wadliwym" PPD oraz drukowanie na nich dokumentów.
PKGBUILD zmienionego cups, jest dostępny w POLAUR pod adresem:
.
Można go zainstalować ściągając, czy kopiując w dowolny sposób zawartość wszystkich plików, które tam są, a następnie budując paczkę z pomocą makepkg.
Prościej można to wykonać z zastosowaniem naszego pak:
pak -P repo-refreshed/cups
Jak zwykle w przypadku PKGBUILDów umieszczanych w repo-refreshed, paczka nosi taki numer wersji, który spowoduje jej aktualizację, w przypadku pojawienia się nowej wersji w repozytorium Archa. W takim przypadku - w zależności od wprowadzonych zmian - albo nie będzie zachodzić już konieczność dalszej opieki nad naszą wersją, albo zostanie udostępniona nowa wersja PKBGUILD. Proszę śledzić wątek na naszym forum: .

W rozwiązaniu problemu chciałbym podziękować naszym kolegom, głównie sir_lucjan oraz arch-jest-super.

Komentarze

  1. @pavbaranov czy po dziś dzień, Twój wpis nosi ślady przydatności? ;) Pytam bo właśnie często miewam kłopoty z używaniem/instalacją drukarki i trzeba różne fikołki czynić, aby się udało.

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Brak możliwości aktualizacji lub instalacji pakietów - zablokowana baza

Radzimy sobie z: GPG: odbiór z serwera kluczy nie powiódł się: brak dirmngr