Skip navigation.

Romhacker's Guide to the Galaxy

Życie, wszechświat i cała reszta ;)

Posts tagged with "łatki"

Z pawlacza mziaba

, , , ...

Od dłuższego czasu zamierzałem opublikować tu parę łatek, które popełniłem. Ze względów czasowych odleżały się na dysku dużo dłużej niż myślałem. Przejdźmy więc od razu do rzeczy:

kdeplasma-addons-pastebin-wklejorg-and-wstaworg.patch
Jakiś czas temu zrobiłem łatkę do plazmoida Pastebin, która dodawała wsparcie dla Imageshack.us. Później nawet została zaakceptowana i dopracowana przez upstream. Poszedłem więc za ciosem i zrobiłem kolejną łatkę do tego plazmoida, tym razem dodającą wsparcie dla rodzimych wklej.org i wstaw.org. Mam wątpliwości czy upstream przyjmie tę łatkę, bo grono odbiorców tej łatki jest nieco węższe niż poprzedniej, stąd wrzucam ją tutaj. Używam jej od dobrych kilku miesięcy i działa w porządku pod KDE 4.3. Nie próbowałem jeszcze bety KDE 4.4, więc nie wypowiem się na temat kompatybilności z tą wersją.

mc-4.7.0-udar.patch
Już od jakiegoś czasu dar służy mi za główne narzędzie do backupów rzeczy, nad którymi pracuję. Dla wygody używałem więc małego dodatku do Midnight Commandera o nazwie udar, pozwalającego na przeglądanie kopii podobnie jak innych archiwów. Sęk w tym, że wraz z aktualizacją mc do wersji 4.7.0_* skrypt ten zaczął szaleć. Konkretnie chodzi o złe rozpoznawanie daty. Zdaje się, że stary, numeryczny format miesięcy nie jest już akceptowany. Nie jestem pewien. W każdym razie, przeglądając kod mc i używając mojej podstawowej znajomości awk, postanowiłem załatać skrypt. Efektem jest ta łatka, powstała na bazie łatki z ALT Linux. Pewnie można to zrobić jakoś ładniej, ale u mnie działa :smile:

mednafen-latest-save-and-increment.patch
Mimo braku jakiegokolwiek interfejsu, Mednafen jest jednym z moich ulubionych linuksowych emulatorów. Brakowało mi w nim jednak dwóch rzeczy, do których przyzwyczaił mnie ZSNES - automatycznej inkrementacji slotu przy zapisywaniu (przydatne, jeśli zapisywanie stanu mamy przypisane pod przycisk joypada i nie chcemy używać klawiatury) i automatycznego wyboru najnowszego zapisu przy uruchamianiu gry. Ta część kodu Mednafena była na szczęście bardzo czytelna i dość szybko udało mi się dodać obie funkcje. Łatka dodaje dwie nowe opcje konfiguracyjne - autoincrement i latestsave, domyślnie wyłączone. Slot jest inkrementowany przed zapisem, ale tylko, gdy aktualny jest pusty. Myślę, że to najlogiczniejszy sposób. Łatka sprawdzona u siebie, działa jak należy.

snes9x-fix-defaults.patch
Jeśli ktoś z was jeszcze używa oryginalnego linuksowego portu snes9x'a 1.51, pewnie zauważył, że na dzień dobry używa on niewłaściwych ścieżek do joypadów i wypluwa za każdym razem błąd o nieistniejącej opcji w konfiguracji. Tak, mnie to też irytuje. Stąd ten prosty patch. Ale ogólnie (jeśli nie używacie debuggera) raczej polecam przestawić się na snes9x-gtk :smile:

opera-systemstyle.patch
Używacie Opery 10 z Qt4 i chcecie, żeby używała ładnego stylu z KDE4? Ten banalny patch dodaje odpowiedni parametr do skryptu odpalającego Operę i wszystko wygląda pięknie :smile:

To tyle łatek, które chomikowałem na dysku. Mam nadzieję, że komuś się coś z tego przyda. Wesołych Świąt!

KDE 4.2 beta2

, , , ...

Co prawda w tak zwanym międzyczasie wyszedł jeden snapshot, a źródła drugiej bety były dostępne parę dni wcześniej, ale postanowiłem wstrzymać się z tym postem aż do oficjalnej premiery. Post ten będzie raczej moją osobistą listą zaobserwowanych zmian na plus. Ostatnio dość często bywam na bugzilli KDE i zgłaszam niedoróbki, które rzucają mi się w oczy. I muszę przyznać, że znakomita większość zgłoszonych przeze mnie usterek została usunięta w KDE 4.2 beta2 lub w trunku, a to, co pozostało to drobiazgi, na które mogę przymknąć oko.

