Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Mam problem z budową paczki iproute2, sciągnąłem sobie źródełka, spatchowalem, wpisuje
debian/rules build
i ok, wszystko w porządku, zero błędów, później
debian/rules binary
i też pozornie ok, tworzy nawet paczkę deb tyle że z pustymi w środku katalogami bez plików...
Spotkał się ktoś z czymś takim?
Walczę już z tym trzeci dzień, googluje i googluje ale nic na temat nie mogę znaleźć :/
Ostatnio edytowany przez artfrik (2009-02-27 10:57:27)
Offline
1. należy użyć fakeroot
2. czemu nie skorzystasz z dpkg-buildpackage -rfakeroot automatyzującego operację
3. pokaż debian/rules i wyniki poleceń
Ostatnio edytowany przez azhag (2009-02-27 11:05:38)
Offline
wszystkie operacje wykonuje z konta roota, ze zwykłego też próbowałem, z dpkg-bulidpackage --fakeroot też korzystałem, znalazłem opis robienia paczki małymi krokami, więc spróbowałem tak zrobić, żeby wyczaić gdzie jest błąd...
serwer:/usr/src/debian/new/iproute2-2.6.26.arti# debian/rules dh_testdir # Add here commands to configure the package. cp -f /usr/share/misc/config.sub config.sub cp -f /usr/share/misc/config.guess config.guess ./configure --build i486-linux-gnu --prefix=/usr --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info CFLAGS="" LDFLAGS="-Wl,-z,defs" TC schedulers ATM no
Offline
Widze, że nie tylko mnie dotknął ten problem. Ani jedna, ani druga metoda niestety nie przynosiła rezultatu pozytywnego. iproute2 przy procesie instalacji korzysta z "install" i stąd najprawdopodobniej taki efekt budowy paczki. Aby paczka zbudowała się z zawartością zmień w bodaj Makefile DSTDIR czy coś koło tego na DSTDIR=/sciezka/gdzie/masz/zrodla/iproute2/debian/iproute2. Pisze z pamięci, więc nie mam pewności co do zmiennej DSTDIR czy tak na pewno brzmi. Mam nadzieję, że odszukasz i po wpisaniu pełnej ścieżki odpiszesz i ew. wyprostujesz :)
Powodzenia!
Offline
No i niestety, nie udało się, czy przyczyną może być to iż zainstalowałem spatchowane iproute metodą tradycyjną?
tzn. przez make && make install??
/usr/src/debian/new/iproute2-2.6.26.arti/debian# dpkg-buildpackage install: `etc/iproute2/rt_realms' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/rt_realms' to ten sam plik install: `etc/iproute2/ematch_map' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/ematch_map' to ten sam plik install: `etc/iproute2/rt_protos' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/rt_protos' to ten sam plik install: `etc/iproute2/rt_tables' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/rt_tables' to ten sam plik install: `etc/iproute2/rt_scopes' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/rt_scopes' to ten sam plik install: `etc/iproute2/rt_dsfield' i `/usr/src/debian/new/iproute2-2.6.26.arti//etc/iproute2/rt_dsfield' to ten sam plik make[1]: *** [install] Błąd 1 make[1]: Opuszczenie katalogu `/usr/src/debian/new/iproute2-2.6.26.arti' make: *** [install] Błąd 2 dpkg-buildpackage: niepowodzenie: debian/rules binary zwrócił status błędu 2
Offline
Pokaż wreszcie ten rules!
Offline
Ależ proszę bardzo, nie złość się, po prostu Cię nie zrozumiałem :/
debian# cat ./rules #!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) else CROSS= --build $(DEB_BUILD_GNU_TYPE) endif config.status: configure dh_testdir # Add here commands to configure the package. ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif ./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" build: build-stamp build-stamp: config.status dh_testdir # Add here commands to compile the package. $(MAKE) #docbook-to-man debian/iproute2.sgml > iproute2.1 touch $@ clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. [ ! -f Makefile ] || $(MAKE) distclean rm -f config.sub config.guess dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/iproute2. $(MAKE) prefix=$(CURDIR)/debian/iproute2/usr install # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples # dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_python # dh_installinit # dh_installcron # dh_installinfo dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install
EDIT: dh_install już próbowałem odkomentować i wtedy budować paczkę, jeśli o to chodzi...
Ostatnio edytowany przez artfrik (2009-02-27 18:51:55)
Offline
rules wygląda w porządku, pliki kopiuje do katalogu tymczasowego poprzez make install, powinny być w pakiecie
artfrik napisał(-a):
Kod:
/usr/src/debian/new/iproute2-2.6.26.arti/debian# dpkg-buildpackage
to polecenie należy wykonać w katalogu głównym źródeł, /usr/src/debian/new/iproute2-2.6.26.arti/ w tym przypadku
usuń katalog /usr/src/debian/new/iproute2-2.6.26.arti/debian/debian/, który chyba ci się utworzył
Offline
Tego katalogu akurat nie mam bo za każdym razem rozpakowuje oryginal, patchuje i wtedy cos zmieniam :)
Jest jeszcze jedna ciekawa rzecz, błędy pod koniec dpkg-buildpackage:
dpkg-buildpackage coś tam, coś tam i na końcu: dpkg-deb: budowanie pakietu "iproute2" w "../iproute2_2.6.26.arti-1_i386.deb". signfile iproute2_2.6.26.arti-1.dsc gpg: pominięty ,,root <artfrik@op.pl>'': brak klucza prywatnego gpg: [stdin]: clearsign failed: brak klucza prywatnego dpkg-genchanges >../iproute2_2.6.26.arti-1_i386.changes dpkg-genchanges: dołączanie pełnych kodów źródłowych do wydania dpkg-buildpackage: pełne wydanie (oryginalne źródła dołączone) dpkg-buildpackage: ostrzeżenie: Błąd podpisywania plików .dsc i .changes
Ostatnio edytowany przez artfrik (2009-02-27 19:15:23)
Offline
Chodzi o to, że pakiet nie zostanie podpisany kluczem GPG. Jeśli to nie ma być jakiś oficjalny pakiet, a jedynie dla samego siebie — olej.
Ostatnio edytowany przez azhag (2009-02-27 19:16:10)
Offline
Praktycznie tylko dla mnie, ewentualnie dla jakiegoś grona, tak jak to zrobił nasz kolega z forum siarka2107 i udostępnił na http://dimax.rootnode.net/2.6.26.8-arais2/, tylko, że to są pakiety do etcha i wszystko byłoby pięknie, gdyby nie zmiana biblioteki libdb4.3 na libdb4.5 i problem z iproute2 :/
Szkoda, że nie jestem w domu, zrobiłoby się tunelowanie i zajrzałbyś do mnie przez vnc, a później napisałoby się dla potomnych rozwiązanie :)
EDIT:
Napisałem do kolegi siarki link do wątku na pw, mam nadzieję, że się pojawi i pomoże...
Ostatnio edytowany przez artfrik (2009-02-27 19:37:21)
Offline
artfrik czy probowales wg. mojej wskazowki? Przed momentem sciagnalem czyste zrobla iproute2-2.6.26, wykonałem
./configure
nastepnie zmienilem w Makefile: z
DESTDIR=/usr/
na
DESTDIR=/pelna_sciezka_zrodel_iproute2/debian/iproute2
Po tym zabiegu wydalem
dpkg-buildpackage -rfakeroot
Po zakonczonym bez bledow procesie kompilacji w katalogu powyzej "_pelna_sciezka_zrodel_iproute2_" ukazala sie paczka debianowa
-rw-r--r-- 1 root root 458242 2009-03-01 12:30 iproute2_2.6.26-1_i386.deb
nie pusta.
Podejrzewam, ze mozna chyba wywolac budowe paczki w jakis sposob z parametrem ale, ze kompilacja wymagana jest w sumie 1raz to zmiana na sztywno w Makefile w niczym mi nie przeszkadza.
Raz jeszcze powodzenia w zbudowaniu paczki!
Offline
echh ja tylko moge podsunąć takie coś jeśli koledze da do myślenia nie na temat ale http://www.programuj.com/artykuly/linux/makefile.php
Offline
Kolego mariaczi, zapomniałeś chyba o make lub dh_make, którą metodę wykorzystałeś??
EDIT:
Jednak musi być dh_make, bo inaczej nie będziemy mieli katalogu ../iproute2/debian/ , próbowałem mariaczi już wcześniej wg Twojej metody, niestety dostaje błąd dotyczący install, tak jak kilka postów wyżej, nieistotne czy buduję paczkę spatchowaną czy nie, dało radę jedynie zbudowanie paczki poprzez checkinstall, ale to jest jedynie półśrodek, chciałbym zbudować paczkę tak jak powinno się budować...
Ostatnio edytowany przez artfrik (2009-03-03 15:54:01)
Offline
Strony: 1