on master help sign in
Merge branch 'master' into master
19708aeJoe Kachmar
CURATORS.md+5−4
@@ -333,14 +333,15 @@ early and hopefully the nightlies will be timely.
333
333
334LTS minor bumps typically are run on Sundays.
334LTS minor bumps typically are run on Sundays.
335
335
336−### Website sync debugging (and other out of disk space errors)
336+### Diskspace errors (and website sync debugging)
337
337
338−* You can detect the problem by running `df`. If you see that `/` is out of space, we have a problem
338+* You can detect the problem by running `df`. If you see that `/` is out of space, we have a problem.
339* If you see that `/var/stackage/` is out of space, you can:
339* If you see that `/var/stackage/` is out of space, you can:
340+ * run `./etc/diskspace/clean-old-stack-libs.sh [nightly|lts-XX]` (hopefully sufficient)
341+
342+ optionally (not recommended?):
340 * `rm -r /var/stackage/stackage/automated/work/lts*/unpack-dir/unpacked/`
343 * `rm -r /var/stackage/stackage/automated/work/lts*/unpack-dir/unpacked/`
341 * `rm -r /var/stackage/stackage/automated/work/nightly/unpack-dir/unpacked/`
344 * `rm -r /var/stackage/stackage/automated/work/nightly/unpack-dir/unpacked/`
342−* (outdated) There are many temp files inside `/home/ubuntu/stackage-server-cron` that can be cleared out occasionally
343−* (outdated) You can then manually run `/home/ubuntu/stackage-server-cron.sh`, or wait for the cron job to do it
344
345
345### Wiping the cache
346### Wiping the cache
346
347
build-constraints.yaml+29−18
@@ -12,6 +12,12 @@ packages:
12 "Allan Lukwago <epicallan.al@gmail.com> @epicallan":
12 "Allan Lukwago <epicallan.al@gmail.com> @epicallan":
13 - servant-errors
13 - servant-errors
14
14
15+ "Christian Charukiewicz <c.charukiewicz@gmail.com> @charukiewicz":
16+ - isbn
17+
18+ "Koz Ross <koz.ross@retro-freedom.nz> @kozross":
19+ - medea
20+
15 "Ashlynn Anderson <maintainer@pea.sh> @lambdadog":
21 "Ashlynn Anderson <maintainer@pea.sh> @lambdadog":
16 - proto3-wire
22 - proto3-wire
17
23
@@ -86,7 +92,7 @@ packages:
86
92
87 "Robert Vollmert <rob@vllmrt.net> @robx":
93 "Robert Vollmert <rob@vllmrt.net> @robx":
88 - configurator-pg
94 - configurator-pg
89− - postgrest
95+ - postgrest < 7.0.1 # https://github.com/commercialhaskell/stackage/issues/5383
90
96
91 "Sandy Maguire <sandy@sandymaguire.me> @isovector":
97 "Sandy Maguire <sandy@sandymaguire.me> @isovector":
92 - ecstasy
98 - ecstasy
@@ -316,8 +322,8 @@ packages:
316
322
317 "Pasqualino Assini <tittoassini@gmail.com> @tittoassini":
323 "Pasqualino Assini <tittoassini@gmail.com> @tittoassini":
318 # - zm
324 # - zm
319− # - flat # fails to build
325+ - flat
320− - model < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build
326+ - model
321
327
322 "Jose Iborra <pepeiborra@gmail.com> @pepeiborra":
328 "Jose Iborra <pepeiborra@gmail.com> @pepeiborra":
323 # - arrowp-qq # build failure https://github.com/pepeiborra/arrowp/issues/8
329 # - arrowp-qq # build failure https://github.com/pepeiborra/arrowp/issues/8
@@ -469,7 +475,7 @@ packages:
469
475
470 "Li-yao Xia <lysxia@gmail.com> @Lysxia":
476 "Li-yao Xia <lysxia@gmail.com> @Lysxia":
471 - boltzmann-samplers
477 - boltzmann-samplers
472− - first-class-families < 0.8.0.0
478+ - first-class-families
473 - generic-data
479 - generic-data
474 - generic-data-surgery < 0 # via generic-data
480 - generic-data-surgery < 0 # via generic-data
475 - generic-random
481 - generic-random
@@ -478,7 +484,7 @@ packages:
478 - type-map
484 - type-map
479
485
480 "Tobias Dammers <tdammers@gmail.com> @tdammers":
486 "Tobias Dammers <tdammers@gmail.com> @tdammers":
481− - ginger < 0 # via regex-tdfa-1.3.0
487+ - ginger
482 - yeshql < 0 # via yeshql-hdbc
488 - yeshql < 0 # via yeshql-hdbc
483
489
484 "Yair Chuchem <yairchu@gmail.com> @yairchu":
490 "Yair Chuchem <yairchu@gmail.com> @yairchu":
@@ -865,7 +871,7 @@ packages:
865 - compensated
871 - compensated
866 - compressed < 0
872 - compressed < 0
867 - concurrent-supply
873 - concurrent-supply
868− - constraints < 0.12 # https://github.com/commercialhaskell/stackage/issues/5124
874+ - constraints
869 - contravariant
875 - contravariant
870 - distributive
876 - distributive
871 - discrimination < 0
877 - discrimination < 0
@@ -1220,6 +1226,7 @@ packages:
1220
1226
1221 "Colin Woodbury <colin@fosskers.ca> @fosskers":
1227 "Colin Woodbury <colin@fosskers.ca> @fosskers":
1222 - aur
1228 - aur
1229+ - aura
1223 - bounded-queue
1230 - bounded-queue
1224 - kanji
1231 - kanji
1225 - language-bash
1232 - language-bash
@@ -3266,7 +3273,7 @@ packages:
3266 - validation
3273 - validation
3267
3274
3268 "Tony Day <tonyday567@gmail.com> @tonyday567":
3275 "Tony Day <tonyday567@gmail.com> @tonyday567":
3269− - numhask
3276+ - numhask < 0.5 # https://github.com/commercialhaskell/stackage/issues/5382
3270 - numhask-array < 0
3277 - numhask-array < 0
3271 - numhask-prelude < 0
3278 - numhask-prelude < 0
3272 - numhask-space < 0
3279 - numhask-space < 0
@@ -3625,7 +3632,7 @@ packages:
3625 - ilist
3632 - ilist
3626 - life-sync
3633 - life-sync
3627 - membrain
3634 - membrain
3628− - relude < 0.7 # https://github.com/commercialhaskell/stackage/issues/5361
3635+ - relude
3629 - shellmet
3636 - shellmet
3630 - shortcut-links
3637 - shortcut-links
3631 - summoner
3638 - summoner
@@ -3869,10 +3876,10 @@ packages:
3869 - heist < 0 # GHC 8.4 via map-syntax
3876 - heist < 0 # GHC 8.4 via map-syntax
3870 - snap < 0 # GHC 8.4 via base-4.11.0.0
3877 - snap < 0 # GHC 8.4 via base-4.11.0.0
3871 - conferer
3878 - conferer
3872− # - conferer-snap # Because snap
3879+ #- conferer-snap # Because snap
3873 - conferer-warp
3880 - conferer-warp
3874 - conferer-hspec
3881 - conferer-hspec
3875− - conferer-provider-json
3882+ - conferer-source-json
3876
3883
3877 "Tim Humphries <tim+stackage@utf8.me> @thumphries":
3884 "Tim Humphries <tim+stackage@utf8.me> @thumphries":
3878 - transformers-either < 0 # via exceptions-0.10.0
3885 - transformers-either < 0 # via exceptions-0.10.0
@@ -4038,7 +4045,7 @@ packages:
4038 - secp256k1-haskell
4045 - secp256k1-haskell
4039 - rocksdb-haskell
4046 - rocksdb-haskell
4040 - rocksdb-query
4047 - rocksdb-query
4041− - haskoin-core
4048+ - haskoin-core < 0.13.5 # https://github.com/haskoin/haskoin-core/issues/385
4042 - haskoin-node
4049 - haskoin-node
4043 - haskoin-store < 0 # https://github.com/haskoin/haskoin-store/issues/12
4050 - haskoin-store < 0 # https://github.com/haskoin/haskoin-store/issues/12
4044
4051
@@ -4175,7 +4182,8 @@ packages:
4175 - minimal-configuration
4182 - minimal-configuration
4176
4183
4177 "Davit Nalchevanidze <d.nalchevanidze@gmail.com> @nalchevanidze":
4184 "Davit Nalchevanidze <d.nalchevanidze@gmail.com> @nalchevanidze":
4178− - morpheus-graphql
4185+ - morpheus-graphql
4186+ - morpheus-graphql-core
4179
4187
4180 "Satoshi Egi <egi@egison.org> @egisatoshi":
4188 "Satoshi Egi <egi@egison.org> @egisatoshi":
4181 - egison
4189 - egison
@@ -4245,6 +4253,12 @@ packages:
4245 "Rickey Visinski <rickeyvisinski+hs@gmail.com> @rickeyski":
4253 "Rickey Visinski <rickeyvisinski+hs@gmail.com> @rickeyski":
4246 - slack-api
4254 - slack-api
4247
4255
4256+ "Dobromir Nikolov <dnikolovv@hotmail.com> @dnikolovv":
4257+ - it-has
4258+
4259+ "Gabriele Sales <gbrsales@gmail.com> @gbrsales":
4260+ - cabal-appimage
4261+
4248 "Grandfathered dependencies":
4262 "Grandfathered dependencies":
4249 - network
4263 - network
4250 - Boolean
4264 - Boolean
@@ -4403,6 +4417,7 @@ packages:
4403 - functor-combinators < 0 # via dependent-sum
4417 - functor-combinators < 0 # via dependent-sum
4404 - generic-arbitrary
4418 - generic-arbitrary
4405 - generics-sop-lens
4419 - generics-sop-lens
4420+ - ghc-byteorder
4406 - ghc-compact
4421 - ghc-compact
4407 - ghc-paths
4422 - ghc-paths
4408 - ghc-prof
4423 - ghc-prof
@@ -4814,15 +4829,9 @@ packages:
4814 # https://github.com/commercialhaskell/stackage/issues/5335
4829 # https://github.com/commercialhaskell/stackage/issues/5335
4815 - brick <0.53
4830 - brick <0.53
4816
4831
4817− # https://github.com/commercialhaskell/stackage/issues/5336
4818− - colourista < 0.1.0.0
4819−
4820 # https://github.com/commercialhaskell/stackage/issues/5347
4832 # https://github.com/commercialhaskell/stackage/issues/5347
4821 - persistent-template < 2.8.3
4833 - persistent-template < 2.8.3
4822
4834
4823− # https://github.com/commercialhaskell/stackage/issues/5346
4824− - validation-selective < 0.1.0.0
4825−
4826 # https://github.com/commercialhaskell/stackage/issues/5348
4835 # https://github.com/commercialhaskell/stackage/issues/5348
4827 - tasty < 1.3
4836 - tasty < 1.3
4828 - tasty-golden < 2.3.3.3
4837 - tasty-golden < 2.3.3.3
@@ -4833,6 +4842,8 @@ packages:
4833 # https://github.com/commercialhaskell/stackage/issues/5351
4842 # https://github.com/commercialhaskell/stackage/issues/5351
4834 - pantry < 0.5
4843 - pantry < 0.5
4835
4844
4845+ # https://github.com/commercialhaskell/path/issues/161
4846+ - path < 0.7.1
4836# end of packages
4847# end of packages
4837
4848
4838# Package flags are applied to individual packages, and override the values of
4849# Package flags are applied to individual packages, and override the values of
etc/diskspace/clean-old-stack-libs.shnew file+13
@@ -0,0 +1,13 @@
1+#!/bin/bash
2+
3+set -e
4+
5+if [ $# != 1 ]; then
6+ echo "Usage: $0 [nightly|lts-xx]"
7+ exit 1
8+fi
9+
10+cd ~/stackage/automated/work/$1/unpack-dir/.stack-work/install/x86_64-linux/*/*/lib/x86_64-linux-ghc-*
11+pwd
12+
13+stack --resolver lts-14.27 script ~/stackage/etc/diskspace/remove-old-stack-work-libs.hs
etc/diskspace/remove-old-stack-work-libs.hsnew file+54
@@ -0,0 +1,54 @@
1+#!/usr/bin/env stack
2+-- stack --resolver lts-14 script
3+
4+-- Utility to remove old libs installed under .stack-work/ to save diskspace
5+
6+-- Should be run in:
7+-- work/*/unpack-dir/.stack-work/install/x86_64-linux/*/*/lib/x86_64-linux-ghc-*
8+
9+import Data.List
10+import System.Directory
11+import System.FilePath
12+import Text.Regex.TDFA
13+
14+main = do
15+ files <- sort <$> listDirectory "."
16+ let (dynlibs,libdirs) = partition (".so" `isExtensionOf`) files
17+ pkglibdirs = groupBy samePkgLibDir libdirs
18+ pkgdynlibs = groupBy samePkgDynLib dynlibs
19+ mapM_ (removeOlder removeDirectoryRecursive) pkglibdirs
20+ mapM_ (removeOlder removeFile) pkgdynlibs
21+ where
22+ samePkgLibDir l1 l2 = pkgDirName l1 == pkgDirName l2
23+ where
24+ pkgDirName p =
25+ if length p < 25
26+ then error $ p ++ " too short to be in correct name-version-hash format"
27+ else extractNameInternal p
28+
29+ extractNameInternal :: String -> String
30+ extractNameInternal p =
31+ let (name,match,internal) = p =~ "-[0-9.]+-[0-9A-Za-z]{20,22}" :: (String, String, String)
32+ in if null match || null name then error $ p ++ " not in correct name-version-hash format"
33+ else name ++ internal
34+
35+ samePkgDynLib d1 d2 = pkgDynName d1 == pkgDynName d2
36+ where
37+ pkgDynName p =
38+ if length p < 42
39+ then error $ p ++ " too short to be libHSname-version-hash-ghc*.so format"
40+ else (extractNameInternal . removeDashSegment) p
41+
42+ removeDashSegment = dropWhileEnd (/= '-')
43+
44+ removeOlder remover files = do
45+ -- keep 2 latest builds
46+ oldfiles <- drop 2 . reverse <$> sortByAge files
47+ mapM_ remover oldfiles
48+
49+ sortByAge files = do
50+ timestamps <- mapM getModificationTime files
51+ let fileTimes = zip files timestamps
52+ return $ map fst $ sortBy compareSnd fileTimes
53+
54+ compareSnd (_,t1) (_,t2) = compare t1 t2