Dziwny problem z make-kpkg

14/08/2009 – 00:39

Dzisiaj próbując skompilować kernel przez make-kpkg, spotkałem się z bardzo dziwnym problemem. Podczas wydawania polecenia do kompilacji:

make-kpkg --revision kerlen~304 kernel_image kernel_headers

skrypt zwracał następujący błąd:

exec make kpkg_version=12.017 -f /usr/share/kernel-package/ruleset/minimal.mk debian DEBIAN_REVISION=kerlen~304
/usr/share/kernel-package/ruleset/misc/version_vars.mk:159: *** Error. The Kernel Release version 2.6.30.4KaKernel VERSION=[2], PATCHLEVEL=[6], SUBLEVEL=[30], EXTRAVERSION=[.4], iatv=[], LOCALVERSION=[KaKernel], UTS_RELEASE_VERSION=[], KERNELRELEASE=[]. is not all lowercase. Since the version ends up in the package name of the kernel image package, this is a Debian policy violation, and the packaging system shall refuse to package the image. . Stop.
Failed to create a ./debian directory: Nie ma takiego pliku ani katalogu at /usr/bin/make-kpkg line 970.

a konkretniej rzecz ujmując, chodziło o ostatnią linijkę powyższego loga. Trochę pogogliłem i zauważyłem, że problem ten jest spotykany, ale… rozwiązania brak. Został nawet zgłoszony błąd dla paczki kernel-package w Debianie, opisujący dokładnie to co doświadczyłem. Opiekun paczki uznał ten błąd za dziwny i… tak zostało…

Kombinowałem z samym poleceniem make-kpkg i to dość sporo, jednakże nie przynosiło to zadowalających rezultatów. W końcu coś mnie podkusiło aby zajrzeć do pliku konfiguracyjnego kernela (.config). No i jak się po chwili okazało, właśnie tam był pies pogrzebany. A konkretnie chodziło o linijkę:

CONFIG_LOCALVERSION=”KaKernel”

Oczywiście string pomiędzy „” to była moja własna nazwa kernela, sprzed kilku miesięcy. Sęk w tym, że zmieniła się polityka Debiana względem nazywania kerneli, w których to nazwach, nie mogą występować wielkie litery. Tak więc, wystarczyło po prostu zamienić wielkie litery na małe, w powyższej linijce.

Napisz komentarz