summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog7
-rw-r--r--src/Propellor/Property/Apt.hs11
-rw-r--r--src/Propellor/Property/Borg.hs2
3 files changed, 15 insertions, 5 deletions
diff --git a/debian/changelog b/debian/changelog
index 517ef350..ada411ff 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,12 @@
-propellor (5.3.7) UNRELEASED; urgency=medium
+propellor (5.4.0) UNRELEASED; urgency=medium
* Restic.installed: stop trying to install a backport on jessie, because no
such backport exists.
+ * Apt.installedBackport replaced with Apt.backportInstalled, which take the
+ same parameters but has different behaviour. (API change)
+ The new property will fail in cases where the old property would install
+ dependencies of the requested backports from stable-backports even though
+ the versions in stable satisfy the requested backports' dependencies.
-- Sean Whitton <spwhitton@spwhitton.name> Thu, 17 May 2018 00:12:42 -0700
diff --git a/src/Propellor/Property/Apt.hs b/src/Propellor/Property/Apt.hs
index 5080b1e2..064221f9 100644
--- a/src/Propellor/Property/Apt.hs
+++ b/src/Propellor/Property/Apt.hs
@@ -247,12 +247,17 @@ installed' params ps = robustly $ check (not <$> isInstalled' ps) go
where
go = runApt (params ++ ["install"] ++ ps)
-installedBackport :: [Package] -> Property Debian
-installedBackport ps = withOS desc $ \w o -> case o of
+-- | Install packages from the stable-backports suite.
+--
+-- If installing the backport requires installing versions of a package's
+-- dependencies from stable-backports too, you will need to include those
+-- dependencies in the list of packages passed to this function.
+backportInstalled :: [Package] -> Property Debian
+backportInstalled ps = withOS desc $ \w o -> case o of
(Just (System (Debian _ suite) _)) -> case backportSuite suite of
Nothing -> unsupportedOS'
Just bs -> ensureProperty w $
- runApt (["install", "-t", bs, "-y"] ++ ps)
+ runApt (["install", "-y"] ++ ((++ '/':bs) <$> ps))
`changesFile` dpkgStatus
_ -> unsupportedOS'
where
diff --git a/src/Propellor/Property/Borg.hs b/src/Propellor/Property/Borg.hs
index 49259206..dab07985 100644
--- a/src/Propellor/Property/Borg.hs
+++ b/src/Propellor/Property/Borg.hs
@@ -57,7 +57,7 @@ runBorgEnv (BorgRepoUsing os _) = map go os
installed :: Property DebianLike
installed = withOS desc $ \w o -> case o of
(Just (System (Debian _ (Stable "jessie")) _)) -> ensureProperty w $
- Apt.installedBackport ["borgbackup"]
+ Apt.backportInstalled ["borgbackup", "python3-msgpack"]
_ -> ensureProperty w $
Apt.installed ["borgbackup"]
where