staging.inyokaproject.org

apt-get -b --no-download source <paketname> und eigene cflags

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

brikkler

Anmeldungsdatum:
22. Juli 2008

Beiträge: 238

salve,

wenn mir ein eigenes paket mit apt-get -b --no-download source <paketname> + eigenen compile flags bauen will, funktioniert das nicht.

ändere ich die flags in den debian/rules, wird der entpackte ordner übersprungen und das tar.gz archiv nochmals entpackt, mit den alten flags natürlich.

ändere ich auch die flägs innerhalb des archives, wird es trotz --no-download noch einmal heruntergeladen.

wie kann ich dieses verhalten unterbinden?

lg der ahnungslose

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi brikkler,

du schriebst:

wenn mir ein eigenes paket mit apt-get -b --no-download source <paketname> + eigenen compile flags bauen will, funktioniert das nicht.

Hier muss ich leider passen, ob man den Kompiliervorgang bei apt-get in irgendeiner Weise anpassen kann.

ändere ich die flags in den debian/rules, wird der entpackte ordner übersprungen und das tar.gz archiv nochmals entpackt, mit den alten flags natürlich.

Wie baust du denn? Wieder mit dem selben Kommando?

Generell baut man Pakete nicht mit apt-get. Ein typischer Dreisatz ist z.B.:

apt-get source PAKET   # Quelltext für aktuell genutzte Version (sofern verfügbar) herunterladen
cd PAKETQUELLTEXT/     # in das Quelltextverzeichnis wechseln
# Ánderungen vornehmen
debuild -us -uc        # Paket ohne Signierung erstellen 

Gruss Lasall

brikkler

(Themenstarter)

Anmeldungsdatum:
22. Juli 2008

Beiträge: 238

Lasall schrieb:

Generell baut man Pakete nicht mit apt-get. Ein typischer Dreisatz ist z.B.:

apt-get source PAKET   # Quelltext für aktuell genutzte Version (sofern verfügbar) herunterladen
cd PAKETQUELLTEXT/     # in das Quelltextverzeichnis wechseln
# Ánderungen vornehmen
debuild -us -uc        # Paket ohne Signierung erstellen 

Gruss Lasall

theoretisch sollte apt-get das können...theoretisch.

ich habs jetzt mal mit debuild -us -uc versucht...ich frag mich aber, ob meine flags genommen wurden...meine flags waren -O3 -fomit-frame-pointer -march=native -pipe ich bin etwas verwirrt, auf der konsole sieht es nämlich so aus:

1
2
3
4
5
6
7
debuild -us -uc 
 dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: exportieren von CFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2
dpkg-buildpackage: exportieren von CPPFLAGS aus dpkg-buildflags (Quelle: vendor): 
dpkg-buildpackage: exportieren von CXXFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2
dpkg-buildpackage: exportieren von FFLAGS aus dpkg-buildflags (Quelle: vendor): -g -O2
dpkg-buildpackage: exportieren von LDFLAGS aus dpkg-buildflags (Quelle: vendor): 

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi brikkler,

wie hast du denn die Flags gesetzt? Falls das in der Datei debian/rules geschehen ist, zeige bitte deren kompletten Inhalt.

Gruss Lasall

brikkler

(Themenstarter)

Anmeldungsdatum:
22. Juli 2008

Beiträge: 238

Lasall schrieb:

Hi brikkler,

wie hast du denn die Flags gesetzt? Falls das in der Datei debian/rules geschehen ist, zeige bitte deren kompletten Inhalt.

Gruss Lasall

hier bitte:

 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/make -f

#export DH_VERBOSE=
include /usr/share/quilt/quilt.make

CFLAGS=-Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O3 -fomit-frame-pointer -march=native -piper
else
        CFLAGS += -O3 -fomit-frame-pointer -march=native -piper
endif

VERSION=$(shell awk '/^PACKAGE_VERSION/ { print $$2 }' "FS='" configure)

