]> wagnertech.de Git - projects.git/commitdiff
posaune
authorMichael Wagner <michael@wagnertech.de>
Fri, 6 Aug 2021 21:00:22 +0000 (23:00 +0200)
committerMichael Wagner <michael@wagnertech.de>
Fri, 6 Aug 2021 21:00:22 +0000 (23:00 +0200)
debian/mbuild.changelog
debian/mbuild.cp
doc/mbuild.8
doc/mconfigure.1
tools/make/create-conffiles [new file with mode: 0755]
tools/make/mconfigure
tools/make/rules

index 35c75c345a0add53263084d60339cbfbf26de0a7..a1de934c10bdad1ca712f867a3f1b811e8c180a1 100644 (file)
@@ -1,3 +1,8 @@
+projects (1.2-%BUILD%) unstable; urgency=medium
+  * support version numbers set by user (-v option)
+  * support version numbers set by project (-V option)
+ -- Michael Wagner <michael@wagnertech.de>  Tue, 06 Aug 2021 22:54:48 +0100
+  
 projects (1.1-%BUILD%) unstable; urgency=medium
   * support of cross compile environments with cmake
  -- Michael Wagner <michael@wagnertech.de>  Tue, 12 Jan 2021 22:54:48 +0100
 projects (1.1-%BUILD%) unstable; urgency=medium
   * support of cross compile environments with cmake
  -- Michael Wagner <michael@wagnertech.de>  Tue, 12 Jan 2021 22:54:48 +0100
index 0babef41348ed54b0e95c37547e7b75fd256c0fd..9e8f3b8f9c8e9e316e1434e791346cdde85d7e8e 100755 (executable)
@@ -6,6 +6,7 @@ base=$1
 mkdir -p $base/usr/bin/
 cp tools/make/mconfigure $base/usr/bin/
 cp tools/make/treecopy $base/usr/bin/
 mkdir -p $base/usr/bin/
 cp tools/make/mconfigure $base/usr/bin/
 cp tools/make/treecopy $base/usr/bin/
+cp tools/make/make-conffile $base/usr/bin/
 
 mkdir -p $base/usr/share/mbuild/
 cp tools/make/rules $base/usr/share/mbuild/
 
 mkdir -p $base/usr/share/mbuild/
 cp tools/make/rules $base/usr/share/mbuild/
index 3c26a7ce6136c70abd2f8ae82f6bbf89c5e2bbcd..b1d4ef63c03e4048f0d74630e19d3fe4e2cc784b 100644 (file)
@@ -13,10 +13,17 @@ consists of 3 phases: configuration - compile - pack
 configuration
 is done by the
 .B mconfigure
 configuration
 is done by the
 .B mconfigure
-script. It determins the verion number from the git/subversion status. A
+script. The configuration step has the following tasks:
+
+Determination of version and build number. The version number can be set in a 
 .B PAKET.changelog
 .B PAKET.changelog
-file is needed. Per 
-default this script also performs compile and pack step.
+file, can be set by the -v option of
+.B mconfigure
+or be set by the project itself in the
+.B PAKET.prepare
+script. The build number is always taken from the CM system: With SVN it is the global version number, with
+GIT the build number is taken from the tag. On build a tag in the form project_version-build is expected. If not
+present a tag in the form v_version-build is searched. Verion may be 0.0 if set elsewhere.
 
 If a
 .B PAKET.prepare
 
 If a
 .B PAKET.prepare
@@ -35,7 +42,9 @@ file is present in the debian directory, it is called in the ~/build directory.
 compile
 To perform the compile step a
 .B PAKET.build
 compile
 To perform the compile step a
 .B PAKET.build
-script is needed in the 
+script or a
+.B PAKET.cmake
+file is needed in the 
 .B debian 
 directory.
 .TP
 .B debian 
 directory.
 .TP
@@ -52,7 +61,7 @@ directory.
 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 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 defining a debian/PAKET.README.debian.
+
 .SH FILES
 .TP
 PAKET.changelog
 .SH FILES
 .TP
 PAKET.changelog
@@ -71,6 +80,10 @@ Any executable script file executed in configure step in the ../build directory
 PAKET.build
 Any executable script file executing the build in the ../build directory
 .TP
 PAKET.build
 Any executable script file executing the build in the ../build directory
 .TP
+PAKET.cmake
+cmake file (CMakeLists.txt) for building C/C++ code. If a cross compile option is set in the mconfigure
+script, according definitions are included.
+.TP
 PAKET.cp
 An executable script file copying the artefacts to target paths preposed by $1:
 .br
 PAKET.cp
 An executable script file copying the artefacts to target paths preposed by $1:
 .br
index 01c351343a8ccb75052545be0c3f98990d81cd12..8df0edc69e88f4543315d81a038c09eaed9753a6 100644 (file)
@@ -15,9 +15,16 @@ that contains the files described in
 .B mbuild(8).
 .SH OPTIONS
 .TP
 .B mbuild(8).
 .SH OPTIONS
 .TP
+-a ARCH
+A multiarch cross compile is issued
+.TP
 -c
 select configuration step
 .TP
 -c
 select configuration step
 .TP
+-C TOOLSET
+Defines the cross compile toolset. TOOLSET can either be an absolute path or a directory expected
+in the /opt/cross directory
+.TP
 -d
 select compile step
 .TP
 -d
 select compile step
 .TP
@@ -26,6 +33,12 @@ select pack step
 .TP
 -o
 support old Debian 7 format
 .TP
 -o
 support old Debian 7 format
