gnu: rclone: Update to 1.48.0.
[jackhill/guix/guix.git] / Makefile.am
index 69e66fa..80be73e 100644 (file)
@@ -1,18 +1,19 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2013 Andreas Enge <andreas@enge.fr>
 # Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
 # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
-# Copyright © 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
+# Copyright © 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
 # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 # Copyright © 2017 Leo Famulari <leo@famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 # Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
 # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-# Copyright © 2018 Nils Gillmann <ng0@n0.is>
+# Copyright © 2018 ng0 <ng0@n0.is>
 # Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 # Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 # Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
+# Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 #
 # This file is part of GNU Guix.
 #
@@ -53,6 +54,7 @@ nodist_noinst_SCRIPTS =                               \
 # Modules that are not compiled but are installed nonetheless, such as
 # build-side modules with unusual dependencies.
 MODULES_NOT_COMPILED =                         \
+  guix/build/po.scm                            \
   guix/man-db.scm
 
 include gnu/local.mk
@@ -62,7 +64,10 @@ MODULES =                                    \
   guix/base16.scm                              \
   guix/base32.scm                              \
   guix/base64.scm                              \
+  guix/ci.scm                                  \
   guix/cpio.scm                                        \
+  guix/deprecation.scm                         \
+  guix/docker.scm                              \
   guix/records.scm                             \
   guix/pki.scm                                 \
   guix/progress.scm                            \
@@ -73,8 +78,10 @@ MODULES =                                    \
   guix/modules.scm                             \
   guix/download.scm                            \
   guix/discovery.scm                           \
+  guix/bzr-download.scm                        \
   guix/git-download.scm                                \
   guix/hg-download.scm                         \
+  guix/swh.scm                                 \
   guix/monads.scm                              \
   guix/monad-repl.scm                          \
   guix/gexp.scm                                        \
@@ -97,6 +104,7 @@ MODULES =                                    \
   guix/cve.scm                                 \
   guix/workers.scm                             \
   guix/zlib.scm                                        \
+  guix/lzlib.scm                               \
   guix/build-system.scm                                \
   guix/build-system/android-ndk.scm            \
   guix/build-system/ant.scm                    \
@@ -104,6 +112,7 @@ MODULES =                                   \
   guix/build-system/clojure.scm                        \
   guix/build-system/cmake.scm                  \
   guix/build-system/dub.scm                    \
+  guix/build-system/dune.scm                   \
   guix/build-system/emacs.scm                  \
   guix/build-system/font.scm                   \
   guix/build-system/go.scm                     \
@@ -114,11 +123,13 @@ MODULES =                                 \
   guix/build-system/gnu.scm                    \
   guix/build-system/guile.scm                  \
   guix/build-system/haskell.scm                        \
+  guix/build-system/linux-module.scm           \
   guix/build-system/perl.scm                   \
   guix/build-system/python.scm                 \
   guix/build-system/ocaml.scm                  \
   guix/build-system/waf.scm                    \
   guix/build-system/r.scm                      \
+  guix/build-system/rakudo.scm                 \
   guix/build-system/ruby.scm                   \
   guix/build-system/scons.scm                  \
   guix/build-system/texlive.scm                        \
@@ -131,7 +142,9 @@ MODULES =                                   \
   guix/store.scm                               \
   guix/cvs-download.scm                                \
   guix/svn-download.scm                                \
+  guix/colors.scm                              \
   guix/i18n.scm                                        \
+  guix/diagnostics.scm                         \
   guix/ui.scm                                  \
   guix/status.scm                              \
   guix/build/android-ndk-build-system.scm      \
@@ -139,14 +152,17 @@ MODULES =                                 \
   guix/build/download.scm                      \
   guix/build/download-nar.scm                  \
   guix/build/cargo-build-system.scm            \
+  guix/build/cargo-utils.scm                   \
   guix/build/cmake-build-system.scm            \
   guix/build/dub-build-system.scm              \
+  guix/build/dune-build-system.scm             \
   guix/build/emacs-build-system.scm            \
   guix/build/meson-build-system.scm            \
   guix/build/minify-build-system.scm           \
   guix/build/font-build-system.scm             \
   guix/build/go-build-system.scm               \
   guix/build/asdf-build-system.scm             \
+  guix/build/bzr.scm                           \
   guix/build/git.scm                           \
   guix/build/hg.scm                            \
   guix/build/glib-or-gtk-build-system.scm      \