Moje spostrzeżenia:
+ Usunięto crash Plasmy przy ponownym wejściu do konfiguracji plazmoida.
+ W nowej becie ani raz nie pojawiło mi się tajemnicze puste miejsce na panelu.
+ Nowe powiadomienia w systrayu można wyłączyć, choć na razie wymaga to edycji plasma-appletsrc.
+ Problem z dziwnym zachowaniem efektów z pełnoekranowymi oknami można obejść wyłączając "unredirect fullscreen windows".
+ Pasek zadań znowu wyładniał :smile:
- Nadal nie działa mi wyświetlanie nazwy pulpitu przy przełączaniu (w trybie composite, w normalnym działają).

Jest też parę innych niedoróbek, które naprawiono za późno na beta2, ale są naprawione w svn. Oto mój zestaw łatek, w większość wygenerowanych z svn:
* ark-libarchive-emit.patch - poprawka na pustą listę plików przy archiwach tar.gz/tar.gz2 w Arku, moja własna łatka
* dolphin-tabs.patch - sprawia, że nowe karty w Dolphinie respektują tryb podzielonego widoku
* kwin-screen-edges.patch - poprawka na powracające ustawienia rogów ekranu
* libkonq-copytomenu.patch - poprawka na duplikaty ostatnio wybranych katalogów w Kopiuj/Przenieś do
* okular-cbz-fix.patch - poprawka na crash przy otwieraniu archiwów CBZ
* okular-cbz-multidir.patch - poprawka na wielokatalogowe archiwa CBZ
* okular-menubar.patch - poprawka na znikające menu po wyjściu z trybu pełnoekranowego
* plasma-workspace-fix-extender.patch - poprawka na błędne ukrywanie

W moim katalogu files jest jeszcze parę innych łatek, w tym moja próba poprawienia popupów z nazwą pulpitu, poprawka na jeden niegroźny warning i obejście na niekompilujące się pykde4.

Dodam jeszcze, że pod nvidia-drivers w wersji 180.16 nie ma już wycieków pamięci, dzięki czemu daje się już całkiem normalnie pracować. Jeśli używacie 180.11 albo 180.06, upgrade jest wysoce zalecany.

KDE 4.2 beta2 działa u mnie całkiem dobrze. Nie mogę narzekać. Już nie potrafiłbym wrócić do używania KDE 3.5. Od samych screenshotów swojego starego pulpitu robi mi się strasznie dziwnie :smile: Po raz pierwszy od dawna mam uczucie, że mój pulpit jest ładny i funkcjonalny jednocześnie. KDE 4.2 to zaiste jedna dziesiąta odpowiedzi na życie, wszechświat i całą resztę :smile:

KDE 4.1 beta1

, , ,

Ponieważ nie mogę się doczekać finalnego wydania KDE 4.1, zainstalowałem sobie ostatnio jego pierwszą betę z repozytorium kdesvn-portage i muszę przyznać, że dość szybko nabiera to kształtu. Wiele rzeczy zmieniło się na plus, ale parę irytujących bugów sprawia, że z migracją wstrzymam się co najmniej do KDE 4.1 final.

Moje odczucia:
+ W końcu w miarę kompletna konfiguracja panela
+ Chodzi wyraźniej szybciej niż 4.0
+ Nareszcie można wyłączyć powiadomienia dźwiękowe, uff
+ Dzięki folderview można mieć ikony pulpitu, które zachowują się bardziej "tradycyjnie"
+ Odpowiednio skonfigurowane folderview naprawdę ułatwia życie, a dzięki tej łatce nie narzuca się wyglądem
+ Dolphin jest niesamowicie wygodny
+ Podoba mi się zunifikowane API do zakładek
+ Gwenview dostało mocnego kopa i jest teraz naprawdę szybkie
- Na nvidia-drivers konsole potrafi dziwnie przymulić przy włączonej przezroczystości
- Brak "udawanej" przezroczystości, a jednak czasem by się przydała
- Własne skróty klawiszowe coś nie działają
- Ark nie chce działać z archiwami tar.gz/tar.bz2
- Okazjonalne błędy przezroczystości w zasobniku systemowym
- Device notifier nie pokazuje udziałów NFS
- Klasyczne menu trochę odbiega funkcjonalnością od poprzednika
- Nie można zamienić menu pulpitu na kmenu jak w KDE3 (fluxbox-style)
- Brak kio_rar

