system("/usr/bin/perl", "-w", "boot-pkgs") == 0
or die "Running boot-pkgs failed: $?";
+my $tag;
my $dir;
my $curdir;
if (/^#/) {
# Comment; do nothing
}
- elsif (/^([a-zA-Z0-9\/.-]+) *[^ ]+ *[^ ]+$/) {
+ elsif (/^([a-zA-Z0-9\/.-]+) *([^ ]+) *[^ ]+ *[^ ]+$/) {
$dir = $1;
+ $tag = $2;
- # We would like to just check for an _darcs directory here, but in
- # an lndir tree we avoid making _darcs directories, so it doesn't
- # exist. We therefore require that every repo has a LICENSE file
- # instead.
- if (! -f "$dir/LICENSE") {
- print STDERR "Error: $dir/LICENSE doesn't exist.\n";
- die "Maybe you haven't done './darcs-all get'?";
- }
- }
- elsif (/^([a-zA-Z0-9\/.-]+) *[^ ]+ *[^ ]+ *[^ ]+$/) {
- # These are lines which refer to optional repositories, so their
+ # If $tag is not "-" then it is an optional repository, so its
# absence isn't an error.
+ if ($tag eq "-") {
+ # We would like to just check for an _darcs directory here,
+ # but in an lndir tree we avoid making _darcs directories,
+ # so it doesn't exist. We therefore require that every repo
+ # has a LICENSE file instead.
+ if (! -f "$dir/LICENSE") {
+ print STDERR "Error: $dir/LICENSE doesn't exist.\n";
+ die "Maybe you haven't done './darcs-all get'?";
+ }
+ }
}
else {
die "Bad line in packages file: $_";
# Despite the name "package", this file contains the master list of
-# the *repositories* that make up GHC.
+# the *repositories* that make up GHC. It is parsed by boot and darcs-all.
#
# Some of this information is duplicated elsewhere in the build system:
# See Trac #3896
# - nofib and testsuite are optional helpers
#
# The format of the lines in this file is:
-# localpath (optional) tag remotepath VCS
+# localpath tag remotepath VCS
# where
# * 'localpath' is where to put the repository in a checked out tree,
# * 'remotepath' is where the repository is in the central repository,
# * 'VCS' is what version control system the repo uses,
-# * The 'tag', if present, determines when "darcs-all get" will get the
-# repo. If there is no tag then it will always get it, but if there
+# * The 'tag' determines when "darcs-all get" will get the
+# repo. If the tag is "-" then it will always get it, but if there
# is a tag then a corresponding flag must be given to darcs-all, e.g.
# if you want to get the packages with an "extralibs" or "testsuite"
# tag then you need to use "darcs-all --extra --testsuite get".
# Support for new tags must be manually added to the darcs-all script.
#
# Lines that start with a '#' are comments.
-. ghc git
-ghc-tarballs ghc-tarballs darcs
-utils/hsc2hs hsc2hs darcs
-utils/haddock haddock2 darcs
-libraries/array packages/array darcs
-libraries/base packages/base darcs
-libraries/binary packages/binary darcs
-libraries/bytestring packages/bytestring darcs
-libraries/Cabal packages/Cabal darcs
-libraries/containers packages/containers darcs
-libraries/directory packages/directory darcs
-libraries/dph packages/dph darcs
-libraries/extensible-exceptions packages/extensible-exceptions darcs
-libraries/filepath packages/filepath darcs
-libraries/ghc-prim packages/ghc-prim darcs
-libraries/haskeline packages/haskeline darcs
-libraries/haskell98 packages/haskell98 darcs
-libraries/haskell2010 packages/haskell2010 darcs
-libraries/hpc packages/hpc darcs
-libraries/integer-gmp packages/integer-gmp darcs
-libraries/integer-simple packages/integer-simple darcs
-libraries/mtl packages/mtl darcs
-libraries/old-locale packages/old-locale darcs
-libraries/old-time packages/old-time darcs
-libraries/pretty packages/pretty darcs
-libraries/process packages/process darcs
-libraries/random packages/random darcs
-libraries/template-haskell packages/template-haskell darcs
-libraries/terminfo packages/terminfo darcs
-libraries/unix packages/unix darcs
-libraries/utf8-string packages/utf8-string darcs
-libraries/Win32 packages/Win32 darcs
-libraries/xhtml packages/xhtml darcs
-testsuite testsuite testsuite darcs
-nofib nofib nofib darcs
-libraries/deepseq extra packages/deepseq darcs
-libraries/parallel extra packages/parallel darcs
-libraries/stm extra packages/stm darcs
+. - ghc git
+ghc-tarballs - ghc-tarballs darcs
+utils/hsc2hs - hsc2hs darcs
+utils/haddock - haddock2 darcs
+libraries/array - packages/array darcs
+libraries/base - packages/base darcs
+libraries/binary - packages/binary darcs
+libraries/bytestring - packages/bytestring darcs
+libraries/Cabal - packages/Cabal darcs
+libraries/containers - packages/containers darcs
+libraries/directory - packages/directory darcs
+libraries/dph - packages/dph darcs
+libraries/extensible-exceptions - packages/extensible-exceptions darcs
+libraries/filepath - packages/filepath darcs
+libraries/ghc-prim - packages/ghc-prim darcs
+libraries/haskeline - packages/haskeline darcs
+libraries/haskell98 - packages/haskell98 darcs
+libraries/haskell2010 - packages/haskell2010 darcs
+libraries/hpc - packages/hpc darcs
+libraries/integer-gmp - packages/integer-gmp darcs
+libraries/integer-simple - packages/integer-simple darcs
+libraries/mtl - packages/mtl darcs
+libraries/old-locale - packages/old-locale darcs
+libraries/old-time - packages/old-time darcs
+libraries/pretty - packages/pretty darcs
+libraries/process - packages/process darcs
+libraries/random - packages/random darcs
+libraries/template-haskell - packages/template-haskell darcs
+libraries/terminfo - packages/terminfo darcs
+libraries/unix - packages/unix darcs
+libraries/utf8-string - packages/utf8-string darcs
+libraries/Win32 - packages/Win32 darcs
+libraries/xhtml - packages/xhtml darcs
+testsuite testsuite testsuite darcs
+nofib nofib nofib darcs
+libraries/deepseq extra packages/deepseq darcs
+libraries/parallel extra packages/parallel darcs
+libraries/stm extra packages/stm darcs