@@ -157,17 +173,18 @@ MODULES =                                 \
   guix/build/python-build-system.scm           \
   guix/build/ocaml-build-system.scm            \
   guix/build/r-build-system.scm                        \
+  guix/build/rakudo-build-system.scm           \
   guix/build/ruby-build-system.scm             \
   guix/build/scons-build-system.scm            \
   guix/build/texlive-build-system.scm          \
   guix/build/waf-build-system.scm              \
   guix/build/haskell-build-system.scm          \
+  guix/build/linux-module-build-system.scm     \
   guix/build/store-copy.scm                    \
   guix/build/utils.scm                         \
   guix/build/union.scm                         \
   guix/build/profiles.scm                      \
   guix/build/compile.scm                       \
-  guix/build/pull.scm                          \
   guix/build/rpath.scm                         \
   guix/build/cvs.scm                           \
   guix/build/svn.scm                           \
@@ -185,15 +202,25 @@ MODULES =                                 \
   guix/build/make-bootstrap.scm                        \
   guix/search-paths.scm                                \
   guix/packages.scm                            \
-  guix/import/print.scm                                \
-  guix/import/utils.scm                                \
-  guix/import/gnu.scm                          \
-  guix/import/snix.scm                         \
   guix/import/cabal.scm                                \
+  guix/import/cpan.scm                         \
   guix/import/cran.scm                         \
-  guix/import/hackage.scm                      \
+  guix/import/crate.scm                                \
   guix/import/elpa.scm                         \
+  guix/import/gem.scm                          \
+  guix/import/github.scm                       \
+  guix/import/gnome.scm                                \
+  guix/import/gnu.scm                          \
+  guix/import/hackage.scm                      \
+  guix/import/json.scm                         \
+  guix/import/launchpad.scm                    \
+  guix/import/opam.scm                         \
+  guix/import/print.scm                                \
+  guix/import/pypi.scm                         \
+  guix/import/snix.scm                         \
+  guix/import/stackage.scm                     \
   guix/import/texlive.scm                      \
+  guix/import/utils.scm                                \
   guix/scripts.scm                             \
   guix/scripts/download.scm                    \
   guix/scripts/perform-download.scm            \
@@ -201,6 +228,10 @@ MODULES =                                  \
   guix/scripts/archive.scm                     \
   guix/scripts/import.scm                      \
   guix/scripts/package.scm                     \
+  guix/scripts/install.scm                     \
+  guix/scripts/remove.scm                      \
+  guix/scripts/upgrade.scm                     \
+  guix/scripts/search.scm                      \
   guix/scripts/gc.scm                          \
   guix/scripts/hash.scm                                \
   guix/scripts/pack.scm                                \
@@ -215,46 +246,29 @@ MODULES =                                 \
   guix/scripts/system/search.scm               \
   guix/scripts/lint.scm                                \
   guix/scripts/challenge.scm                   \
+  guix/scripts/import/crate.scm                        \
   guix/scripts/import/cran.scm                 \
+  guix/scripts/import/elpa.scm                 \
+  guix/scripts/import/gem.scm                  \
   guix/scripts/import/gnu.scm                  \
-  guix/scripts/import/nix.scm                  \
   guix/scripts/import/hackage.scm              \
-  guix/scripts/import/elpa.scm                 \
+  guix/scripts/import/json.scm                 \
+  guix/scripts/import/nix.scm                  \
+  guix/scripts/import/opam.scm                 \
+  guix/scripts/import/pypi.scm                 \
+  guix/scripts/import/stackage.scm             \
   guix/scripts/import/texlive.scm              \
   guix/scripts/environment.scm                 \
   guix/scripts/publish.scm                     \
   guix/scripts/edit.scm                                \
   guix/scripts/size.scm                                \
   guix/scripts/graph.scm                       \
+  guix/scripts/weather.scm                     \
   guix/scripts/container.scm                   \
   guix/scripts/container/exec.scm              \
   guix.scm                                     \
   $(GNU_SYSTEM_MODULES)
 
