zerotracepen (3.0~rc1)

  • Major changes

    • Install Thunderbird 1:45.8.0-3+zerotracepen2 and handle the Icedove → Thunderbird
      migration, including wrt. persistent data (Closes: #11712, #12242).
      This package also has the patch from
      https://bugzilla.mozilla.org/show_bug.cgi?id=1281959 applied,
      to ease future integration of the Thunderbird AppArmor profile.
      Also, drop the Claws → Icedove migration path.

    • Upgrade to a new snapshot of the Debian and Torproject
      APT repositories: 2017051803 (Closes: #12554).

    • Upgrade Linux packages to the Debian kernel 4.9.0-3, based on
      mainline Linux 4.9.25.

    • Replace the kexec-based memory erasure feature with the Linux kernel's
      memory poisoning (Closes: #12354, #12428). The kexec-based implementation
      was not reliable enough and provided a poor UX. Instead, we now return
      to the initramfs on shutdown and unmount all filesystems there, so their
      content and corresponding caches are erased.

    • Upgrade Tor Browser to 7.0a4 based on Firefox 52.1.1esr (Closes:

      12115, #12464):

      • Unfortunately e10s (multi-process Firefox) is disabled (#12569).
      • Unfortunately persistent bookmarks created for the first time
        in Zero Trace Pen 3.0~rc1 is broken (#12568).
      • Adds exceptions for the extensions Zero Trace Pen installs on top of
        the vanilla Tor Browser (Closes: #11419).
    • Upgrade tor to 0.3.0.7-1 (Closes: #12485) and log both to the
      usual file and the journal (Closes: #12412).

    • Merge the code that makes Zero Trace Pen almost build reproducibly (Refs:

      5630); we still have issues with the fontconfig cache (Refs:

      12567).

    • Minor improvements

    • Add a HACKING document for new code contributors (Closes:

      12164).

    • Rename tor-controlport-filter to onion-grater (Closes: #12394)
      and import patches killing the delta against Whonix version
      (Closes: #12173).

    • Improve onion-grater; thanks to Joy SN joysn1980@yahoo.com
      for the original patches (Closes: #12173):
      · add --listen-interface
      · make stdout/stderr unbuffered to ensure Python exceptions are logged
      · use yaml.safe_load()

    • Improve KeePassX database migration handling (refs: #12375).

    • Electrum: set coin selection strategy to 'Privacy' (Closes: #12177).

    • Allow Onion Circuits to access /proc/pid/status.

    • Make gdm-shell-zerotracepen.desktop more similar to the one shipped
      in gnome-shell 3.22.3-3 (refs: #12364).

    • Greeter: have the help window point to updated documentation,
      use WebKit2 instead of the deprecated WebKit, and hide the sidebar
      and banner.

    • Use exec to start KeePassX, i.e. avoid leaving the wrapper running.

    • Bugfixes

    • Install xserver-xorg-legacy, to fix support for various graphics
      adapters that still don't work with rootless X.Org (Closes: #12542).

    • Use the "intel" X.Org driver for Intel Q35 and Intel Atom
      D4xx/D5xx/N4xx/N5xx graphics controllers (refs: #12219).

    • Give UEFI bootloaders upper-case filenames (Closes: #12511).
      Some UEFI firmware, such as the one in the ThinkPad X220, only recognize
      them if they have an upper-case name.

    • KeePassX: enable "Automatically save after each change" again,
      like we did in Zero Trace Pen 2.x (fixes a regression introduced
      in 3.0~beta3).

    • Install packages needed by the "Test speakers" functionality
      (Closes: #12549).

    • Fix automatic upgrades when one is already applied (Closed:

      12501).

    • When generating the network device blacklist, also blacklist
      network drivers from the staging directory (Closes: #12362).

    • htpdate pool: replace www.sarava.org with leap.se. The former
      has been down for a while and it's not clear when it's going to
      be stable again. The latter should be reliable.

    • Test suite

    • Check that dirmngr used the configured keyserver (Closes: #12371).

    • Sanity check that Chutney starts all nodes in the network.

    • Disable the Sandbox option for all nodes, until Tor#21943
      is fixed (Closes: #12512).

    • Wait for the desktop icons to be displayed in the "Zero Trace Pen desktop is ready"
      step. Let's not try interacting with the desktop earlier.

    • Add tests for memory erasure on "normal" shutdown (refs: #12428).

    • Add tests for memory erasure on "emergency" shutdown, and run some
      with network enabled (refs: #12354).

    • Have eject_cdrom run eject(1) like it used to do in the past.
      Otherwise the machine is immediately halted and we cannot test
      whether memory has been erased.

    • Pass mount_USB_drive structured data instead of free-form text.

    • Test that MAC spoofing and "Disable network" works for
      hotplugged networking devices (Refs: #12362).

    • Build system

    • Generate the Vagrant base box locally as part of the build process,
      instead of downloading it: one less binary blob as input in the build
      process (refs: #12409).

    • Use Vagrant for builds on Jenkins too (Closes: #11972).

    • Tell build script to be more verbose.

    • Respect the 'ARTIFACTS' environment variable if set.

    • Add a second disk to handle the apt-cacher-ng cache, and store
      the corresponding logs in there (Closes: #11979).

    • Use APT snapshots in Vagrant build VMs, create/use a basebox that matches
      the branch/tag/commit being tested, and provision a new VM for each build
      (Closes: #11980, #11981).

    • Ship all build dependencies in the Vagrant basebox, to save some
      time when building ISOs.

    • Make basebox generation compatible with both GnuPG 1.x and 2.x.

    • Set LC_ALL=C, mostly to suppress some warnings.

    • Support forcing VM cleanup before/after build.

    • Add tasks for cleaning up old or all base boxes (refs: #12409).

    • Add build option useful for debugging build failures.

    • Remove obsolete build options.

    • Make auto/scripts/utils.sh more reusable, use it in Rakefile,
      auto/build and setup-zerotracepen-builder.

    • Add an option controlling whether to merge the base branch.

    • Add "rake test" target and import logics from puppet-zerotracepen'
      wrap_test_suite script.

    • Build Zero Trace Pen as a release simply when HEAD is tagged, i.e. we do not
      require building from a detached head any more.

    • Sanity check compression choice when building a release.

    • Use the host's resolv.conf when building the Vagrant base box.
      Since systemd-networkd is used to manage resolv.conf inside the base box,
      and it hasn't been initialized yet (we are not booting it, just chrooting
      into it) DNS is broken otherwise.

    • Release process: "release" a new base box when freezing.

    • Chown/scp artifacts with a single command to limit overhead and warnings
      noise caused by repeated SSH calls.

    • Add a build options to use a custom CPU model, and custom
      machine type, for reproducibility testing (refs: #12345).

    • Add support for installing Tor Browser nightly builds.