Rebuild developer manual
authorFabian Keil <fk@fabiankeil.de>
Mon, 18 Jan 2021 10:49:45 +0000 (11:49 +0100)
committerFabian Keil <fk@fabiankeil.de>
Mon, 18 Jan 2021 13:30:39 +0000 (14:30 +0100)
doc/webserver/developer-manual/index.html
doc/webserver/developer-manual/newrelease.html

index 6b436b7..fc3361a 100644 (file)
@@ -13,7 +13,7 @@
     <div class="TITLEPAGE">
       <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Developer Manual</a></h1>
       <p class="PUBDATE"><sub><a href="https://www.privoxy.org/user-manual/copyright.html" target="_top">Copyright</a>
     <div class="TITLEPAGE">
       <h1 class="TITLE"><a name="AEN2" id="AEN2">Privoxy Developer Manual</a></h1>
       <p class="PUBDATE"><sub><a href="https://www.privoxy.org/user-manual/copyright.html" target="_top">Copyright</a>
-      &copy; 2001-2020 by <a href="https://www.privoxy.org/" target="_top">Privoxy Developers</a></sub><br></p>
+      &copy; 2001-2021 by <a href="https://www.privoxy.org/" target="_top">Privoxy Developers</a></sub><br></p>
       <div>
         <div class="ABSTRACT">
           <a name="AEN8" id="AEN8"></a>
       <div>
         <div class="ABSTRACT">
           <a name="AEN8" id="AEN8"></a>
index dc47f64..e49d9a5 100644 (file)
@@ -422,6 +422,214 @@ for-privoxy-version=3.0.11</pre>
         </table>
         <p>This will create <tt class="FILENAME">../privoxy_3.0.30-UNRELEASED-1_i386.deb</tt> which can be
         uploaded.</p>
         </table>
         <p>This will create <tt class="FILENAME">../privoxy_3.0.30-UNRELEASED-1_i386.deb</tt> which can be
         uploaded.</p>
+        <p>Using git-buildpackage we start with a clone of the last Debian version:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        gbp clone https://salsa.debian.org/debian/privoxy.git
+        cd privoxy
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>or if the repository is already there</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        cd privoxy
+        gbp pull
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Now import the newly released upstream tarball via debian/watch file:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        gbp import-orig --uscan
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Next update all Debian quilt patches to the new version:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        while quilt push; do quilt refresh; done
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>If some patch is no longer required (because it is already merged upstream), it can be removed using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        quilt delete XX_patchname.patch
+        git rm debian/patches/XX_patchname.patch
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>If the patch needs modification, you can apply, edit and update it with</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        quilt push -f
+        quilt edit some_file
+        quilt refresh
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>until</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        while quilt push; do quilt refresh; done
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>succeeds. Then you can</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        quilt pop -a
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Now add a new entry to the debian/changelog representing the new version:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        dch -v 3.0.30-1
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>and describe what you did before and don't forget to git commit all changes.</p>
+        <p>Now you can build the package on the local machine using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        gbp buildpackage -us -uc
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>You should check for warnings using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        lintian -iI ../build-area/privoxy_3.0.30-1_amd64.changes
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Maybe rebuild the package in different defined cowbuilder environments like</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class=
+              "PROGRAMLISTING">        sudo cowbuilder --build --basepath /var/cache/pbuilder/base.cow ../build-area/privoxy_3.0.30-1.dsc
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>And try to run autopackage testing suite on the result:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class=
+              "PROGRAMLISTING">        autopkgtest /var/cache/pbuilder/result/privoxy_3.0.30-1_amd64.changes -s -- schroot sid
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Or just push the changes to salsa.debian.org, where a CI pipeline is defined for the package, that builds
+        and tests it.</p>
+        <p>If everything is okay, run cowbuilder with i386 and amd64 environments for current Debian stable release and
+        build privoxy_3.0.30-1_i386.deb and privoxy_3.0.30-1_amd64.deb. Then sign both files:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        gpg --detach-sign --armor privoxy_3.0.30-1_i386.deb
+        gpg --detach-sign --armor privoxy_3.0.30-1_amd64.deb
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>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/</p>
+        <p>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:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        sudo apt install build-essential devscripts
+        sudo apt-get build-dep privoxy
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>After this enter the checked out privoxy git tree and check that all (new) build dependencies are met:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        dpkg-checkbuilddeps
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>If something is missing, just add it using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        sudo apt install foobar
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>Now you may update debian/changelog, especially the version number using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        dch
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>and finally build the package:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        debuild -us -uc -b
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>If everything went okay, you may find the resulting Debian package in the parent directory.</p>
+        <p>You may want to clean up the build tree using</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        debian/rules clean
+      </pre>
+            </td>
+          </tr>
+        </table>
+        <p>And maybe repair some artefacts using one or both of the following commands:</p>
+        <table border="0" bgcolor="#E0E0E0" width="100%">
+          <tr>
+            <td>
+              <pre class="PROGRAMLISTING">        git reset --hard
+        git clean -fd
+      </pre>
+            </td>
+          </tr>
+        </table>
       </div>
       <div class="SECT3">
         <h3 class="SECT3"><a name="NEWRELEASE-MACOSX" id="NEWRELEASE-MACOSX">6.3.5. Mac OS X</a></h3>
       </div>
       <div class="SECT3">
         <h3 class="SECT3"><a name="NEWRELEASE-MACOSX" id="NEWRELEASE-MACOSX">6.3.5. Mac OS X</a></h3>