-if HAVE_GUILE_JSON
-
-MODULES +=                                     \
-  guix/ci.scm                                  \
-  guix/docker.scm                              \
-  guix/import/cpan.scm                         \
-  guix/import/crate.scm                                \
-  guix/import/gem.scm                          \
-  guix/import/github.scm                       \
-  guix/import/gnome.scm                                \
-  guix/import/json.scm                         \
-  guix/import/opam.scm                         \
-  guix/import/pypi.scm                         \
-  guix/import/stackage.scm                     \
-  guix/scripts/import/crate.scm                        \
-  guix/scripts/import/gem.scm                  \
-  guix/scripts/import/json.scm                 \
-  guix/scripts/import/opam.scm                 \
-  guix/scripts/import/pypi.scm                 \
-  guix/scripts/import/stackage.scm             \
-  guix/scripts/weather.scm
-
-endif
-
 if HAVE_GUILE_SSH
 
 MODULES +=                                     \
@@ -274,7 +288,8 @@ endif BUILD_DAEMON_OFFLOAD
 # Scheme implementation of the build daemon and related functionality.
 STORE_MODULES =                                        \
   guix/store/database.scm                      \
-  guix/store/deduplication.scm
+  guix/store/deduplication.scm                 \
+  guix/store/roots.scm
 
 MODULES += $(STORE_MODULES)
 
@@ -283,7 +298,13 @@ dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
 
 # Auxiliary files for packages.
 AUX_FILES =                                            \
+  gnu/packages/aux-files/chromium/master-preferences.json              \
   gnu/packages/aux-files/emacs/guix-emacs.el           \
+  gnu/packages/aux-files/linux-libre/5.1-arm.conf      \
+  gnu/packages/aux-files/linux-libre/5.1-arm-veyron.conf       \
+  gnu/packages/aux-files/linux-libre/5.1-arm64.conf    \
+  gnu/packages/aux-files/linux-libre/5.1-i686.conf     \
+  gnu/packages/aux-files/linux-libre/5.1-x86_64.conf   \
   gnu/packages/aux-files/linux-libre/4.19-arm.conf     \
   gnu/packages/aux-files/linux-libre/4.19-arm64.conf   \
   gnu/packages/aux-files/linux-libre/4.19-i686.conf    \
@@ -299,10 +320,12 @@ AUX_FILES =                                               \
 
 # Templates, examples.
 EXAMPLES =                                     \
+  gnu/system/examples/asus-c201.tmpl           \
   gnu/system/examples/bare-bones.tmpl          \
   gnu/system/examples/beaglebone-black.tmpl    \
   gnu/system/examples/desktop.tmpl             \
   gnu/system/examples/lightweight-desktop.tmpl \
+  gnu/system/examples/docker-image.tmpl                \
   gnu/system/examples/vm-image.tmpl
 
 GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
@@ -317,7 +340,7 @@ nobase_nodist_guileobject_DATA = $(GOBJECTS)
 # Handy way to remove the .go files without removing all the rest.
 clean-go:
        -$(RM) -f $(GOBJECTS)
-       @find . -name '*.go' -print | \
+       @find . -path ./test-tmp -prune -o -name '*.go' -print | \
          if test -t 1; then \
            xargs -r echo -e "\033[31mwarning:\033[0m stray .go files:"; \
          else \
@@ -334,7 +357,11 @@ SCM_TESTS =                                        \
   tests/base16.scm                             \
   tests/base32.scm                             \
   tests/base64.scm                             \
+  tests/channels.scm                           \
+  tests/cpan.scm                               \
   tests/cpio.scm                               \
+  tests/crate.scm                              \
+  tests/gem.scm                                        \
   tests/pki.scm                                        \
   tests/print.scm                              \
   tests/sets.scm                               \
@@ -382,30 +409,25 @@ SCM_TESTS =                                       \
   tests/cve.scm                                        \
   tests/workers.scm                            \
   tests/zlib.scm                               \
+  tests/lzlib.scm                              \
   tests/file-systems.scm                       \
   tests/uuid.scm                               \
   tests/system.scm                             \
+  tests/accounts.scm                           \
   tests/services.scm                           \
   tests/scripts-build.scm                      \
   tests/containers.scm                         \
+  tests/opam.scm                               \
   tests/pack.scm                               \
+  tests/pypi.scm                               \
   tests/import-utils.scm                       \
   tests/store-database.scm                     \
