From b24cf353360b1352e1748d23b47375c4adafa168 Mon Sep 17 00:00:00 2001 From: Michael Wagner Date: Wed, 20 Jan 2021 17:00:08 +0100 Subject: [PATCH] cpp-d1064d --- debian/mbuild.changelog | 1 + debian/mbuild.cp | 2 +- doc/mbuild.8 | 6 ++++ tools/make/cmake_check | 12 +++++++ tools/make/mconfigure | 77 ++++++++++++++++++++++++++++++----------- tools/make/rules | 39 +++++++++++---------- 6 files changed, 97 insertions(+), 40 deletions(-) diff --git a/debian/mbuild.changelog b/debian/mbuild.changelog index 0b08a5c..dde0f6b 100644 --- a/debian/mbuild.changelog +++ b/debian/mbuild.changelog @@ -1,6 +1,7 @@ projects (1.0-%BUILD%) unstable; urgency=medium * prebuild in .build no longer supported * support of cmake builds + * standard copyright, README.build in deb packages -- Michael Wagner Tue, 12 Jan 2021 22:54:48 +0100 projects (0.6-%BUILD%) unstable; urgency=medium diff --git a/debian/mbuild.cp b/debian/mbuild.cp index 47558c7..0babef4 100755 --- a/debian/mbuild.cp +++ b/debian/mbuild.cp @@ -13,6 +13,7 @@ cp tools/make/insert_build.sh $base/usr/share/mbuild/ cp tools/make/mMakefile $base/usr/share/mbuild/makefile cp tools/make/c_configure.sh $base/usr/share/mbuild/ cp tools/make/cpp.make $base/usr/share/mbuild/ +cp doc/copyright $base/usr/share/mbuild/ mkdir -p $base/usr/share/man/man8 gzip -c doc/mbuild.8 >$base/usr/share/man/man8/mbuild.8.gz @@ -20,6 +21,5 @@ mkdir -p $base/usr/share/man/man1 gzip -c doc/mconfigure.1 >$base/usr/share/man/man1/mconfigure.1.gz mkdir -p $base/usr/share/doc/mbuild -cp doc/copyright $base/usr/share/doc/mbuild/ cp debian/mbuild.changelog $base/usr/share/doc/mbuild/changelog diff --git a/doc/mbuild.8 b/doc/mbuild.8 index 7b26cfc..1e38b45 100644 --- a/doc/mbuild.8 +++ b/doc/mbuild.8 @@ -48,6 +48,12 @@ file are needed in the debian directory. If pre/post installation scripts are needed, these files must be also placed in the .B debian directory. +.br +A standard copyright file is included. An user defined file can be used by copying it to debian/copyright +in the PAKET.prepare script. +.br +A standard README.debian file is included. An user defined file can be used by copying it to debian/README.debian +in the PAKET.prepare script. .SH FILES .TP PAKET.changelog diff --git a/tools/make/cmake_check b/tools/make/cmake_check index aa85d8c..22f6eb4 100755 --- a/tools/make/cmake_check +++ b/tools/make/cmake_check @@ -3,6 +3,18 @@ set -e cd ../build if [ -e debian/$paket.cmake ] then + # do checks + if [ -e debian/$paket.build ] + then + echo "cmake is not compatible with other builds. Remove $paket.build" + exit 1 + fi + if [ -e debian/$paket.prebuild ] + then + echo "cmake is not compatible with other builds. Remove $paket.prebuild" + exit 2 + fi + cp debian/$paket.cmake CMakeLists.txt echo "make" > debian/$paket.build chmod 755 debian/$paket.build diff --git a/tools/make/mconfigure b/tools/make/mconfigure index 691825d..ec5d2a6 100755 --- a/tools/make/mconfigure +++ b/tools/make/mconfigure @@ -11,6 +11,26 @@ function echo_usage { echo " -o : support old Debian 7 format" } +function cmake_check { + pushd ../build >/dev/null + # do checks + if [ -e debian/$paket.build ] + then + echo "cmake is not compatible with other builds. Remove $paket.build" + exit 1 + fi + if [ -e debian/$paket.prebuild ] + then + echo "cmake is not compatible with other builds. Remove $paket.prebuild" + exit 2 + fi + + cp debian/$paket.cmake CMakeLists.txt + echo "make" > debian/$paket.build + chmod 755 debian/$paket.build + cmake . + popd >/dev/null +} function check_unversioned { # has to be called in the projects base directory # result: "M" in stdout or nothing @@ -55,8 +75,8 @@ function set_build { fi changes=$(check_unversioned) tag="$tag$changes" - version=${tag%-*} - version=${version##*_} + version=${tag##*_} + version=${version%%-*} build=${tag##*-} else echo "No configuration system found. Cannot determine version." @@ -149,7 +169,7 @@ fi if [ $configure -eq 1 ] then # delete changelog and control - rm debian/changelog debian/control 2>/dev/null || true + rm debian/changelog debian/control debian/README.debian debian/copyright 2>/dev/null || true # mconfigure builds 2 environment files: setenv.sh + rules.pre echo "" > debian/rules.pre @@ -214,6 +234,12 @@ then echo "add_inst_tgt += debian/tmp/DEBIAN/postrm" >> rules.pre fi + # check for README.debian + if [ -f $paket.README.debian ] + then + cp $paket.README.debian README.debian + fi + mkdir -p tmp/DEBIAN # add export to setenv.sh @@ -238,12 +264,8 @@ then . debian/setenv.sh debian/$paket.prepare fi - if [ -e debian/$paket.cmake ] - then - # trigger build - touch debian/$paket.build - fi - if [ -e debian/$paket.build ] + # .build or .cmake + if [ -x debian/$paket.build -o -e debian/$paket.cmake ] then if [ -e ../build ] then @@ -256,9 +278,24 @@ then exit 2 fi # sync build dir -# . debian/setenv.sh -# debian/rules sync - + . debian/setenv.sh + debian/rules sync + fi + # .build + if [ -x debian/$paket.build ] + then + if [ -x debian/$paket.prebuild ] + then + pushd ../build >/dev/null + . debian/setenv.sh + debian/$paket.prebuild + popd >/dev/null + fi + fi + # .cmake + if [ -e debian/$paket.cmake ] + then + cmake_check fi # pack prepare @@ -281,16 +318,16 @@ then fi fi -if [ $compile -eq 1 -a ! -e debian/$paket.build ] -then - echo "no debian/$paket.build: skipping build step" - compile=0 -fi if [ $compile -eq 1 ] then - # build package - . debian/setenv.sh - debian/rules build + if [ -x debian/$paket.build -o -e debian/$paket.cmake ] + then + # build package + . debian/setenv.sh + debian/rules build + else + echo "skipping build step ..." + fi fi if [ $pack -eq 1 ] diff --git a/tools/make/rules b/tools/make/rules index 8c57576..b1c3630 100755 --- a/tools/make/rules +++ b/tools/make/rules @@ -6,7 +6,8 @@ NOP = @echo "No operation for target $@" DEB = fakeroot dpkg-deb --build $(oldpack) debian/tmp INSERT_BUILD = /usr/share/mbuild/insert_build.sh -RSYNC_OPT = -av --exclude="build" --exclude="debian/tmp" --exclude="Packages" --exclude=".*" +RSYNC_OPT = -av --exclude="build" --exclude="debian/tmp" --exclude="Packages" --exclude="*Aktuell" --exclude=".*" +std_inst_tgt = debian/tmp/usr/share/doc/$(paket)/copyright debian/tmp/usr/share/doc/$(paket)/README.debian include debian/rules.pre @@ -18,7 +19,7 @@ clean: -rm -rf debian/tmp # Bauen der kompilierten Programme und formatierten Dokumente aus den Quellen im Bauverzeichnis -build: debian/$(paket).build prebuild +build: ../build/debian/$(paket).build cd ../build ; debian/$(paket).build # Build succeeded @@ -43,8 +44,6 @@ binary-arch: $(BINARY_ARCH) # Erstellen Architektur-unabhängiger (Architecture: all) Binärpakete im übergeordneten Verzeichnis binary-indep: $(BINARY_INDEP) -#copy ../$(paket)_$(version)-$(build)_all.deb - version: ~/build/$(TARGET) $(INSERT_BUILD) ~/build/$(TARGET) $(build) cp ~/build/*$(build)* ../ @@ -55,17 +54,10 @@ version: ~/build/$(TARGET) sync: ../build rsync $(RSYNC_OPT) ./ ../build/ -../build/cmake_check: - /usr/share/mbuild/cmake_check - touch ../build/cmake_check - -prebuild: sync ../build/cmake_check - cd ../build ; if [ -x debian/$(paket).prebuild ]; then debian/$(paket).prebuild; fi - copy: debian/$(paket).cp debian/$(paket).cp debian/tmp -../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(add_inst_tgt) +../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) $(DEB) mv debian/tmp.deb ../$(paket)_$(version)-$(build)_$(arch).deb @@ -77,10 +69,14 @@ debian/control: debian/$(paket).control debian/changelog: debian/$(paket).changelog debian/rules.pre sed "s/%BUILD%/$(build)/" debian/$(paket).changelog > debian/changelog -# echo "${pwd} (${build}) unstable; urgency=medium" > debian/changelog -# echo " * generated by mbuild" >> debian/changelog -# echo " -- Michael Wagner Sun, 11 Feb 2018 20:03:04 +0100" >> debian/changelog -# mb_create_changelog + +debian/tmp/usr/share/doc/$(paket)/copyright: debian/copyright + mkdir -p debian/tmp/usr/share/doc/$(paket) + cp debian/copyright debian/tmp/usr/share/doc/$(paket)/copyright + +debian/tmp/usr/share/doc/$(paket)/README.debian: debian/README.debian + mkdir -p debian/tmp/usr/share/doc/$(paket) + cp debian/README.debian debian/tmp/usr/share/doc/$(paket)/README.debian debian/tmp/DEBIAN/preinst: debian/$(paket).preinst cp debian/$(paket).preinst debian/tmp/DEBIAN/preinst @@ -94,10 +90,15 @@ debian/tmp/DEBIAN/prerm: debian/$(paket).prerm debian/tmp/DEBIAN/postrm: debian/$(paket).postrm cp debian/$(paket).postrm debian/tmp/DEBIAN/postrm +debian/README.debian: + echo "developed under:" > debian/README.debian + cat /etc/issue >> debian/README.debian + echo "Architecture: $(arch)" >> debian/README.debian + +debian/copyright: + cp /usr/share/mbuild/copyright debian/copyright + # Load project specification -include rules.post -# if debian/control is missing, try old mbuild way -#debian/control: -# if [ -e debian/$(paket).control ]; then echo "trallala"; fi -- 2.20.1