From 4ac314fb4812ccdb62e930fe53e312ced6171e12 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 5 Jun 2014 17:01:32 -0400 Subject: [PATCH] Apt.stdSourcesList no longer needs a suite to be specified. --- config-joey.hs | 7 +++---- debian/changelog | 1 + src/Propellor/Property/Apt.hs | 13 ++++++++++--- .../Property/SiteSpecific/GitAnnexBuilder.hs | 8 ++++---- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/config-joey.hs b/config-joey.hs index 3b4e57d..2dcbf9b 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -246,8 +246,7 @@ hosts = -- (o) ` standardSystem :: HostName -> DebianSuite -> Architecture -> Host standardSystem hn suite arch = host hn & os (System (Debian suite) arch) - & Apt.stdSourcesList suite - `onChange` Apt.upgrade + & Apt.stdSourcesList `onChange` Apt.upgrade & Apt.cacheCleaned & Apt.installed ["etckeeper"] & Apt.installed ["ssh"] @@ -270,8 +269,8 @@ standardSystem hn suite arch = host hn -- This is my standard container setup, featuring automatic upgrades. standardContainer :: Docker.ContainerName -> DebianSuite -> Architecture -> Host standardContainer name suite arch = Docker.container name (dockerImage system) - & os (System (Debian suite) arch) - & Apt.stdSourcesList suite + & os system + & Apt.stdSourcesList `onChange` Apt.upgrade & Apt.installed ["systemd"] & Apt.unattendedUpgrades & Apt.cacheCleaned diff --git a/debian/changelog b/debian/changelog index 9d9c9f0..9787cda 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ propellor (0.6.0) UNRELEASED; urgency=medium when provisioning a docker container, the container name. * Added --dump to dump out a field of a host's privdata. Useful for editing it. + * Apt.stdSourcesList no longer needs a suite to be specified. -- Joey Hess Sat, 31 May 2014 16:41:56 -0400 diff --git a/src/Propellor/Property/Apt.hs b/src/Propellor/Property/Apt.hs index 69144d7..17057af 100644 --- a/src/Propellor/Property/Apt.hs +++ b/src/Propellor/Property/Apt.hs @@ -64,12 +64,19 @@ securityUpdates suite | otherwise = [] -- | Makes sources.list have a standard content using the mirror CDN, --- with a particular DebianSuite. +-- with the Debian suite configured by the os. -- -- Since the CDN is sometimes unreliable, also adds backup lines using -- kernel.org. -stdSourcesList :: DebianSuite -> Property -stdSourcesList suite = stdSourcesList' suite [] +stdSourcesList :: Property +stdSourcesList = withOS ("standard sources.list") $ \o -> + case o of + (Just (System (Debian suite) _)) -> + ensureProperty $ stdSourcesListFor suite + _ -> error "os is not declared to be Debian" + +stdSourcesListFor :: DebianSuite -> Property +stdSourcesListFor suite = stdSourcesList' suite [] -- | Adds additional sources.list generators. -- diff --git a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs index 6e4ca81..57a6b08 100644 --- a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs +++ b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs @@ -100,7 +100,7 @@ standardAutoBuilderContainer :: (System -> Docker.Image) -> Architecture -> Int standardAutoBuilderContainer dockerImage arch buildminute timeout = Docker.container (arch ++ "-git-annex-builder") (dockerImage $ System (Debian Unstable) arch) & os (System (Debian Unstable) arch) - & Apt.stdSourcesList Unstable + & Apt.stdSourcesList & Apt.installed ["systemd"] & Apt.unattendedUpgrades & buildDepsApt @@ -118,7 +118,7 @@ androidContainer :: (System -> Docker.Image) -> Docker.ContainerName -> Property androidContainer dockerImage name setupgitannexdir gitannexdir = Docker.container name (dockerImage $ System (Debian Stable) "i386") & os (System (Debian Stable) "i386") - & Apt.stdSourcesList Stable + & Apt.stdSourcesList & Apt.installed ["systemd"] & User.accountFor builduser & File.dirExists gitbuilderdir @@ -145,7 +145,7 @@ armelCompanionContainer :: (System -> Docker.Image) -> Host armelCompanionContainer dockerImage = Docker.container "armel-git-annex-builder-companion" (dockerImage $ System (Debian Unstable) "amd64") & os (System (Debian Unstable) "amd64") - & Apt.stdSourcesList Unstable + & Apt.stdSourcesList & Apt.installed ["systemd"] & Apt.unattendedUpgrades -- This volume is shared with the armel builder. @@ -163,7 +163,7 @@ armelAutoBuilderContainer :: (System -> Docker.Image) -> Cron.CronTimes -> TimeO armelAutoBuilderContainer dockerImage crontimes timeout = Docker.container "armel-git-annex-builder" (dockerImage $ System (Debian Unstable) "armel") & os (System (Debian Unstable) "armel") - & Apt.stdSourcesList Unstable + & Apt.stdSourcesList & Apt.unattendedUpgrades & Apt.installed ["systemd"] & Apt.installed ["openssh-client"]