-  tests/store-deduplication.scm
-
-if HAVE_GUILE_JSON
-
-SCM_TESTS +=                                   \
-  tests/pypi.scm                               \
-  tests/opam.scm                               \
-  tests/cpan.scm                               \
-  tests/gem.scm                                        \
-  tests/crate.scm
-
-endif
+  tests/store-deduplication.scm                        \
+  tests/store-roots.scm
 
 SH_TESTS =                                     \
   tests/guix-build.sh                          \
+  tests/guix-build-branch.sh                   \
   tests/guix-download.sh                       \
   tests/guix-gc.sh                             \
   tests/guix-hash.sh                           \
@@ -413,6 +435,7 @@ SH_TESTS =                                  \
   tests/guix-pack-localstatedir.sh             \
   tests/guix-pack-relocatable.sh               \
   tests/guix-package.sh                                \
+  tests/guix-package-aliases.sh                        \
   tests/guix-package-net.sh                    \
   tests/guix-system.sh                         \
   tests/guix-archive.sh                                \
@@ -469,7 +492,9 @@ check-system: $(GOBJECTS)
 # Public key used to sign substitutes from hydra.gnu.org & co.
 dist_pkgdata_DATA =                            \
   etc/substitutes/hydra.gnu.org.pub            \
-  etc/substitutes/berlin.guixsd.org.pub
+  etc/substitutes/berlin.guixsd.org.pub                \
+  etc/substitutes/ci.guix.gnu.org.pub          \
+  etc/substitutes/ci.guix.info.pub
 
 # Bash completion file.
 dist_bashcompletion_DATA = etc/completion/bash/guix    \
@@ -609,8 +634,9 @@ guix-binary.%.tar.xz:
        cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
 
 
-dist-hook: $(distdir)/ChangeLog gen-AUTHORS gen-tarball-version
+dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version
 dist-hook: assert-no-store-file-names
+dist-hook: doc-po-update
 
 distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
 
@@ -622,12 +648,12 @@ $(top_srcdir)/.version:
 gen-tarball-version:
        echo $(VERSION) > "$(distdir)/.tarball-version"
 
-gen-ChangeLog $(distdir)/ChangeLog:
+gen-ChangeLog:
        $(AM_V_GEN)if test -d .git; then                \
          $(top_srcdir)/build-aux/gitlog-to-changelog   \
-           > $(distdir)/cl-t;                          \
+           > $(distdir)/ChangeLog.tmp;                 \
          rm -f $(distdir)/ChangeLog;                   \
-         mv $(distdir)/cl-t $(distdir)/ChangeLog;      \
+         mv $(distdir)/ChangeLog.tmp $(distdir)/ChangeLog;     \
        fi
 
 gen-AUTHORS:
@@ -659,17 +685,24 @@ SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux armhf-linux aarch64-linux
 BINARY_TARBALLS =                                                      \
   $(foreach system,$(SUPPORTED_SYSTEMS),guix-binary.$(system).tar.xz)
 
-# Systems supported by GuixSD.
-GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux
+# Systems supported by Guix System.
+GUIX_SYSTEM_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux
+
+# Systems for which we build Guix VMs.
+GUIX_SYSTEM_VM_SYSTEMS ?= x86_64-linux
+
+# Prefix of the Guix installation image file name.
+GUIX_SYSTEM_IMAGE_BASE = guix-system-install-$(PACKAGE_VERSION)
 
-# Systems for which we build GuixSD VMs.
-GUIXSD_VM_SYSTEMS ?= x86_64-linux
+# Prefix of the Guix VM image file name.
+GUIX_SYSTEM_VM_IMAGE_BASE = guix-system-vm-image-$(PACKAGE_VERSION)
 
-# Prefix of the GuixSD installation image file name.
-GUIXSD_IMAGE_BASE = guixsd-install-$(PACKAGE_VERSION)
+# Flags for 'guix system vm-image'.  By default create a VM image that appears
+# to have a 20G hard disk.
+GUIX_SYSTEM_VM_IMAGE_FLAGS ?= --image-size=30G
 
-# Prefix of the GuixSD VM image file name.
-GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION)
+# Return the sequence of '-s' flags for the given systems.
+system_flags = $(foreach system,$(1),-s $(system))
 
 # The release process works in several phases:
 #
@@ -678,7 +711,7 @@ GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION)
 #   2. Update the 'guix' package so that it corresponds to the 'vX.Y' tag.
 #   3. Build the binary tarballs for that 'guix' package.
 #   4. Update the 'guix' package again.
