wmf-laptop (0.3.2) buster-wikimedia; urgency=medium

  [ Giuseppe Lavagetto ]
  * Add a script to manage the ssh configuration

  [ Moritz Muehlenhoff ]
  * Update SSH default config for new bastions running on Ganeti

 -- Moritz Mühlenhoff <mmuhlenhoff@wikimedia.org>  Mon, 18 Jan 2021 14:07:30 +0100

wmf-laptop (0.3.1) buster-wikimedia; urgency=medium

  [ John Bond ]
  * Fix documentation installation for wmf-laptop-dnsmasq package

 -- John Bond <jbond@wikimedia.org>  Wed, 25 Nov 2020 11:32:38 +0100

wmf-laptop (0.3) buster; urgency=medium

  [ John Bond ]
  * add wmf-laptop-dnsmasq package which configures NetworkManager to use
    dnsmasq and forward WMF DNS queries to the wikimedia.org NS set

  [ Giuseppe Lavagetto ]
  * Use a single "ssh-agent" systemd unit
  * Move git-review to Recommends

  [ Moritz Muehlenhoff ]
  * pws: When building the keyring, read keys from local directory
  * pws: Flag an error if key file can't be found

 -- John Bond <jbond@wikimedia.org>  Mon, 31 Aug 2020 11:52:32 +0200

wmf-laptop (0.2) buster; urgency=medium

  [ Stephen Shirley ]
  * Add wikimedia.cloud domain
  * Simplify manual ssh host key checking

  [ John Bond ]
  * Rename source package to wmf-laptop

  [ Ahmon Dancy ]
  * Fixed a minor typo
  * Fixed paths to SETUP.* files in README

  [ Moritz Muehlenhoff ]
  * Explicitly depend on git-review 1.27
  * Add Provides/Replaces/Conflicts for the old wmf-sre-laptop package name

 -- Moritz Mühlenhoff <moritz@wikimedia.org>  Mon, 31 Aug 2020 09:52:51 +0200

wmf-laptop (0.1) buster; urgency=medium

  * Initial release.

 -- Moritz Muehlenhoff <moritz@wikimedia.org>  Mon, 06 Apr 2020 11:52:47 +0200
