Hallo zusammen,
ich habe eine Git Repository, was ich in eine Debian Package umwandeln möchte. Und zwar soll der debian folder schon im Git Repository sein. Da dann schon Versionsnummern vorgegeben sind, die meine Paket schon vor den bauen durch dh_make hatte, müssen diese beim neuen bauen verändert werden.
Meine Frage:
Kann ich mit dpkg-buildpackage auch Versionsnummern vergeben?
Danke schonmal für eure Hilfe.
Paketbau mit dpkg-buildpackage
Re: Paketbau mit dpkg-buildpackage
Schau dir mal "dch" an, damit bekommst Du die changelog Einträge entsprechend gebaut.
Ist das nen öffentliches Git? Falls ja, überleg Dir das nochmal, soweit ich mich erinnere wird offiziell davon abgeraten debian/* mit einzuchecken, zumindest Maintainer/Email würd ich aus control und co rausnehmen, nicht dass dann am Ende unsignierte Pakete von "Dir" im Netz rumfliegen - diese Änderung übersieht jemand anders schnell mal.
Meine Lösung dafür ist nen zusätzliches Target im Makefile, dass aus den benötigten Dateien (im git ist mehr als ich im fertigen Paket haben will) den orig.tar.gz und aus nen paar Variablen und Skelettdateien das debian/* erstellt - dann noch dch mit den richtigen Parametern (hier lohnt sich nen Blick in die Manpage, das kann recht viel) und fertig ist das Instant-Paket (was nen weiteres maketarget dann gleich ins Repo schieben kann).
Ist das nen öffentliches Git? Falls ja, überleg Dir das nochmal, soweit ich mich erinnere wird offiziell davon abgeraten debian/* mit einzuchecken, zumindest Maintainer/Email würd ich aus control und co rausnehmen, nicht dass dann am Ende unsignierte Pakete von "Dir" im Netz rumfliegen - diese Änderung übersieht jemand anders schnell mal.
Meine Lösung dafür ist nen zusätzliches Target im Makefile, dass aus den benötigten Dateien (im git ist mehr als ich im fertigen Paket haben will) den orig.tar.gz und aus nen paar Variablen und Skelettdateien das debian/* erstellt - dann noch dch mit den richtigen Parametern (hier lohnt sich nen Blick in die Manpage, das kann recht viel) und fertig ist das Instant-Paket (was nen weiteres maketarget dann gleich ins Repo schieben kann).
Re: Paketbau mit dpkg-buildpackage
Yep, so mach ich's auch, hier ist mal eins meiner makefiles mit einem make deb target.eggy hat geschrieben:Ist das nen öffentliches Git? Falls ja, überleg Dir das nochmal, soweit ich mich erinnere wird offiziell davon abgeraten debian/* mit einzuchecken, zumindest Maintainer/Email würd ich aus control und co rausnehmen, nicht dass dann am Ende unsignierte Pakete von "Dir" im Netz rumfliegen - diese Änderung übersieht jemand anders schnell mal.
Meine Lösung dafür ist nen zusätzliches Target im Makefile,
Der /debian Ordner ist nicht im git repository mit eingecheckt, sondern wird jedesmal neu erstellt.
Code: Alles auswählen
#@defines
PREFIX = /usr
BIN_DIR = $(PREFIX)/bin
SHARE_DIR = $(PREFIX)/share
DESKAPPS_DIR = $(SHARE_DIR)/applications
PIXMAPS_DIR = $(SHARE_DIR)/pixmaps
# set name
NAME = jalv_select
VER = 0.2
# create debian package
DEBNAME = jalvselect_$(VER)
CREATEDEB = yes '' | dh_make -s -n -e $(USER)@org -p $(DEBNAME) -c gpl >/dev/null
DIRS = $(BIN_DIR) $(DESKAPPS_DIR) $(PIXMAPS_DIR)
BUILDDEB = dpkg-buildpackage -rfakeroot -b 2>/dev/null | grep dpkg-deb
# set compile flags
CXXFLAGS = -std=c++11 `pkg-config gtkmm-2.4 lilv-0 --cflags`
LDFLAGS = `pkg-config gtkmm-2.4 lilv-0 --libs`
# invoke build files
OBJECTS = $(NAME).cpp
## output style (bash colours)
BLUE = "\033[1;34m"
RED = "\033[1;31m"
NONE = "\033[0m"
.PHONY : all clean dist-clean install tar deb uninstall
all : $(NAME)
@if [ -f $(NAME) ]; then echo $(BLUE)"build finish, now run make install"; \
else echo -e $(RED)"sorry, build failed" $(NONE); fi
@echo $(NONE)
clean :
@rm -f $(NAME)
@echo ". ." $(BLUE)", clean"$(NONE)
dist-clean :
@rm -rf ./debian
@rm -f $(NAME)
@echo ". ." $(BLUE)", clean"$(NONE)
install : all
@mkdir -p $(DESTDIR)$(BIN_DIR)
@mkdir -p $(DESTDIR)$(DESKAPPS_DIR)
@mkdir -p $(DESTDIR)$(PIXMAPS_DIR)
install $(NAME) $(DESTDIR)$(BIN_DIR)
install $(NAME).desktop $(DESTDIR)$(DESKAPPS_DIR)
install lv2.png $(DESTDIR)$(PIXMAPS_DIR)
@echo ". ." $(BLUE)", done"$(NONE)
#@create tar ball
tar : clean
@cd ../ && \
tar -cf $(NAME)-$(VER).lv2.tar.bz2 --bzip2 $(NAME)
@echo $(BLUE)"build "$(NAME)"-"$(VER)".lv2.tar.bz2"$(NONE)
#@build a debian packet for all arch
deb :
@rm -rf ./debian
@echo $(BLUE)"create ./debian"$(NONE)
-@ $(CREATEDEB)
@ #@echo $(BLUE)"touch ./debian/dirs"$(NONE)
@ #-@echo $(DIRS) > ./debian/dirs
@echo $(BLUE)"try to build debian package, that may take some time"$(NONE)
-@ if $(BUILDDEB); then echo ". ." $(BLUE)", done"$(NONE); else \
echo -e $(RED)"sorry, build fail"$(NONE); fi
uninstall :
rm -rf $(BIN_DIR)/$(NAME) $(DESKAPPS_DIR)/$(NAME).desktop $(PIXMAPS_DIR)/lv2.png
@echo ". ." $(BLUE)", done"$(NONE)
$(NAME) : $(OBJECTS)
$(CXX) $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -o $(NAME)
Re: Paketbau mit dpkg-buildpackage
Ich dachte git-buildpackage löst dieses Problem elegant: https://wiki.debian.org/PackagingWithGit
oder https://wiki.debian.org/PackagingWithGit
oder https://wiki.debian.org/PackagingWithGit