build: Add '--with-channel-commit' and related configure flags.
Partially fixes <https://bugs.gnu.org/45896>. * m4/guix.m4 (GUIX_CHANNEL_METADATA): New macro. * configure.ac: Use it. * guix/config.scm.in (%channel-metadata): Adjust accordingly.master
parent
316fc2acbb
commit
55daad123e
|
@ -25,6 +25,7 @@ AM_GNU_GETTEXT_VERSION([0.18.1])
|
||||||
|
|
||||||
GUIX_SYSTEM_TYPE
|
GUIX_SYSTEM_TYPE
|
||||||
GUIX_ASSERT_SUPPORTED_SYSTEM
|
GUIX_ASSERT_SUPPORTED_SYSTEM
|
||||||
|
GUIX_CHANNEL_METADATA
|
||||||
|
|
||||||
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"])
|
AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = "xyes"])
|
||||||
|
|
||||||
|
|
|
@ -61,9 +61,23 @@
|
||||||
(define %channel-metadata
|
(define %channel-metadata
|
||||||
;; When true, this is an sexp containing metadata for the 'guix' channel
|
;; When true, this is an sexp containing metadata for the 'guix' channel
|
||||||
;; this file was built from. This is used by (guix describe).
|
;; this file was built from. This is used by (guix describe).
|
||||||
|
(let ((url @GUIX_CHANNEL_URL@)
|
||||||
;; TODO: Implement 'configure.ac' machinery to initialize it.
|
(commit @GUIX_CHANNEL_COMMIT@)
|
||||||
#f)
|
(intro @GUIX_CHANNEL_INTRODUCTION@))
|
||||||
|
(and url commit
|
||||||
|
`(repository
|
||||||
|
(version 0)
|
||||||
|
(url ,url)
|
||||||
|
(branch "master") ;XXX: doesn't really matter
|
||||||
|
(commit ,commit)
|
||||||
|
(name guix)
|
||||||
|
,@(if intro
|
||||||
|
`((introduction
|
||||||
|
(channel-introduction
|
||||||
|
(version 0)
|
||||||
|
(commit ,(car intro))
|
||||||
|
(signer ,(cdr intro)))))
|
||||||
|
'())))))
|
||||||
|
|
||||||
(define %storedir
|
(define %storedir
|
||||||
"@storedir@")
|
"@storedir@")
|
||||||
|
|
30
m4/guix.m4
30
m4/guix.m4
|
@ -1,5 +1,5 @@
|
||||||
dnl GNU Guix --- Functional package management for GNU
|
dnl GNU Guix --- Functional package management for GNU
|
||||||
dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
dnl Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||||
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||||
dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
dnl
|
dnl
|
||||||
|
@ -398,3 +398,31 @@ that of the existing installation '$guix_cv_current_localstatedir'])
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
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])
|
||||||
|
])
|
||||||
|
|
Reference in New Issue