Do mety już naprawdę niedaleko. Przyszłość zapowiada się ciekawie. Pozostaje tylko czekać :smile:

GCC 4.3 - moje testy

, , ,

Ostatnio z ciekawości postanowiłem przetestować GCC 4.3.0 (wersję z oficjalnego drzewa portage) w oddzielnym chroocie zawierającym kopię mojego roboczego systemu. Chciałem po prostu sprawdzić na ile problemów natknę się podczas rekompilacji systemu :smile: Wynik? Nie jest aż tak źle. Większość problemów udało się rozwiązać przez proste odmaskowanie nowszej wersji. W prawie wszystkich wypadkach błąd był powodowany przez brakujące deklaracje nagłówków <cstring>, <cstdlib> czy też <memory>.

Oto szczegółowa lista pakietów, które się "wyłożyły":

Portage:
dev-libs/libsigc++-2.0.18
dev-libs/libebml-0.7.7-r1
media-libs/musicbrainz-2.1.4
sci-libs/cln-1.1.13
media-libs/flac-1.2.1-r1
app-backup/dar-2.3.3
dev-libs/boost-1.34.1-r2
media-libs/netpbm-10.40.0
media-libs/tunepimp-0.5.3
app-cdr/cdrdao-1.2.2
games-emulation/dosbox-0.72
sci-libs/libqalculate-0.9.6
dev-cpp/gtkmm-2.12.1
media-libs/libgpod-0.5.2
app-dicts/stardict-3.0.1
media-video/mjpegtools-1.8.0-r1
media-sound/lastfmplayer-1.4.2.58240
sci-calculators/qalculate-kde-0.9.6

Roslin Uberlay:
games-emulation/ps2emu-zerogs (dodałem łatkę do repo)
games-emulation/ps2emu-zerospu2 (j/w)
games-emulation/pcsx2 (j/w)
games-emulation/zsnes (bumpnięte do nowszej wersji z łatką)
dev-util/exmap (dodałem łatkę)

Dodatkowe łatki:
dev-cpp/glibmm-2.14.2 (2.16 ma stosowną łatkę, ale wymaga nowego gliba, łatka)
app-emulation/virtualbox-1.5.6 (dwie łatki od Ubuntu: łatka1, łatka2)

Natomiast przy kompilacji kernela (gentoo-sources-2.6.25-r4) dostałem ostrzeżenie o dziesięciu "section mismatches". Nie ma się jednak czym przejmować, bo stosowne łatki zostały już włączone do kernela 2.6.26, który niebawem powinien ujrzeć światło dziennie.

Jeśli chodzi o prędkość, nie zauważyłem żadnych większych różnic w prędkości kompilacji i działania programów. SDLmame i mplayer w trybie benchmark pokazują na tyle zbliżone wyniki, że nie będę ich przytaczał. Może inne aplikacje dostały większego kopa. Możliwe też, że poza chrootem wyniki byłyby lepsze. W każdym razie, sam kompilator "robił" się dwa razy dłużej niż 4.1, a binarki przezeń tworzone są minimalnie większe (różnica rzędu kilku procent).

Tu właściwie powinienem napisać jakieś podsumowanie, ale sam nie wiem co myśleć. Kompilator w miarę bezproblemowy, a większość łatek została już włączona do portage. Z drugiej strony, różnic w wydajności nie dostrzegłem (co nie oznacza, że ich nie ma). Wybór czy przejść teraz na nową wersję czy też poczekać aż zostanie ona odmaskowana pozostawiam wam.

EDIT: GCC 4.3.1 trafiło do ~arch. Powtórzyłem więc test. Wyniki bez zmian.

Patch do Conky

, , ,

Ostatnio zaktualizowałem Conky do wersji 1.5.2_pre01107 i ku mojemu przerażeniu znacznie wzrosło jego zużycie pamięci. Co prawda downgrade do 1.5.1 pozwolił pozbyć się tych objawów, ale z ciekawości postanowiłem sprawdzić kto jest winowajcą. Cóż, okazało się, że ktoś zapomniał zwolnić jednej zmiennej w funkcji interface_up. Wyciek pojawia się tylko, jeśli w .conkyrc używamy komendy ${if_up nazwa}. Za każdym razem, kiedy rzeczony interfejs jest podniesiony, program gubi kilkanaście kB pamięci... przy każdym odświeżeniu. Rozwiązanie jest trywialne. Pomogło dopisanie jednej linii kodu. Po stosowny patch swojego autorstwa odsyłam tutaj.

