Pobrałem źródło do pakietu, używając:
$ apt-get source gkrellweather
Upewniłem się również, że mam zależności kompilacji:
$ sudo apt-get build-dep gkrellweather
I przetestowałem, że może dobrze zbudować:
$ cd gkrellweather-2.0.8
$ debuild
Zbudował .deb
pakiet w powyższym folderze, który mogłem zainstalować za pomocą:
$ sudo dpkg -i ../gkrellweather*.deb
OK, więc wszystko jest na swoim miejscu. Zacznijmy!
Otworzyłem kod źródłowy w Vimie i wprowadziłem pewne zmiany, których chciałem. Następnie próbowałem odbudować:
$ debuild
Ale dostałem następujący błąd:
...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files:
GrabWeather
Makefile
gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Dlaczego?
-i
przechodzidebuild
do,dpkg-buildpackage
a następnie dodpkg-source
, którego strona podręcznika mówi, że można podać wyrażenie regularne. Myślę, że bez testowania-i'(^|/)\.(git|idea|pybuild)($|/)'
może Ci pomóc.To mnie zaskoczyło więcej niż raz. Czasami myślałem, że przyczyną błędów debugowania po zmianie źródła było to, że po zmianie źródła podpis sygnatariuszy pakietu (wylogowanie) nie jest już ważny dla tego źródła.
Ale tak naprawdę w tym przypadku odpowiedź była prosta:
Problem polega na tym, że Vim stworzył swafile i
debuild
nie podobało mu się to!Rozwiązanie było proste: usuń plik wymiany, a następnie budowanie może działać:
źródło