X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/b5eb901ab508e13a10d8c11fe0c9d0d06dddce96..24652f9cdc66ae13b6b2159a2bddd4375ec4d3fb:/m4/guix.m4 diff --git a/m4/guix.m4 b/m4/guix.m4 index 2fcc65e039..05d409a674 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -1,7 +1,8 @@ dnl GNU Guix --- Functional package management for GNU -dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès +dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès dnl Copyright © 2014 Mark H Weaver dnl Copyright © 2017 Efraim Flashner +dnl Copyright © 2021 Chris Marusich dnl dnl This file is part of GNU Guix. dnl @@ -26,7 +27,7 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_PATH_PROG([SED], [sed]) - AC_ARG_WITH(system, AC_HELP_STRING([--with-system=SYSTEM], + AC_ARG_WITH(system, AS_HELP_STRING([--with-system=SYSTEM], [Platform identifier (e.g., `i686-linux').]), [guix_system="$withval"], [case "$host_cpu" in @@ -78,7 +79,7 @@ dnl Assert that this is a system to which the distro is ported. AC_DEFUN([GUIX_ASSERT_SUPPORTED_SYSTEM], [ AC_REQUIRE([GUIX_SYSTEM_TYPE]) - AC_ARG_WITH([courage], [AC_HELP_STRING([--with-courage], + AC_ARG_WITH([courage], [AS_HELP_STRING([--with-courage], [Assert that even if this platform is unsupported, you will be courageous and port the GNU System distribution to it (see "GNU Distribution" in the manual.)])], @@ -88,7 +89,7 @@ courageous and port the GNU System distribution to it (see # Currently only Linux-based systems are supported, and only on some # platforms. case "$guix_system" in - x86_64-linux|i686-linux|armhf-linux|aarch64-linux) + x86_64-linux|i686-linux|armhf-linux|aarch64-linux|powerpc64le-linux) ;; *) if test "x$guix_courageous" = "xyes"; then @@ -204,6 +205,46 @@ AC_DEFUN([GUIX_CHECK_GUILE_GCRYPT], [ fi]) ]) +dnl GUIX_CHECK_GUILE_GIT +dnl +dnl Check whether a recent-enough Guile-Git is available. +AC_DEFUN([GUIX_CHECK_GUILE_GIT], [ + dnl Check whether we're using Guile-Git 0.3.0 or later. 0.3.0 + dnl introduced SSH authentication support and more. + AC_CACHE_CHECK([whether Guile-Git is available and recent enough], + [guix_cv_have_recent_guile_git], + [GUILE_CHECK([retval], + [(use-modules (git) (git auth) (git submodule)) + (let ((auth (%make-auth-ssh-agent))) + repository-close! + object-lookup-prefix + (make-clone-options + #:fetch-options (make-fetch-options auth)))]) + if test "$retval" = 0; then + guix_cv_have_recent_guile_git="yes" + else + guix_cv_have_recent_guile_git="no" + fi]) +]) + +dnl GUIX_CHECK_GUILE_ZLIB +dnl +dnl Check whether a recent-enough Guile-zlib is available. +AC_DEFUN([GUIX_CHECK_GUILE_ZLIB], [ + dnl Check whether we're using Guile-zlib 0.1.0 or later. + dnl 0.1.0 introduced the 'make-zlib-input-port' and related code. + AC_CACHE_CHECK([whether Guile-zlib is available and recent enough], + [guix_cv_have_recent_guile_zlib], + [GUILE_CHECK([retval], + [(use-modules (zlib)) + make-zlib-input-port]) + if test "$retval" = 0; then + guix_cv_have_recent_guile_zlib="yes" + else + guix_cv_have_recent_guile_zlib="no" + fi]) +]) + dnl GUIX_TEST_ROOT_DIRECTORY AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [ AC_CACHE_CHECK([for unit test root directory], @@ -376,3 +417,31 @@ that of the existing installation '$guix_cv_current_localstatedir']) esac fi fi]) + +dnl GUIX_CHANNEL_METADATA +dnl +dnl Provide the channel metadata for this build. This allows 'guix describe' +dnl to return meaningful data, as it would for a 'guix pull'-provided 'guix'. +dnl The default URL and introduction are taken from (guix channels). +AC_DEFUN([GUIX_CHANNEL_METADATA], [ + AC_ARG_WITH([channel-url], [AS_HELP_STRING([--with-channel-url=URL], + [assert that this is built from the Git repository at URL])], + [guix_channel_url="\"$withval\""], + [guix_channel_url="\"https://git.savannah.gnu.org/git/guix.git\""]) + AC_ARG_WITH([channel-commit], [AS_HELP_STRING([--with-channel-commit=COMMIT], + [assert that this is built from COMMIT])], + [guix_channel_commit="\"$withval\""], + [guix_channel_commit="#f"]) + AC_ARG_WITH([channel-introduction], [AS_HELP_STRING([--with-channel-introduction=COMMIT:FINGERPRINT], + [specify COMMIT and FINGERPRINT as the introduction of this channel])], + [guix_channel_introduction="'(\"`echo $withval | cut -f1 -d:`\" \"`echo $withval | cut -f2 -d:`\")"], + [guix_channel_introduction="'(\"9edb3f66fd807b096b48283debdcddccfea34bad\" . \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\")"]) + + GUIX_CHANNEL_URL="$guix_channel_url" + GUIX_CHANNEL_COMMIT="$guix_channel_commit" + GUIX_CHANNEL_INTRODUCTION="$guix_channel_introduction" + + AC_SUBST([GUIX_CHANNEL_URL]) + AC_SUBST([GUIX_CHANNEL_COMMIT]) + AC_SUBST([GUIX_CHANNEL_INTRODUCTION]) +])