[Pkg-privacy-commits] [tails-installer] 01/01: Add README.source for building this package.

Ulrike Uhlig u-guest at moszumanska.debian.org
Tue Nov 15 11:59:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

u-guest pushed a commit to branch debian/sid
in repository tails-installer.

commit 7feeb5b05d4dd65dc53d44fc7d5d6b0cb3f6a7b2
Author: Ulrike Uhlig <u at 451f.org>
Date:   Tue Nov 15 12:59:04 2016 +0100

    Add README.source for building this package.
---
 debian/README.source | 266 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 266 insertions(+)

diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..dae9783
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,266 @@
+https://tails.boum.org/contribute/release_process/tails-installer/
+State: november 2016
+
+Packaging
+---------
+
+We're using [DEP-14 conventions](http://dep.debian.net/deps/dep14/),
+except for our `master` branch which is used for upstream development
+targeted at current Tails, as said above. More specifically:
+
+* The `pristine-tar` branch contains the binary delta between DFSG-freed
+  tarballs and the corresponding tag. It's automatically maintained by
+  `gbp import-orig`.
+* The `debian/sid` branch is used to build the package that we upload to
+  Debian unstable. The tags on this branch are called `debian/$package_version`,
+  which is the default when creating them with
+  `gbp buildpackage --git-sign-tags --git-tag-only`;
+  in practice this is something like `debian/4.0+dfsg-1`.
+* The `debian/$codename-backports` branch is used to prepare packages
+  that we upload to the official backports repository for Debian `$codename`.
+  E.g. here we want to have `debian/jessie-backports` soon after the initially
+  uploaded package reaches Debian testing. The tags on this branch are also called
+  `debian/$package_version`. In practice this is something like
+  `debian/4.0+dfsg-1~bpo8+1`.
+* The `tails/$codename` branch is used to prepare packages that we upload
+  to the Tails APT repo, but not to Debian -- e.g. `4.*` as currently used on
+  Tails/Jessie will never be uploaded to Debian.
+* Additionally, we use `tails/$feature` branches for other Tails-specific packaging branches.
+* The `upstream/3.x+dfsg`, `upstream/4.x+dfsg`, etc. branches are what we tell `gbp`
+  to use as its "upstream" branch. Make sure to check them out when setting up the repository
+  for the first time.
+* For Ubuntu, we want to support the current Ubuntu version (currently `wily`), the
+  upcoming version, currently (`xenial`) and the current LTS, from 16.04 on (currently
+  `xenial`).
+  We do not maintain any Git branches related to Ubuntu releases, as simply the changelog
+  entries are modified.
+
+Topic branches
+--------------
+
+In practice, it's expected that Tails contributors submit bugfix and
+feature branches forked off master, because they want them part of next
+Tails release. Hence, it will happen that code lands into master first,
+and in turn into a new `4.*` upstream release, before it lands into
+`feature/stretch` and in turn into a new `5.*` upstream release.
+
+For how to package topic branches (`bugfix/*` and `feature/*`), see
+[[the dedicated page|topic_branch]].
+
+Workflow
+========
+
+Release a new upstream version
+------------------------------
+
+-> This is done by upstream.
+
+### Prepare the environment
+
+The new upstream version should be something like `4.14`, based on the
+upstream branch you are building the Debian package for. Adjust and
+export:
+
+    export NEW_UPSTREAM_VERSION=4.replace_me
+    export UPSTREAM_DEV_BRANCH=master
+    export PKG_NAME=tails-installer
+
+<a id="upstream-tag"></a>
+
+### Tag the new version
+
+    git checkout "$UPSTREAM_DEV_BRANCH" && \
+    ./setup.py build && \
+       (cd po && \
+           for po in *.po ; do msgmerge --update "$po" \
+           "$PKG_NAME.pot" ; done \
+       ) && \
+       git commit po -m 'Update POT and PO files.' && \
+    git tag \
+       -s "${PKG_NAME}_${NEW_UPSTREAM_VERSION}" \
+       -m "Releasing Tails Installer $NEW_UPSTREAM_VERSION" && \
+    git push --tags origin "$UPSTREAM_DEV_BRANCH"
+
+<a id="upstream-tarball"></a>
+
+### Generate a new upstream tarball
+
+    mkdir -p ../tarballs && \
+    git archive \
+       --prefix="${PKG_NAME}-${NEW_UPSTREAM_VERSION}/" \
+       --output="../tarballs/${PKG_NAME}_${NEW_UPSTREAM_VERSION}.tar.gz" \
+       "$UPSTREAM_DEV_BRANCH"
+
+<a id="tails-package"></a>
+
+Update the Debian package for Tails
+-----------------------------------
+
+-> This is currently done by upstream.
+
+Checkout the packaging branch:
+
+	export PKG_NAME=tails-installer
+	export PACKAGING_BRANCH=tails/jessie
+	git checkout "$PACKAGING_BRANCH"
+
+Verify that `debian/gbp.conf` references the correct upstream and Debian (packaging) branches,
+and that `pristine-tar` usage is enabled, e.g.:
+
+	[DEFAULT]
+	upstream-branch = upstream/4.x+dfsg
+	debian-branch = tails/jessie
+	pristine-tar = True
+
+Extract the upstream and packaging branch from gbp.conf:
+
+	export UPSTREAM_BRANCH=`gbp config buildpackage.upstream-branch | sed -r -e 's,.*=,,'`
+
+Create a DFSG-compatible tarball from the previously created Git
+archive and reimport it into the source tree. This merges, into the
+`debian-branch` specified in `gbp.conf`, not only the commit that
+imported the current DFSG-free upstream tarball into the
+`upstream-branch`, but also the corresponding upstream Git history:
+
+	mk-origtargz \
+	   -C ../tarballs \
+	   --version "$NEW_UPSTREAM_VERSION+dfsg" \
+	   --copy \
+	   ../tarballs/${PKG_NAME}_${NEW_UPSTREAM_VERSION}.tar.gz && \
+	gbp import-orig \
+	   --upstream-vcs-tag="${PKG_NAME}_$NEW_UPSTREAM_VERSION" \
+	   ../tarballs/${PKG_NAME}_${NEW_UPSTREAM_VERSION}+dfsg.orig.tar.gz
+
+Update `debian/changelog`:
+
+    gbp dch && dch -e
+
+In there, set the appropriate:
+
+* version number, such as `4.3+dfsg-0tails1`; in particular, note that
+  the Debian revision starts with `-0` for any package meant for the
+  Tails APT repository, while the first package that will be uploaded
+  to Debian will have `-1`;
+* target release name.
+
+Commit the changelog:
+
+    git commit debian/changelog -m "$(head -n 1 debian/changelog | sed -e 's,).*,),')
+
+Git-Dch: Ignore
+"
+
+Make sure that the working environment is clean:
+
+    git clean -fdx
+
+Build a new Tails package (use a i386 chroot that matches the target distribution):
+
+    gbp buildpackage
+
+Add a signed tag to the Git repository and push the changes:
+
+    gbp buildpackage --git-tag-only --git-sign-tags && \
+    git push --tags origin "$UPSTREAM_BRANCH" \
+                    "$PACKAGING_BRANCH" \
+                    pristine-tar
+
+Add the Debian package to Tails
+-------------------------------
+
+Sign the package:
+
+    debsign $CHANGES_FILE
+
+Upload:
+
+    dupload --to tails $CHANGES_FILE
+
+Update the Debian package
+-------------------------
+
+-> This is currently done by the package maintainer in Debian.
+
+This assumes that the latest upstream release has been imported into
+a Tails packaging branch (e.g. `tails/jessie`) already.
+
+And then, a maintainer of `tails-installer` in Debian updates the
+package in sid accordingly, for example:
+
+* check out the `debian/sid` branch
+* merge the `tails/jessie` branch
+* bump version to `4.3+dfsg-1`
+* build, test and upload to sid
+* have gbp create a `debian/4.3+dfsg-1` tag
+* push the Debian packaging branch (`debian/sid`) and the new tag
+
+Example for a backport to Jessie:
+
+* check out the `debian/jessie-backports` branch
+* merge the `debian/sid` branch
+* `dch --bpo` to bump version to `4.3+dfsg-1~bpo8+1`
+* build, test and upload to jessie-backports
+* have gbp create a `debian/4.3+dfsg-1_bpo8+1` tag
+* push the Debian packaging branch (`debian/jessie-backports`) and the new tag
+
+Upload a package to our Ubuntu PPA
+----------------------------------
+
+tails-installer is not part of the current Ubuntu stable release.
+
+Team members are allowed to upload a package to our Ubuntu PPA:
+<https://launchpad.net/~tails-team/+archive/ubuntu/tails-installer>
+
+You'll need to configure the dput tool to upload to the PPA and put into
+`$HOME/.dput.cf` (adjust to use your Launchpad ID):
+
+    [ppa-tails-installer]
+    fqdn = ppa.launchpad.net
+    method = sftp
+    incoming = ~tails-team/ubuntu/tails-installer/
+    login = your_launchpad_id
+    allow_unsigned_uploads = 0
+
+* checkout the `debian/sid` branch
+  to build a package for the next Ubuntu release or checkout the
+  `debian/jessie-backports` branch to build a package for the
+  current Ubuntu version or current LTS.
+* bump version to `4.3+dfsg-0ubuntu1~$codename` using `dch -i`
+  where `$codename` is the name of the target Ubuntu distribution.
+* if it does not exist, rebuild the .orig.tar.gz of the latest version
+  from pristine-tar (use the latest git log entry to find the version):
+  `pristine-tar checkout ../tails-installer_4.4.6+dfsg.orig.tar.gz`
+* build a source only package using `debuild -i -uc -us -sa -S`
+  Once the package has been built, a `.changes` file will be created in
+  pbuilder's configured destination directory.
+* test the package (piuparts, Lintian, etc.)
+* sign the corresponding source.changes file
+  `debsign ../tails-installer_$NEW_UPSTREAM_RELEASE-xxx_source.changes`
+  Replace "xxx" with the correct version information.
+  The signature should be made with a key which is registered
+  at Launchpad as being part of the Tails team.
+* Upload to the PPA:
+  `dput ppa-tails-installer ../tails-installer_$NEW_UPSTREAM_RELEASE+xxx_source.changes`
+
+You will receive an email informing you if the upload was really successful
+or if it contained any errors. On success, you should now revert your changes on the
+Debian branch using `git reset HEAD --hard`.
+
+Quality assurance for Debian and Ubuntu packages
+------------------------------------------------
+
+    Scenario: Installing Tails to a pristine USB drive
+      Given I have started Debian
+      And I have a Tails ISO image
+      When I install the tails-installer package
+      And I plug USB drive "install"
+      And I ask Tails Installer to install my Tails ISO image to USB drive "install"
+      Then my Tails ISO image is installed on USB drive "install"
+
+    Scenario: Upgrading an old Tails USB installation from an ISO image
+      Given I have started Debian
+      And I have a Tails ISO image
+      When I install the tails-installer package
+      And I plug USB drive "upgrade" that has an old Tails installed
+      And I ask Tails installer to upgrade USB drive "upgrade" with my Tails ISO image
+      Then my Tails ISO image is installed on USB drive "upgrade"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/tails-installer.git



More information about the Pkg-privacy-commits mailing list