+.TP
+-v VERSION
+set version to VERSION
+.TP
+-V
+verion is set by the project in the prepare step
 .PP
 If no steps are selected all steps are performed.
 .SH SEE ALSO
 .PP
 If no steps are selected all steps are performed.
 .SH SEE ALSO
diff --git a/tools/make/create-conffiles b/tools/make/create-conffiles
new file mode 100755 (executable)
index 0000000..54567f9
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -e
+
+if [ $# -ne 1 ]; then
+       echo "usage: create-conffiles BASE_DIR"
+       exit 1
+fi
+
+cd $1
+mkdir -p DEBIAN
+for files in $(find etc -type f); do
+       echo "/$files" >> DEBIAN/conffiles
+done
+
index a8c7f6e9f54ff097cb92de4e79b60e5445865d2c..e5f11b342805521fb34eb7d82c5bc43041dac8c9 100755 (executable)
@@ -9,6 +9,7 @@ function echo_usage {
        echo "  -d : compile"
        echo "  -p : pack default: do all"
        echo "  -v : set version"
        echo "  -d : compile"
        echo "  -p : pack default: do all"
        echo "  -v : set version"
+       echo "  -V : version set by project"
        echo "  -o : support old Debian 7 format"
 }
 
        echo "  -o : support old Debian 7 format"
 }
 
@@ -80,6 +81,11 @@ function set_build {
        then
                tag=$(git describe --tags --match "${paket}_*" 2>/dev/null) || true
                if test -z "$tag"
        then
                tag=$(git describe --tags --match "${paket}_*" 2>/dev/null) || true
                if test -z "$tag"
+               then
+                       # try generic "v_" tag
+                       tag=$(git describe --tags --match "v_*" 2>/dev/null) || true
+               fi
+               if test -z "$tag"
                then
                        tag="0.0-0TOP"
                fi
                then
                        tag="0.0-0TOP"
                fi
@@ -119,6 +125,10 @@ function check_version {
        fi
 }
 
        fi
 }
 
+##############################################################################
+# Main program
+##############################################################################
+
 if [ ! -d debian ]
 then
        echo "run mconfigure in the project base directory with a debian directory in it!"
 if [ ! -d debian ]
 then
        echo "run mconfigure in the project base directory with a debian directory in it!"
@@ -128,42 +138,48 @@ fi
 configure=0
 compile=0
 pack=0
 configure=0
 compile=0
 pack=0
-while getopts "a:cC:dpov:" opt; do
-       case $opt in
-               a) ARCH=$OPTARG
-                       ;;
-               c) configure=1
-                       ;;
-               d)      compile=1
-                       ;;
-               C) cross=$OPTARG
-                       ;;
-               p)      pack=1
-                       ;;
-               o)      oldpack="-Zgzip"
-                       ;;
-               v)      optversion=$OPTARG
-                       ;;
-               \?) echo "Invalid option: -$OPTARG"
-                       echo_usage
-                       exit 1
-                       ;;
-               :) echo "Option -$OPTARG requires an argument."
-                       echo_usage
-                       exit 1
-                       ;;
-       esac
+while [ $OPTIND -le "$#" ]
+do
+       if getopts "a:cC:dpov:V" opt
+       then
+               case $opt in
+                       a) ARCH=$OPTARG
+                               ;;
+                       c) configure=1
+                               ;;
+                       d)      compile=1
+                               ;;
+                       C) cross=$OPTARG
+                               ;;
+                       p)      pack=1
+                               ;;
+                       o)      oldpack="-Zgzip"
+                               ;;
+                       v)      optversion=$OPTARG
+                               ;;
+                       V)      optversion="0.0"
+                               ;;
+                       \?) echo "Invalid option: -$OPTARG"
+                               echo_usage
+                               exit 1
+                               ;;
+                       :) echo "Option -$OPTARG requires an argument."
+                               echo_usage
+                               exit 1
+                               ;;
+               esac
+       else
+               paket="${!OPTIND}"
+               eval OPTIND=OPTIND+1
+       fi
 done
 done
-shift $((OPTIND -1))
 
 
-if [ $# -lt 1 ]
+if [ -z "$paket" ]
 then
        echo_usage
        exit 1
 fi
 
 then
        echo_usage
        exit 1
 fi
 
-paket=$1
-
 if [ -n "$ARCH" -a -n "$cross" ]
 then
        echo "invalid options: supply -a for multiarch or -C for explicit cross compile environment"
 if [ -n "$ARCH" -a -n "$cross" ]
 then
        echo "invalid options: supply -a for multiarch or -C for explicit cross compile environment"
@@ -246,7 +262,6 @@ then
        fi
 
        # check for pre/post installation scripts
        fi
 
        # check for pre/post installation scripts
-       echo "TODO: check for conffiles"
        if [ -f $paket.preinst ]
        then
                echo "add_inst_tgt += debian/tmp/DEBIAN/preinst" >> rules.pre
        if [ -f $paket.preinst ]
        then
                echo "add_inst_tgt += debian/tmp/DEBIAN/preinst" >> rules.pre
index 1b2e042e2cd11f1b389ed635769b591e2f33d7a4..6b7d6889f696fa25850714d8ccd28a985cddff07 100755 (executable)
@@ -60,6 +60,7 @@ sync: ../build
 
 copy: debian/$(paket).cp
        debian/$(paket).cp debian/tmp
 
 copy: debian/$(paket).cp
        debian/$(paket).cp debian/tmp
+       create-conffiles debian/tmp
        touch debian/tmp
 
 ../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) debian/tmp
        touch debian/tmp
 
 ../$(paket)_$(version)-$(build)_$(arch).deb:debian/tmp/DEBIAN/control $(std_inst_tgt) $(add_inst_tgt) debian/tmp