schleuder (3.4.0-2+deb10u3) buster; urgency=medium

  * debian/control:
    - (Build)-Depend on ruby-charlock-holmes to aid in encoding detection.
  * debian/patches:
    - Improve patch to handle encoding errors introduced in the previous
      version, 3.4.0-2+deb10u2. The former approach had shortcomings if
      parsing unencrypted, but signed UTF-8 mails or mail parts without a
      charset. The parsing failed and lead to further errors.
      The new approach switches to UTF-8 as the default input, and tries to
      convert non-UTF-8 mails. In case this fails, the invalid characters are
      dropped and a note is added to the mail that this happened.
      To aid in encoding detection, a new dependency is added,
      ruby-charlock-holmes.
      (Closes: #948982)
    - Add patch to let x-add-key handle mails with attached, quoted-printable
      encoded keys. Such mails might be produced by Thunderbird. Before, such
      mails were not recognized.
      (Closes: #956827)
    - Add patch to fix x-attach-listkey with mails created by Thunderbird that
      include protected headers. Before, the output was garbled and unusable.
      (Closes: #956964)

 -- Georg Faerber <georg@debian.org>  Fri, 01 May 2020 20:25:26 +0000

schleuder (3.4.0-2+deb10u2) buster; urgency=medium

  * debian/patches:
    - Pull in upstream patch to add missing List-Id header to notification
      mails sent to admins. (Closes: #948980)
    - Pull in upstream patch to handle decryption problems gracefully: Handle
      incoming mails encrypted to an absent key, using symmetric encryption or
      containing PGP-garbage in a more graceful manner: Don't throw an
      exception, don't notify (and annoy) the admins, instead inform the
      sender of the mail how to do better. (Closes: #948981)
    - Pull in upstream patch to default to ASCII-8BIT encoding. This should
      ensure Schleuder is able to handle mails with different charsets.
      (Closes: #948982)

 -- Georg Faerber <georg@debian.org>  Mon, 27 Jan 2020 10:28:36 +0000

schleuder (3.4.0-2+deb10u1) buster; urgency=medium

  * debian/patches:
    - Extend existing patch which fixes problems related to the use of
      "protected headers": Fix recognizing keywords in mails with "protected
      headers" and empty subject. Previously, if the subject was unset,
      keywords were not recognized and the original "protected headers" could
      leak.
      This approach, extending the existing patch, instead of adding a new
      one, reduces noise and keeps the diff small, as the same part of the
      code is targeted.
      (Closes: #940524)
    - Add patch to strip non-self-signatures when refreshing or fetching keys.
      (Closes: #940526)
    - Add patch to error out if the argument provided to `refresh_keys` is not
      an existing list.
      (Closes: #940527)

 -- Georg Faerber <georg@debian.org>  Fri, 08 Nov 2019 10:45:22 +0000

schleuder (3.4.0-2) unstable; urgency=medium

  * debian/patches:
    - Pull in upstream patch to handle mails with protected headers as
      introduced in Mutt 1.12.0, which was recently released. These headers
      are just contained within the plain body of a mail produced by Mutt,
      they are not further wrapped into a specifically marked MIME-part.
      Schleuder fails to handle such messages, accordingly, this patch fixes
      this behaviour. (Closes: #930870)

 -- Georg Faerber <georg@debian.org>  Fri, 21 Jun 2019 19:05:42 +0000

schleuder (3.4.0-1) unstable; urgency=medium

  * New upstream release.
  * debian/changelog:
    - Drop trailing whitespaces.
  * debian/patches:
    - Drop nearly all, now obsolete, patches newly applied in the -7 to -10
      releases. All of them are integrated upstream, except for the patch
      which bumps the dependencies on sinatra and sinatra-contrib to ~> 2, as
      defined in the gemspec, and a patch which adapts some parts of the code
      to ruby-activerecord 5.2 as shipped in unstable and testing.
    - Refresh for new release.
  * debian/tests:
    - Rename test which checks if the API daemon is reachable after
      installation to better reflect reality.
  * debian/upstream/signing-key.asc:
    - Remove unneeded signatures.

 -- Georg Faerber <georg@riseup.net>  Thu, 14 Feb 2019 17:10:34 +0000

schleuder (3.3.0-10) unstable; urgency=medium

  * debian/control:
    - Bump build dependency on ruby-database-cleaner to >= 1.7.0~.
  * debian/patches:
    - Pull in upstream patch to not rely on relative paths in some specs.
      Loading the filters by relative paths doesn't work in the context of
      autopkgtest. In the past, this made the testsuite unreliable, as the
      success depended on the execution order of the specs.
    - Drop patch to disable flaky spec which tests signed-inline messages, to
      re-enable it.
    - Pull in upstream patch which reworks this spec to make it more reliable.
    - Unify two patches to adapt the gemspec and the specs to ruby-mail 2.7.1.
    - Refresh for new release.

 -- Georg Faerber <georg@riseup.net>  Tue, 12 Feb 2019 23:41:27 +0000

schleuder (3.3.0-9) unstable; urgency=medium

  * debian/control:
    - Drop obsolete dependency on debhelper. This is satisfied since a while
      by a build dependency on debhelper-compat.
  * debian/Rakefile:
    - Require active_record first before loading active_record code. This
      change is necessary to adapt to a recent change in rails.

 -- Georg Faerber <georg@riseup.net>  Thu, 07 Feb 2019 20:59:48 +0000

schleuder (3.3.0-8) unstable; urgency=medium

  * debian/control:
    - Bump required versions of ruby-sinatra and ruby-sinatra-contrib to
      >= 2~.
    - Add missing dependencies on ruby-mail >= 2.7.1~.
  * debian/patches:
    - Pull in upstream patch to strip HTML-part of
      multipart/alternative-messages if it contains keywords. The keywords
      aren't parsed, because Schleuder doesn't touch any HTML. In order to
      prevent the keywords from being disclosed to third parties, for example
      via resent messages, the HTML-part is completely dropped. This issue
      should be considered privacy-sensitive.
    - Add patch to disable a flaky spec, which tests signed-inline cleartext
      messages. Since some time, this formerly pretty stable spec became
      flaky. It it still unclear what causes this, ruby-mail 2.7.1 might be
      somehow related. (Closes: #919072)
    - Add patch which fixes the expected output of one spec. This spec tests
      that mails with broken UTF-8 don't raise an error. However, the fixture
      mail is empty. Schleuder rightfully doesn't deliver the mail, but
      reports it as empty. This problem became only obvious by now, using
      ruby-mail 2.7.1.
    - Add patch to bump the dependency on the mail gem, as both unstable and
      testing ship a newer major version. (Closes: #920031)
    - Add patch to bump the dependency on the sinatra and sinatra-contrib
      gems, as both unstable and testing ship newer major versions.
      This patch, and the three before, should fix the current FTBFS
      situation, and allow Schleuder to migrate to testing before the upcoming
      soft freeze.
    - Add missing .patch extension to one patch.
    - Refresh for new release.

 -- Georg Faerber <georg@riseup.net>  Tue, 05 Feb 2019 22:32:16 +0000

schleuder (3.3.0-7) unstable; urgency=medium

  * debian/control:
    - Bump dependencies on ruby-activerecord to >= 5.2~.
    - Add build dependency on ruby-rack-test. This is needed due to
      ruby-sinatra >= 2 in use.
    - Bump Standards-Version to 4.3.0, no changes necessary.
  * debian/copyright:
    - Bump years to include 2019.
  * debian/patches:
    - Pull in upstream patch to fix the expected output of two specs:
      ruby-mail 2.7.1 inserts \r additionally to \n, to mark newlines.
      (Closes: #919072)
    - Pull in upstream patch including fixes for ruby-activerecord 5.2: it
      specifies the ActiveRecord version in each migration, and adjusts the
      migrations spec to the new ActiveRecord::Migrator API.
      (Closes: #918569)
  * debian/tests/upstream-tests:
    - Check the environment, before linking /dev/random to /dev/urandom to
      deal with limited entropy, to only execute this workaround in
      environments other than the GitLab CI one. This change was necessary, to
      fix the otherwise failing autopkgtest job provided by the Salsa CI team
      due to the filesystem being read-only.
  * debian/.gitlab-ci.yml:
    - Drop custom config, rely on the Salsa CI Team.

 -- Georg Faerber <georg@riseup.net>  Mon, 04 Feb 2019 02:15:24 +0000

schleuder (3.3.0-6) unstable; urgency=medium

  * debian/changelog:
    - Fix typos.
  * debian/control:
    - Fix typo.
  * debian/patches:
    - Reintroduce dirmngr patch to disable Tor and enforce the use of the
      "standard resolver" while running the specs. It seems, that dirmngr
      still doesn't work reliably if invoked in a chroot.

 -- Georg Faerber <georg@riseup.net>  Fri, 26 Oct 2018 11:29:46 +0000

schleuder (3.3.0-5) unstable; urgency=medium

  * debian/compat:
    - Drop obsolete compat file, now handled via build dependency.
  * debian/control:
    - Add debhelper-compat as a build dependency.
    - Declare that the build doesn't need root privileges.
  * debian/patches:
    - Drop patch, which added a dirmngr config to disable the use of Tor and
      enforced the use of the so called "standard resolver" for DNS
      resolution. Older dirmngr versions were problematic in the past in this
      regard, and lead to failing specs. Further observation is needed, to
      ensure the situation changed for the better.

 -- Georg Faerber <georg@riseup.net>  Thu, 25 Oct 2018 21:49:49 +0000

schleuder (3.3.0-4) unstable; urgency=medium

  * debian/schleuder.postinst:
    - Handle upgrade from schleuder < 3.0. (Closes: #867031)
  * debian/rules:
    - Make the build verbose.
  * debian/.gitlab-ci.yml:
    - Install and start haveged, drop linking /dev/random to /dev/urandom. A
      recent change in the CI infrastructure of salsa.d.o made this necessary,
      as the former solution failed due to "read-only file system".

 -- Georg Faerber <georg@riseup.net>  Thu, 04 Oct 2018 10:07:21 +0000

schleuder (3.3.0-3) unstable; urgency=medium

  * debian/watch:
    - Ensure that the version group starts with a digit. Otherwise, uscan
      might try to pull in the schleuder-cli release tarball.

 -- Georg Faerber <georg@riseup.net>  Tue, 02 Oct 2018 09:07:06 +0000

schleuder (3.3.0-2) unstable; urgency=medium

  * debian/schleuder.postinst:
    - Fix permissions of the config which sets default values for new lists.

 -- Georg Faerber <georg@riseup.net>  Thu, 27 Sep 2018 22:52:57 +0000

schleuder (3.3.0-1) unstable; urgency=medium

  * New upstream release.
  * debian/changelog:
    - Fix typos.
  * debian/copyright:
    - Use team@schleuder.org as upstream contact email.
    - Use HTTPS in link to GPL version 3.
    - Wrap and sort.
  * debian/control:
    - Bump Standards-Version to 4.2.1, no changes needed.
    - Use schleuder.org as upstream homepage.
    - Depend on ruby-factory-bot, instead of ruby-factory-girl, while
      building.
    - Require ruby-mail-gpg >= 0.3.3~. (Closes: #901168)
    - Require default-mta or postfix or mail-transport-agent.
    - Wrap and sort.
  * debian/patches:
    - Add patch to remove rack-test dependency, as we are not dealing with
      ruby 2.1.
    - Drop obsolete patch to fix paths, applied upstream.
    - Drop obsolete patch to bump attempts to start SKS mock, fixed upstream.
    - Refresh for new release.
  * debian/schleuder.postinst:
    - Run 'schleuder install' via 'runuser' as the schleuder user.
    - Change ownership of the '/etc/schleuder' directory to the schleuder user,
      to ensure TLS certificates can be written there.
    - Drop obsolete parts which fixed permissions and ownership of the
      SQLite database and the certificates. Instead, rely on 'schleuder
      install' to do the right thing.
    - Make configs writable by the root user, and readable by the schleuder
      user.
    - Drop 'find', introduced in the last release, in an useless attempt to
      overcome the security issues related to recursive chmod or chown.
      Instead, specific filenames and directories are used if invoking either
      chmod or chown. Thanks a lot, dkg!
    - Drop obsolete version check, which compared the to-be-installed version
      against the already installed version.
    - Finally, fix typos and intendation.
  * debian/schleuder.preinst:
    - Handle the backup directory exclusively via this file, if upgrading from
      schleuder < 3.0. Before, permissions were fixed in the 'postinst' stage.
    - Also, while at it, fix intendation.
  * debian/ruby-tests.rake:
    - Add environment variable to sleep in between SKS mock start attempts.
  * debian/schleuder.dirs:
    - Create the '/usr/local/lib/schleuder/filters' directory to enable users
      to provide their own custom filters.
    - Drop obsolete directories.
    - Wrap and sort.
  * debian/schleuder.install:
    - Wrap and sort.
  * debian/schleuder.manpages:
    - Wrap and sort.
  * debian/schleuder.schleuder-api-daemon.service:
    - Point to documentation at schleuder.org.
  * debian/watch:
    - Use schleuder.org to check for new versions.
  * debian/.gitlab-ci.yml:
    - Introduce configuration to make use of continuous integration as
      provided by salsa.debian.org.

 -- Georg Faerber <georg@riseup.net>  Thu, 27 Sep 2018 15:58:48 +0000

schleuder (3.2.2-1) unstable; urgency=medium

  * New upstream release.
  * debian/changelog: Remove trailing whitespaces.
  * debian/compat: Bump debhelper compat level to 11.
  * debian/control:
    - Bump Standards-Version to 4.1.3, no changes needed.
    - Use salsa.debian.org in Vcs-Browser and Vcs-Git fields, as
      anonscm.debian.org is deprecated and accordingly, all repositories were
      moved.
    - Bump required debhelper version to 11~.
    - Add the propcs package as a build dependency, as some specs use
      'pgrep'.
  * debian/copyright: Bump years to include 2018 and use HTTPS in link to
    copyright format specification.
  * debian/patches:
    - Refresh for release 3.2.2-1.
    - Add patch to remove the spec which tests and expects the install to
      fail, if a shell-process fails, as it fails itself, currently. The
      discussion with upstream how to solve this in a sane way is ongoing.
    - Add patch to increase attempts to start the SKS mock keyserver which is
      used for running the specs, and the time to sleep between each attempt.
      Sometimes, the SKS mock keyserver didn't start within the given time,
      leading to failed specs. This will be fixed upstream and included in the
      next release.
    - Add patch to disable Tor and to enforce the use of the so called
      "standard resolver" for DNS resolution in dirmngr. It seems, dirmngr
      still sometimes has problems to connect to a keyserver if invoked in a
      chroot, leading to failed specs. This patch only affects the dirmngr
      configuration related to running the specs.
  * debian/Rakefile: Add new alias for database setup as used by upstream.
  * debian/{rules,s-a-d.service}: In debhelper compat level 11, the systemd
    sequence for dh was removed, and the dh_systemd_{enable,start,stop}
    helpers as well. Accordingly, drop the obsolete helpers and make use of
    the new dh_installsystemd helper.
    Moreover, if specifying '--name' for dh_installsystemd, debhelper now
    expects the systemd service file to be installed to be named as
    $package-name.$service-name.service. Accordingly, rename the service file
    of the API daemon.
  * debian/schleuder.postinst: Fix permissions of files and directories. A
    user reported upstream, that the files inside '/etc/schleuder' had the
    executable bit set.
    At the same time it was reported in bugs #889060 and #889488, that doing
    recursive chmod or chown might lead to root escalation on systems with
    'fs.protected_hardlinks=0'.
    This change fixes both problems via using 'find'. Additionally, the
    permissions are made more strict, to ensure that the directories and
    files are only accessible by the schleuder user. Before, the schleuder
    group was allowed access, too.
  * debian/watch: Update for new upstream release download location.

 -- Georg Faerber <georg@riseup.net>  Tue, 13 Feb 2018 03:24:52 +0100

schleuder (3.2.1-1) unstable; urgency=medium

  * New upstream release.
  * debian/control:
    - Drop unnecessary dependency on init-system-helpers, as this is an
      essential package.
    - Explicitly depend on ruby-gpgme >= 2.0.13~: Up until 2.0.12, ruby-gpgme
      suffered from a bug which lead to false constructed key capabilities. In
      2013, the bug was found and a patch was written, but it took three more
      years for the patch to be included in a release.
    - Relax required rake version. This helps with backporting schleuder to
      stretch, and ensures a minimal delta between buster and stretch.
  * debian/NEWS: Add note about how to rely on the Debian keyserver defaults.
  * debian/patches:
    - Add patch to rely on the Debian keyserver defaults in the schleuder
      config. (Closes: #852710)
    - Drop patch to disable bundler, integrated upstream.
    - Refresh for release 3.2.1-1.
  * debian/ruby-tests.rake:
    - Disable bundler and test coverage check.
    - Don't kill gpg-agent before and after running the tests, integrated
      upstream.
    - Use random path for database and lists directory to prevent known
      tmpfile attacks.
  * debian/tests:
    - Explain why we aren't using haveged anymore, and instead, why we link
      /dev/random to /dev/urandom. Please, don't do this in production!
    - Accordingly, drop obsolete dependency on haveged.
    - Checking the status of the API is now possible without authentication.
      Therefore, update the expected response if querying the API status
      during autopkgtest.

 -- Georg Faerber <georg@riseup.net>  Fri, 27 Oct 2017 18:42:56 +0200

schleuder (3.1.2-3) unstable; urgency=medium

  * debian/tests/upstream-tests: Drop starting haveged manually, because
    this doesn't work anymore, if invoked in a container. Instead, link
    /dev/random to /dev/urandom.
  * debian/ruby-tests.rake: Kill gpg-agent before and after running tests.
    This might help with making schleuder build reproducibly.

 -- Georg Faerber <georg@riseup.net>  Sat, 30 Sep 2017 14:21:38 +0200

schleuder (3.1.2-2) unstable; urgency=medium

  * debian/control:
    - Bump Standards-Version to 4.1.1.0, no changes needed.
    - Drop obsolete build dependency on 'dh-systemd'.
    - Drop obsolete 'Testsuite', this is added automatically by dpkg-source
      since dpkg 1.17.1, if a debian/tests/control file exists.

 -- Georg Faerber <georg@riseup.net>  Sat, 30 Sep 2017 09:05:32 +0200

schleuder (3.1.2-1) unstable; urgency=medium

  * New upstream release.
  * debian/copyright:
    - Bump years to include 2017.
    - Fix upstream source location.
  * debian/control: Bump required rake version to >= 12~.
  * debian/schleuder.preinst:
    - Check for existing schleuder < 3.0 data first, before doing the backup.
    (Closes: #867031)
    - Don't use 'echo' to inform the user about the data migration process,
    but instead via a proper NEWS file.
  * debian/NEWS: Add said file with notes on how to migrate schleuder < 3.0
    data.
  * debian/patches/0003-bin-fix-require.patch: Refresh for 3.1.2-1.

 -- Georg Faerber <georg@riseup.net>  Thu, 13 Jul 2017 13:40:47 +0200

schleuder (3.1.1-1) unstable; urgency=medium

  * New upstream release.
  * debian/patches/0001-lib-fix-paths.patch: Refresh for new release.

 -- Georg Faerber <georg@riseup.net>  Sun, 25 Jun 2017 14:58:01 +0200

schleuder (3.1.0-3) unstable; urgency=medium

  * debian/rules:
    - Install SysV init script.
    - Drop unneeded debhelper '--no-start' overrides; debhelper should
      enable and start the Schleuder API daemon.
  * debian/control:
    - Depend on lsb-base package for init-functions.
    - Fix (Build-)Depends: formatting.
    - Bump Standards-Version to 4.0.0.
  * debian/schleuder-api-daemon.init: Rework SysVinit script: Fix formatting
    and styling, add required and recommend commands status, reload,
    force-reload by Lintian.
  * debian/schleuder.cron.weekly: Refresh keys first, ignore errors and don't
    exit early. (Closes: #853836)
  * debian/schleuder.preinst: If upgrading from schleuder 2, move data to
    separate backup dir and inform the user. (Closes: #853841)
  * debian/schleuder.postinst:
    - Remove obsolete deb-systemd-helper calls, this is handled by debhelper
      now.
    - Ensure sane permissions of backup dir. (Closes: #853841)
  * debian/schleuder.postrm: Remove the backup dir if purging the package.
    (Closes: #853841)
  * debian/README.Debian: Add notes to migrate lists from schleuder 2 to 3.
    (Closes: #853841)
  * debian/patches: As data is now moved to a separate backup dir if upgrading
    from schleuder 2, drop the obsolete patching of 'schleuder install', which
    disabled the check for existing data. (Closes: #853841)

 -- Georg Faerber <georg@riseup.net>  Tue, 20 Jun 2017 13:17:00 +0200

schleuder (3.1.0-2) unstable; urgency=medium

  * debian/tests/upstream-tests: Ensure haveged is running before executing
    the upstream provided tests, which rely heavily on entropy.
  * debian/tests/control: Add 'needs-root' restriction to actually be able to
    start haveged manually. The provided init script disables the automatic
    start in containerized environments.

 -- Georg Faerber <georg@riseup.net>  Tue, 13 Jun 2017 00:28:23 +0200

schleuder (3.1.0-1) unstable; urgency=medium

  * New upstream release.
  * debian/gbp.conf: Removed, not needed anymore.
  * debian/watch: Fixed, broken due to Gitlab upgrade.

 -- Georg Faerber <georg@riseup.net>  Sat, 10 Jun 2017 19:37:40 +0200

schleuder (3.0.1-1) unstable; urgency=medium

  * New upstream release.
  * debian/schleuder.cron.weekly: Refresh keys from the keyservers.
  * debian/schleuder.{dirs,install}: Ship Postfix config file.
  * debian/patches/: Refresh for Debian schleuder release 3.0.1-1.
  * debian/control: Add dirmngr to {Build-}Depends:.
  * debian/tests/check-status: Rework check against installed API daemon. This
    is needed because of the recent upstream changes which made TLS and API
    keys mandatory.

 -- Georg Faerber <georg@riseup.net>  Thu, 26 Jan 2017 12:33:06 +0100

schleuder (3.0.0~beta17-2) unstable; urgency=medium

  * debian/control: Depend on cron or cron-daemon. (Closes: #851732)
  * debian/schleuder.postinst: Don't 'touch' database; fixed upstream.
  * debian/tests/control: Install haveged to help with entropy.
  * debian/watch: Watch 0xacab.org; the upstream repository moved.
  * debian/ruby-tests.rake: Fix and call cleanup task.

 -- Georg Faerber <georg@riseup.net>  Wed, 25 Jan 2017 15:27:28 +0100

schleuder (3.0.0~beta17-1) unstable; urgency=medium

  [ Georg Faerber ]
  * New upstream release. (Closes: #850545)
  * debian/schleuder-api-daemon.init: Add sysvinit script.
  * debian/patches: Refresh for Debian schleuder release 3.0.0~beta17-1.
  * debian/ruby-tests.rake:
    - Cover all upstream tests.
    - Remove test database to make the build reproducible.

  [ Sebastien Badia ]
  * debian/control:
    - Wrap and sort.
    - Add ruby-factory-girl as Build-Depends.
  * debian/compat: Bump debhelper compat to 10.

 -- Georg Faerber <georg@riseup.net>  Thu, 12 Jan 2017 19:52:43 +0100

schleuder (3.0.0~beta11-2) unstable; urgency=medium

  * debian/schleuder.postinst: Restart the API daemon by default
  * debian/ruby-tests.rake: Load correct Rakefile and ensure clean
    environment

 -- Georg Faerber <georg@riseup.net>  Tue, 13 Dec 2016 18:56:32 +0100

schleuder (3.0.0~beta11-1) unstable; urgency=medium

  * Initial release (Closes: #845636)

 -- Georg Faerber <georg@riseup.net>  Mon, 12 Dec 2016 16:20:50 +0100