summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Propellor/Attr.hs2
-rw-r--r--Propellor/Property/Apt.hs25
-rw-r--r--Propellor/Property/OpenId.hs2
-rw-r--r--debian/changelog1
4 files changed, 23 insertions, 7 deletions
diff --git a/Propellor/Attr.hs b/Propellor/Attr.hs
index 9a9d8446..94376b0d 100644
--- a/Propellor/Attr.hs
+++ b/Propellor/Attr.hs
@@ -22,7 +22,7 @@ getHostName :: Propellor HostName
getHostName = asks _hostname
os :: System -> AttrProperty
-os system = pureAttrProperty ("OS " ++ show system) $
+os system = pureAttrProperty ("Operating " ++ show system) $
\d -> d { _os = Just system }
getOS :: Propellor (Maybe System)
diff --git a/Propellor/Property/Apt.hs b/Propellor/Property/Apt.hs
index 4da13a2f..b7c281ce 100644
--- a/Propellor/Property/Apt.hs
+++ b/Propellor/Property/Apt.hs
@@ -24,9 +24,12 @@ showSuite Unstable = "unstable"
showSuite Experimental = "experimental"
showSuite (DebianRelease r) = r
-debLine :: DebianSuite -> Url -> [Section] -> Line
+backportSuite :: DebianSuite -> String
+backportSuite suite = showSuite suite ++ "-backports"
+
+debLine :: String -> Url -> [Section] -> Line
debLine suite mirror sections = unwords $
- ["deb", mirror, showSuite suite] ++ sections
+ ["deb", mirror, suite] ++ sections
srcLine :: Line -> Line
srcLine l = case words l of
@@ -37,9 +40,12 @@ stdSections :: [Section]
stdSections = ["main", "contrib", "non-free"]
binandsrc :: String -> DebianSuite -> [Line]
-binandsrc url suite = [l, srcLine l]
+binandsrc url suite
+ | suite == Stable = [l, srcLine l, bl, srcLine bl]
+ | otherwise = [l, srcLine l]
where
- l = debLine suite url stdSections
+ l = debLine (showSuite suite) url stdSections
+ bl = debLine (backportSuite suite) url stdSections
debCdn :: DebianSuite -> [Line]
debCdn = binandsrc "http://cdn.debian.net/debian"
@@ -62,7 +68,7 @@ securityUpdates suite
-- kernel.org.
stdSourcesList :: DebianSuite -> Property
stdSourcesList suite = setSourcesList
- (debCdn suite ++ kernelOrg suite ++ securityUpdates suite)
+ (concatMap (\gen -> gen suite) [debCdn, kernelOrg, securityUpdates])
`describe` ("standard sources.list for " ++ show suite)
setSourcesList :: [Line] -> Property
@@ -96,6 +102,15 @@ installed' params ps = robustly $ check (isInstallable ps) go
where
go = runApt $ params ++ ["install"] ++ ps
+installedBackport :: [Package] -> Property
+installedBackport ps = withOS desc $ \o -> case o of
+ (Just (System (Debian suite) _)) ->
+ ensureProperty $ installed' ["-t", backportSuite suite, "-y"] ps
+ Nothing -> error "cannot install backports; os not declared"
+ _ -> error $ "backports not supported on " ++ show o
+ where
+ desc = (unwords $ "apt installed backport":ps)
+
-- | Minimal install of package, without recommends.
installedMin :: [Package] -> Property
installedMin = installed' ["--no-install-recommends", "-y"]
diff --git a/Propellor/Property/OpenId.hs b/Propellor/Property/OpenId.hs
index 4c562175..051d6425 100644
--- a/Propellor/Property/OpenId.hs
+++ b/Propellor/Property/OpenId.hs
@@ -12,7 +12,7 @@ providerFor users baseurl = propertyList desc $
[ Apt.serviceInstalledRunning "apache2"
, Apt.installed ["simpleid"]
`onChange` Service.restarted "apache2"
- , File.fileProperty desc
+ , File.fileProperty (desc ++ " configured")
(map setbaseurl) "/etc/simpleid/config.inc"
] ++ map identfile users
where
diff --git a/debian/changelog b/debian/changelog
index 4c18df20..18436b29 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ propellor (0.3.1) UNRELEASED; urgency=medium
* Apache support.
* Properties can now be satisfied differently on different operating
systems.
+ * Standard apt configuration for stable now includes backports.
-- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 15:00:11 -0400