UPDATE: Łatka została przyjęta przez upstream.

KDE, HAL i eject

, , , ...

Po ostatniej aktualizacji udeva, którą zrobiłem przy okazji migracji na OpenRC, zauważyłem w KDE jeden niepokojący objaw. Po kliknięciu prawym przyciskiem na ikonie zamontowanego nośnika i wybraniu "Usuń bezpiecznie" zaczął pojawiać się komunikat, że owszem nośnik odmontowano, ale nie można go wysunąć. Zdziwienie było o tyle większe, że raz już zwalczyłem ten błąd (wtedy pomogło dodanie użytkownika do grupy disk). By oszczędzić drapania się po głowie osobom, które znalazły się w tym samym położeniu, zdradzę jak udało mi się tę wredną pluskwę ubić. Zasadniczo istnieją cztery sposoby, by to zrobić (osobiście polecam ostatni):

1) Patch na kdeeject. Nakładamy łatkę i KDE zaczyna używać eventów HAL do wysuwania zamiast komendy eject. Aktualnie używam, działa cudownie.

2) Zmiana parametru w media_safelyremove.desktop. Po tej zmianie KDE zamiast próbować wysunąć nośnik tylko go odmontuje.

3) Innym, ale niezbyt bezpiecznym rozwiązaniem jest ustawienie suid root dla /usr/bin/eject:
chmod u+s /usr/bin/eject


4) Chyba najbardziej eleganckie rozwiązanie. Tworzymy plik /etc/udev/rules.d/51-local.rules i wklejamy tam taką regułkę:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]*", ATTRS{removable}=="1", MODE="0660", GROUP="plugdev"


A skoro już jesteśmy przy temacie KDE, HAL i ejecta, pozwolę sobie wspomnieć o kolejnym bugu, który mnie irytuje, tym razem od nieco dłuższego czasu. Przycisk eject na napędzie dvd wysuwa zamontowaną płytę dopiero po drugim naciśnięciu. Na domiar złego powoduje to restart kded i tracę skróty klawiszowe, co zmusza mnie do uruchomienia khotkeys. Niezbyt fajnie, prawda? Co ciekawe winne okazały się... wpisy od udziałów NFS w fstab. Wygląda na to, że backend HAL w KDE nie przepada za nazwami z dwukropkami. Sytuację rzekomo poprawia ten patch. Rzekomo, bo u mnie nie zauważyłem zmian. Może do działania wymaga jeszcze jakiejś łatki. W każdym razie, wróble ćwierkają, że w KDE 3.5.9 ten bug został na dobre ubity. Czekam więc na odmaskowanie tej wersji. Tymczasem po prostu zakomentowałem odpowiednie wpisy w fstabie, bo z rzeczonych udziałów korzystam raczej sporadycznie. Nie jest to jednak zbyt ładne rozwiązanie.

EDIT: Dodałem dwa inne sposoby, w tym regułkę udeva.

Przypadkowe wynurzenia czyli uwag kilka

, , , ...

Ostatnio zebrało mi się parę ciekawych obserwacji, więc postanowiłem je przelać na "papier", zanim wylecą mi z głowy. Z góry przepraszam za mocno eklektyczny post. W każdym razie, zaczynamy!

XFCE4 i przycisk Eject
Ostatnio na jednym z komputerów chciałem wyjąć płytę z napędu. Naciskam więc bez zastanowienia Eject na napędzie, myśląc, że hal zajmie się resztą. Przy tej okazji odkryłem buga w XFCE4: zamiast płytą zostałem poczęstowany śliczny errorem. Na szczęście nie jestem sam. Pomógł ten patch dla exo.

Sound-juicer i zgrywanie do mp3
Żeby za pomocą Sound-juicera zgrywać utwory do mp3, należy posłużyć się nieco niekonwencjonalnymi środkami. Najpierw merdżujemy gst-plugins-lame czyli wtyczkę kompresora mp3 dla Gstreamera. Po tym zabiegu nie pojawia się jednak żadna nowa opcja w ustawieniach programu. Na szczęście z pomocą przychodzi gconf-editor, którym wystarczy zmienić wartość klucza /apps/sound-juicer/audio_profile na "mp3". No, niby już działa, ale pozostaje jeden problem - wyjściowe empetrójki nie są odpowiednio otagowane. Problem ten rozwiązujemy instalując gst-plugins-taglib. Case closed :yes:

