File debian.rules of Package xz
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
# Get some information about the machine we are building on:
export numberOfProcessorsOnMachine=$(shell nproc)
export wantedJobs=$(shell echo "1.25*$(numberOfProcessorsOnMachine)" | bc -l)
export jobsIget=$(shell echo $(wantedJobs) | awk '{print int($$1+0.5)}')
#export numberOfProcessorsOnMachine=4
#export wantedJobs=4
#export jobsIget=$(shell nproc)
export TOTAL_DISK=$(shell df -h --total | awk 'END{print $$2}')
export FREEMEM=$(shell free --mega)
export TOTAL_MEM=$(shell free --total --mega | xargs | awk '{print $$19"MB"}')
export TOTAL_RAM=$(shell free --total --mega | xargs | awk '{print $$8"MB"}')
export TOTAL_SWAP=$(shell free --total --mega | xargs | awk '{print $$15"MB"}')
export DISTRO=$(shell awk -F= '/^NAME/{print $2}' /etc/os-release | cut -d'=' -f2)
export DISTROVERSION=$(shell awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)
export THISMONTH=$(shell LC_TIME='en_US.UTF-8' date +%B)
export THISYEAR=$(shell date +%Y)
# Add support for different Debian based distributions
export VERSION_CODENAME=$(shell cat /etc/os-release | grep VERSION_CODENAME | awk -F= '{print $$2}')
export VERSION_ID=$(shell cat /etc/os-release | grep VERSION_ID | awk -F= '{print $$2}')
export PRETTY_NAME="$(shell cat /etc/*-release | egrep "PRETTY_NAME" | cut -d = -f 2)"
# Variables
export executable=xz
export pkgname=$(executable)
export install_prefix=/usr
# format manpage_date=January 2024
export manpage_date="$(THISMONTH) $(THISYEAR)"
export _topdir=/usr/src/packages
export _builddir=$(_topdir)/BUILD
#export _builddir=/usr/src/packages/BUILD
export _sourcedir=$(_topdir)/SOURCES
#export _sourcedir=/usr/src/packages/SOURCES
export _uploaddir=/usr/src/packages/SOURCES
export srcdir=/usr/src/packages/SOURCES
export pkgdir_head=$(_builddir)/debian
#export pkgdir_head=/usr/src/packages/BUILD/debian
#export pkgdir=$(pkgdir_head)/$(pkgname)
export pkgdir=$(pkgdir_head)/tmp
export pkgdir=/usr/src/packages/BUILD/debian/tmp
export buildroot=/usr/src/packages/BUILD/debian/tmp
export buildroot=$(_builddir)/debian/$(pkgname)
export buildroot=$(_builddir)/debian/$(pkgname)
#export buildroot=$(pkgdir)
export _installToDir=$(pkgdir)
#export _installToDir=/usr/src/packages/BUILD/debian/tmp
ifeq ($(findstring Raspbian,$(PRETTY_NAME)),Raspbian)
# Found
export PLATFORM=Raspbian
export BUILDDIR=obj-arm-linux-gnueabihf
export LIBDIR=lib/arm-linux-gnueabihf
else
# Not found
export PLATFORM=DebianOrUbuntu
export BUILDDIR=obj-x86_64-linux-gnu
export LIBDIR=lib/x86_64-linux-gnu
endif
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND =
export __builder=ninja
export pkgver=$(head -5 $(_sourcedir)/zsync2.dsc | grep Version | tr -d ' ' | cut -d":" -f2 | cut -d"-" -f1)
export sover=2_0
export argsv=6.4.6
export VERSION=2.0.0~alpha1.20231210.87fb5a0
export _git_commit="$(echo "$(VERSION)" | awk -F. '{print $NF}')" # || _git_commit="release"
#export GITHUB_RUN_NUMBER="<%{_project}@obs>"
#export SOURCE1=https://github.com/Taywee/args/archive/refs/tags/args-$(argsv).tar.gz
#Source0: http://tukaani.org/xz/%{name}-%{version}.tar.gz
#Source1: http://tukaani.org/xz/%{name}-%{version}.tar.gz.sig
#Source2: baselibs.conf
# from http://tukaani.org/misc/lasse_collin_pubkey.txt#/xz.keyring
#Source3: xz.keyring
#Source4: xznew
#Source5: xznew.1
export SOURCE3=$(_sourcedir)/xz.keyring
export SOURCE4=$(_sourcedir)/xznew
export SOURCE5=$(_sourcedir)/xznew.1
%:
dh $@
override_dh_auto_configure:
mkdir obj-x86_64-linux-gnu
cd obj-x86_64-linux-gnu ; ../configure \
--prefix=/usr \
--with-pic \
--docdir=/usr/share/doc/$(pkgname)
echo "Configuration should have completed here."
override_dh_auto_build:
echo \$(_builddir)=$(_builddir)
echo \$(_sourcedir)=$(_sourcedir)
echo ls -al $(_sourcedir)
ls -al $(_sourcedir)
echo ls -al $(_builddir)
ls -al $(_builddir)
#tar -xf $(_uploaddir)/cpr-1.10.1.125+git1ad1cd2.tar.xz
mkdir build
#tar -xf $(_uploaddir)/dependencies.tar.xz
# use local 'args' source package
#sed -e 's|GIT_REPOSITORY.*args|URL file://$(SOURCE1)|' -e '/GIT_TAG.*/d' \
# -i lib/CMakeLists.txt;
#export CFLAGS="$CFLAGS -Wno-error=return-type -Wno-return-type"
export CFLAGS="$CFLAGS -D_REENTRANT -pipe -fPIE"
export LDFLAGS="-Wl,-z,relro,-z,now -pie"
#export CFLAGS="$CFLAGS"
#export CXXFLAGS="$CFLAGS"
# required for compiling tests
#export LD_LIBRARY_PATH=$(shell pwd)/build/src:$LD_LIBRARY_PATH
install -d obj-x86_64-linux-gnu
# -DUSE_SYSTEM_CPR=ON
# -DBUILD_SHARED_LIBS=OFF \
# -DCMAKE_SKIP_RPATH=ON \
# -DGIT_COMMIT="$_git_commit" \
# -DUSE_SYSTEM_ARGS=OFF \
# -DBUILD_CPR_TESTS=OFF \
# -DFETCHCONTENT_FULLY_DISCONNECTED=YES \
# -DFETCHCONTENT_UPDATES_DISCONNECTED=YES \
# -DEP_UPDATE_DISCONNECTED=YES \
# -DUPDATE_DISCONNECTED=YES \
#cmake . \
# -B obj-x86_64-linux-gnu -S $(_builddir) \
# -DCMAKE_INSTALL_PREFIX=/usr \
# -DUSE_SYSTEM_CPR=ON \
# -DCMAKE_SKIP_RPATH=ON \
# -DGIT_COMMIT="$_git_commit" \
# -DUSE_SYSTEM_ARGS=OFF \
# -DUSE_SYSTEM_CURL=YES \
# -DBUILD_TESTING=OFF \
# -DBUILD_CPR_TESTS=OFF
#cmake --build obj-x86_64-linux-gnu --target install --parallel $(jobsIget)
make -C obj-x86_64-linux-gnu -j$(jobsIget)
#%if 0%{?do_profiling}
# make %{?_smp_mflags} CFLAGS="${CFLAGS} %{cflags_profile_generate}"
# make check %{?_smp_mflags}
# make clean
# make %{?_smp_mflags} CFLAGS="${CFLAGS} %{cflags_profile_feedback}"
#%else
# make %{?_smp_mflags}
#%endif
echo "Build should have completed here."
override_dh_auto_install:
DESTDIR="$(pkgdir)" make -C obj-x86_64-linux-gnu install
find "$(pkgdir)" -type f -name "*.la" -delete -print
install -Dpm 0755 $(SOURCE4) $(pkgdir)/usr/bin/xznew
install -Dpm 0644 $(SOURCE5) $(pkgdir)/usr/man/man1/xznew.1
mkdir $(pkgdir)/usr/lib/x86_64-linux-gnu
mv -v $(pkgdir)/usr/lib/lib*.* $(pkgdir)/usr/lib/x86_64-linux-gnu/.
rm -vf $(pkgdir)/usr/share/doc/$(pkgname)/{COPYING,COPYING.GPLv2}
echo "Remove files that are in package xz-utils"
#rm -vf $(pkgdir)/usr/bin/lzmainfo
#rm -vf $(pkgdir)/usr/bin/xz
#rm -vf $(pkgdir)/usr/bin/xzdiff
#rm -vf $(pkgdir)/usr/bin/xzgrep
#rm -vf $(pkgdir)/usr/bin/xzless
#rm -vf $(pkgdir)/usr/bin/xzmore
#rm -vf $(pkgdir)/usr/share/man/man1/lzmainfo.*
#rm -vf $(pkgdir)/usr/share/man/man1/xz.*
#rm -vf $(pkgdir)/usr/share/man/man1/xzdiff.*
#rm -vf $(pkgdir)/usr/share/man/man1/xzgrep.*
#rm -vf $(pkgdir)/usr/share/man/man1/xzless.*
#rm -vf $(pkgdir)/usr/share/man/man1/xzmore.*
execute_after_dh_auto_install:
echo "--- Start execute_after_dh_auto_install ---"
echo "Different Debian based distros need different patches and adjustments."
#echo PRETTY_NAME=$(PRETTY_NAME)
echo PLATFORM=$(PLATFORM)
echo VERSION_CODENAME=$(VERSION_CODENAME)
echo VERSION_ID=$(VERSION_ID)
echo BUILDDIR=$(BUILDDIR)
echo LIBDIR=$(LIBDIR)
echo pkgdir=$(pkgdir)
echo buildroot=$(buildroot)
echo "----------------------------------------"
echo
echo "--- lintian-fix: remove source files from source package ---"
#rm -rf $(_builddir)/osx
#rm -f $(_builddir)/tests/fonts/Hinting.sfd
#rm -f $(_builddir)/tests/fonts/QuadraticConversionBug.sfd
#rm -f $(_builddir)/tests/fonts/dvng10a-crash.sfd
#rm -f $(_builddir)/tests/fonts/ecrm1000.pfb
echo pkgdir=${pkgdir}
#echo "--- Files that will be packaged ---"
#find $(buildroot) | sed "s|${pkgdir}||g" | sort
#echo "--- End files that will be packaged ---"
echo "--- Show files that will be packaged ---"
find $(pkgdir) | sed "s|$(pkgdir)||g"
echo "--- End show files that will be packaged ---"
echo "--- End execute_after_dh_auto_install ---"