summaryrefslogtreecommitdiffstats
path: root/wiki/src/contribute
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/src/contribute')
-rw-r--r--wiki/src/contribute/build/website.mdwn86
-rw-r--r--wiki/src/contribute/build/website/languages.inline.mdwn5
-rw-r--r--wiki/src/contribute/build/website/src.inline.mdwn4
-rw-r--r--wiki/src/contribute/calendar.mdwn43
-rw-r--r--wiki/src/contribute/design.mdwn3
-rw-r--r--wiki/src/contribute/git.mdwn2
-rw-r--r--wiki/src/contribute/how/code.mdwn2
-rw-r--r--wiki/src/contribute/how/documentation.mdwn13
-rw-r--r--wiki/src/contribute/how/translate/team/fr.mdwn2
-rw-r--r--wiki/src/contribute/how/translate/with_Git.mdwn2
-rw-r--r--wiki/src/contribute/l10n_tricks.mdwn8
-rw-r--r--wiki/src/contribute/meetings.mdwn2
-rw-r--r--wiki/src/contribute/meetings/201510.mdwn42
-rw-r--r--wiki/src/contribute/release_process.mdwn14
-rw-r--r--wiki/src/contribute/release_process/liveusb-creator.mdwn227
-rw-r--r--wiki/src/contribute/release_process/liveusb-creator/topic_branch.mdwn68
-rw-r--r--wiki/src/contribute/release_process/test.mdwn46
17 files changed, 424 insertions, 145 deletions
diff --git a/wiki/src/contribute/build/website.mdwn b/wiki/src/contribute/build/website.mdwn
index ad3d5f3..80eeba6 100644
--- a/wiki/src/contribute/build/website.mdwn
+++ b/wiki/src/contribute/build/website.mdwn
@@ -1,34 +1,82 @@
-[[!meta title="Build the wiki offline"]]
+[[!meta title="Build a local copy of the website"]]
-Here is how to build the wiki offline.
+The website [[https://tails.boum.org/]] is built using
+[Ikiwiki](https://ikiwiki.info) from source code that is available in
+our main Git repository, along with the rest of the Tails code.
-<div class="bug">
+You can build a local copy of the website on your computer. Building the
+website produces a set a HTML pages stored on your system that you can
+open in your usual web browser even while working offline. Doing so is
+useful for documentation writers and translators to see how their
+changes will apply on the website.
-<p>The following instructions don't work as such in Tails. See
-[[!tails_ticket 9018]] for a possible solution.</p>
+[[!toc]]
-</div>
+Build the website in Linux
+==========================
-If you have not done it before, update the list of packages known to Tails:
+1. Update the list of available packages:
- sudo apt-get update
+ sudo apt-get update
-Then install the dependencies:
+2. Install the required packages:
- sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
- perlmagick libyaml-syck-perl ikiwiki
+ sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
+ perlmagick libyaml-syck-perl ikiwiki
-Clone our main [[Git repository|git]]:
+3. Clone our main [[Git repository|git]]:
- git clone https://git-tails.immerda.ch/tails
+ git clone https://git-tails.immerda.ch/tails
-Then run the following command, at the root of the Git folder:
+[[!inline pages="contribute/build/website/src.inline" raw="yes"]]
- ./build-wiki
+4. Build the website:
-You can now browse the files in
+ cd tails
+ ./build-website
- ./config/chroot_local-includes/usr/share/doc/tails/website/
+[[!inline pages="contribute/build/website/languages.inline" raw="yes"]]
-To accelerate the build, you can disable some languages by editing the
-parameter `po_slave_languages` in ikiwiki.setup.
+5. You can now browse your local copy of the website in the following folder:
+
+ <span class="filename">config/chroot_local-includes/usr/share/doc/tails/website/</span>
+
+<a id="tails"></a>
+
+Build the website in Tails
+==========================
+
+1. [[Create and configure|doc/first_steps/persistence/configure]] a persistent volume and activate the following features:
+
+ - Personal Data
+ - APT Packages
+ - APT Lists
+
+2. Restart Tails, [[enable the persistence|doc/first_steps/persistence/use]], and [[set up an administration password|doc/first_steps/startup_options/administration_password]].
+
+3. Update the list of available packages:
+
+ sudo apt-get update
+
+4. Install the required packages:
+
+ sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
+ perlmagick libyaml-syck-perl ikiwiki
+
+5. Clone our main [[Git repository|git]] in the <span class="filename">Persistent</span> folder:
+
+ cd ~/Persistent/
+ git clone https://git-tails.immerda.ch/tails
+
+[[!inline pages="contribute/build/website/src.inline" raw="yes"]]
+
+6. Build the website:
+
+ cd tails
+ ./build-website --set destdir="/home/amnesia/Persistent/Tor Browser/tails" "$@"
+
+[[!inline pages="contribute/build/website/languages.inline" raw="yes"]]
+
+7. You can now visit the following link in <span class="application">Tor Browser</span> to browse your local copy of the website:
+
+ [[file:///home/amnesia/Persistent/Tor Browser/tails/index.en.html]]
diff --git a/wiki/src/contribute/build/website/languages.inline.mdwn b/wiki/src/contribute/build/website/languages.inline.mdwn
new file mode 100644
index 0000000..4c410e2
--- /dev/null
+++ b/wiki/src/contribute/build/website/languages.inline.mdwn
@@ -0,0 +1,5 @@
+ <div class="tip">
+ <p>To accelerate the build, you can disable some languages by editing
+ the <span class="code">po_slave_languages</span> parameter in the file
+ <span class="filename">ikiwiki.setup</span>.</p>
+ </div>
diff --git a/wiki/src/contribute/build/website/src.inline.mdwn b/wiki/src/contribute/build/website/src.inline.mdwn
new file mode 100644
index 0000000..80981dd
--- /dev/null
+++ b/wiki/src/contribute/build/website/src.inline.mdwn
@@ -0,0 +1,4 @@
+ <div class="tip">
+ <p>The source code of the website is located in the
+ <span class="filename">wiki/src/</span> folder.</p>
+ </div>
diff --git a/wiki/src/contribute/calendar.mdwn b/wiki/src/contribute/calendar.mdwn
index 7c7eb86..4d6c12d 100644
--- a/wiki/src/contribute/calendar.mdwn
+++ b/wiki/src/contribute/calendar.mdwn
@@ -1,21 +1,36 @@
[[!meta title="Calendar"]]
-* 2015-09-03: [[Monthly meeting|contribute/meetings]]
-
-* 2015-09-12: [[Low-hanging fruits session|contribute/low-hanging_fruit_sessions]]
-
-* 2015-09-22: Release 1.6 (anonym is the RM)
-
-* 2015-09-22: [Tails - Computer nutzen und Privatsphäre schützen](http://pentabarf.linkemedienakademie.de/export/lima15_2/events/158.de.html)
- by Vera Henssler and Ulrich Overdieck in Berlin, Germany (in German)
-
-* 2015-09-27 to 2015-10-02: Tor developers meeting in Berlin
-
-* 2015-09-29 to 2015-10-02: Farsi localization sprint in Amsterdam
-
* 2015-10-06 to 08: OTF Annual Summit in Washington DC
-* 2015-11-03: Release 1.7 (anonym is the RM)
+* 2015-10-26:
+ - Freeze Tails 1.7: All feature branches targeting Tails 1.7 should
+ be merged into the `devel` branch by noon, CET. I'm open to make
+ exceptions if you can be online and responsive during that
+ afternoon.
+ - Build and upload Tails 1.7~rc1.
+ - Start testing Tails 1.7~rc1 during late CET if building the image
+ went smoothly.
+
+* 2015-10-27:
+ - Finish testing Tails 1.7~rc1 by the afternoon, CET.
+ - Release Tails 1.7~rc1.
+
+* 2015-11-02:
+ - All new branches targeting Tails 1.7 must be merged into the
+ `testing` branch by noon CET. I'm open to make exceptions if you
+ can be online and responsive during that afternoon.
+ - Tor Browser 4.5.x, based on Firefox 38esr, is hopefully out so
+ we can import it.
+ - Build and upload Tails 1.7 ISO image and IUKs.
+ - Start testing Tails 1.7 during late CET if building the image
+ went smoothly.
+
+* 2015-11-03:
+ - Finish testing Tails 1.7 by the afternoon, CET.
+ - Release Tails 1.7 during late CET, earliest when Mozilla
+ publishes their MFSAs.
+
+* 2015-11-20 to 2015-11-22: User testing of the Installation Assistant
* 2015-12-15: Release 1.8 (anonym is the RM)
diff --git a/wiki/src/contribute/design.mdwn b/wiki/src/contribute/design.mdwn
index 395b756..51ed8d6 100644
--- a/wiki/src/contribute/design.mdwn
+++ b/wiki/src/contribute/design.mdwn
@@ -712,8 +712,7 @@ extension).
that the Debian distribution does not provide or endorse Tails.
- [Tor](http://www.torproject.org/): anonymizing overlay network for
TCP. Our intention is to always use the latest stable version.
-- [Vidalia](https://www.torproject.org/projects/vidalia) is used
- to control Tor's behavior.
+- Vidalia is used to control Tor's behavior.
Being based in Debian, Tails benefits from its great package
management tools, facilitating its build and the inclusion of new
diff --git a/wiki/src/contribute/git.mdwn b/wiki/src/contribute/git.mdwn
index fd1d39d..c5547aa 100644
--- a/wiki/src/contribute/git.mdwn
+++ b/wiki/src/contribute/git.mdwn
@@ -75,7 +75,7 @@ Repositories
Main repository
---------------
-This repository contains the Tails source code and the wiki source.
+This repository contains the Tails source code and the source of the website.
Anyone can check it out like this:
diff --git a/wiki/src/contribute/how/code.mdwn b/wiki/src/contribute/how/code.mdwn
index 3367a46..32f30a3 100644
--- a/wiki/src/contribute/how/code.mdwn
+++ b/wiki/src/contribute/how/code.mdwn
@@ -98,7 +98,7 @@ So you know what bug you want to fix, what feature you want to
implement. At this point, we advise you to:
1. **Gather results of previous research and discussions** on the
- topic you are interested in. Search this wiki, [[!tails_redmine ""
+ topic you are interested in. Search this website, [[!tails_redmine ""
desc="tickets on Redmine"]] and the [developers mailing-list
archive](https://mailman.boum.org/pipermail/tails-dev/).
2. **[[Tell us|contribute/talk]] about your plans** to make sure your
diff --git a/wiki/src/contribute/how/documentation.mdwn b/wiki/src/contribute/how/documentation.mdwn
index db2a55e..6bf40ae 100644
--- a/wiki/src/contribute/how/documentation.mdwn
+++ b/wiki/src/contribute/how/documentation.mdwn
@@ -28,10 +28,11 @@ But there are still many ways you can start contributing:
[[ask us for review|contribute/talk]].
- Small fixes and enhancements to the current documentation are
- greatly welcome. This can be done by [[sending us|contribute/talk]]
- Git patches, by publishing a [[Git]] branch, or simply by email on
- the public mailing list. In the general case, this work should be
- based on the `master` branch.
+ greatly welcome. This can be done by sending Git patches to [[the
+ tails-dev mailing list|contribute/talk]] or by publishing a
+ [[Git]] branch (for example to a fork on
+ [GitLab](https://gitlab.com/Tails/tails)). In general,
+ documentation changes should be based on the `master` branch.
Documentation writers coordinate themselves using our usual
[[development communication channels|contribute/talk]].
@@ -39,6 +40,10 @@ Documentation writers coordinate themselves using our usual
Documentation writers should also read our [[documentation
guidelines|guidelines]].
+New documentation should be wrapped to 80 characters; however, please
+do not submit patches that merely re-wrap existing text, as this makes
+it harder to read the git history.
+
We recommend you to [[build an offline version of the
documentation|contribute/build/website]] to test your contributions
before sharing them with us.
diff --git a/wiki/src/contribute/how/translate/team/fr.mdwn b/wiki/src/contribute/how/translate/team/fr.mdwn
index 90b4ef9..8516849 100644
--- a/wiki/src/contribute/how/translate/team/fr.mdwn
+++ b/wiki/src/contribute/how/translate/team/fr.mdwn
@@ -35,6 +35,8 @@ For French, various bits of text can be translated via Git:
* matsa: [[https://git-tails.immerda.ch/matsa/tails]]
* mercedes508: [[https://git-tails.immerda.ch/mercedes508]]
* seb35: [[https://git-tails.immerda.ch/seb35]]
+* elouann: [[http://git.tails.boum.org/elouann/tails/]]
+ * PGP fingerprint: `4C95 4E38 AC95 9C33 BD03 7A09 A29F 43F4 830F 0A36`
# Glossaries
diff --git a/wiki/src/contribute/how/translate/with_Git.mdwn b/wiki/src/contribute/how/translate/with_Git.mdwn
index d5e09e8..fc7b81f 100644
--- a/wiki/src/contribute/how/translate/with_Git.mdwn
+++ b/wiki/src/contribute/how/translate/with_Git.mdwn
@@ -18,7 +18,7 @@ If you want to use another operating system, these tools are:
* Git - manage source code
* Poedit - translate files
* OpenSSH client - publish your translations on the server
-* tools to [[build the wiki locally|contribute/build/website/]] in
+* tools to [[build a local copy of the website|contribute/build/website/]] in
order to check how it will look like
If you do not use Tails, please ensure that you use at least version 1.5 of Poedit,
diff --git a/wiki/src/contribute/l10n_tricks.mdwn b/wiki/src/contribute/l10n_tricks.mdwn
index 0571cd6..e646dd3 100644
--- a/wiki/src/contribute/l10n_tricks.mdwn
+++ b/wiki/src/contribute/l10n_tricks.mdwn
@@ -17,11 +17,11 @@ Calculate statistics on the translations
Run the [[language statistics.sh]] script.
-Build the wiki offline
-======================
+Build a local copy of the website
+=================================
-To check your translations before you send them, you may want to browse the
-wiki offline. See the [[corresponding documentation|contribute/build/website]].
+To check your translations before sending them, we recommend you [[build
+a local copy of the website|contribute/build/website]].
Search for fuzzy strings with Vim
=================================
diff --git a/wiki/src/contribute/meetings.mdwn b/wiki/src/contribute/meetings.mdwn
index fc29642..4ed8132 100644
--- a/wiki/src/contribute/meetings.mdwn
+++ b/wiki/src/contribute/meetings.mdwn
@@ -1,5 +1,7 @@
[[!meta title="Contributors meetings"]]
+[[!toc]]
+
Each month a contributors meeting is organized. It currently happens
on **third day** of the month on [[#tails-dev|contribute/chat]] at
9pm CEST or CET (7pm or 8pm UTC). Everybody is welcome to attend, existing
diff --git a/wiki/src/contribute/meetings/201510.mdwn b/wiki/src/contribute/meetings/201510.mdwn
new file mode 100644
index 0000000..f9d3658
--- /dev/null
+++ b/wiki/src/contribute/meetings/201510.mdwn
@@ -0,0 +1,42 @@
+[[!meta title="October 2015 online meeting"]]
+
+[[!toc levels=1]]
+
+# Volunteers to handle "[Hole in the roof](https://labs.riseup.net/code/versions/198)" tickets this month
+
+ - We closed [[!tails_ticket 7546 desc="Add MAC spoofing to the manual test suite"]].
+ - _adamb will give a try at [[!tails_ticket 8086 desc="Test our build system with Vagrant 1.6.x"]]
+
+# Important tickets flagged for next release but without assignee
+
+We didn't spot any ticket that needed to be reassigned.
+
+# Availability for LHF
+
+jvoisin, and u should be there.
+
+# Availability for the month
+
+ - u will work on Tails Installer, Icedove, TorBirdy, the mirror
+ infrastructure, and importing the Farsi translations.
+ - sajolida will work on the Installation Assistant, prepare the call for
+ donation of the end of the year, and other fundraising.
+ - muri will be translating and maybe do one or two small easy tasks.
+
+# [[!tails_ticket 10257 desc="Discuss & adopt a strategy to merge commits from Weblate"]]
+
+We realized that this was highly dependent on the way we could implement a
+review process inside Weblate which was something in the original list of
+requirements ("MUST: provide user roles (admin, reviewer, translator"). We
+created a ticket to investigate this [[!tails_ticket 10331 desc="#10331"]].
+
+# [[!tails_ticket 10179 desc="Document mentors for new contributors"]]
+
+We agreed on creating a dedicated page for that and linking it close to the
+[[Easy tasks|contribute/easy_tasks]], probably as a new H3 headers under "Tools
+for contributors".
+
+# [[!tails_ticket 10024 desc="Document issues behind having Tails derivatives"]]
+
+We reviewed the draft by sajolida. Other examples were mentioned such as
+supporting other cryptcurrencies or different pluggable transports.
diff --git a/wiki/src/contribute/release_process.mdwn b/wiki/src/contribute/release_process.mdwn
index 53ad210..7a94c19 100644
--- a/wiki/src/contribute/release_process.mdwn
+++ b/wiki/src/contribute/release_process.mdwn
@@ -306,7 +306,7 @@ matches the date of the future signature.
echo "$RELEASE_DATE" > wiki/src/inc/stable_i386_date.html
sed -ri "s%news/version_.*]]%news/version_$VERSION]]%" wiki/src/inc/stable_i386_release_notes.*
$EDITOR wiki/src/inc/*.html
- ./build-wiki
+ ./build-website
git commit wiki/src/inc/ -m "Update version and date for $VERSION."
### features and design documentation
@@ -328,7 +328,7 @@ pages that were added or changed accordingly to changes coming with
the new release. This e.g. ensures that the RC call for translation
points translators to up-to-date PO files:
- ./build-wiki && git add wiki/src && git commit -m 'Update website PO files.'
+ ./build-website && git add wiki/src && git commit -m 'Update website PO files.'
Call for translation
====================
@@ -692,6 +692,13 @@ Make sure every webserver listed in the `dl.amnesia.boum.org` round
robin pool has the new version. Drop those that are lagging behind and
notify their administrators.
+ISO history
+-----------
+
+Push the released ISO to our Tails ISO history git-annex repo, so that
+our isotesters can fetch it from there and not fail to test because of
+it missing. How to do it is described in our internal Git repo.
+
Update the website and Git repository
=====================================
@@ -809,7 +816,7 @@ Write the announcement for the release in
In any case
-----------
-Generate PO files for the announcements with `./build-wiki`.
+Generate PO files for the announcements with `./build-website`.
Then, send them to <tails-l10n@boum.org> so that they get translated
shortly, perhaps even soon enough to integrate them before pushing the
@@ -869,6 +876,7 @@ repository like this:
git push origin master:master \
)
+
Bug tracker
-----------
diff --git a/wiki/src/contribute/release_process/liveusb-creator.mdwn b/wiki/src/contribute/release_process/liveusb-creator.mdwn
index 1afa3d0..1f5c1f4 100644
--- a/wiki/src/contribute/release_process/liveusb-creator.mdwn
+++ b/wiki/src/contribute/release_process/liveusb-creator.mdwn
@@ -1,103 +1,191 @@
[[!meta title="Releasing liveusb-creator"]]
-[[!toc levels=1]]
+[[!toc levels=3]]
-Upstream and packaging
-======================
+The big picture
+===============
+
+Upstream
+--------
For this package, "upstream" means, from a Debian packaging
-point-of-view, the state of our master branch. Let's not pretend we
+point-of-view, the state of our upstream branches. Let's not pretend we
have not forked liveusb-creator, and admit we are now upstream for our
own version.
-Still, most of the time, we will be releasing -N "Debian"-specific
-packages, that really are packaged Git snapshots, rather than new
-"upstream" releases. Only when we really need it, we will update the
-"orig" tarball from our master branch.
+The `master` branch must always be the one that targets current Tails.
+That's what we have always done, and right
+now `master` is indeed targeting Wheezy.
+
+But that's not enough, since we also need to put releases out with code
+that works on current Debian testing/sid. Thus, we maintain several upstream
+release branches in parallel, each with their own major version number:
+
+ * for releases that target Wheezy:
+ * version = `3.*`
+ * tag = `tails-installer_3.*`
+ * for work and releases that target Jessie (and, as long as compatible,
+ that target testing/sid as well):
+ * branch = feature/jessie (that's what we've been doing so far)
+ * version = `4.*`
+ * tag = `tails-installer_4.*`
+
+Once we can't support both Jessie and testing/sid with the same
+codebase anymore, we'll fork a new upstream release branch that targets Stretch,
+it'll be called feature/stretch, use version `5.*`, etc.
+
+Packaging
+---------
+
+We're using [DEP-14 conventions](http://dep.debian.net/deps/dep14/),
+except for our `master` branch which is used for upstream development
+targetted 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. `3.*` as currently used on
+ Tails/Wheezy 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.
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 `3.*` upstream release, before it lands into
+`feature/jessie` and in turn into a new `4.*` upstream release.
-For how to package `bugfix` and `feature`, see
+For how to package topic branches (`bugfix/*` and `feature/*`), see
[[the dedicated page|topic_branch]].
-Tidy up upstream source
-=======================
+Workflow
+========
-Merge new Fedora's changes if needed:
+Release a new upstream version
+------------------------------
- git checkout master
- git remote add fedora git://git.fedorahosted.org/git/liveusb-creator
- git fetch fedora
- git remote add lmacken https://github.com/lmacken/liveusb-creator.git
- git fetch lmacken
+<a id="upstream-prepare"></a>
-Then see if they have tagged a release that we haven't merged yet,
-and merge the release tag if needed (in advance before the freeze,
-and following our usual review'n'merge process).
+### Prepare the environment
-Do extra changes if needed.
+The new upstream version should be something like `3.14`, based on the
+upstream branch you are building the Debian package for. Adjust and
+export:
-Generate a new upstream tarball
-===============================
+ export NEW_UPSTREAM_VERSION=3.replace_me
+ export UPSTREAM_DEV_BRANCH=master
-**If needed** (that is, basically if dpkg-source complains, when
-running git-buildpackage below, that it cannot represent changes in
-binary files), generate a new upstream tarball from the tip of our
-master branch.
+<a id="upstream-tag"></a>
-The new upstream version should be something like `3.11.6+tails1`:
-only increment the number after `+tails` if the new release is still
-based on Fedora's 3.11.6. Else, set the part before `+tails` to the
-new Fedora release's version number, and reset the right side to
-`+tails1`.
+### Tag the new version
- export NEW_UPSTREAM_VERSION=XXX
- git archive --prefix=git/ \
- --output=../tarballs/liveusb-creator_$NEW_UPSTREAM_VERSION.orig.tar.xz \
- master
+ git checkout "$UPSTREAM_DEV_BRANCH" && \
+ ./setup.py build && \
+ (cd po && \
+ for po in *.po ; do msgmerge --update "$po" \
+ liveusb-creator.pot ; done \
+ ) && \
+ git commit po -m 'Update POT and PO files.' && \
+ git tag \
+ -s "tails-installer_$NEW_UPSTREAM_VERSION" \
+ -m "Releasing Tails Installer $NEW_UPSTREAM_VERSION" && \
+ git push origin "$UPSTREAM_DEV_BRANCH" && \
+ git push origin --tags
-Update the Debian package
-=========================
+<a id="upstream-tarball"></a>
+
+### Generate a new upstream tarball
+
+ mkdir -p ../tarballs && \
+ git archive \
+ --prefix="liveusb-creator-$NEW_UPSTREAM_VERSION/" \
+ --output="../tarballs/liveusb-creator_$NEW_UPSTREAM_VERSION.tar.gz" \
+ "$UPSTREAM_DEV_BRANCH"
+
+<a id="tails-package"></a>
+
+Update the Debian package for Tails
+-----------------------------------
+
+Checkout the packaging branch, that would be `tails/wheezy` or `tails/jessie`,
+for example:
+
+ 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
-Checkout the branch with Debian package specifics:
+Extract the upstream and packaging branch from gbp.conf:
- git checkout debian
+ export UPSTREAM_BRANCH=`gbp config buildpackage.upstream-branch | sed -r -e 's,.*=,,'`
-Merge upstream changes:
+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:
- git merge master
+ mk-origtargz \
+ -C ../tarballs \
+ --version "$NEW_UPSTREAM_VERSION+dfsg" \
+ --copy \
+ ../tarballs/liveusb-creator_$NEW_UPSTREAM_VERSION.tar.gz && \
+ gbp import-orig \
+ --upstream-vcs-tag="tails-installer_$NEW_UPSTREAM_VERSION" \
+ ../tarballs/liveusb-creator_$NEW_UPSTREAM_VERSION+dfsg.orig.tar.gz
Update `debian/changelog`:
gbp dch && dch -e
-(Do not forget to set the appropriate release.)
+In there, set the appropriate:
-Commit:
+* 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,).*,),')"
-Build a new Debian package (use a Wheezy/i386 chroot):
+Build a new Tails package (use a i386 chroot that matches the target distribution):
gbp buildpackage
-If `gbp buildpackage` complains about a missing `upstream/$VERSION`,
-then manually download the corresponding tarball (which can be found
-in our Debian repo unless upstream just had a new release) and place
-it in `..`, and then re-run the command with `--git-no-pristine-tar`.
-
Add a signed tag to the Git repository and push the changes:
gbp buildpackage --git-tag-only --git-sign-tags && \
- git push origin master:master \
- debian:debian && \
- git push --tags
-
-(Make sure both `master` and `debian` are pushed.)
+ git push origin "$UPSTREAM_BRANCH" \
+ "$PACKAGING_BRANCH" \
+ pristine-tar && \
+ git push origin --tags
Add the Debian package to Tails
-===============================
+-------------------------------
Sign the package:
@@ -106,3 +194,28 @@ Sign the package:
Upload:
dupload --to tails $CHANGES_FILE
+
+Update the Debian package
+-------------------------
+
+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
diff --git a/wiki/src/contribute/release_process/liveusb-creator/topic_branch.mdwn b/wiki/src/contribute/release_process/liveusb-creator/topic_branch.mdwn
index 4fe9b93..190ee93 100644
--- a/wiki/src/contribute/release_process/liveusb-creator/topic_branch.mdwn
+++ b/wiki/src/contribute/release_process/liveusb-creator/topic_branch.mdwn
@@ -1,19 +1,53 @@
[[!meta title="Packaging liveusb-creator topic branches"]]
-Let's say your branch is `feature/$TOPIC`, then you package it as
-follows:
-
-1. `git checkout -b debian_$TOPIC debian`
-2. `git merge feature/$TOPIC`
-3. Use `git-dch --auto --snapshot --ignore-branch` to fill `debian/changelog`, and
- insert something like "+feature.$TOPIC.1bugfix-6092-drop-racy-code" (with all special
- characters changed to full stops, i.e. ".") between the version
- last packaged in the "debian" branch, and the gbp snapshot number
- (that looks like "~1.gbpNNNNNN"). In the end, if `$TOPIC =
- 7000-blah-bleh` it should look something like:
- 3.11.6+tails1-4+feature.7000.blah.bleh~1.gbp4a0c9c
-4. Commit the changelog:
-
- git commit debian/changelog
-
-5. Build with `git-buildpackage --git-ignore-branch`.
+Let's say you want to build a package for a topic branch called
+`bugfix/12345-blah`. Please read on.
+
+<div class="note">
+
+If your topic branch has been forked off a different branch than
+<code>master</code>, then you need to adjust the following
+instructions a bit: not only you need to replace occurrences of
+<code>master</code>, but your <code>TARGET_DIST</code> will also
+be different.
+
+</div>
+
+Prepare the environment:
+
+ export TARGET_DIST="tails/wheezy
+ export TOPIC="bugfix/12345-blah"
+
+Fork the appropriate packaging branch into a new one that's dedicated
+to packaging the work that your topic branch introduces:
+
+ git checkout -b "tails/$TOPIC" "$TARGET_DIST"
+
+Create a patch representing the delta you want to add to the package,
+and import it into the current packaging branch as a quilt patch:
+
+ PATCH="$(mktemp).diff"
+ git diff "master..$TOPIC" > "$PATCH" && \
+ quilt import "$PATCH" && \
+ git add debian/patches/ && \
+ git commit -m "Import diff for $TOPIC as a quilt patch."
+
+Fill `debian/changelog`:
+
+ gbp dch --auto --snapshot --ignore-branch
+
+Then, insert something like `+bugfix.12345.blah` (with all special
+characters changed to full stops, i.e. ".") between the version last
+packaged in the `$TARGET_DIST` branch, and the gbp snapshot number (that
+looks like `~1.gbpNNNNNN`). In our example, it should look something
+like `4.3+dfsg-0tails1+bugfix.12345.blah~1.gbp4a0c9c` in the end.
+
+Verify the changelog manually.
+
+Commit:
+
+ git commit debian/changelog
+
+Build in a suitable chroot with:
+
+ gbp buildpackage --git-ignore-branch
diff --git a/wiki/src/contribute/release_process/test.mdwn b/wiki/src/contribute/release_process/test.mdwn
index d145772..20fa49d 100644
--- a/wiki/src/contribute/release_process/test.mdwn
+++ b/wiki/src/contribute/release_process/test.mdwn
@@ -81,12 +81,13 @@ tracked by tickets prefixed with `todo/test_suite:`.
* Run the [tests the TBB folks
use](https://trac.torproject.org/projects/tor/wiki/doc/build/BuildSignoff#TestPagestoUse).
+ (automate: [[!tails_ticket 10260]])
* Compare the fingerprint of Tails and the latest TBB using at least
<https://panopticlick.eff.org/>
- The exposed User-Agent should match the latest TBB's one.
- Update the [[fingerprint section|support/known_issues#fingerprint]] of the
- known issues page if needed.
-* WebRTC should be disabled:
+ known issues page if needed. (automate: [[!tails_ticket 10262]])
+* WebRTC should be disabled: (automate: [[!tails_ticket 10264]])
- In `about:config` check that `media.peerconnection.enabled` is set to
`false`.
- <http://mozilla.github.io/webrtc-landing/>, especially the `getUserMedia`
@@ -96,12 +97,13 @@ tracked by tickets prefixed with `todo/test_suite:`.
`ifconfig | grep inet | grep -v inet6 | cut -d" " -f2 | tail -n1`
* One should be able to switch identities from the web browser.
* Running `getTorBrowserUserAgent` should produce the User-Agent set by the
- installed version of Torbutton, and used in the Tor Browser.
+ installed version of Torbutton, and used in the Tor Browser. (automate: [[!tails_ticket 10268]])
# Tor
* The version of Tor should be the latest stable one, which is the highest version number
- before alpha releases on <http://deb.torproject.org/torproject.org/pool/main/t/tor/>.
+ before alpha releases on <http://deb.torproject.org/torproject.org/pool/main/t/tor/>. (automate:
+ [[!tails_ticket 10259]])
# Claws
@@ -144,20 +146,20 @@ tracked by tickets prefixed with `todo/test_suite:`.
# Erase memory on shutdown
-- `memlockd` must be running
- After booting from DVD, remove Tails boot medium and check that the
memory erasure process is started (`Loading new kernel`, at least).
(automate: [[!tails_ticket 5472]])
- After booting from USB, remove Tails boot medium and check that the
memory erasure process is started (`Loading new kernel`, at least).
+ (automate: [[!tails_ticket 5472]])
# Root access control
* Check you can login as root with `su` neither with the `amnesia` password nor
- with the `live` one.
+ with the `live` one. (automate: [[!tails_ticket 10274]])
* Check that the `$TAILS_USER_PASSWORD` variable, if still existing in the system
environment after the boot has finished, does not contain the clear text
- password.
+ password. (automate: [[!tails_ticket 10275]])
# Virtualization support
@@ -286,16 +288,16 @@ Start I2P by appending `i2p` to the kernel command line.
Enable I2P in the boot loader menu, and enable Windows camouflage via
the Tails Greeter checkbox, and then:
-* Tails OpenPGP Applet's context menu should look readable
+* Tails OpenPGP Applet's context menu should look readable (automate: [[!tails_ticket 10255]])
* The Tor Browser, Unsafe Browser and I2P Browser should all use the
- Internet Explorer theme.
-* Vidalia should not start.
+ Internet Explorer theme. (automate: [[!tails_ticket 10258]])
+* Vidalia should not start. (automate: [[!tails_ticket 10256]])
# Unsafe Web Browser
-* Browsing (by IP) a FTP server on the LAN should be possible.
+* Browsing (by IP) a FTP server on the LAN should be possible. (automate: [[!tails_ticket 10252]])
-* Google must be the default, pre-selected search plugin.
+* Google must be the default, pre-selected search plugin. (automate: [[!tails_ticket 10253]])
# Real (non-VM) hardware
@@ -315,20 +317,20 @@ the Tails Greeter checkbox, and then:
- in one language to which the website is translated
- in one language to which the website is not translated (=> English)
* Browse around in the documentation shipped in the image. Internal
- links should be fine.
+ links should be fine. (automate: [[!tails_ticket 10254]])
# Internationalization
Boot and check basic functionality is working for every supported
language. You *really* have to reboot between each language.
-* The chosen keyboard layout must be applied.
+* The chosen keyboard layout must be applied. (automate: [[!tails_ticket 10261]])
* The virtual keyboard must work and be auto-configured to use the same keyboard
- layout as the X session.
+ layout as the X session. (automate: [[!tails_ticket 10263]])
* In the Tor Browser:
- - Disconnect.me must be the default, pre-selected search plugin.
+ - Disconnect.me must be the default, pre-selected search plugin. (automate: [[!tails_ticket 10265]])
- the Disconnect.me, Startpage and Wikipedia search plugins must be
- localized for the supported locales:
+ localized for the supported locales (automate: [[!tails_ticket 10267]]):
. /usr/local/lib/tails-shell-library/tor-browser.sh
supported_tor_browser_locales
@@ -336,21 +338,21 @@ language. You *really* have to reboot between each language.
## Spellchecking
* Check that every supported language is listed in the list of languages for
- spell checking.
+ spell checking. (automate: [[!tails_ticket 10269]])
- Visit <https://translate.google.com/>.
- Right-click and choose "Check spelling".
- Right-click and check the list of available languages.
* For a few languages, check the spell checking:
- Type something in the textarea.
- Right-click and select a language.
- - Verify that the spelling suggestion are from that language.
+ - Verify that the spelling suggestion are from that language. (automate: [[!tails_ticket 10271]])
* Once [[!tails_ticket 5962]] is fixed, the browser spelling dictionary must be
- localized (for languages that are supported by our branding extension).
+ localized (for languages that are supported by our branding extension). (automate: [[!tails_ticket 10272]])
# Misc
* Check that Tails Greeter's "more options" screen displays properly
on a display with 600 px height, preferably in a language that's
- more verbose than English (e.g. French).
+ more verbose than English (e.g. French). (automate: [[!tails_ticket 10276]])
* Check that all seems well during init (mostly that all services
- start without errors), and that `/var/log/syslog` seems OK.
+ start without errors), and that `/var/log/syslog` seems OK. (automate: [[!tails_ticket 10277]])