From 76ca119ae56c717462528424c45a3e628f427569 Mon Sep 17 00:00:00 2001 From: Roland Rosenfeld Date: Tue, 19 Jan 2021 22:41:38 +0100 Subject: [PATCH] Developer manual: Optimize Debian build instructions. --- doc/source/developer-manual.sgml | 125 +++++++++++++------------------ 1 file changed, 53 insertions(+), 72 deletions(-) diff --git a/doc/source/developer-manual.sgml b/doc/source/developer-manual.sgml index 2d74b5be..8f8c3a7d 100644 --- a/doc/source/developer-manual.sgml +++ b/doc/source/developer-manual.sgml @@ -2619,88 +2619,67 @@ for-privoxy-version=3.0.11 Debian - - First, make sure that you have freshly exported the - right version into an empty directory. (See - "Building and releasing packages" above). Then add a log - entry to debian/changelog, if it is not - already there, for example by running (from the debian directory): - - - debchange -v &p-version;-&p-status;-1 "New upstream version" - - - Then, run (from the root directory): - - - dpkg-buildpackage -rfakeroot -us -uc -b - - - This will create - ../privoxy_&p-version;-&p-status;-1_i386.deb - which can be uploaded. - Using git-buildpackage we start with a clone of the last Debian version: - gbp clone https://salsa.debian.org/debian/privoxy.git - cd privoxy - + gbp clone https://salsa.debian.org/debian/privoxy.git + cd privoxy + or if the repository is already there - cd privoxy - gbp pull - + cd privoxy + gbp pull + Now import the newly released upstream tarball via debian/watch file: - gbp import-orig --uscan - + gbp import-orig --uscan + Next update all Debian quilt patches to the new version: - while quilt push; do quilt refresh; done - + while quilt push; do quilt refresh; done + If some patch is no longer required (because it is already merged upstream), it can be removed using - quilt delete XX_patchname.patch - git rm debian/patches/XX_patchname.patch - + quilt delete XX_patchname.patch + git rm debian/patches/XX_patchname.patch + If the patch needs modification, you can apply, edit and update it with - quilt push -f - quilt edit some_file - quilt refresh - + quilt push -f + quilt edit some_file + quilt refresh + until - while quilt push; do quilt refresh; done - + while quilt push; do quilt refresh; done + succeeds. Then you can - quilt pop -a - + quilt pop -a + Now add a new entry to the debian/changelog representing the new version: - dch -v &p-version;-1 - + dch -v &p-version;-1 + and describe what you did before and don't forget to git commit all changes. @@ -2709,27 +2688,27 @@ for-privoxy-version=3.0.11 Now you can build the package on the local machine using - gbp buildpackage -us -uc - + gbp buildpackage -us -uc + You should check for warnings using - lintian -iI ../build-area/privoxy_&p-version;-1_amd64.changes - + lintian -iI ../build-area/privoxy_&p-version;-1_amd64.changes + Maybe rebuild the package in different defined cowbuilder environments like - sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_&p-version;-1.dsc - + sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_&p-version;-1.dsc + And try to run autopackage testing suite on the result: - autopkgtest /var/cache/pbuilder/result/privoxy_&p-version;-1_amd64.changes -s -- schroot sid - + autopkgtest /var/cache/pbuilder/result/privoxy_&p-version;-1_amd64.changes -s -- schroot sid + Or just push the changes to salsa.debian.org, where a CI pipeline is defined for the package, that builds and tests it. @@ -2741,50 +2720,52 @@ for-privoxy-version=3.0.11 Then sign both files: - gpg --detach-sign --armor privoxy_&p-version;-1_i386.deb - gpg --detach-sign --armor privoxy_&p-version;-1_amd64.deb - + gpg --detach-sign --armor privoxy_&p-version;-1_i386.deb + gpg --detach-sign --armor privoxy_&p-version;-1_amd64.deb + Create a README file containing the recent block from debian/changelog and upload the two packages, the two signatures and the README to a freshly created folder below https://sourceforge.net/projects/ijbswa/files/Debian/ + + Debian GIT Snapshot For building just a git snapshot build the following workflow may be useful. First create a build environment, for this you may have to run the following commands: - sudo apt install build-essential devscripts - sudo apt-get build-dep privoxy - + sudo apt install build-essential devscripts + sudo apt-get build-dep privoxy + After this enter the checked out privoxy git tree and check that all (new) build dependencies are met: - dpkg-checkbuilddeps - + dpkg-checkbuilddeps + If something is missing, just add it using - sudo apt install foobar - + sudo apt install foobar + Now you may update debian/changelog, especially the version number using - dch - + dch + and finally build the package: - debuild -us -uc -b - + debuild -us -uc -b + If everything went okay, you may find the resulting Debian package in the parent directory. @@ -2793,17 +2774,17 @@ for-privoxy-version=3.0.11 You may want to clean up the build tree using - debian/rules clean - + debian/rules clean + And maybe repair some artefacts using one or both of the following commands: - git reset --hard - git clean -fd - - + git reset --hard + git clean -fd + + Mac OS X -- 2.39.2