build: build-stamp
build-stamp: patch
	dh_testdir

	#remove upstream debian/ stuff
	-rm -f debian/changelog.in debian/menu debian/conffiles debian/post*
	autoconf
	automake-1.9
	CFLAGS="$(CFLAGS)" ./configure --prefix=/usr --sysconfdir=/etc
	$(MAKE)

	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/openbox.pod > openbox.1
	#pod2man --section=1 --release=$(VERSION) --center \
	#	"Openbox documentation" debian/kdetrayproxy.pod > kdetrayproxy.1
	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/gnome-panel-control.pod > \
		gnome-panel-control.1
	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/gdm-control.pod > \
		gdm-control.1
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp

	[ ! -f Makefile ] || $(MAKE) distclean

	rm -rf tools/gnome-panel-control/.libs
	rm -rf tools/kdetrayproxy/.libs
	rm -rf openbox/.libs
	rm -rf debian/conffiles

	rm -f openbox.1
	#rm -f kdetrayproxy.1
	rm -f gnome-panel-control.1

	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	dh_install --sourcedir=debian/tmp -a

	install -m0644 debian/menu.xml $(CURDIR)/debian/openbox/etc/xdg/openbox
	install -m0664 debian/openbox.xpm $(CURDIR)/debian/openbox/usr/share/pixmaps/
	install -m0664 debian/openbox.xsession $(CURDIR)/debian/openbox/usr/share/xsessions/openbox.desktop
	install -m0664 debian/openbox.xsession $(CURDIR)/debian/openbox/usr/share/applications/openbox.desktop
	mkdir -p $(CURDIR)/debian/openbox/var/lib/openbox
	touch install-stamp

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs CHANGELOG
	dh_installdocs
	dh_installmenu
	dh_installman -A
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	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 configure

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi brikkler,

die Optionen werden verwendet (siehe Compiler-Ausgaben). Du kannst das Makefile aber noch etwas optimieren:

  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
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
#!/usr/bin/make -f

export DH_VERBOSE=1
include /usr/share/quilt/quilt.make

CFLAGS=-Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -00
else
        CFLAGS += -O3 -fomit-frame-pointer -march=native -pipe
endif

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  MAKEFLAGS += -j$(NUMJOBS)
endif

VERSION=$(shell awk '/^PACKAGE_VERSION/ { print $$2 }' "FS='" configure)

build: build-stamp
build-stamp: patch
	dh_testdir

	#remove upstream debian/ stuff
	-rm -f debian/changelog.in debian/menu debian/conffiles debian/post*
	autoconf
	automake-1.9
	CFLAGS="$(CFLAGS)" MAKEFLAGS="$(MAKEFLAGS)" ./configure --prefix=/usr --sysconfdir=/etc
	$(MAKE)

	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/openbox.pod > openbox.1
	#pod2man --section=1 --release=$(VERSION) --center \
	#	"Openbox documentation" debian/kdetrayproxy.pod > kdetrayproxy.1
	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/gnome-panel-control.pod > \
		gnome-panel-control.1
	pod2man --section=1 --release=$(VERSION) --center \
		"Openbox documentation" debian/gdm-control.pod > \
		gdm-control.1
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp

	[ ! -f Makefile ] || $(MAKE) distclean

	rm -rf tools/gnome-panel-control/.libs
	rm -rf tools/kdetrayproxy/.libs
	rm -rf openbox/.libs
	rm -rf debian/conffiles

	rm -f openbox.1
	#rm -f kdetrayproxy.1
	rm -f gnome-panel-control.1

	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	dh_install --sourcedir=debian/tmp -a

	install -m0644 debian/menu.xml $(CURDIR)/debian/openbox/etc/xdg/openbox
	install -m0664 debian/openbox.xpm $(CURDIR)/debian/openbox/usr/share/pixmaps/
	install -m0664 debian/openbox.xsession $(CURDIR)/debian/openbox/usr/share/xsessions/openbox.desktop
	install -m0664 debian/openbox.xsession $(CURDIR)/debian/openbox/usr/share/applications/openbox.desktop
	mkdir -p $(CURDIR)/debian/openbox/var/lib/openbox
	touch install-stamp

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs CHANGELOG
	dh_installdocs
	dh_installmenu
	dh_installman -A
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	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 configure

Damit kannst du dann auch z.B. mit "debuild -j4 -us -uc" Multithreaded kompilieren.

Gruss Lasall

brikkler

(Themenstarter)

Anmeldungsdatum:
22. Juli 2008

Beiträge: 238

wo siehst du, daß die flags verwendet werden? *blödfrag

Lasall

Ehemalige
Avatar von Lasall

Anmeldungsdatum:
30. März 2010