Gthumb i data w ścieżce docelowej
Gthumb nie jest złym programem, jeśli chcemy pod GNOME albo XFCE szybko zaimportować zdjęcia. Wprawdzie wygodniej byłoby przestawić aparat w tryb USB Storage i skopiować pliki (przynajmniej mi), ale niektóre nowsze aparaty mają już tylko tryb PTP. W Gthumbie irytowała mnie w sumie tylko jedna rzecz (przyznaję, nie korzystałem z niego długo) - jeśli nie podamy nazwy albumu przy importowaniu, program wstawia w to miejsce datę i do takiego podkatalogu lądują zdjęcia. Nie przeczę, czasem może się to okazać przydatne. Mnie akurat denerwowało. Lubię mieć zdjęcia w jednym miejscu, w katalogu, który podałem. Skleciłem więc na szybko tę łatkę. Chyba nawet działa :smile:

Pimp my Pidgin

, ,

Od ładnych paru miesięcy używam Pidgina jako głównego komunikatora i właściwie od zawsze brakowało mi opcji "Tylko dla znajomych" w module GG. A że ostatnio szukam ciekawych przygód, postanowiłem sam rozwiązać ten problem.

Nie było nawet tak trudno. Trochę grepowania źródeł Pidgina i Kadu, trochę czytania o API, mała zabawa GVimem i powstał ten oto patch. Po nałożeniu go na źródła najnowszej wersji Pidgina (może zadziała też pod starszymi, nie próbowałem) w Edycja konta\Zaawansowane pojawi się upragniona opcja.

Trochę technicznego bełkotu: zasadniczo, żeby włączyć tryb "Tylko dla znajomych" pod libgadu wystarczy ORnąć aktualny status przez stałą GG_STATUS_FRIENDS_MASK. Więcej roboty było z dodaniem konfiguracji :smile: To jednak było dość łatwe. Wystarczyły dwie linie kodu, żeby dodać zmienną. Pidgin sam sobie ładnie zapisuje mojego boola do configa i stamtąd go odczytuje. Nice. Jak na razie jedyną dostrzeżoną niedoróbką jest to, że zmiana ustawienia jest uwzględniania dopiero po ponownym uruchomieniu Pidgina. I tu chyba kończą się moje zdolności improwizacji. No cóż, i tak wynik niezły jak na kogoś, kto wczoraj nie wiedział nic o wnętrznościach Pidgina P:

Test uploadu plików czyli patche do KDE 4.0

, ,

Na przestrzeni kilku ostatnich tygodni testowałem na ile zdatne do użytku jest najnowsze wcielenie KDE. Cóż, na razie najbardziej mi brak ikon urządzeń na pulpicie (a raczej w ogóle ikon :wink:) i możliwości ustawienia menu programów pod prawoklikiem, fluxbox-style. Ogólnie jest dużo lepiej niż myślałem, ale jeszcze daleko do ideału. Mam szczerą nadzieję, że KDE 4.1 będzie już zawierało wszystkie funkcje, do których przywykłem i zdąży okrzepnąć na tyle, że będę mógł porzucić poczciwe KDE 3.5. Z nadzieją spoglądam w przyszłość i czekam na letnią premierę KDE 4.1.

Część brakujących ficzerów (m.in. konfiguracja panelu, wielowierszowy pasek zadań) można odzyskać już dzisiaj. Tak się szczęśliwie składa, że niektóre dystrybucje backportują co ciekawsze ficzery z KDE trunk (wersji roboczej, która w przeciągu paru miesięcy zyska miano KDE 4.1). Wystarczyłoby więc tylko dotrzeć do patchy, które są w tych dystrybucjach nakładane na źródła KDE 4.0, prawda? Tak też zrobiłem. Z plików src.rpm z OpenSUSE i Fedory wydobyłem interesujące mnie łatki i zmodyfikowałem je, żeby się ładnie nakładały pod Gentoo. Efekt możecie zobaczyć tutaj. Może się to komuś przyda. Nie było sensu tego chomikować na dysku, skoro u mnie to to działa. Kilka słów instrukcji: Patche należy wrzucić do autopatch overlaya (portage-bashrc-ng się kłania) i przemerdżować odpowiednie pakiety (libplasma, plasma, krunner). Łatki są przystosowane do split ebuildów do KDE 4.0.1 z oficjalnego drzewa. Użytkownicy monolitów będą musieli je sobie skleić w jeden wielki patch i nałożyć na pakiet kdebase.
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31