-#   5. Build the GuixSD installation images.  The images will run 'guix'
+#   5. Build the installation images.  The images will run 'guix'
 #      corresponding to 'vX.Y' + 1 commit, and they will install 'vX.Y'.
 #
 # This 'release' target takes care of everything and copies the resulting
@@ -700,6 +733,9 @@ release: dist
           "`git rev-parse HEAD`" "$(PACKAGE_VERSION)"
        git add $(top_srcdir)/gnu/packages/package-management.scm
        git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)."
+       $(top_builddir)/pre-inst-env guix build guix    \
+             $(call system_flags,$(SUPPORTED_SYSTEMS)) \
+             -v1 --no-grafts -K
        rm -f $(BINARY_TARBALLS)
        $(MAKE) $(BINARY_TARBALLS)
        for system in $(SUPPORTED_SYSTEMS) ; do                                 \
@@ -711,32 +747,35 @@ release: dist
           "`git rev-parse HEAD`"
        git add $(top_srcdir)/gnu/packages/package-management.scm
        git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`."
-       for system in $(GUIXSD_SUPPORTED_SYSTEMS) ; do                                  \
+       $(top_builddir)/pre-inst-env guix build guix                    \
+             $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS))     \
+             -v1 --no-grafts -K
+       for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do                             \
          image=`$(top_builddir)/pre-inst-env                                           \
            guix system disk-image                                                      \
            --file-system-type=iso9660                                                  \
             --system=$$system                                                          \
            gnu/system/install.scm` ;                                                   \
          if [ ! -f "$$image" ] ; then                                                  \
-           echo "failed to produced GuixSD installation image for $$system" >&2 ;      \
+           echo "failed to produced Guix installation image for $$system" >&2 ;        \
            exit 1 ;                                                                    \
          fi ;                                                                          \
-         xz < "$$image" > "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz.tmp" ;   \
-         mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz.tmp"                   \
-            "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.iso.xz" ;                     \
+         xz < "$$image" > "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp" ;      \
+         mv "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz.tmp"              \
+            "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.xz" ;                \
        done
-       for system in $(GUIXSD_VM_SYSTEMS) ; do                                         \
+       for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do                                    \
          image=`$(top_builddir)/pre-inst-env                                           \
-           guix system vm-image                                                        \
+           guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS)                          \
            --system=$$system                                                           \
            gnu/system/examples/vm-image.tmpl` ;                                        \
          if [ ! -f "$$image" ] ; then                                                  \
-           echo "failed to produced GuixSD VM image for $$system" >&2 ;                \
+           echo "failed to produced Guix VM image for $$system" >&2 ;                  \
            exit 1 ;                                                                    \
          fi ;                                                                          \
-         xz < "$$image" > "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" ;    \
-         mv "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp"                    \
-            "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz" ;                      \
+         xz < "$$image" > "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.xz.tmp" ;       \
+         mv "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.xz.tmp"                       \
+            "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.xz" ;                 \
        done
        @echo
        @echo "Congratulations!  All the release files are now in $(releasedir)."
@@ -758,20 +797,20 @@ update-NEWS: $(GOBJECTS)
          $(top_srcdir)/NEWS "$(GUIX_MAINTENANCE_DIRECTORY)/data"
 
 # Make sure we're not shipping a file that embeds a local /gnu/store file name.
-assert-no-store-file-names: $(distdir)/ChangeLog
+assert-no-store-file-names:
        $(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info                  \
             --exclude=*.info-[0-9] --exclude=*.dot                             \
             --exclude=*.eps --exclude-dir=bootstrap                            \
                 --exclude=guix-manual.pot --exclude=guix-manual.*.po           \
             --exclude=guix-prettify.el                                         \
-            --exclude=ChangeLog                                                \
+            --exclude=ChangeLog*                                               \
             -E "$(storedir)/[a-z0-9]{32}-" $(distdir) ;                        \
        then                                                                    \
          echo "error: store file names embedded in the distribution" >&2 ;     \
          exit 1 ;                                                              \
        fi
 
-# Make sure hydra.gnu.org has the important binaries.
+# Make sure important substitutes are available.
 assert-binaries-available: $(GOBJECTS)
        $(AM_V_at)$(top_builddir)/pre-inst-env "$(GUILE)"                       \
          "$(top_srcdir)/build-aux/check-available-binaries.scm"