Beiträge: 7723

Hi brikkler,

*im Log kram* (als Beispielausgabe):

if gcc -DPACKAGE_NAME=\"openbox\" -DPACKAGE_TARNAME=\"openbox\" -DPACKAGE_VERSION=\"3.4.11.2\" -DPACKAGE_STRING=\"openbox\ 3.4.11.2\" -DPACKAGE_BUGREPORT=\"http://bugzilla.icculus.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"openbox\" -DVERSION=\"3.4.11.2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_CTYPE_H=1 -DHAVE_FCNTL_H=1 -DHAVE_LOCALE_H=1 -DHAVE_SIGNAL_H=1 -DHAVE_STRING_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_WAIT_H=1 -DUSE_LIBSN=1 -DUSE_XCURSOR=1 -DHAVE_LIBX11=1 -DHAVE_X11_SM_SMLIB_H=1 -DUSE_SM=1 -DXKB=1 -DXRANDR=1 -DSHAPE=1 -DXINERAMA=1 -DSYNC=1 -I. -I. -I.          -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2   -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -I/usr/include/startup-notification-1.0   -I/usr/include/libxml2   -DLOCALEDIR=\"/usr/share/locale\" -DDATADIR=\"/usr/share\" -DCONFIGDIR=\"/etc/xdg\" -DG_LOG_DOMAIN=\"Openbox\"   -Wall -g -O3 -fomit-frame-pointer -march=native -pipe -DNDEBUG -DG_DISABLE_ASSERT -fno-strict-aliasing -MT openbox/openbox_openbox-mouse.o -MD -MP -MF "openbox/.deps/openbox_openbox-mouse.Tpo" -c -o openbox/openbox_openbox-mouse.o `test -f 'openbox/mouse.c' || echo './'`openbox/mouse.c; \
        then mv -f "openbox/.deps/openbox_openbox-mouse.Tpo" "openbox/.deps/openbox_openbox-mouse.Po"; else rm -f "openbox/.deps/openbox_openbox-mouse.Tpo"; exit 1; fi

Gruss Lasall

brikkler

(Themenstarter)

Anmeldungsdatum:
22. Juli 2008

Beiträge: 238

Lasall schrieb:

Hi brikkler,

*im Log kram* (als Beispielausgabe):

if gcc -DPACKAGE_NAME=\"openbox\" -DPACKAGE_TARNAME=\"openbox\" -DPACKAGE_VERSION=\"3.4.11.2\" -DPACKAGE_STRING=\"openbox\ 3.4.11.2\" -DPACKAGE_BUGREPORT=\"http://bugzilla.icculus.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"openbox\" -DVERSION=\"3.4.11.2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_CTYPE_H=1 -DHAVE_FCNTL_H=1 -DHAVE_LOCALE_H=1 -DHAVE_SIGNAL_H=1 -DHAVE_STRING_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_WAIT_H=1 -DUSE_LIBSN=1 -DUSE_XCURSOR=1 -DHAVE_LIBX11=1 -DHAVE_X11_SM_SMLIB_H=1 -DUSE_SM=1 -DXKB=1 -DXRANDR=1 -DSHAPE=1 -DXINERAMA=1 -DSYNC=1 -I. -I. -I.          -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2   -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -I/usr/include/startup-notification-1.0   -I/usr/include/libxml2   -DLOCALEDIR=\"/usr/share/locale\" -DDATADIR=\"/usr/share\" -DCONFIGDIR=\"/etc/xdg\" -DG_LOG_DOMAIN=\"Openbox\"   -Wall -g -O3 -fomit-frame-pointer -march=native -pipe -DNDEBUG -DG_DISABLE_ASSERT -fno-strict-aliasing -MT openbox/openbox_openbox-mouse.o -MD -MP -MF "openbox/.deps/openbox_openbox-mouse.Tpo" -c -o openbox/openbox_openbox-mouse.o `test -f 'openbox/mouse.c' || echo './'`openbox/mouse.c; \
        then mv -f "openbox/.deps/openbox_openbox-mouse.Tpo" "openbox/.deps/openbox_openbox-mouse.Po"; else rm -f "openbox/.deps/openbox_openbox-mouse.Tpo"; exit 1; fi

Gruss Lasall

stimmt ☺ danke für deine hilfe ☺

Antworten |