From f1e36f7fd068ec68dfab817b942012ba5869a096 Mon Sep 17 00:00:00 2001 From: HungryHobo <HungryHobo@mail.i2p> Date: Thu, 18 Nov 2010 20:56:42 +0000 Subject: [PATCH] Create Debian packages in debian/packages/ instead of ../ --- build.xml | 58 +++++++++++++----------------------------- debian/buildpackage.sh | 30 ++++++++++++++++++++++ debian/makerepo.sh | 5 ++-- debian/rules | 4 +-- 4 files changed, 51 insertions(+), 46 deletions(-) create mode 100755 debian/buildpackage.sh diff --git a/build.xml b/build.xml index 17a5d36eb..bc0b4cce7 100644 --- a/build.xml +++ b/build.xml @@ -37,7 +37,8 @@ <echo message=" javadoc: generate javadoc for the entire project into ./build/javadoc" /> <echo message=" slackpkg: generate Slackware packages in ./Slackware/i2p and ./Slackware/i2p-base" /> <echo message=" debianhowto: instructions on building Debian packages" /> - <echo message=" debian: generate Debian packages (source + binary)" /> + <echo message=" debian: generate Debian packages in ./debian/packages" /> + <echo message=" (libc6-i686 and libc6-amd64 required, ant>=1.8 required)" /> <echo message=" debianrepo: build a Debian repository (reprepro required)" /> <echo message=" updaterWithDesktopgui: tar the built files and desktopgui in an i2pupdate.zip" /> <echo message=" pkgWithDesktopgui: distclean then package everything up with the desktopgui" /> @@ -236,19 +237,17 @@ <delete file="syndie-standalone.zip" failonerror="false" quiet="true" /> <delete file="i2psnark-standalone.zip" failonerror="false" quiet="true" /> <delete file="BOB-one.jar" failonerror="false" quiet="true" /> - </target> - <target name="distclean" depends="clean"> <delete dir="debian/tmp" /> - <delete dir="debian/repo" /> <delete dir="debian/db" /> <delete file="debian/files" /> <delete file="debian/build" /> <delete file="debian/substvars"/> - <!-- HH to move - <delete> - <fileset dir=".." includes="i2p_*.tar.gz,i2p_*.deb,i2p_*.dsc,i2p_*.changes" /> + </target> + <target name="distclean" depends="clean"> + <delete includeemptydirs="true" removeNotFollowedSymlinks="true" failonerror="false" > + <fileset dir="debian/packages" followSymlinks="false" /> </delete> - --> + <delete dir="debian/repo" /> <ant dir="core/java/" target="distclean" /> <ant dir="router/java/" target="distclean" /> <ant dir="apps/ministreaming/java/" target="distclean" /> @@ -924,8 +923,9 @@ <echo message="... and mtn cert t:i2p-${release.number} branch i2p.i2p.release" /> </target> - <target name="debian"> - <!-- same as debian-binary + debian-source, but only one build needed --> + <target name="debian" depends="distclean, debian-source, debian-binary" /> + + <target name="debian-binary"> <echo message="Did you update the version in these files?" /> <exec executable="ls" failonerror="true"> <arg value="-l" /> @@ -934,35 +934,12 @@ <echo message="====================" /> <!-- bundle the 20MB jetty 5 lib since there probably isn't a deb for it --> <ant dir="apps/jetty" target="ensureJettylib" /> - <exec executable="dpkg-buildpackage" failifexecutionfails="true"> - <arg value="-I_MTN" /> - <arg value="-ai386" /> - </exec> - <!-- rather than doing a complete new build, recreate debian/tmp by calling the "build" target in debian/rules --> - <delete dir="debian/tmp" /> - <exec executable="dpkg-buildpackage" failifexecutionfails="true"> - <arg value="-I_MTN" /> - <arg value="-Tbuild" /> - <arg value="-aamd64" /> - <env key="MAKEFLAGS" value="-B" /> + + <exec dir="debian" executable="./buildpackage.sh" failonerror="true"> + <arg value="i386" /> </exec> - <exec executable="dpkg-buildpackage" failifexecutionfails="true"> - <arg value="-I_MTN" /> - <!-- don't clean so the previous package isn't deleted --> - <arg value="-nc" /> - <arg value="-aamd64" /> - </exec> - </target> - <target name="debian-binary"> - <!-- binary only --> - <echo message="Did you update the version in these files?" /> - <exec executable="ls" failonerror="true"> - <arg value="-l" /> - <arg value="debian/changelog" /> - </exec> - <echo message="====================" /> - <exec executable="dpkg-buildpackage" failifexecutionfails="true" > - <arg value="-b" /> + <exec dir="debian" executable="./buildpackage.sh" failonerror="true"> + <arg value="amd64" /> </exec> </target> <target name="debian-source"> @@ -974,9 +951,8 @@ <arg value="debian/changelog" /> </exec> <echo message="====================" /> - <exec executable="dpkg-buildpackage" failifexecutionfails="true" > - <arg value="-S" /> - <arg value="-I_MTN" /> + <exec dir="debian" executable="./buildpackage.sh" failonerror="true"> + <arg value="source" /> </exec> </target> <target name="debianrepo" depends="debian"> diff --git a/debian/buildpackage.sh b/debian/buildpackage.sh new file mode 100755 index 000000000..0bfdffe3b --- /dev/null +++ b/debian/buildpackage.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# This script takes one argument, which is the architecture to build for, +# or "source". + +echo Target architecture: $1 +VERSION=`grep String\ VERSION ../core/java/src/net/i2p/CoreVersion.java | cut -d\" -f2` +echo "I2P Version: ${VERSION}" +builddir="packages/$1/i2p-${VERSION}" + +if [ "$1" = "source" ]; then + cd .. + ant clean + tempdir=../_i2p_copy_temp___ + cp -a . ${tempdir} + mkdir -p debian/packages/$1 + mv ${tempdir} debian/${builddir} + cd debian/${builddir} + dpkg-buildpackage -I_MTN -Idebian/packages -S +else + mkdir -p ${builddir} + cd ${builddir} + find ../../../.. -not -name . -and -not -name .. -maxdepth 1 -exec ln -fs {} \; + dpkg-buildpackage -I_MTN -b -a$1 +fi +if [ "$?" -ne 0 ]; then + exit 1 +fi + +cd ../../.. +rm -rf ${builddir} diff --git a/debian/makerepo.sh b/debian/makerepo.sh index 64d696966..ad845f31d 100755 --- a/debian/makerepo.sh +++ b/debian/makerepo.sh @@ -28,8 +28,9 @@ echo "SignWith: ${SIGNER}" >> ${CONFFILE} # create the repository echo Building the repository... -find ../.. -name i2p_*.deb -maxdepth 1 -exec reprepro --ask-passphrase --outdir ${DIR} includedeb all {} \; -find ../.. -name i2p_*.changes -maxdepth 1 -exec reprepro --ask-passphrase --outdir ${DIR} include all {} \; +find packages/ -name *.deb -exec reprepro --ask-passphrase --outdir ${DIR} includedeb all {} \; +find packages/ -name *.changes -exec reprepro --ask-passphrase --outdir ${DIR} include all {} \; +find packages/ -name *.dsc -exec reprepro --ask-passphrase --outdir ${DIR} includedsc all {} \; # export the public key gpg --armor --export ${SIGNER} > ${DIR}/0x${KEYID}.asc diff --git a/debian/rules b/debian/rules index bf63b845c..ea785e0d6 100755 --- a/debian/rules +++ b/debian/rules @@ -120,9 +120,7 @@ binary-arch: binary-indep: clean: - rm -f debian/build - rm -rf debian/tmp/ - ant distclean + ant clean @exit 0 get-orig-source: -- GitLab