[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#60358] [PATCH] gnu: Add gnulib.
From: |
Vivien Kraus |
Subject: |
[bug#60358] [PATCH] gnu: Add gnulib. |
Date: |
Tue, 27 Dec 2022 17:23:30 +0100 |
User-agent: |
Evolution 3.46.0 |
* gnu/packages/build-tools.scm (gnulib-latest): New variable. This one always
tracks the latest upstream commit, so don’t use it as an input.
(gnulib): New variable. This is a "recent" snapshot.
---
gnu/packages/build-tools.scm | 71 ++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..062956f685 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -38,6 +38,7 @@ (define-module (gnu packages build-tools)
#:use-module (guix gexp)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix git)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
@@ -48,11 +49,13 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages cpp)
#:use-module (gnu packages elf)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages lisp)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages ninja)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages protobuf)
@@ -803,3 +806,71 @@ (define-public genie
same settings to multiple projects. It supports generating projects using GNU
Makefiles, JSON Compilation Database, and experimentally Ninja.")
(license license:bsd-3))))
+
+;; Gnulib is a source code library. The developers encourage you to develop
+;; your programs with the latest commit of gnulib. However, gnulib is also
+;; used to bootstrap some GNU programs. To avoid rebuilding the world when a
+;; new gnulib commit is pushed, gnulib as a native input must use a known
+;; snapshot of the library.
+
+(define-public gnulib-latest
+ ;; Use this to develop.
+ (package
+ (name "gnulib-latest")
+ (version "latest")
+ (source
+ (git-checkout
+ (url "https://git.savannah.gnu.org/git/gnulib.git")))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda _
+ (install-file "gnulib-tool"
+ (string-append #$output "/bin"))
+ (copy-recursively "."
+ (string-append #$output
"/share/gnulib-srcdir")))))
+ #:tests? #f)) ;; Tests are syntax and indentation checks for the
+ ;; maintainer.
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "GNU portability library")
+ (description
+ "Gnulib is a library that provides common functions from the glibc to your
+programs, in order to enhance portability across operating systems. It also
+provides common maintainer tools for gnu packages. This package always tracks
+the latest commit in gnulib. @strong{For packages dependencies, please use the
+@code{gnulib} package instead.} The latter provides a recent enough snapshot.")
+ (native-search-paths
+ (list
+ (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "share/gnulib-srcdir")))))
+ (license
+ (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ ;; Use this as a native input.
+ (package
+ (inherit gnulib-latest)
+ (name "gnulib")
+ (version "2022-12-27")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit "fde75446490e18d2539817ca418ab8adf73b02d3")))
+ (sha256
+ (base32
+ "0fjbdhwi9025wyq39rwc2j6aazfmagx056kkbvxx6bs97i80dcim"))))
+ (synopsis "GNU portability library")
+ (description
+ "Gnulib is a library that provides common functions from the glibc to your
+programs, in order to enhance portability across operating systems. It also
+provides common maintainer tools for gnu packages. This package provides a
+recent snapshot of gnulib.")))
base-commit: 8f93a1e01a879ae026678dd92c18e2a2a49be540
--
2.38.1