From 55432b21f8fa83365fcef57ee6cd9e3ea57748db Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 17:24:15 +0100 Subject: [PATCH 01/10] don't run ldconfig --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 8a861d39..ba49db91 100644 --- a/src/Makefile +++ b/src/Makefile @@ -57,7 +57,7 @@ lib: $(LIB) $(LIBOBJS): CFLAGS+=-fPIC $(LIB): $(LIBOBJS) $(CC) -shared -Wl,-soname,$(LIB_SONAME) -o $@ $^ - ldconfig -n $(PWD) + # ldconfig -n $(PWD) ln -sf $(LIB_DYNAMIC) $(LIB_SONAME) ln -sf $(LIB_SONAME) $(LIB_BASENAME) From b48ad6e377b18f6ca13bceff42de2b5c40e78d31 Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 17:47:04 +0100 Subject: [PATCH 02/10] gitignore debian packages --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 7cdeb421..6c2bbf45 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,9 @@ # Editor files *~ *.swp + +# Debian packages +packages/*.deb +packages/*.debian.tar.xz +packages/*.dsc +packages/*.orig.tar.gz From fa738c5d4905db573a88e8be6e9026875cb744d8 Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 18:14:24 +0100 Subject: [PATCH 03/10] copy back buildinfo and debian changes file --- .gitignore | 2 ++ packages/build-deb-packages.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 6c2bbf45..100328d2 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ packages/*.deb packages/*.debian.tar.xz packages/*.dsc packages/*.orig.tar.gz +packages/*.changes +packages/*.buildinfo diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index 2307a6a5..0adaa79a 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -238,6 +238,8 @@ for item in `ls ${tmpdir}/*.deb`; do done ex cp ${tmpdir}/*.tar.* . ex cp ${tmpdir}/*.dsc . +ex cp ${tmpdir}/*.changes . +ex cp ${tmpdir}/*.buildinfo . echo echo "Cleaning up ..." From 400003ae0b6c312afe6aed55d2906531eb08a17c Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 18:15:30 +0100 Subject: [PATCH 04/10] add option -O to build-deb-packages.sh to preserve the original deb filenames This keeps filenames consistent with the content of the changes file, which is required for uploading into a local debian repo). --- packages/build-deb-packages.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index 0adaa79a..89dab317 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -32,6 +32,7 @@ CWD=$(pwd) skip_dep_check=0 build_test_package=1 build_driver_package=1 +keep_deb_filenames=0 ex() { @@ -48,12 +49,13 @@ ex() function show_help { - echo "Usage: [CUDA=] $0 [-d] [-t] [-k] [-h]" + echo "Usage: [CUDA=] $0 [-d] [-t] [-k] -O [-h]" echo "" echo " CUDA= Set your installed CUDA path (ex. /usr/local/cuda)." echo " -d Don't check build dependencies. Use my environment variables such as C_INCLUDE_PATH instead." echo " -t Skip building gdrcopy-tests package." echo " -k Skip building gdrdrv-dkms package." + echo " -O Keep original package filenames." echo " -h Show this help text." echo "" } @@ -72,6 +74,8 @@ while getopts "hdtk" opt; do ;; k) build_driver_package=0 ;; + O) keep_deb_filenames=1 + ;; esac done @@ -228,11 +232,13 @@ ex cd ${CWD} for item in `ls ${tmpdir}/*.deb`; do item_name=`basename $item` - item_name=`echo $item_name | sed -e "s/\.deb//g"` - if echo "$item_name" | grep -q "tests"; then - item_name="${item_name}${release}+cuda${CUDA_MAJOR}.${CUDA_MINOR}.deb" - else - item_name="${item_name}${release}.deb" + if [ $keep_deb_filenames != 0 ] ; then + item_name=`echo $item_name | sed -e "s/\.deb//g"` + if echo "$item_name" | grep -q "tests"; then + item_name="${item_name}${release}+cuda${CUDA_MAJOR}.${CUDA_MINOR}.deb" + else + item_name="${item_name}${release}.deb" + fi fi ex cp $item ./${item_name} done From 1d002dc690d58d4029465a8b740181091b76013b Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 19:06:33 +0100 Subject: [PATCH 05/10] add date of last git commit to version if applicable --- packages/build-deb-packages.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index 89dab317..cfea3f0b 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -34,6 +34,8 @@ build_test_package=1 build_driver_package=1 keep_deb_filenames=0 +git_commit_date=$(git show -s --format='%cd' --date='format:%Y%m%d%H%M%S' 2>/dev/null) + ex() { local rc @@ -100,7 +102,7 @@ MODULE_SUBDIR=$(awk '/MODULE_SUBDIR \?=/ { print $3 }' ${TOP_DIR_PATH}/src/gdrdr MAJOR_VERSION=$(awk '/#define GDR_API_MAJOR_VERSION/ { print $3 }' ${TOP_DIR_PATH}/include/gdrapi.h | tr -d '\n') MINOR_VERSION=$(awk '/#define GDR_API_MINOR_VERSION/ { print $3 }' ${TOP_DIR_PATH}/include/gdrapi.h | tr -d '\n') -VERSION="${MAJOR_VERSION}.${MINOR_VERSION}" +VERSION="${MAJOR_VERSION}.${MINOR_VERSION}${git_commit_date:++git$git_commit_date}" if [ "X$VERSION" == "X" ]; then echo "Failed to get version numbers!" >&2 exit 1 From bb566e19388a47c29a0f00b3f2851eb87da6539f Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 19:33:01 +0100 Subject: [PATCH 06/10] add DEBIAN_RELEASE and substitute it --- packages/build-deb-packages.sh | 4 ++++ packages/debian-lib/changelog | 2 +- packages/debian-meta/changelog | 2 +- packages/debian-tests/changelog | 2 +- packages/dkms/debian/changelog | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index cfea3f0b..75fc3384 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -23,6 +23,7 @@ # Restart this number at 1 if MAJOR_VERSION or MINOR_VERSION changes # See https://www.debian.org/doc/debian-policy/ch-controlfields.html#version DEBIAN_VERSION=1 +DEBIAN_RELEASE=unstable SCRIPT_DIR_PATH="$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)" TOP_DIR_PATH="${SCRIPT_DIR_PATH}/.." @@ -134,6 +135,7 @@ ex cp README.md ${tmpdir}/gdrcopy/debian-tests/README.source ex cd ${tmpdir}/gdrcopy ex find . -type f -exec sed -i "s/@FULL_VERSION@/${FULL_VERSION}/g" {} + ex find . -type f -exec sed -i "s/@VERSION@/${VERSION}/g" {} + +ex find . -type f -exec sed -i "s/@DEBIAN_RELEASE@/${DEBIAN_RELEASE}/g" {} + ex rm -f ${tmpdir}/libgdrapi_${VERSION}.orig.tar.gz ex rm -f ${tmpdir}/gdrcopy-tests_${VERSION}.orig.tar.gz @@ -195,6 +197,7 @@ if [[ ${build_driver_package} == 1 ]]; then ex find . -type f -exec sed -i "s/@FULL_VERSION@/${FULL_VERSION}/g" {} + ex find . -type f -exec sed -i "s/@VERSION@/${VERSION}/g" {} + ex find . -type f -exec sed -i "s/@MODULE_LOCATION@/${MODULE_SUBDIR//\//\\/}/g" {} + + ex find . -type f -exec sed -i "s/@DEBIAN_RELEASE@/${DEBIAN_RELEASE}/g" {} + ex cd ${tmpdir} ex tar czvf gdrdrv-dkms_${VERSION}.orig.tar.gz gdrdrv-dkms-${VERSION} @@ -215,6 +218,7 @@ ex cd ${metadir} ex find . -type f -exec sed -i "s/@FULL_VERSION@/${FULL_VERSION}/g" {} + ex find . -type f -exec sed -i "s/@VERSION@/${VERSION}/g" {} + ex find . -type f -exec sed -i "s/@MODULE_LOCATION@/${MODULE_SUBDIR//\//\\/}/g" {} + +ex find . -type f -exec sed -i "s/@DEBIAN_RELEASE@/${DEBIAN_RELEASE}/g" {} + ex cd ${tmpdir} ex tar czvf gdrcopy_${VERSION}.orig.tar.gz gdrcopy-${VERSION} cd ${metadir} diff --git a/packages/debian-lib/changelog b/packages/debian-lib/changelog index aac723a4..5faad821 100644 --- a/packages/debian-lib/changelog +++ b/packages/debian-lib/changelog @@ -1,4 +1,4 @@ -libgdrapi (@FULL_VERSION@) stable; urgency=low +libgdrapi (@FULL_VERSION@) @DEBIAN_RELEASE@; urgency=low * Initial version of libgdrapi package -- was a part of gdrcopy package. diff --git a/packages/debian-meta/changelog b/packages/debian-meta/changelog index 48ec0bd9..df587ed0 100644 --- a/packages/debian-meta/changelog +++ b/packages/debian-meta/changelog @@ -1,4 +1,4 @@ -gdrcopy (@FULL_VERSION@) stable; urgency=low +gdrcopy (@FULL_VERSION@) @DEBIAN_RELEASE@; urgency=low * Convert to meta package. * Declare dependency with gdrdrv-dkms, libgdrapi, and gdrcopy-tests. diff --git a/packages/debian-tests/changelog b/packages/debian-tests/changelog index 736d7841..c2dc9aeb 100644 --- a/packages/debian-tests/changelog +++ b/packages/debian-tests/changelog @@ -1,4 +1,4 @@ -gdrcopy-tests (@FULL_VERSION@) stable; urgency=low +gdrcopy-tests (@FULL_VERSION@) @DEBIAN_RELEASE@; urgency=low * Initial version of gdrcopy-tests package -- was a part of gdrcopy package. * Add apiperf test. diff --git a/packages/dkms/debian/changelog b/packages/dkms/debian/changelog index 6a4872df..39c2b20b 100644 --- a/packages/dkms/debian/changelog +++ b/packages/dkms/debian/changelog @@ -1,4 +1,4 @@ -gdrdrv-dkms (@FULL_VERSION@) unstable; urgency=low +gdrdrv-dkms (@FULL_VERSION@) @DEBIAN_RELEASE@; urgency=low * Change the package maintainer to GPUDirect Team. * Add Davide Rossetti and Pak Makthub as Uploaders. From 546dd7d2d3610390dcece379a5d57053837a9bce Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 21:02:56 +0100 Subject: [PATCH 07/10] add command line optione '-R ' to override DEBIAN_RELEASE --- packages/build-deb-packages.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index 75fc3384..953f33ef 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -52,20 +52,21 @@ ex() function show_help { - echo "Usage: [CUDA=] $0 [-d] [-t] [-k] -O [-h]" + echo "Usage: [CUDA=] $0 [-d] [-t] [-k] [-O] [-R ] [-h]" echo "" echo " CUDA= Set your installed CUDA path (ex. /usr/local/cuda)." echo " -d Don't check build dependencies. Use my environment variables such as C_INCLUDE_PATH instead." echo " -t Skip building gdrcopy-tests package." echo " -k Skip building gdrdrv-dkms package." echo " -O Keep original package filenames." + echo " -R Set debian release in changelog, dsc and changes files. (Default: unstable)" echo " -h Show this help text." echo "" } OPTIND=1 # Reset in case getopts has been used previously in the shell. -while getopts "hdtk" opt; do +while getopts "hdtkOR:" opt; do case "${opt}" in h) show_help @@ -79,6 +80,8 @@ while getopts "hdtk" opt; do ;; O) keep_deb_filenames=1 ;; + R) DEBIAN_RELEASE=$OPTARG + ;; esac done From c89071ca009450b6027f83f128981fcf59570f65 Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Mon, 30 Jan 2023 21:23:45 +0100 Subject: [PATCH 08/10] remove debian package files in ``make clean`` --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index df38882b..d3fe424c 100644 --- a/Makefile +++ b/Makefile @@ -89,6 +89,12 @@ clean: $(MAKE) clean cd src/gdrdrv && \ $(MAKE) clean + rm -f packages/*.deb + rm -f packages/*.debian.tar.xz + rm -f packages/*.dsc + rm -f packages/*.orig.tar.gz + rm -f packages/*.changes + rm -f packages/*.buildinfo .PHONY: driver clean all lib exes lib_install drv_install exes_install install From 2eac1dbf18145d894c2c96bbb70fc9260dc12418 Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Tue, 31 Jan 2023 09:13:04 +0100 Subject: [PATCH 09/10] make git commit date in version optional --- packages/build-deb-packages.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index 953f33ef..f12eb2a2 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -35,7 +35,7 @@ build_test_package=1 build_driver_package=1 keep_deb_filenames=0 -git_commit_date=$(git show -s --format='%cd' --date='format:%Y%m%d%H%M%S' 2>/dev/null) +git_commit_date="" ex() { @@ -52,13 +52,14 @@ ex() function show_help { - echo "Usage: [CUDA=] $0 [-d] [-t] [-k] [-O] [-R ] [-h]" + echo "Usage: [CUDA=] $0 [-d] [-t] [-k] [-O] [-g] [-R ] [-h]" echo "" echo " CUDA= Set your installed CUDA path (ex. /usr/local/cuda)." echo " -d Don't check build dependencies. Use my environment variables such as C_INCLUDE_PATH instead." echo " -t Skip building gdrcopy-tests package." echo " -k Skip building gdrdrv-dkms package." echo " -O Keep original package filenames." + echo " -g Include date of latest git commit in version number." echo " -R Set debian release in changelog, dsc and changes files. (Default: unstable)" echo " -h Show this help text." echo "" @@ -66,7 +67,7 @@ function show_help OPTIND=1 # Reset in case getopts has been used previously in the shell. -while getopts "hdtkOR:" opt; do +while getopts "hdtkOgR:" opt; do case "${opt}" in h) show_help @@ -80,6 +81,8 @@ while getopts "hdtkOR:" opt; do ;; O) keep_deb_filenames=1 ;; + g) git_commit_date=$(git show -s --format='%cd' --date='format:%Y%m%d%H%M%S' 2>/dev/null) + ;; R) DEBIAN_RELEASE=$OPTARG ;; esac From 6cbdc51f8fe2ef25f80cbdfb2b69cc3665ffab11 Mon Sep 17 00:00:00 2001 From: Henning Glawe Date: Tue, 31 Jan 2023 09:13:38 +0100 Subject: [PATCH 10/10] fix keep-deb-filename logic --- packages/build-deb-packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/build-deb-packages.sh b/packages/build-deb-packages.sh index f12eb2a2..3ff8a344 100755 --- a/packages/build-deb-packages.sh +++ b/packages/build-deb-packages.sh @@ -244,7 +244,7 @@ ex cd ${CWD} for item in `ls ${tmpdir}/*.deb`; do item_name=`basename $item` - if [ $keep_deb_filenames != 0 ] ; then + if [ $keep_deb_filenames = 0 ] ; then item_name=`echo $item_name | sed -e "s/\.deb//g"` if echo "$item_name" | grep -q "tests"; then item_name="${item_name}${release}+cuda${CUDA_MAJOR}.${CUDA_MINOR}.deb"