[PATCH] gnu: Add gnulib.

  • Done
  • quality assurance status badge
Details
4 participants
  • Liliana Marie Prikler
  • Ludovic Courtès
  • Simon Josefsson
  • Vivien Kraus
Owner
unassigned
Submitted by
Vivien Kraus
Severity
normal
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
(address . guix-patches@gnu.org)
bd7d5613d104b8bb364e12686574a4f8f275911e.camel@planete-kraus.eu
* 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(+)

Toggle diff (102 lines)
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
V
V
Vivien Kraus wrote on 27 Dec 2022 18:33
Providing gnulib
(address . 60358@debbugs.gnu.org)
110ab71155948ad506f3df2059d9664075626f43.camel@planete-kraus.eu
Hello guix,

I’m trying to provide gnulib for guix. However, when I try to use a
git-checkout as the source, to always have the latest commit, then guix
fails with:

guix build: error: Git failure while fetching
'refs/remotes/origin/HEAD' not found

I don’t fully understand what happens. Do you have an idea?

Also, when using gnulib, the whole point is to have GNULIB_SRCDIR point
to a directory where the gnulib files are, so that bootstrap srcipts
can use that instead of a git submodule (which is not possible with
guix). I tried to set it as a search-path-specification, which seems to
work, but I’m not sure that it is the correct approach.

What do you think?

Best regards,

Vivien
S
S
Simon Josefsson wrote on 27 Dec 2022 19:44
Re: [bug#60358] [PATCH] gnu: Add gnulib.
(name . Vivien Kraus via Guix-patches via)(address . guix-patches@gnu.org)
87h6xgzny7.fsf@josefsson.org
Hi. Many packages needs a specific checkout of gnulib to work reliably,
via --gnulib-refdir= (rather than --gnulib-srcdir=), would you consider
installing the entire gnulib git archive instead of just the latest
checkout? Since so many packages these days require different versions
of gnulib, it may make sense to mak the gnulib git archive available as
an installed Guix package, so that other packages may bootstrap build
from it and get the intended gnulib git checkout.

If a checked out gnulib git archive is available as a Guix package,
other packages could build-depend on it and use both --gnulib-refdir and
--gnulib-srcdir. If I understand your approach now, only
--gnulib-srcdir is possible.

You could put the git archive under /share/gnulib-git or merely
/share/gnulib/ and set both GNULIB_REFDIR and GNULIB_SRCDIR.

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY6s9ABQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFokTXAP4z+U9goAFtaeKi7+b4lkN5rXjqmRjJ
VWjz+x6MbtNKZgD/d97Qayy+G6PQTgfFcEWjgIg347xDcZN2OnW12POsVwE=
=sV4p
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 27 Dec 2022 21:45
Re: [PATCH] gnu: Add gnulib.
5c64afba3acb7820763eb5a4bf2567fc4b12ad77.camel@gmail.com
Am Dienstag, dem 27.12.2022 um 17:23 +0100 schrieb Vivien Kraus:
Toggle quote (4 lines)
> * 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.
The preferred package:patch ratio is 1:1.
Toggle quote (56 lines)
> ---
>  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")))
Don't. If you need to check out a particular commit, use the --with-
commit CLI option or a transformer.
Toggle quote (51 lines)
> +    (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")))
Don't throw together raw commits and commit-less versions. Use git-
version instead.
Toggle quote (13 lines)
> +       (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.")))

Cheers
V
V
Vivien Kraus wrote on 28 Dec 2022 02:57
Re: [bug#60358] [PATCH] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
ecc975fdc2c44c1248652db67d68c5a32cf47a9e.camel@planete-kraus.eu
Hello!

Le mardi 27 décembre 2022 à 19:44 +0100, Simon Josefsson a écrit :
Toggle quote (7 lines)
> Hi.  Many packages needs a specific checkout of gnulib to work
> reliably,
> via --gnulib-refdir= (rather than --gnulib-srcdir=), would you
> consider
> installing the entire gnulib git archive instead of just the latest
> checkout? 

I did not know about gnulib-refdir. Providing the entire gnulib archive
is tempting, but there might be downsides. The contents of the .git
directory depends on how trees and objects have been packed by git. As
far as I understand, it is possible that pushing a commit in gnulib
results in commit objects from previous commits to be re-packed. Thus,
if I clone gnulib from the initial commit to a specific commit, the
result might depend on other, unrelated commits. So, the content of
.git is not reproducible.

Maybe I could get around that by deleting all the refs, doing an
aggressive garbage collection and then re-packing, but I’m not sure I
would get a reproducible result.

Now, I don’t know much about gnulib-refdir. How does gnulib-refdir
work? Do you have an example of a package that uses this feature? Can I
convince the package to use a checkout instead of the gnulib
repository, if I swear I have the exact checkout it wants, maybe by
tweaking bootstrap.conf or something?

Vivien
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v2 1/2] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
39b658dda4fef7c90037de4ab69896cb5c37ae6d.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 58 ++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)

Toggle diff (89 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..5b4fc71429 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,58 @@ (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))))
+
+(define-public (gnulib-checkout gl-version gl-commit gl-hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version gl-version "1" gl-commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit gl-commit)))
+ (file-name (git-file-name name version))
+ (sha256 (base32 gl-hash))))
+ (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/"
+ #$gl-commit)))))
+ #: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 "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list (string-append "share/gnulib/" gl-commit))))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ "2022-12-27"
+ "fde75446490e18d2539817ca418ab8adf73b02d3"
+ "0fjbdhwi9025wyq39rwc2j6aazfmagx056kkbvxx6bs97i80dcim"))

base-commit: 0cb8f7125b19264b01962c1249c3df4c5ce85aa9
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v2 2/2] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)
865c55e780549ba03e66c7012965253a45da05fe.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 37 ++++++++++++++++++++++++-------------
1 file changed, 24 insertions(+), 13 deletions(-)

Toggle diff (82 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..d0f8ca8a15 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,28 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh")))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +421,9 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ gnulib ; gnulib requires git even if nothing is downloaded.
+ git))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:50
(address . 60358@debbugs.gnu.org)
96ae1a284e7f34c506a63d1cd76aecabe6e1399a.camel@planete-kraus.eu
Le mercredi 28 décembre 2022 à 03:20 +0100, Vivien Kraus a écrit :
Toggle quote (9 lines)
> * gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang
> autopull.sh and
> autogen.sh.
> * gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and
> git.
> ---
>  gnu/packages/tls.scm | 37 ++++++++++++++++++++++++-------------
>  1 file changed, 24 insertions(+), 13 deletions(-)

This is not required, but it shows that the gnulib package works.

Best regards,

Vivien
S
S
Simon Josefsson wrote on 29 Dec 2022 15:44
Re: [bug#60358] [PATCH] gnu: Add gnulib.
(name . Vivien Kraus via Guix-patches via)(address . guix-patches@gnu.org)
874jtei81v.fsf@josefsson.org
Vivien Kraus via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (12 lines)
> Hello!
>
> Le mardi 27 décembre 2022 à 19:44 +0100, Simon Josefsson a écrit :
>> Hi.  Many packages needs a specific checkout of gnulib to work
>> reliably,
>> via --gnulib-refdir= (rather than --gnulib-srcdir=), would you
>> consider
>> installing the entire gnulib git archive instead of just the latest
>> checkout? 
>
> I did not know about gnulib-refdir.

It is newer than --gnulib-srcdir, but came about because --gnulib-srcdir
is often a fragile solution: you have no idea which gnulib version the
person building the package supplied. Since gnulib is rolling,
compatibility becomes difficult. The --gnulib-srcdir approach works if
you make sure to use the same gnulib git checkout as the project you
wish to build uses. But then it becomes difficult to package gnulib: no
two projects are likely to rely on the same gnulib git commit. So which
gnulib git version to package?

That's the motivation for packaging the gnulib git repository instead.
This may sound strange, but compare how gettext/autopoint ships a CVS
repository and checks out the particular files that are needed.

Yeah, I can agree that this approach is not ideal, and there are many
concerns with it. I'm not convinced gnulib's idea of "source-level
library" is something that is viable long-term. But it is what exists
today.

Toggle quote (12 lines)
> Providing the entire gnulib archive is tempting, but there might be
> downsides. The contents of the .git directory depends on how trees and
> objects have been packed by git. As far as I understand, it is
> possible that pushing a commit in gnulib results in commit objects
> from previous commits to be re-packed. Thus, if I clone gnulib from
> the initial commit to a specific commit, the result might depend on
> other, unrelated commits. So, the content of .git is not reproducible.
>
> Maybe I could get around that by deleting all the refs, doing an
> aggressive garbage collection and then re-packing, but I’m not sure I
> would get a reproducible result.

Interesting -- I think researching this more would be useful. It should
be possible to come up with a safe approach to produce a reproducible
checkout of a git repository.

Doesn't 'git archive' produce a reproducible output from a git
repository for a particular branch and commit?

Toggle quote (3 lines)
> Now, I don’t know much about gnulib-refdir. How does gnulib-refdir
> work?

You supply --gnulib-refdir pointing to a local gnulib git repository
clone when you run ./bootstrap. This avoid checking out the gnulib git
submodule from Savannah, and instead ./bootstrap will use the local git
repository instead. I believe it should automatically extract the
intended gnulib git commit from the gnulib/ git submodule, and extract
that version from the local copy (please test -- may be bugs).

Toggle quote (2 lines)
> Do you have an example of a package that uses this feature?

Packages wouldn't use it, but if they use gnulib's ./bootstrap script
the support this approach. The idea is that people building projects
that use gnulib doesn't always have to fetch the gnulib git submodule,
but have a local copy for security or performance reasons.

Toggle quote (4 lines)
> Can I convince the package to use a checkout instead of the gnulib
> repository, if I swear I have the exact checkout it wants, maybe by
> tweaking bootstrap.conf or something?

You can force a package to use another gnulib version by using
--gnulib-srcdir and point that to some other version of gnulib. But the
project may not build. The point of --gnulib-refdir is to actually get
the same version of gnulib that the project uses, why would you not want
that? There is the GNULIB_REVISION environment variable that you can
set to something else, but this is probably not very well tested and
sounds like a bad idea (but I may be missing something).

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY62nvBQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFohm1AP95ENA0GNta07CFDN7bmkPethadd9uh
sa7fjOnDg3dzbwEAi8ZriI8e25ZD8RFxbL9BqXKMHpryPSDF2NaZPjE2Gwc=
=HqNH
-----END PGP SIGNATURE-----

S
S
Simon Josefsson wrote on 29 Dec 2022 15:55
Re: [bug#60358] [PATCH v2 2/2] gnu: guile-gnutls: Update to 3.7.11.
(name . Vivien Kraus via Guix-patches via)(address . guix-patches@gnu.org)
87zgb6gsxs.fsf@josefsson.org
Vivien Kraus via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (12 lines)
> Le mercredi 28 décembre 2022 à 03:20 +0100, Vivien Kraus a écrit :
>> * gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang
>> autopull.sh and
>> autogen.sh.
>> * gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and
>> git.
>> ---
>>  gnu/packages/tls.scm | 37 ++++++++++++++++++++++++-------------
>>  1 file changed, 24 insertions(+), 13 deletions(-)
>
> This is not required, but it shows that the gnulib package works.

Thanks for providing an example package that would use the Guix gnulib
package!

I don't think it actually does what you would want it to do: your
resulting build of guile-gnutls will likely NOT use the exact same
version of gnulib that was used when preparing and tagging the
guile-gnutls release. That's why this approach uses GNULIB_SRCDIR to
force a different gnulib version than the intended one. Since gnulib
doesn't offer backwards/future compatibility, this will just cause the
guile-gnutls 3.7.11 build to break at some point, or even introduce
subtle unintended bugs, when the gnulib package is updated.

However, if the 'gnulib' package in Guix would provide a copy of the git
repository, and set GNULIB_REFDIR instead, I believe it would work as
intended: ./bootstrap will pick the gnulib commit from the local copy of
gnulib. This should always work and is future-proof, as long as the
Guix gnulib package provides all historic gnulib git commits forever.

Taking a step back, I think it boils down to two approaches when
building projects:

1) Download git submodules when download git repository of projects that
use gnulib. This consumes a lot of bandwidth, but will set up the
project the way most developers build the project.

2) Don't fetch the gnulib git submodule (other git submodules will
probably be required, though, depending on project) and add a dependency
to a Guix 'gnulib' package that ships the entire git repository, and
modify the ./bootstrap call to do ./bootstrap --gnulib-refdir=...'.

Approach 2) is less well tested but I think it would work, and
effectively what it achieves compared to 1) is to reduce the bandwidth
requirements and avoid a dependence on an online Savannah. Is this
really worth the complexity? Or is there some other advantage that I'm
missing?

Thanks for caring about how gnulib is used in projects! It is a
complicated situation, and has tricky bill-of-material and security
consequences.

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY62qfxQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFovCdAQDiPGkhdo5eN7ZHdgdYp68VK7t18RqF
nzkgOFQQVPub0QD/QtCl0YvGBahwrlj3moTSeC/8O1n39YuoOq4DdJB2UgQ=
=w7jV
-----END PGP SIGNATURE-----

V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v3 1/2] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Simon Josefsson)(address . simon@josefsson.org)
6d918b9fb87e379766c1187c6ea7bd76d9842d6e.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 58 ++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)

Toggle diff (89 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..5b4fc71429 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,58 @@ (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))))
+
+(define-public (gnulib-checkout gl-version gl-commit gl-hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version gl-version "1" gl-commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit gl-commit)))
+ (file-name (git-file-name name version))
+ (sha256 (base32 gl-hash))))
+ (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/"
+ #$gl-commit)))))
+ #: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 "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list (string-append "share/gnulib/" gl-commit))))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ "2022-12-27"
+ "fde75446490e18d2539817ca418ab8adf73b02d3"
+ "0fjbdhwi9025wyq39rwc2j6aazfmagx056kkbvxx6bs97i80dcim"))

base-commit: 77d4bff94c6918eb0c0ccd20ee610e6dfc823aec
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v3 2/2] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Simon Josefsson)(address . simon@josefsson.org)
0217a832b73fa21f3346e75385eb7d8d7e18edae.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)

Toggle diff (86 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..5bb0faaf64 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,28 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh")))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +421,13 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ "2022-12-06"
+ "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy")
+ git ; gnulib requires git even if nothing is downloaded.
+ ))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 29 Dec 2022 16:25
(name . Simon Josefsson)(address . simon@josefsson.org)(address . 60358@debbugs.gnu.org)
908a277ea2a4a68f03eecde19501d525f31d4341.camel@planete-kraus.eu
Le mercredi 28 décembre 2022 à 03:20 +0100, Vivien Kraus a écrit :
Toggle quote (17 lines)
> @@ -412,7 +421,13 @@ (define-public guile-gnutls
>             pkg-config
>             texinfo
>             gnutls                 ;XXX: 'guile-snarf' invokes the
> native 'cpp'
> -           guile-3.0))
> +           guile-3.0
> +           (gnulib-checkout
> +            "2022-12-06"
> +            "440b528b1d81dd31b2a2e4dde20d5c837c147811"
> +            "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy")
> +           git ; gnulib requires git even if nothing is downloaded.
> +           ))
>      (inputs
>       (list gnutls-latest
>             guile-3.0))

I can still pick an exact commit of gnulib (I was not aware that it
would be required, I thought the most common idea was "give me any
version of gnulib later than <>"). And I don’t have to package every
commit of gnulib, but only those that are actually used.

I’m not sure guix people will be happy to have each package use a
differently outdated version of gnulib though.
S
S
Simon Josefsson wrote on 29 Dec 2022 16:37
(name . Vivien Kraus)(address . vivien@planete-kraus.eu)(address . 60358@debbugs.gnu.org)
87o7rmgqzv.fsf@josefsson.org
Vivien Kraus <vivien@planete-kraus.eu> writes:

Toggle quote (26 lines)
> Le mercredi 28 décembre 2022 à 03:20 +0100, Vivien Kraus a écrit :
>> @@ -412,7 +421,13 @@ (define-public guile-gnutls
>>             pkg-config
>>             texinfo
>>             gnutls                 ;XXX: 'guile-snarf' invokes the
>> native 'cpp'
>> -           guile-3.0))
>> +           guile-3.0
>> +           (gnulib-checkout
>> +            "2022-12-06"
>> +            "440b528b1d81dd31b2a2e4dde20d5c837c147811"
>> +            "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy")
>> +           git ; gnulib requires git even if nothing is downloaded.
>> +           ))
>>      (inputs
>>       (list gnutls-latest
>>             guile-3.0))
>
> I can still pick an exact commit of gnulib (I was not aware that it
> would be required, I thought the most common idea was "give me any
> version of gnulib later than <>"). And I don’t have to package every
> commit of gnulib, but only those that are actually used.
>
> I’m not sure guix people will be happy to have each package use a
> differently outdated version of gnulib though.

Interesting approach! I believe this works in Guix, and is also
compatible with the way gnulib is intended to be used.

However, doesn't this lead to a gazillion variants of gnulib being
installed into /gnu/store, once all projects that use gnulib adopt this
model in Guix? And built on the build servers, and downloaded via
substitute servers? One gnulib for each particular commit that is used
by each respective project that rely on gnulib. That sounds worse than
having to download copies of gnulib when building a Guix package, which
I thought was what you wanted to accomplish.

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY620VBQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFoh8mAQD/Z0Em+fGgRbdRI3NBOIXfu3Kjarhq
w0WsGqpgnVs3wQEA/AAPMq4Ik9yAzAXR5SXP4ACUJtHmyic94kzZN5sXnwA=
=HW6g
-----END PGP SIGNATURE-----

S
S
Simon Josefsson wrote on 29 Dec 2022 16:56
Re: [bug#60358] [PATCH] gnu: Add gnulib.
(name . Simon Josefsson via Guix-patches via)(address . guix-patches@gnu.org)
87k02agq5a.fsf@josefsson.org
Simon Josefsson via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (3 lines)
> Doesn't 'git archive' produce a reproducible output from a git
> repository for a particular branch and commit?

Sorry, git-archive that doesn't include the .git/ sub-directory, so
that's not the command you want. I don't know what command you would
use. I reckon it should be a git clone, check out a particular commit,
reset the branch to that commit, filtering away all other branches, and
then do 'git gc --aggresive --prune=now'. If that produces
unreproducable results for other unrelated changes to the repository, it
would be nice to know how to get rid of them.

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY624oRQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFosniAQCLwTwFtnpepEKejYBGXszMahCcOZuj
OrQFD+vYBcSBYQD+ISdvVZAho1Lh3rRtLvaOYQz+ECkzEhrALlZ5quUleA0=
=NZAy
-----END PGP SIGNATURE-----

V
V
Vivien Kraus wrote on 29 Dec 2022 17:06
Re: [PATCH v3 2/2] gnu: guile-gnutls: Update to 3.7.11.
(name . Simon Josefsson)(address . simon@josefsson.org)(address . 60358@debbugs.gnu.org)
a684f65ad7920a5f8138848b7ac52c6a82b5f14c.camel@planete-kraus.eu
Le jeudi 29 décembre 2022 à 16:37 +0100, Simon Josefsson a écrit :
Toggle quote (3 lines)
> One gnulib for each particular commit that is used
> by each respective project that rely on gnulib.

Yes, but a shallow checkout of gnulib. If I packaged the whole git
archive (if I could do it reliably), that would bring the checkouts for
all commits in gnulib, used or not. Granted, compressed.

Toggle quote (2 lines)
> That sounds worse than
> having to download copies of gnulib when building a Guix package
From what I understand, the idea in guix would be: yes that would be
horrible, the solution is for every project to use the same version of
gnulib!
S
S
Simon Josefsson wrote on 29 Dec 2022 17:14
(name . Vivien Kraus)(address . vivien@planete-kraus.eu)(address . 60358@debbugs.gnu.org)
87fscygpav.fsf@josefsson.org
Vivien Kraus <vivien@planete-kraus.eu> writes:

Toggle quote (6 lines)
>> That sounds worse than
>> having to download copies of gnulib when building a Guix package
> From what I understand, the idea in guix would be: yes that would be
> horrible, the solution is for every project to use the same version of
> gnulib!

That won't happen and is impossible -- while I don't have an example, in
general you can't build an old version of, say, coreutils with today's
gnulib, or expect that a future version of coreutils will work with
today's gnulib. I'm sure trying old enough coreutils, or some other
project that use gnulib, will come up with an example that breaks the
build (or produce incorrect results).

/Simon
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCY6286BQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFohuEAQCamU2qi06zlSkJ6F31nAnmtw1Y1k/G
I9J6DraQgoM3dwEAixNVoDSAVZXdJfQvrEKD30Q7jAkhqCAZ34n1afcfLQw=
=7XFl
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 29 Dec 2022 21:02
Re: [PATCH v3 1/2] gnu: Add gnulib.
(name . Simon Josefsson)(address . simon@josefsson.org)
489abf355b4a607ca6d152edc94756824c7edb0e.camel@gmail.com
Am Dienstag, dem 27.12.2022 um 17:23 +0100 schrieb Vivien Kraus:
Toggle quote (43 lines)
> * gnu/packages/build-tools.scm (gnulib): New variable.
> (gnulib-checkout): New function. It returns a package with a specific
> commit
> of gnulib.
> ---
>  gnu/packages/build-tools.scm | 58
> ++++++++++++++++++++++++++++++++++++
>  1 file changed, 58 insertions(+)
>
> diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-
> tools.scm
> index 6c1350c44f..5b4fc71429 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,58 @@ (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))))
> +
> +(define-public (gnulib-checkout gl-version gl-commit gl-hash)
You should probably use keyword arguments here. Also, don't bother
prefixing things, the shadowing rules in Guix are well-defined.
Toggle quote (4 lines)
> +  "Return as a package the exact gnulib checkout."
> +  (package
> +    (name "gnulib")
> +    (version (git-version gl-version "1" gl-commit))
Allow the user to specify revision, defaulting to "1".
Toggle quote (8 lines)
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://git.savannah.gnu.org/git/gnulib.git")
> +             (commit gl-commit)))
> +       (file-name (git-file-name name version))
> +       (sha256 (base32 gl-hash))))
While it's more typing effort, move base32 outside for that compile-
time expansion.
Toggle quote (15 lines)
> +    (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/"
> +                                 #$gl-commit)))))
See [*] below.
Toggle quote (3 lines)
> +      #:tests? #f)) ;; Tests are syntax and indentation checks for
> the
> +    ;; maintainer.
IMHO, we should still run tests unless they significantly complicate
packaging.
Toggle quote (25 lines)
> +    (inputs ;; Shebangs for some auxiliary build files.
> +     (list python perl clisp))
> +    (home-page "https://www.gnu.org/software/gnulib/")
> +    (synopsis "Source files to share among distributions")
> +    (description
> +     "Gnulib is a central location for common infrastructure needed
> by GNU
> +packages.  It provides a wide variety of functionality, e.g.,
> portability
> +across many systems, working with Unicode strings, cryptographic
> computation,
> +and much more.  The code is intended to be shared at the level of
> source
> +files, rather than being a standalone library that is distributed,
> built, and
> +installed.  The included @command{gnulib-tool} script helps with
> using Gnulib
> +code in other packages.  Gnulib also includes copies of licensing
> and
> +maintenance-related files, for convenience.")
> +    (native-search-paths
> +     (list (search-path-specification
> +            (variable "GNULIB_SRCDIR")
> +            (files (list (string-append "share/gnulib/" gl-
> commit))))))
[*] Rather than installing the library to an always different location
and using an environment variable to bind it, I'd suggest using a fixed
location, such as #$output/src/gnulib, so that consuming packages can
use --gnulib-srcdir=#$(search-input-directory %build-inputs
"src/gnulib")
Toggle quote (3 lines)
> +    (license (list license:lgpl2.0+ license:gpl3+))))
> +

Furthermore, quite a number of gnulib appears to have been
automatically generated. Can we do a proper bootstrap? :)

Cheers
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v4 3/3] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
05e97925f12bd082c00864fe55e51372eebceaa5.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)

Toggle diff (86 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..44a27ef8cb 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,28 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh")))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +421,13 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))
+ git ; gnulib requires git even if nothing is downloaded.
+ ))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 12:30
[PATCH v4 2/3] gnu: gnulib: Enable tests.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
5447da6c7608ffc02eec8ecfd83f9e7d78a29926.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout) [fix-tests]: New
phase. Create a git repository so that every file is committed.
* gnu/packages/build-tools.scm (gnulib-checkout): [disable-failing-tests]: New
phase.
* gnu/packages/build-tools.scm (gnulib-checkout): [install]: Delete the fake
git repository.
* gnu/packages/build-tools.scm (gnulib-checkout): [native-inputs]: Add more
tools for the tests.
---
gnu/packages/build-tools.scm | 54 +++++++++++++++++++++++++++++++++---
1 file changed, 50 insertions(+), 4 deletions(-)

Toggle diff (85 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index bde4ee0973..5fa2b7234c 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -43,11 +43,14 @@ (define-module (gnu packages build-tools)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp)
@@ -830,16 +833,59 @@ (define*-public (gnulib-checkout #:key
(list
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ (invoke "git" "commit" "-m"
+ "Syntax checks are only run against committed files, so commit everything.")))
+ (add-after 'fix-tests 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_sym_list")
+ "disabled_check_sym_list")
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_check_copyright")
+ "disabled_check_copyright")
+ (("sc_prohibit_AC_LIBOBJ_in_m4")
+ "disabled_prohibit_AC_LIBOBJ_in_m4")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_leading_TABs")
+ "disabled_prohibit_leading_TABs"))))
(delete 'configure)
(replace 'install
(lambda _
(install-file "gnulib-tool"
(string-append #$output "/bin"))
- (copy-recursively "." (string-append #$output "/src/gnulib/")))))
- #:tests? #f)) ;; Tests are syntax and indentation checks for the
- ;; maintainer. And they are failing.
+ (delete-file-recursively ".git")
+ (copy-recursively "." (string-append #$output "/src/gnulib/")))))))
(inputs ;; Shebangs for some auxiliary build files.
- (list python perl clisp))
+ (list python perl clisp
+ ;; Programs for the tests:
+ cppi indent git autoconf))
(home-page "https://www.gnu.org/software/gnulib/")
(synopsis "Source files to share among distributions")
(description
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v4 1/3] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
45c0f87031004dcca08c98161fd021787c3ab3de.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 59 ++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)

Toggle diff (96 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..bde4ee0973 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,12 +32,14 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 +50,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 +807,58 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)))
+ (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 "/src/gnulib/")))))
+ #:tests? #f)) ;; Tests are syntax and indentation checks for the
+ ;; maintainer. And they are failing.
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-28"
+ #:commit "14a7b0ce5462c90ce86d97bf952185ec2500d341"
+ #:hash (base32 "0fz25ccdlxf4xp37rjsl1fslc4g0x12qpvadz4qw0cq18dvx5kbx")))

base-commit: 01762b7171f9afaf7ffa364f7926461bdebc903f
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 12:45
Re: [PATCH v3 1/2] gnu: Add gnulib.
(name . Simon Josefsson)(address . simon@josefsson.org)
9cd5953a7e470ce1fb49e6c07f66184d8714224b.camel@planete-kraus.eu
Hello,

Le jeudi 29 décembre 2022 à 21:02 +0100, Liliana Marie Prikler a
écrit :
Toggle quote (3 lines)
> Furthermore, quite a number of gnulib appears to have been
> automatically generated.  Can we do a proper bootstrap? :)

Could you give an example? I think I remember that gnulib sources are
taken from glibc, is it what you mean?

Best regards,

Vivien
L
L
Liliana Marie Prikler wrote on 30 Dec 2022 20:35
(name . Simon Josefsson)(address . simon@josefsson.org)
5e051f3664ee170fdae2d11fbc55e70964d11484.camel@gmail.com
Am Freitag, dem 30.12.2022 um 12:45 +0100 schrieb Vivien Kraus:
Toggle quote (9 lines)
> Hello,
>
> Le jeudi 29 décembre 2022 à 21:02 +0100, Liliana Marie Prikler a
> écrit :
> > Furthermore, quite a number of gnulib appears to have been
> > automatically generated.  Can we do a proper bootstrap? :)
>
> Could you give an example? I think I remember that gnulib sources are
> taken from glibc, is it what you mean?
grep -iR "do not edit" $(./pre-inst-env guix build -S gnulib)

Some of the matches are emitters, but many of them are emitted
comments.

Cheers
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v5 5/5] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
2fb8065d7f7e08dbc2bd71d05b03c82c43815ca2.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 41 ++++++++++++++++++++++++++++-------------
1 file changed, 28 insertions(+), 13 deletions(-)

Toggle diff (86 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..44a27ef8cb 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,28 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh")))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +421,13 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))
+ git ; gnulib requires git even if nothing is downloaded.
+ ))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 12:30
[PATCH v5 2/5] gnu: gnulib: Enable tests.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
e1d8f3f088adffcc6fadb16917801860a12ed808.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout) [fix-tests]: New
phase. Create a git repository so that every file is committed.
* gnu/packages/build-tools.scm (gnulib-checkout): [disable-failing-tests]: New
phase.
* gnu/packages/build-tools.scm (gnulib-checkout): [install]: Delete the fake
git repository.
* gnu/packages/build-tools.scm (gnulib-checkout): [native-inputs]: Add more
tools for the tests.
---
gnu/packages/build-tools.scm | 54 +++++++++++++++++++++++++++++++++---
1 file changed, 50 insertions(+), 4 deletions(-)

Toggle diff (85 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index bde4ee0973..5fa2b7234c 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -43,11 +43,14 @@ (define-module (gnu packages build-tools)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp)
@@ -830,16 +833,59 @@ (define*-public (gnulib-checkout #:key
(list
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ (invoke "git" "commit" "-m"
+ "Syntax checks are only run against committed files, so commit everything.")))
+ (add-after 'fix-tests 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_sym_list")
+ "disabled_check_sym_list")
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_check_copyright")
+ "disabled_check_copyright")
+ (("sc_prohibit_AC_LIBOBJ_in_m4")
+ "disabled_prohibit_AC_LIBOBJ_in_m4")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_leading_TABs")
+ "disabled_prohibit_leading_TABs"))))
(delete 'configure)
(replace 'install
(lambda _
(install-file "gnulib-tool"
(string-append #$output "/bin"))
- (copy-recursively "." (string-append #$output "/src/gnulib/")))))
- #:tests? #f)) ;; Tests are syntax and indentation checks for the
- ;; maintainer. And they are failing.
+ (delete-file-recursively ".git")
+ (copy-recursively "." (string-append #$output "/src/gnulib/")))))))
(inputs ;; Shebangs for some auxiliary build files.
- (list python perl clisp))
+ (list python perl clisp
+ ;; Programs for the tests:
+ cppi indent git autoconf))
(home-page "https://www.gnu.org/software/gnulib/")
(synopsis "Source files to share among distributions")
(description
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 22:20
[PATCH v5 3/5] gnu: UCD: Add version 3.0-update1.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
36a8b51d628dab1706ed903db57eb1be1abbee1f.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd3.0-update1): New variable.
---
gnu/packages/unicode.scm | 59 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)

Toggle diff (85 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..66340721e3 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -21,13 +21,15 @@
(define-module (gnu packages unicode)
#:use-module (gnu packages autotools)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
- #:use-module (guix build-system trivial))
+ #:use-module (guix build-system trivial)
+ #:use-module (ice-9 match))
(define-public libunibreak
(package
@@ -112,6 +114,61 @@ (define-public ucd-next
(base32
"001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+(define-public ucd3.0-update1
+ (package
+ (inherit ucd)
+ (version "3.0-update1")
+ (source
+ ;; unicode.org does not provide a zipped archive.
+ (directory-union
+ "ucd-3.0-update1-source"
+ (map
+ (match-lambda
+ ((filename . hash)
+ (file-union
+ (string-append "ucd-3.0-update1-" filename)
+ `((,filename
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://www.unicode.org/Public/3.0-Update1/" filename))
+ (sha256 hash)))))))
+ `(("ArabicShaping-3.txt"
+ . ,(base32
+ "0k6hwdnln8cwkzixxbbc6q5g3nx3z5p1549c0jicnz7gq2mvkh90"))
+ ("BidiMirroring-1.txt"
+ . ,(base32
+ "0wc5gj6mx5wjkwph734swqd3zvi3ngfx75yybbc1f52dc1l3sh9m"))
+ ("CaseFolding-2.txt"
+ . ,(base32
+ "143hvpalrnkrxc2g9626v6w4cgmksg9hkcm39fpmqidn0rnpm8vy"))
+ ("CompositionExclusions-2.txt"
+ . ,(base32
+ "06vlc7yqhkacbb411ykyn4na5kq93yp0p9mm3a2jfixk704nwpj1"))
+ ("Jamo-3.txt"
+ . ,(base32
+ "092lww4ak9wa7g4jn80i9ckniwg3ymmiaq62xxhhbwk3cx2d23ad"))
+ ("NormalizationTest-3.0.1.txt"
+ . ,(base32
+ "1r5vq8dlar7km1376bp16l40pyczzvwk9waxgin2i2432qdpwmga"))
+ ("PropList-3.0.1.txt"
+ . ,(base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))
+ ("ReadMe-3.0.1.txt"
+ . ,(base32
+ "08mkcs3r1caj67wrcqq0gyb79zj9qyqnmx8qab0rsd4qg87xhnbv"))
+ ("SpecialCasing-3.txt"
+ . ,(base32
+ "08vrf0kk5zlsl40h4nsfbpnckl4610m7x2072lyq97lln7dsky7a"))
+ ("UnicodeCharacterDatabase-3.0.1.html"
+ . ,(base32
+ "0fy7vb1zkxg2pg198p7phncjs78gz6lvdzhv51yz34kds8nzz40m"))
+ ("UnicodeData-3.0.1.html"
+ . ,(base32
+ "0fvv59ydp09mppjr8130kmp90r240hnaqld8i5xkpz900fl20pc1"))
+ ("UnicodeData-3.0.1.txt"
+ . ,(base32
+ "092svm19f78pxg58pcisg3i57884y7z22rymrcppjkg6sz3izsia"))))))))
+
(define (unicode-emoji-file name version hash)
(origin
(method url-fetch)
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v5 1/5] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
b75458fa540f1d84f526b96488edf08b09b60563.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 59 ++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)

Toggle diff (96 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..bde4ee0973 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,12 +32,14 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 +50,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 +807,58 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)))
+ (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 "/src/gnulib/")))))
+ #:tests? #f)) ;; Tests are syntax and indentation checks for the
+ ;; maintainer. And they are failing.
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-28"
+ #:commit "14a7b0ce5462c90ce86d97bf952185ec2500d341"
+ #:hash (base32 "0fz25ccdlxf4xp37rjsl1fslc4g0x12qpvadz4qw0cq18dvx5kbx")))

base-commit: e84f17ea939013f25a0dd1276659e27bc4c2198f
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 23:05
[PATCH v5 4/5] gnu: gnulib: Regenerate the unicode data.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
a220c28a59261e90dcad41fbe61b4f841392e841.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout): [snippet]: Remove generated
unicode processors.
[regenerate-unicode]: New phase.
---
gnu/packages/build-tools.scm | 401 ++++++++++++++++++++++++++++++++++-
1 file changed, 397 insertions(+), 4 deletions(-)

Toggle diff (328 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 5fa2b7234c..9592b82130 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -41,6 +41,7 @@ (define-module (gnu packages build-tools)
#:use-module (guix git-download)
#:use-module (guix git)
#:use-module (guix build-system cmake)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
@@ -52,6 +53,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages cpp)
#:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp)
#:use-module (gnu packages logging)
@@ -72,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -827,7 +830,350 @@ (define*-public (gnulib-checkout #:key
(url "https://git.savannah.gnu.org/git/gnulib.git")
(commit commit)))
(file-name (git-file-name name version))
- (sha256 hash)))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils))
+ (for-each delete-file-recursively
+ `("tests/unicase/test-ignorable.c"
+ "tests/unicase/test-uc_toupper.c"
+ "tests/unicase/test-uc_tolower.c"
+ "tests/unicase/test-cased.c"
+ "tests/unicase/test-uc_totitle.c"
+ "tests/unigbrk/test-uc-gbrk-prop.h"
+ "tests/unictype/test-pr_zero_width.c"
+ "tests/unictype/test-pr_ascii_hex_digit.c"
+ "tests/unictype/test-ctype_xdigit.c"
+ "tests/unictype/test-digit.h"
+ "tests/unictype/test-pr_grapheme_extend.c"
+ "tests/unictype/test-ctype_cntrl.c"
+ "tests/unictype/test-pr_default_ignorable_code_point.c"
+ "tests/unictype/test-categ_Nd.c"
+ "tests/unictype/test-decdigit.h"
+ "tests/unictype/test-pr_currency_symbol.c"
+ "tests/unictype/test-pr_logical_order_exception.c"
+ "tests/unictype/test-pr_bidi_common_separator.c"
+ "tests/unictype/test-pr_space.c"
+ "tests/unictype/test-pr_ids_trinary_operator.c"
+ "tests/unictype/test-pr_decimal_digit.c"
+ "tests/unictype/test-categ_Lo.c"
+ "tests/unictype/test-categ_Cn.c"
+ "tests/unictype/test-categ_Mn.c"
+ "tests/unictype/test-pr_line_separator.c"
+ "tests/unictype/test-ctype_upper.c"
+ "tests/unictype/test-pr_extender.c"
+ "tests/unictype/test-pr_other_default_ignorable_code_point.c"
+ "tests/unictype/test-pr_uppercase.c"
+ "tests/unictype/test-categ_Ll.c"
+ "tests/unictype/test-ctype_alpha.c"
+ "tests/unictype/test-pr_changes_when_lowercased.c"
+ "tests/unictype/test-categ_Sm.c"
+ "tests/unictype/test-pr_variation_selector.c"
+ "tests/unictype/test-pr_white_space.c"
+ "tests/unictype/test-pr_ideographic.c"
+ "tests/unictype/test-joininggroup_of.h"
+ "tests/unictype/test-ctype_lower.c"
+ "tests/unictype/test-pr_quotation_mark.c"
+ "tests/unictype/test-pr_bidi_block_separator.c"
+ "tests/unictype/test-ctype_blank.c"
+ "tests/unictype/test-pr_bidi_eur_num_terminator.c"
+ "tests/unictype/test-pr_bidi_pdf.c"
+ "tests/unictype/test-pr_deprecated.c"
+ "tests/unictype/test-pr_grapheme_base.c"
+ "tests/unictype/test-sy_java_whitespace.c"
+ "tests/unictype/test-pr_other_alphabetic.c"
+ "tests/unictype/test-categ_C.c"
+ "tests/unictype/test-categ_Cc.c"
+ "tests/unictype/test-pr_id_continue.c"
+ "tests/unictype/test-pr_changes_when_uppercased.c"
+ "tests/unictype/test-pr_bidi_control.c"
+ "tests/unictype/test-pr_changes_when_casemapped.c"
+ "tests/unictype/test-categ_S.c"
+ "tests/unictype/test-pr_pattern_white_space.c"
+ "tests/unictype/test-pr_format_control.c"
+ "tests/unictype/test-categ_N.c"
+ "tests/unictype/test-categ_LC.c"
+ "tests/unictype/test-pr_bidi_arabic_right_to_left.c"
+ "tests/unictype/test-categ_Nl.c"
+ "tests/unictype/test-pr_other_uppercase.c"
+ "tests/unictype/test-pr_other_grapheme_extend.c"
+ "tests/unictype/test-pr_diacritic.c"
+ "tests/unictype/test-pr_join_control.c"
+ "tests/unictype/test-pr_composite.c"
+ "tests/unictype/test-pr_extended_pictographic.c"
+ "tests/unictype/test-pr_combining.c"
+ "tests/unictype/test-categ_Lm.c"
+ "tests/unictype/test-pr_other_id_continue.c"
+ "tests/unictype/test-pr_xid_continue.c"
+ "tests/unictype/test-pr_ids_binary_operator.c"
+ "tests/unictype/test-pr_bidi_left_to_right.c"
+ "tests/unictype/test-pr_bidi_non_spacing_mark.c"
+ "tests/unictype/test-categ_Zl.c"
+ "tests/unictype/test-pr_sentence_terminal.c"
+ "tests/unictype/test-categ_Co.c"
+ "tests/unictype/test-pr_non_break.c"
+ "tests/unictype/test-pr_math.c"
+ "tests/unictype/test-ctype_punct.c"
+ "tests/unictype/test-pr_other_id_start.c"
+ "tests/unictype/test-ctype_digit.c"
+ "tests/unictype/test-pr_bidi_eur_num_separator.c"
+ "tests/unictype/test-pr_id_start.c"
+ "tests/unictype/test-pr_numeric.c"
+ "tests/unictype/test-categ_Pe.c"
+ "tests/unictype/test-pr_lowercase.c"
+ "tests/unictype/test-pr_hex_digit.c"
+ "tests/unictype/test-pr_emoji_presentation.c"
+ "tests/unictype/test-pr_ignorable_control.c"
+ "tests/unictype/test-categ_Pi.c"
+ "tests/unictype/test-pr_bidi_boundary_neutral.c"
+ "tests/unictype/test-pr_changes_when_titlecased.c"
+ "tests/unictype/test-categ_Cf.c"
+ "tests/unictype/test-pr_emoji_modifier.c"
+ "tests/unictype/test-pr_alphabetic.c"
+ "tests/unictype/test-pr_changes_when_casefolded.c"
+ "tests/unictype/test-pr_left_of_pair.c"
+ "tests/unictype/test-pr_radical.c"
+ "tests/unictype/test-pr_pattern_syntax.c"
+ "tests/unictype/test-categ_L.c"
+ "tests/unictype/test-pr_other_lowercase.c"
+ "tests/unictype/test-categ_Pf.c"
+ "tests/unictype/test-ctype_print.c"
+ "tests/unictype/test-pr_bidi_whitespace.c"
+ "tests/unictype/test-numeric.h"
+ "tests/unictype/test-pr_paired_punctuation.c"
+ "tests/unictype/test-pr_emoji_modifier_base.c"
+ "tests/unictype/test-categ_Ps.c"
+ "tests/unictype/test-pr_dash.c"
+ "tests/unictype/test-pr_bidi_european_digit.c"
+ "tests/unictype/test-categ_P.c"
+ "tests/unictype/test-pr_grapheme_link.c"
+ "tests/unictype/test-categ_Lu.c"
+ "tests/unictype/test-categ_No.c"
+ "tests/unictype/test-pr_emoji.c"
+ "tests/unictype/test-categ_M.c"
+ "tests/unictype/test-pr_regional_indicator.c"
+ "tests/unictype/test-categ_Zs.c"
+ "tests/unictype/test-categ_Sk.c"
+ "tests/unictype/test-sy_c_whitespace.c"
+ "tests/unictype/test-pr_unified_ideograph.c"
+ "tests/unictype/test-categ_Cs.c"
+ "tests/unictype/test-pr_case_ignorable.c"
+ "tests/unictype/test-categ_Sc.c"
+ "tests/unictype/test-categ_So.c"
+ "tests/unictype/test-pr_bidi_hebrew_right_to_left.c"
+ "tests/unictype/test-categ_Po.c"
+ "tests/unictype/test-joiningtype_of.h"
+ "tests/unictype/test-pr_soft_dotted.c"
+ "tests/unictype/test-categ_Pd.c"
+ "tests/unictype/test-categ_Z.c"
+ "tests/unictype/test-categ_Zp.c"
+ "tests/unictype/test-ctype_space.c"
+ "tests/unictype/test-pr_emoji_component.c"
+ "tests/unictype/test-pr_bidi_other_neutral.c"
+ "tests/unictype/test-pr_other_math.c"
+ "tests/unictype/test-pr_private_use.c"
+ "tests/unictype/test-pr_cased.c"
+ "tests/unictype/test-pr_terminal_punctuation.c"
+ "tests/unictype/test-categ_Me.c"
+ "tests/unictype/test-ctype_graph.c"
+ "tests/unictype/test-pr_unassigned_code_value.c"
+ "tests/unictype/test-categ_Lt.c"
+ "tests/unictype/test-categ_Pc.c"
+ "tests/unictype/test-pr_punctuation.c"
+ "tests/unictype/test-pr_bidi_segment_separator.c"
+ "tests/unictype/test-pr_paragraph_separator.c"
+ "tests/unictype/test-pr_xid_start.c"
+ "tests/unictype/test-pr_bidi_embedding_or_override.c"
+ "tests/unictype/test-categ_Mc.c"
+ "tests/unictype/test-pr_bidi_arabic_digit.c"
+ "tests/unictype/test-pr_titlecase.c"
+ "tests/unictype/test-pr_iso_control.c"
+ "tests/unictype/test-pr_not_a_character.c"
+ "tests/unictype/test-pr_hyphen.c"
+ "tests/unictype/test-ctype_alnum.c"
+ "lib/unicase/ignorable.h"
+ "lib/unicase/special-casing-table.gperf"
+ "lib/unicase/tolower.h"
+ "lib/unicase/toupper.h"
+ "lib/unicase/tocasefold.h"
+ "lib/unicase/totitle.h"
+ "lib/unicase/cased.h"
+ "lib/uniwidth/width0.h"
+ "lib/uniwidth/width2.h"
+ "lib/unigbrk/gbrkprop.h"
+ "lib/uninorm/composition-table.gperf"
+ "lib/uninorm/decomposition-table1.h"
+ "lib/uninorm/decomposition-table2.h"
+ "lib/uniname/uninames.h"
+ "lib/uniwbrk/wbrkprop.h"
+ "lib/unilbrk/lbrktables.c"
+ "lib/unilbrk/lbrkprop1.h"
+ "lib/unilbrk/lbrkprop2.h"
+ "lib/unictype/pr_radical.h"
+ "lib/unictype/pr_other_math.h"
+ "lib/unictype/pr_dash.h"
+ "lib/unictype/pr_combining.h"
+ "lib/unictype/pr_not_a_character.h"
+ "lib/unictype/pr_math.h"
+ "lib/unictype/pr_terminal_punctuation.h"
+ "lib/unictype/pr_id_start.h"
+ "lib/unictype/pr_quotation_mark.h"
+ "lib/unictype/pr_changes_when_titlecased.h"
+ "lib/unictype/categ_Mc.h"
+ "lib/unictype/pr_deprecated.h"
+ "lib/unictype/categ_Cf.h"
+ "lib/unictype/pr_zero_width.h"
+ "lib/unictype/pr_emoji_modifier_base.h"
+ "lib/unictype/ctype_blank.h"
+ "lib/unictype/joininggroup_of.h"
+ "lib/unictype/categ_Sk.h"
+ "lib/unictype/pr_paired_punctuation.h"
+ "lib/unictype/pr_decimal_digit.h"
+ "lib/unictype/pr_other_uppercase.h"
+ "lib/unictype/categ_Cn.h"
+ "lib/unictype/categ_of.h"
+ "lib/unictype/sy_c_whitespace.h"
+ "lib/unictype/pr_composite.h"
+ "lib/unictype/pr_other_grapheme_extend.h"
+ "lib/unictype/pr_other_id_continue.h"
+ "lib/unictype/pr_paragraph_separator.h"
+ "lib/unictype/pr_bidi_whitespace.h"
+ "lib/unictype/scripts.h"
+ "lib/unictype/ctype_graph.h"
+ "lib/unictype/pr_bidi_arabic_right_to_left.h"
+ "lib/unictype/categ_Lu.h"
+ "lib/unictype/pr_hyphen.h"
+ "lib/unictype/pr_changes_when_casemapped.h"
+ "lib/unictype/categ_Pe.h"
+ "lib/unictype/pr_hex_digit.h"
+ "lib/unictype/pr_id_continue.h"
+ "lib/unictype/pr_pattern_white_space.h"
+ "lib/unictype/joiningtype_of.h"
+ "lib/unictype/ctype_upper.h"
+ "lib/unictype/pr_extender.h"
+ "lib/unictype/pr_iso_control.h"
+ "lib/unictype/ctype_lower.h"
+ "lib/unictype/categ_Ps.h"
+ "lib/unictype/categ_Sc.h"
+ "lib/unictype/ctype_print.h"
+ "lib/unictype/sy_java_ident.h"
+ "lib/unictype/ctype_alnum.h"
+ "lib/unictype/pr_ideographic.h"
+ "lib/unictype/pr_titlecase.h"
+ "lib/unictype/categ_N.h"
+ "lib/unictype/pr_changes_when_casefolded.h"
+ "lib/unictype/pr_soft_dotted.h"
+ "lib/unictype/categ_Z.h"
+ "lib/unictype/categ_Lm.h"
+ "lib/unictype/categ_P.h"
+ "lib/unictype/pr_emoji_component.h"
+ "lib/unictype/pr_space.h"
+ "lib/unictype/pr_other_lowercase.h"
+ "lib/unictype/pr_bidi_eur_num_separator.h"
+ "lib/unictype/pr_bidi_eur_num_terminator.h"
+ "lib/unictype/ctype_alpha.h"
+ "lib/unictype/numeric.h"
+ "lib/unictype/pr_grapheme_base.h"
+ "lib/unictype/ctype_xdigit.h"
+ "lib/unictype/pr_bidi_embedding_or_override.h"
+ "lib/unictype/blocks.h"
+ "lib/unictype/categ_No.h"
+ "lib/unictype/pr_ascii_hex_digit.h"
+ "lib/unictype/pr_bidi_european_digit.h"
+ "lib/unictype/pr_format_control.h"
+ "lib/unictype/pr_join_control.h"
+ "lib/unictype/pr_case_ignorable.h"
+ "lib/unictype/ctype_space.h"
+ "lib/unictype/pr_bidi_control.h"
+ "lib/unictype/pr_diacritic.h"
+ "lib/unictype/categ_Zs.h"
+ "lib/unictype/mirror.h"
+ "lib/unictype/categ_Zl.h"
+ "lib/unictype/pr_bidi_hebrew_right_to_left.h"
+ "lib/unictype/decdigit.h"
+ "lib/unictype/categ_Nd.h"
+ "lib/unictype/pr_sentence_terminal.h"
+ "lib/unictype/combiningclass.h"
+ "lib/unictype/categ_S.h"
+ "lib/unictype/pr_bidi_arabic_digit.h"
+ "lib/unictype/digit.h"
+ "lib/unictype/categ_So.h"
+ "lib/unictype/pr_changes_when_uppercased.h"
+ "lib/unictype/pr_other_alphabetic.h"
+ "lib/unictype/pr_emoji_presentation.h"
+ "lib/unictype/pr_ignorable_control.h"
+ "lib/unictype/categ_Cs.h"
+ "lib/unictype/sy_java_whitespace.h"
+ "lib/unictype/pr_changes_when_lowercased.h"
+ "lib/unictype/pr_ids_binary_operator.h"
+ "lib/unictype/categ_Ll.h"
+ "lib/unictype/pr_logical_order_exception.h"
+ "lib/unictype/pr_bidi_pdf.h"
+ "lib/unictype/sy_c_ident.h"
+ "lib/unictype/categ_Sm.h"
+ "lib/unictype/pr_non_break.h"
+ "lib/unictype/categ_Zp.h"
+ "lib/unictype/categ_Pc.h"
+ "lib/unictype/pr_bidi_common_separator.h"
+ "lib/unictype/pr_grapheme_extend.h"
+ "lib/unictype/categ_Pd.h"
+ "lib/unictype/categ_Mn.h"
+ "lib/unictype/pr_extended_pictographic.h"
+ "lib/unictype/categ_Lo.h"
+ "lib/unictype/pr_currency_symbol.h"
+ "lib/unictype/pr_unassigned_code_value.h"
+ "lib/unictype/categ_Cc.h"
+ "lib/unictype/pr_xid_c
This message was truncated. Download the full message here.
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 07:49
Re: [PATCH v5 3/5] gnu: UCD: Add version 3.0-update1.
42bc322d6b91d97d6f80f0ad72e131664e565c2e.camel@gmail.com
Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
Toggle quote (2 lines)
> * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
> ---
Surely this must work with a newer UCD. Perhaps not with 14, which is
the currently packaged one, but what if we use 7, which is the first
zipped one? Using a newer UCD might also solve your Hangul problem.

Cheers
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 07:53
Re: [PATCH v5 1/5] gnu: Add gnulib.
93102590da2c4d8659f7cec0843dc9ac59736ddc.camel@gmail.com
Am Dienstag, dem 27.12.2022 um 17:23 +0100 schrieb Vivien Kraus:
Toggle quote (5 lines)
> * gnu/packages/build-tools.scm (gnulib): New variable.
> (gnulib-checkout): New function. It returns a package with a specific
> commit
> of gnulib.
> ---
As a matter of principle, order the commits so that dependencies come
before depending packages. You can also squash multiple commits that
fix issues in the previous one into one.

Cheers
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 07:53
Re: [PATCH v5 5/5] gnu: guile-gnutls: Update to 3.7.11.
0639ebd29bc2e83e6c8dea0469d3b8da942d6d71.camel@gmail.com
Am Mittwoch, dem 28.12.2022 um 03:20 +0100 schrieb Vivien Kraus:
Toggle quote (102 lines)
> * gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang
> autopull.sh and
> autogen.sh.
> * gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and
> git.
> ---
>  gnu/packages/tls.scm | 41 ++++++++++++++++++++++++++++-------------
>  1 file changed, 28 insertions(+), 13 deletions(-)
>
> diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
> index a74b423ccf..44a27ef8cb 100644
> --- a/gnu/packages/tls.scm
> +++ b/gnu/packages/tls.scm
> @@ -56,6 +56,7 @@ (define-module (gnu packages tls)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages bash)
> +  #:use-module (gnu packages build-tools)
>    #:use-module (gnu packages check)
>    #:use-module (gnu packages curl)
>    #:use-module (gnu packages dns)
> @@ -80,6 +81,7 @@ (define-module (gnu packages tls)
>    #:use-module (gnu packages sphinx)
>    #:use-module (gnu packages texinfo)
>    #:use-module (gnu packages time)
> +  #:use-module (gnu packages version-control)
>    #:use-module (gnu packages base)
>    #:use-module (srfi srfi-1))
>  
> @@ -381,7 +383,7 @@ (define-public guile-gnutls
>      ;; This package supersedes the Guile bindings that came with
> GnuTLS until
>      ;; version 3.7.8 included.
>      (name "guile-gnutls")
> -    (version "3.7.9")
> +    (version "3.7.11")
>      (home-page "https://gitlab.com/gnutls/guile/")
>      (source (origin
>                (method git-fetch)
> @@ -390,21 +392,28 @@ (define-public guile-gnutls
>                      (commit (string-append "v" version))))
>                (sha256
>                 (base32
> -               
> "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
> +               
> "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
>                (file-name (git-file-name name version))
>                (patches (search-patches "gnutls-cross.patch"))))
>      (build-system gnu-build-system)
>      (arguments
> -     '(#:configure-flags
> -       ;; Tell the build system that we want Guile bindings
> installed to
> -       ;; the output instead of Guiles own module directory.
> -       (list "--disable-static"
> -             (string-append "--with-guile-site-dir="
> -                           
> "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
> -             (string-append "--with-guile-site-ccache-dir="
> -                           
> "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
> -             (string-append "--with-guile-extension-dir="
> -                           
> "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
> +     (list
> +      #:configure-flags
> +      ;; Tell the build system that we want Guile bindings installed
> to the
> +      ;; output instead of Guiles own module directory.
> +      #~(list "--disable-static"
> +              (string-append "--with-guile-site-dir="
> +                            
> "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
> +              (string-append "--with-guile-site-ccache-dir="
> +                            
> "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
> +              (string-append "--with-guile-extension-dir="
> +                            
> "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'patch-more-shebangs
> +            (lambda _
> +              (for-each patch-shebang
> +                        '("autopull.sh" "autogen.sh")))))))
>      (native-inputs
>       (list autoconf
>             automake
> @@ -412,7 +421,13 @@ (define-public guile-gnutls
>             pkg-config
>             texinfo
>             gnutls                 ;XXX: 'guile-snarf' invokes the
> native 'cpp'
> -           guile-3.0))
> +           guile-3.0
> +           (gnulib-checkout
> +            #:version "2022-12-06"
> +            #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
> +            #:hash (base32
> "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))
> +           git ; gnulib requires git even if nothing is downloaded.
We should really make it so that it doesn't.
Toggle quote (5 lines)
> +           ))
>      (inputs
>       (list gnutls-latest
>             guile-3.0))

Cheers
V
V
Vivien Kraus wrote on 31 Dec 2022 11:56
Re: [PATCH v5 3/5] gnu: UCD: Add version 3.0-update1.
8da668a75fe71ee52887f73ec719946cc379f64e.camel@planete-kraus.eu
Hi!

Le samedi 31 décembre 2022 à 07:49 +0100, Liliana Marie Prikler a
écrit :
Toggle quote (8 lines)
> Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
> > * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
> > ---
> Surely this must work with a newer UCD.  Perhaps not with 14, which
> is
> the currently packaged one, but what if we use 7, which is the first
> zipped one?  Using a newer UCD might also solve your Hangul problem.

If you look at gen-uni-tables.c in lib/, you will see that the
instructions insist on using PropList-3.0.1.txt from 3.0 update 1, in
addition to a recent UCD (there are 2?UCD inputs to the gnulib package:
the specific 3.0.1 ucd and the recent ucd − they don’t have colliding
file names). In theory, I would also update UCD, but it has a lot of
dependent packages so the update should go to the staging branch
instead.

There are no clear instructions on how to get HangulSyllableNames.txt,
so I’m hesitant to declare that version 7 will do.

Vivien
V
V
Vivien Kraus wrote on 30 Dec 2022 22:20
[PATCH v6 1/3] gnu: UCD: Add version 3.0-update1.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
94c3384a9e30761e5bd04d4d4b12523e4ddab7f2.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd3.0-update1): New variable.
---
gnu/packages/unicode.scm | 59 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..66340721e3 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -21,13 +21,15 @@
(define-module (gnu packages unicode)
#:use-module (gnu packages autotools)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
- #:use-module (guix build-system trivial))
+ #:use-module (guix build-system trivial)
+ #:use-module (ice-9 match))
(define-public libunibreak
(package
@@ -112,6 +114,61 @@ (define-public ucd-next
(base32
"001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+(define-public ucd3.0-update1
+ (package
+ (inherit ucd)
+ (version "3.0-update1")
+ (source
+ ;; unicode.org does not provide a zipped archive.
+ (directory-union
+ "ucd-3.0-update1-source"
+ (map
+ (match-lambda
+ ((filename . hash)
+ (file-union
+ (string-append "ucd-3.0-update1-" filename)
+ `((,filename
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://www.unicode.org/Public/3.0-Update1/" filename))
+ (sha256 hash)))))))
+ `(("ArabicShaping-3.txt"
+ . ,(base32
+ "0k6hwdnln8cwkzixxbbc6q5g3nx3z5p1549c0jicnz7gq2mvkh90"))
+ ("BidiMirroring-1.txt"
+ . ,(base32
+ "0wc5gj6mx5wjkwph734swqd3zvi3ngfx75yybbc1f52dc1l3sh9m"))
+ ("CaseFolding-2.txt"
+ . ,(base32
+ "143hvpalrnkrxc2g9626v6w4cgmksg9hkcm39fpmqidn0rnpm8vy"))
+ ("CompositionExclusions-2.txt"
+ . ,(base32
+ "06vlc7yqhkacbb411ykyn4na5kq93yp0p9mm3a2jfixk704nwpj1"))
+ ("Jamo-3.txt"
+ . ,(base32
+ "092lww4ak9wa7g4jn80i9ckniwg3ymmiaq62xxhhbwk3cx2d23ad"))
+ ("NormalizationTest-3.0.1.txt"
+ . ,(base32
+ "1r5vq8dlar7km1376bp16l40pyczzvwk9waxgin2i2432qdpwmga"))
+ ("PropList-3.0.1.txt"
+ . ,(base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))
+ ("ReadMe-3.0.1.txt"
+ . ,(base32
+ "08mkcs3r1caj67wrcqq0gyb79zj9qyqnmx8qab0rsd4qg87xhnbv"))
+ ("SpecialCasing-3.txt"
+ . ,(base32
+ "08vrf0kk5zlsl40h4nsfbpnckl4610m7x2072lyq97lln7dsky7a"))
+ ("UnicodeCharacterDatabase-3.0.1.html"
+ . ,(base32
+ "0fy7vb1zkxg2pg198p7phncjs78gz6lvdzhv51yz34kds8nzz40m"))
+ ("UnicodeData-3.0.1.html"
+ . ,(base32
+ "0fvv59ydp09mppjr8130kmp90r240hnaqld8i5xkpz900fl20pc1"))
+ ("UnicodeData-3.0.1.txt"
+ . ,(base32
+ "092svm19f78pxg58pcisg3i57884y7z22rymrcppjkg6sz3izsia"))))))))
+
(define (unicode-emoji-file name version hash)
(origin
(method url-fetch)

base-commit: c39db91e51e55e46f177378c7b5a797441dc7d1b
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v6 2/3] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
3622db6f2253ec6b9aea183d460bd36b5abb6361.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 498 +++++++++++++++++++++++++++++++++++
1 file changed, 498 insertions(+)

Toggle diff (344 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..9592b82130 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,27 +32,36 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,491 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils))
+ (for-each delete-file-recursively
+ `("tests/unicase/test-ignorable.c"
+ "tests/unicase/test-uc_toupper.c"
+ "tests/unicase/test-uc_tolower.c"
+ "tests/unicase/test-cased.c"
+ "tests/unicase/test-uc_totitle.c"
+ "tests/unigbrk/test-uc-gbrk-prop.h"
+ "tests/unictype/test-pr_zero_width.c"
+ "tests/unictype/test-pr_ascii_hex_digit.c"
+ "tests/unictype/test-ctype_xdigit.c"
+ "tests/unictype/test-digit.h"
+ "tests/unictype/test-pr_grapheme_extend.c"
+ "tests/unictype/test-ctype_cntrl.c"
+ "tests/unictype/test-pr_default_ignorable_code_point.c"
+ "tests/unictype/test-categ_Nd.c"
+ "tests/unictype/test-decdigit.h"
+ "tests/unictype/test-pr_currency_symbol.c"
+ "tests/unictype/test-pr_logical_order_exception.c"
+ "tests/unictype/test-pr_bidi_common_separator.c"
+ "tests/unictype/test-pr_space.c"
+ "tests/unictype/test-pr_ids_trinary_operator.c"
+ "tests/unictype/test-pr_decimal_digit.c"
+ "tests/unictype/test-categ_Lo.c"
+ "tests/unictype/test-categ_Cn.c"
+ "tests/unictype/test-categ_Mn.c"
+ "tests/unictype/test-pr_line_separator.c"
+ "tests/unictype/test-ctype_upper.c"
+ "tests/unictype/test-pr_extender.c"
+ "tests/unictype/test-pr_other_default_ignorable_code_point.c"
+ "tests/unictype/test-pr_uppercase.c"
+ "tests/unictype/test-categ_Ll.c"
+ "tests/unictype/test-ctype_alpha.c"
+ "tests/unictype/test-pr_changes_when_lowercased.c"
+ "tests/unictype/test-categ_Sm.c"
+ "tests/unictype/test-pr_variation_selector.c"
+ "tests/unictype/test-pr_white_space.c"
+ "tests/unictype/test-pr_ideographic.c"
+ "tests/unictype/test-joininggroup_of.h"
+ "tests/unictype/test-ctype_lower.c"
+ "tests/unictype/test-pr_quotation_mark.c"
+ "tests/unictype/test-pr_bidi_block_separator.c"
+ "tests/unictype/test-ctype_blank.c"
+ "tests/unictype/test-pr_bidi_eur_num_terminator.c"
+ "tests/unictype/test-pr_bidi_pdf.c"
+ "tests/unictype/test-pr_deprecated.c"
+ "tests/unictype/test-pr_grapheme_base.c"
+ "tests/unictype/test-sy_java_whitespace.c"
+ "tests/unictype/test-pr_other_alphabetic.c"
+ "tests/unictype/test-categ_C.c"
+ "tests/unictype/test-categ_Cc.c"
+ "tests/unictype/test-pr_id_continue.c"
+ "tests/unictype/test-pr_changes_when_uppercased.c"
+ "tests/unictype/test-pr_bidi_control.c"
+ "tests/unictype/test-pr_changes_when_casemapped.c"
+ "tests/unictype/test-categ_S.c"
+ "tests/unictype/test-pr_pattern_white_space.c"
+ "tests/unictype/test-pr_format_control.c"
+ "tests/unictype/test-categ_N.c"
+ "tests/unictype/test-categ_LC.c"
+ "tests/unictype/test-pr_bidi_arabic_right_to_left.c"
+ "tests/unictype/test-categ_Nl.c"
+ "tests/unictype/test-pr_other_uppercase.c"
+ "tests/unictype/test-pr_other_grapheme_extend.c"
+ "tests/unictype/test-pr_diacritic.c"
+ "tests/unictype/test-pr_join_control.c"
+ "tests/unictype/test-pr_composite.c"
+ "tests/unictype/test-pr_extended_pictographic.c"
+ "tests/unictype/test-pr_combining.c"
+ "tests/unictype/test-categ_Lm.c"
+ "tests/unictype/test-pr_other_id_continue.c"
+ "tests/unictype/test-pr_xid_continue.c"
+ "tests/unictype/test-pr_ids_binary_operator.c"
+ "tests/unictype/test-pr_bidi_left_to_right.c"
+ "tests/unictype/test-pr_bidi_non_spacing_mark.c"
+ "tests/unictype/test-categ_Zl.c"
+ "tests/unictype/test-pr_sentence_terminal.c"
+ "tests/unictype/test-categ_Co.c"
+ "tests/unictype/test-pr_non_break.c"
+ "tests/unictype/test-pr_math.c"
+ "tests/unictype/test-ctype_punct.c"
+ "tests/unictype/test-pr_other_id_start.c"
+ "tests/unictype/test-ctype_digit.c"
+ "tests/unictype/test-pr_bidi_eur_num_separator.c"
+ "tests/unictype/test-pr_id_start.c"
+ "tests/unictype/test-pr_numeric.c"
+ "tests/unictype/test-categ_Pe.c"
+ "tests/unictype/test-pr_lowercase.c"
+ "tests/unictype/test-pr_hex_digit.c"
+ "tests/unictype/test-pr_emoji_presentation.c"
+ "tests/unictype/test-pr_ignorable_control.c"
+ "tests/unictype/test-categ_Pi.c"
+ "tests/unictype/test-pr_bidi_boundary_neutral.c"
+ "tests/unictype/test-pr_changes_when_titlecased.c"
+ "tests/unictype/test-categ_Cf.c"
+ "tests/unictype/test-pr_emoji_modifier.c"
+ "tests/unictype/test-pr_alphabetic.c"
+ "tests/unictype/test-pr_changes_when_casefolded.c"
+ "tests/unictype/test-pr_left_of_pair.c"
+ "tests/unictype/test-pr_radical.c"
+ "tests/unictype/test-pr_pattern_syntax.c"
+ "tests/unictype/test-categ_L.c"
+ "tests/unictype/test-pr_other_lowercase.c"
+ "tests/unictype/test-categ_Pf.c"
+ "tests/unictype/test-ctype_print.c"
+ "tests/unictype/test-pr_bidi_whitespace.c"
+ "tests/unictype/test-numeric.h"
+ "tests/unictype/test-pr_paired_punctuation.c"
+ "tests/unictype/test-pr_emoji_modifier_base.c"
+ "tests/unictype/test-categ_Ps.c"
+ "tests/unictype/test-pr_dash.c"
+ "tests/unictype/test-pr_bidi_european_digit.c"
+ "tests/unictype/test-categ_P.c"
+ "tests/unictype/test-pr_grapheme_link.c"
+ "tests/unictype/test-categ_Lu.c"
+ "tests/unictype/test-categ_No.c"
+ "tests/unictype/test-pr_emoji.c"
+ "tests/unictype/test-categ_M.c"
+ "tests/unictype/test-pr_regional_indicator.c"
+ "tests/unictype/test-categ_Zs.c"
+ "tests/unictype/test-categ_Sk.c"
+ "tests/unictype/test-sy_c_whitespace.c"
+ "tests/unictype/test-pr_unified_ideograph.c"
+ "tests/unictype/test-categ_Cs.c"
+ "tests/unictype/test-pr_case_ignorable.c"
+ "tests/unictype/test-categ_Sc.c"
+ "tests/unictype/test-categ_So.c"
+ "tests/unictype/test-pr_bidi_hebrew_right_to_left.c"
+ "tests/unictype/test-categ_Po.c"
+ "tests/unictype/test-joiningtype_of.h"
+ "tests/unictype/test-pr_soft_dotted.c"
+ "tests/unictype/test-categ_Pd.c"
+ "tests/unictype/test-categ_Z.c"
+ "tests/unictype/test-categ_Zp.c"
+ "tests/unictype/test-ctype_space.c"
+ "tests/unictype/test-pr_emoji_component.c"
+ "tests/unictype/test-pr_bidi_other_neutral.c"
+ "tests/unictype/test-pr_other_math.c"
+ "tests/unictype/test-pr_private_use.c"
+ "tests/unictype/test-pr_cased.c"
+ "tests/unictype/test-pr_terminal_punctuation.c"
+ "tests/unictype/test-categ_Me.c"
+ "tests/unictype/test-ctype_graph.c"
+ "tests/unictype/test-pr_unassigned_code_value.c"
+ "tests/unictype/test-categ_Lt.c"
+ "tests/unictype/test-categ_Pc.c"
+ "tests/unictype/test-pr_punctuation.c"
+ "tests/unictype/test-pr_bidi_segment_separator.c"
+ "tests/unictype/test-pr_paragraph_separator.c"
+ "tests/unictype/test-pr_xid_start.c"
+ "tests/unictype/test-pr_bidi_embedding_or_override.c"
+ "tests/unictype/test-categ_Mc.c"
+ "tests/unictype/test-pr_bidi_arabic_digit.c"
+ "tests/unictype/test-pr_titlecase.c"
+ "tests/unictype/test-pr_iso_control.c"
+ "tests/unictype/test-pr_not_a_character.c"
+ "tests/unictype/test-pr_hyphen.c"
+ "tests/unictype/test-ctype_alnum.c"
+ "lib/unicase/ignorable.h"
+ "lib/unicase/special-casing-table.gperf"
+ "lib/unicase/tolower.h"
+ "lib/unicase/toupper.h"
+ "lib/unicase/tocasefold.h"
+ "lib/unicase/totitle.h"
+ "lib/unicase/cased.h"
+ "lib/uniwidth/width0.h"
+ "lib/uniwidth/width2.h"
+ "lib/unigbrk/gbrkprop.h"
+ "lib/uninorm/composition-table.gperf"
+ "lib/uninorm/decomposition-table1.h"
+ "lib/uninorm/decomposition-table2.h"
+ "lib/uniname/uninames.h"
+ "lib/uniwbrk/wbrkprop.h"
+ "lib/unilbrk/lbrktables.c"
+ "lib/unilbrk/lbrkprop1.h"
+ "lib/unilbrk/lbrkprop2.h"
+ "lib/unictype/pr_radical.h"
+ "lib/unictype/pr_other_math.h"
+ "lib/unictype/pr_dash.h"
+ "lib/unictype/pr_combining.h"
+ "lib/unictype/pr_not_a_character.h"
+ "lib/unictype/pr_math.h"
+ "lib/unictype/pr_terminal_punctuation.h"
+ "lib/unictype/pr_id_start.h"
+ "lib/unictype/pr_quotation_mark.h"
+ "lib/unictype/pr_changes_when_titlecased.h"
+ "lib/unictype/categ_Mc.h"
+ "lib/unictype/pr_deprecated.h"
+ "lib/unictype/categ_Cf.h"
+ "lib/unictype/pr_zero_width.h"
+ "lib/unictype/pr_emoji_modifier_base.h"
+ "lib/unictype/ctype_blank.h"
+ "lib/unictype/joininggroup_of.h"
+ "lib/unictype/categ_Sk.h"
+ "lib/unictype/pr_paired_punctuation.h"
+ "lib/unictype/pr_decimal_digit.h"
+ "lib/unictype/pr_other_uppercase.h"
+ "lib/unictype/categ_Cn.h"
+ "lib/unictype/categ_of.h"
+ "lib/unictype/sy_c_whitespace.h"
+ "lib/unictype/pr_composite.h"
+ "lib/unictype/pr_other_grapheme_extend.h"
+ "lib/unictype/pr_other_id_continue.h"
+ "lib/unictype/pr_paragraph_separator.h"
+ "lib/unictype/pr_bidi_whitespace.h"
+ "lib/unictype/scripts.h"
+ "lib/unictype/ctype_graph.h"
+ "lib/unictype/pr_bidi_arabic_right_to_left.h"
+ "lib/unictype/categ_Lu.h"
+ "lib/unictype/pr_hyphen.h"
+ "lib/unictype/pr_changes_when_casemapped.h"
+ "lib/unictype/categ_Pe.h"
+ "lib/unictype/pr_hex_digit.h"
+ "lib/unictype/pr_id_continue.h"
+ "lib/unictype/pr_pattern_white_space.h"
+ "lib/unictype/joiningtype_of.h"
+ "lib/unictype/ctype_upper.h"
+ "lib/unictype/pr_extender.h"
+ "lib/unictype/pr_iso_control.h"
+ "lib/unictype/ctype_lower.h"
+ "lib/unictype/categ_Ps.h"
+ "lib/unictype/categ_Sc.h"
+ "lib/unictype/ctype_print.h"
+ "lib/unictype/sy_java_ident.h"
+ "lib/unictype/ctype_alnum.h"
+ "lib/unictype/pr_ideographic.h"
+ "lib/unictype/pr_titlecase.h"
+ "lib/unictype/categ_N.h"
+ "lib/unictype/pr_changes_when_casefolded.h"
+ "lib/unictype/pr_soft_dotted.h"
+ "lib/unictype/categ_Z.h"
+ "lib/unictype/categ_Lm.h"
+ "lib/unictype/categ_P.h"
+ "lib/unictype/pr_emoji_component.h"
+ "lib/unictype/pr_space.h"
+ "lib/unictype/pr_other_lowercase.h"
+ "lib/unictype/pr_bidi_eur_num_separator.h"
+ "lib/unictype/pr_bidi_eur_num_terminator.h"
+ "lib/unictype/ctype_alpha.h"
+ "lib/unictype/numeric.h"
+ "lib/unictype/pr_grapheme_base.h"
+ "lib/unictype/ctype_xdigit.h"
+ "lib/unictype/pr_bidi_embedding_or_override.h"
+ "lib/unictype/blocks.h"
+ "lib/unictype/categ_No.h"
+ "lib/unictype/pr_ascii_hex_digit.h"
+ "lib/unictype/pr_bidi_european_digit.h"
+ "lib/unictype/pr_format_control.h"
+ "lib/unictype/pr_join_control.h"
+ "lib/unictype/pr_case_ignorable.h"
+ "lib/unictype/ctype_space.h"
+ "lib/unictype/pr_bidi_control.h"
+ "lib/unictype/pr_diacritic.h"
+ "lib/unictype/categ_Zs.h"
+ "lib/unictype/mirror.h"
+ "lib/unictype/categ_Zl.h"
+ "lib/unictype/pr_bidi_hebrew_right_to_left.h"
+ "lib/unictype/decdigit.h"
+ "lib/unictype/categ_Nd.h"
+ "lib/unictype/pr_sentence_terminal.h"
+ "lib/unictype/combiningclass.h"
+ "lib/unictype/categ_S.h"
+ "lib/unictype/pr_bidi_arabic_digit.h"
+ "lib/unictype/digit.h"
+ "lib/unictype/categ_So.h"
+ "lib/unictype/pr_changes_when_uppercased.h"
+ "lib/unictype/pr_other_alphabetic.h"
+ "lib/unictype/pr_emoji_presentation.h"
+ "lib/unictype/pr_ignorable_control.h"
+
This message was truncated. Download the full message here.
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v6 3/3] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
5c471a650a28f3c1ed3f58254ae5e6396f985e99.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 15:07
Re: [PATCH v5 3/5] gnu: UCD: Add version 3.0-update1.
07a7b89f68f2ce2dd94c506ffbfef519444a48b5.camel@gmail.com
Am Samstag, dem 31.12.2022 um 11:56 +0100 schrieb Vivien Kraus:
Toggle quote (21 lines)
> Hi!
>
> Le samedi 31 décembre 2022 à 07:49 +0100, Liliana Marie Prikler a
> écrit :
> > Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
> > > * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
> > > ---
> > Surely this must work with a newer UCD.  Perhaps not with 14, which
> > is
> > the currently packaged one, but what if we use 7, which is the
> > first
> > zipped one?  Using a newer UCD might also solve your Hangul
> > problem.
>
> If you look at gen-uni-tables.c in lib/, you will see that the
> instructions insist on using PropList-3.0.1.txt from 3.0 update 1, in
> addition to a recent UCD (there are 2?UCD inputs to the gnulib
> package: the specific 3.0.1 ucd and the recent ucd − they don’t have
> colliding file names). In theory, I would also update UCD, but it has
> a lot of dependent packages so the update should go to the staging
> branch instead.
Looking at the comment, you only need the proplist, however, not
anything else. I'd also experiment with providing an empty file in its
stead, but it doesn't matter too much as long as the hacks we need to
take are kept acceptably few.

If you want to use UCD 15, go ahead. There is a ucd-next package that
has possibly fewer dependants, which ironically also points to UCD 14
atm.

As for the deleted files in some test directories, can we abbreviate
them with regular expressions or keep lists?

Cheers
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v7 1/5] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
a51d7c6418a2e152da9e142b908e8bffc9de4fff.camel@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures

base-commit: d4ed8dc3c5743aac6766da0e54e0c969386ed8ac
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v7 2/5] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
9fd8cc1b9405fd41555e2d36e52f0343af7539de.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0.
---
gnu/packages/unicode.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..1f5bc10c94 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -101,7 +101,7 @@ (define-public ucd-next
(package
(inherit ucd)
(name "ucd-next")
- (version "14.0.0")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 30 Dec 2022 22:20
[PATCH v7 3/5] gnu: UCD: Add version 3.0-update1.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
86ed1bdd80433e8f3a0407bfe51d1ed4713e875f.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd3.0-update1): New variable.
---
gnu/packages/unicode.scm | 59 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 58 insertions(+), 1 deletion(-)

Toggle diff (85 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 1f5bc10c94..b3a228f4f1 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -21,13 +21,15 @@
(define-module (gnu packages unicode)
#:use-module (gnu packages autotools)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
- #:use-module (guix build-system trivial))
+ #:use-module (guix build-system trivial)
+ #:use-module (ice-9 match))
(define-public libunibreak
(package
@@ -111,6 +113,61 @@ (define-public ucd-next
(base32
"133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
+(define-public ucd3.0-update1
+ (package
+ (inherit ucd)
+ (version "3.0-update1")
+ (source
+ ;; unicode.org does not provide a zipped archive.
+ (directory-union
+ "ucd-3.0-update1-source"
+ (map
+ (match-lambda
+ ((filename . hash)
+ (file-union
+ (string-append "ucd-3.0-update1-" filename)
+ `((,filename
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://www.unicode.org/Public/3.0-Update1/" filename))
+ (sha256 hash)))))))
+ `(("ArabicShaping-3.txt"
+ . ,(base32
+ "0k6hwdnln8cwkzixxbbc6q5g3nx3z5p1549c0jicnz7gq2mvkh90"))
+ ("BidiMirroring-1.txt"
+ . ,(base32
+ "0wc5gj6mx5wjkwph734swqd3zvi3ngfx75yybbc1f52dc1l3sh9m"))
+ ("CaseFolding-2.txt"
+ . ,(base32
+ "143hvpalrnkrxc2g9626v6w4cgmksg9hkcm39fpmqidn0rnpm8vy"))
+ ("CompositionExclusions-2.txt"
+ . ,(base32
+ "06vlc7yqhkacbb411ykyn4na5kq93yp0p9mm3a2jfixk704nwpj1"))
+ ("Jamo-3.txt"
+ . ,(base32
+ "092lww4ak9wa7g4jn80i9ckniwg3ymmiaq62xxhhbwk3cx2d23ad"))
+ ("NormalizationTest-3.0.1.txt"
+ . ,(base32
+ "1r5vq8dlar7km1376bp16l40pyczzvwk9waxgin2i2432qdpwmga"))
+ ("PropList-3.0.1.txt"
+ . ,(base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))
+ ("ReadMe-3.0.1.txt"
+ . ,(base32
+ "08mkcs3r1caj67wrcqq0gyb79zj9qyqnmx8qab0rsd4qg87xhnbv"))
+ ("SpecialCasing-3.txt"
+ . ,(base32
+ "08vrf0kk5zlsl40h4nsfbpnckl4610m7x2072lyq97lln7dsky7a"))
+ ("UnicodeCharacterDatabase-3.0.1.html"
+ . ,(base32
+ "0fy7vb1zkxg2pg198p7phncjs78gz6lvdzhv51yz34kds8nzz40m"))
+ ("UnicodeData-3.0.1.html"
+ . ,(base32
+ "0fvv59ydp09mppjr8130kmp90r240hnaqld8i5xkpz900fl20pc1"))
+ ("UnicodeData-3.0.1.txt"
+ . ,(base32
+ "092svm19f78pxg58pcisg3i57884y7z22rymrcppjkg6sz3izsia"))))))))
+
(define (unicode-emoji-file name version hash)
(origin
(method url-fetch)
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v7 4/5] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
443f01dcd18783358bb44f96a57fe4162dcdfeb0.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib): New variable.
(gnulib-checkout): New function. It returns a package with a specific commit
of gnulib.
---
gnu/packages/build-tools.scm | 220 +++++++++++++++++++++++++++++++++++
1 file changed, 220 insertions(+)

Toggle diff (265 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..d2eeb88db6 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,27 +32,36 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,213 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((count-purged
+ (file-system-fold
+ ;; enter?
+ (lambda (name stat result)
+ #t)
+ ;; leaf
+ (lambda (name stat result)
+ (if (or (string-suffix? ".c" name)
+ (string-suffix? ".h" name)
+ (string-suffix? ".gperf" name))
+ (call-with-input-file name
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (if (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */")
+ (begin
+ (delete-file name)
+ (1+ result))
+ result))))
+ result))
+ ;; down
+ (lambda (name stat result)
+ result)
+ ;; up
+ (lambda (name stat result)
+ result)
+ ;; skip
+ (lambda (name stat result)
+ (error "No directory should be spared"))
+ ;; error
+ (lambda (name stat errno result)
+ (error "A file is inaccessible"))
+ ;; Initial value
+ 0
+ (getcwd))))
+ (unless (eqv? count-purged 332)
+ (format (current-error-port) "There were ~s files purged.\n" count-purged)
+ (error "Please check the number of automatically generated files.")))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ (invoke "git" "commit" "-m"
+ "Syntax checks are only run against committed files, so commit everything.")))
+ (add-after 'fix-tests 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_sym_list")
+ "disabled_check_sym_list")
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_check_copyright")
+ "disabled_check_copyright")
+ (("sc_prohibit_AC_LIBOBJ_in_m4")
+ "disabled_prohibit_AC_LIBOBJ_in_m4")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_leading_TABs")
+ "disabled_prohibit_leading_TABs"))))
+ (delete 'configure)
+ (add-after 'unpack 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ `(,@(map (lambda (f)
+ (search-input-file inputs f))
+ '("share/ucd/UnicodeData.txt"
+ "share/ucd/PropList.txt"
+ "share/ucd/DerivedCoreProperties.txt"
+ "share/ucd/emoji/emoji-data.txt"
+ "share/ucd/ArabicShaping.txt"
+ "share/ucd/Scripts.txt"
+ "share/ucd/Blocks.txt"
+ "share/ucd/PropList-3.0.1.txt"
+ "share/ucd/EastAsianWidth.txt"
+ "share/ucd/LineBreak.txt"
+ "share/ucd/auxiliary/WordBreakProperty.txt"
+ "share/ucd/auxiliary/GraphemeBreakProperty.txt"
+ "share/ucd/CompositionExclusions.txt"
+ "share/ucd/SpecialCasing.txt"
+ "share/ucd/CaseFolding.txt"))
+ ;; This is the version of the UCD used, it should be
+ ;; the same as the native-input.
+ #$(package-version ucd-next)))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (search-input-file inputs "share/ucd/UnicodeData.txt")
+ "uniname/uninames.h"
+ (search-input-file inputs "share/ucd/NameAliases.txt"))
+ (copy-file (search-input-file inputs "share/ucd/NameAliases.txt")
+ "../tests/uniname/NameAliases.txt")
+ (copy-file (search-input-file inputs "share/ucd/UnicodeData.txt")
+ "../tests/uniname/UnicodeData.txt")
+ (copy-file (search-input-file inputs "share/ucd/NormalizationTest.txt")
+ "../tests/uninorm/NormalizationTest.txt")
+ (copy-file (search-input-file inputs "share/ucd/auxiliary/GraphemeBreakTest.txt")
+ "../tests/unigbrk/GraphemeBreakTest.txt")
+ (copy-file (search-input-file inputs "share/ucd/auxiliary/WordBreakTest.txt")
+ "../tests/uniwbrk/WordBreakTest.txt")
+ (delete-file "gen-uni-tables"))))
+ (replace 'install
+ (lambda _
+ (install-file "gnulib-tool"
+ (string-append #$output "/bin"))
+ (delete-file-recursively ".git")
+ (copy-recursively "." (string-append #$output "/src/gnulib/")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next ;; If you change it, also change #$(package-version ucd-next)
+ ;; in the regenerate-unicode phase.
+ ucd3.0-update1
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-28"
+ #:commit "14a7b0ce5462c90ce86d97bf952185ec2500d341"
+ #:hash (base32 "0fz25ccdlxf4xp37rjsl1fslc4g0x12qpvadz4qw0cq18dvx5kbx")))
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v7 5/5] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
818dcfb840393c0e5393e9eb2e51405ef19f432c.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 20:17
Re: [PATCH v7 3/5] gnu: UCD: Add version 3.0-update1.
4f6066deb9488cfe7bcb5bce1ae93d452f517b9f.camel@gmail.com
Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
Toggle quote (1 lines)
> * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
Once again, do you need all of these, or just a single file? (Or
indeed none at all?)
L
L
Liliana Marie Prikler wrote on 31 Dec 2022 20:26
Re: [PATCH v7 4/5] gnu: Add gnulib.
4b3c573ebd8280f71981316ca8fe8d27f169c809.camel@gmail.com
Am Dienstag, dem 27.12.2022 um 17:23 +0100 schrieb Vivien Kraus:
Toggle quote (3 lines)
> * gnu/packages/build-tools.scm (gnulib): New variable.
> (gnulib-checkout): New function. It returns a package with a specific
> commit of gnulib.
Btw. you can shorten this to (gnulib-checkout, gnulib): New variables.
Toggle quote (135 lines)
> ---
>  gnu/packages/build-tools.scm | 220
> +++++++++++++++++++++++++++++++++++
>  1 file changed, 220 insertions(+)
>
> diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-
> tools.scm
> index 6c1350c44f..d2eeb88db6 100644
> --- a/gnu/packages/build-tools.scm
> +++ b/gnu/packages/build-tools.scm
> @@ -32,27 +32,36 @@
>  ;;; along with GNU Guix.  If not, see
> <http://www.gnu.org/licenses/>.
>  
>  (define-module (gnu packages build-tools)
> +  #:use-module (ice-9 optargs)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix utils)
>    #:use-module (guix packages)
>    #: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 (guix modules)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages adns)
> +  #:use-module (gnu packages autotools)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages check)
> +  #:use-module (gnu packages code)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages cpp)
> +  #:use-module (gnu packages cppi)
>    #:use-module (gnu packages elf)
> +  #:use-module (gnu packages gcc)
>    #: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)
> @@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
>    #:use-module (gnu packages rpc)
>    #:use-module (gnu packages sqlite)
>    #:use-module (gnu packages tls)
> +  #:use-module (gnu packages unicode)
>    #:use-module (gnu packages version-control)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system python))
> @@ -803,3 +813,213 @@ (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))))
> +
> +(define*-public (gnulib-checkout #:key
> +                                 version
> +                                 (revision "1")
> +                                 commit
> +                                 hash)
> +  "Return as a package the exact gnulib checkout."
> +  (package
> +    (name "gnulib")
> +    (version (git-version version revision commit))
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://git.savannah.gnu.org/git/gnulib.git")
> +             (commit commit)))
> +       (file-name (git-file-name name version))
> +       (sha256 hash)
> +       (snippet
> +        (with-imported-modules (source-module-closure '((guix build
> utils)))
> +          #~(begin
> +              (use-modules (guix build utils)
> +                           (ice-9 ftw)
> +                           (ice-9 rdelim))
> +              ;; .c, .h and .gperf files whose first line is /* DO
> NOT EDIT!
> +              ;; GENERATED AUTOMATICALLY! */ are generated
> automatically based
> +              ;; on the unicode database. Since we replace the
> unicode
> +              ;; database with our own, we need to regenerate them.
> So, they
> +              ;; are removed from the source. They are sprinkled all
> over the
> +              ;; place unfortunately, so we can’t exclude whole
> directories.
> +              (let ((count-purged
> +                     (file-system-fold
> +                      ;; enter?
> +                      (lambda (name stat result)
> +                        #t)
> +                      ;; leaf
> +                      (lambda (name stat result)
> +                        (if (or (string-suffix? ".c" name)
> +                                (string-suffix? ".h" name)
> +                                (string-suffix? ".gperf" name))
> +                            (call-with-input-file name
> +                              (lambda (port)
> +                                (let ((first-line (read-line port)))
> +                                  (if (equal?
> +                                       first-line
> +                                       "/* DO NOT EDIT! GENERATED
> AUTOMATICALLY! */")
> +                                      (begin
> +                                        (delete-file name)
> +                                        (1+ result))
> +                                      result))))
> +                            result))
> +                      ;; down
> +                      (lambda (name stat result)
> +                        result)
> +                      ;; up
> +                      (lambda (name stat result)
> +                        result)
> +                      ;; skip
> +                      (lambda (name stat result)
> +                        (error "No directory should be spared"))
> +                      ;; error
> +                      (lambda (name stat errno result)
> +                        (error "A file is inaccessible"))
> +                      ;; Initial value
> +                      0
> +                      (getcwd))))
I think it should be possible to express this list in terms of find-
files. Note that it accepts a procedure rather than just a simple
regexp too.
Toggle quote (5 lines)
> +                (unless (eqv? count-purged 332)
> +                  (format (current-error-port) "There were ~s files
> purged.\n" count-purged)
> +                  (error "Please check the number of automatically
> generated files.")))
I'm not sure whether this check is a good idea. This seems to be the
kind of thing that will break for no reason.
Toggle quote (96 lines)
> +              ;; Other files are copied from UCD.
> +              (for-each delete-file
> +                        '("tests/unigbrk/GraphemeBreakTest.txt"
> +                          "tests/uninorm/NormalizationTest.txt"
> +                          "tests/uniname/UnicodeData.txt"
> +                          "tests/uniname/NameAliases.txt"
> +                          ;; FIXME:
> tests/uniname/HangulSyllableNames.txt
> +                          ;; seems like a UCD file but it is not
> distributed
> +                          ;; with UCD.
> +                          "tests/uniwbrk/WordBreakTest.txt")))))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'fix-tests
> +            (lambda _
> +              (substitute* "Makefile"
> +                (("-f maint.mk syntax-check")
> +                 "_gl-Makefile=yes -f maint.mk syntax-check"))
> +              (invoke "git" "init")
> +              (invoke "git" "config" "user.name" "Guix")
> +              (invoke "git" "config" "user.email" "guix@localhost")
> +              (invoke "git" "add" ".")
> +              (invoke "git" "commit" "-m"
> +                      "Syntax checks are only run against committed
> files, so commit everything.")))
> +          (add-after 'fix-tests 'disable-failing-tests
> +            (lambda _
> +              (substitute* "cfg.mk"
> +                (("local-checks-to-skip =")
> +                 "local-checks-to-skip = \\
> +  sc_Wundef_boolean \\
> +  sc_file_system \\
> +  sc_indent \\
> +  sc_keep_gnulib_texi_files_mostly_ascii \\
> +  sc_prohibit_assert_without_use \\
> +  sc_prohibit_close_stream_without_use \\
> +  sc_prohibit_defined_have_decl_tests \\
> +  sc_prohibit_doubled_word \\
> +  sc_prohibit_empty_lines_at_EOF \\
> +  sc_prohibit_intprops_without_use \\
> +  sc_prohibit_openat_without_use \\
> +  sc_prohibit_test_minus_ao \\
> +  sc_unportable_grep_q"))
> +              (substitute* "Makefile"
> +                (("sc_check_sym_list")
> +                 "disabled_check_sym_list")
> +                (("sc_cpp_indent_check")
> +                 "disabled_cpp_indent_check")
> +                (("sc_check_copyright")
> +                 "disabled_check_copyright")
> +                (("sc_prohibit_AC_LIBOBJ_in_m4")
> +                 "disabled_prohibit_AC_LIBOBJ_in_m4")
> +                (("sc_prefer_ac_check_funcs_once")
> +                 "disabled_prefer_ac_check_funcs_once")
> +                (("sc_prohibit_leading_TABs")
> +                 "disabled_prohibit_leading_TABs"))))
> +          (delete 'configure)
> +          (add-after 'unpack 'regenerate-unicode
> +            (lambda* (#:key inputs #:allow-other-keys)
> +              (with-directory-excursion "lib"
> +                ;; See the compile-command buffer-local variable in
> +                ;; lib/gen-uni-tables.c
> +                (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall"
> "gen-uni-tables.c"
> +                        "-Iunictype" "-o" "gen-uni-tables")
> +                (apply invoke
> +                       "./gen-uni-tables"
> +                       `(,@(map (lambda (f)
> +                                  (search-input-file inputs f))
> +                                '("share/ucd/UnicodeData.txt"
> +                                  "share/ucd/PropList.txt"
> +                                 
> "share/ucd/DerivedCoreProperties.txt"
> +                                  "share/ucd/emoji/emoji-data.txt"
> +                                  "share/ucd/ArabicShaping.txt"
> +                                  "share/ucd/Scripts.txt"
> +                                  "share/ucd/Blocks.txt"
> +                                  "share/ucd/PropList-3.0.1.txt"
> +                                  "share/ucd/EastAsianWidth.txt"
> +                                  "share/ucd/LineBreak.txt"
> +                                 
> "share/ucd/auxiliary/WordBreakProperty.txt"
> +                                 
> "share/ucd/auxiliary/GraphemeBreakProperty.txt"
> +                                 
> "share/ucd/CompositionExclusions.txt"
> +                                  "share/ucd/SpecialCasing.txt"
> +                                  "share/ucd/CaseFolding.txt"))
> +                         ;; This is the version of the UCD used, it
> should be
> +                         ;; the same as the native-input.
> +                         #$(package-version ucd-next)))
Use (package-version (this-package-input "ucd")) instead, so that a
user can replace it.
Toggle quote (64 lines)
> +                (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
> +                        (search-input-file inputs
> "share/ucd/UnicodeData.txt")
> +                        "uniname/uninames.h"
> +                        (search-input-file inputs
> "share/ucd/NameAliases.txt"))
> +                (copy-file (search-input-file inputs
> "share/ucd/NameAliases.txt")
> +                           "../tests/uniname/NameAliases.txt")
> +                (copy-file (search-input-file inputs
> "share/ucd/UnicodeData.txt")
> +                           "../tests/uniname/UnicodeData.txt")
> +                (copy-file (search-input-file inputs
> "share/ucd/NormalizationTest.txt")
> +                           "../tests/uninorm/NormalizationTest.txt")
> +                (copy-file (search-input-file inputs
> "share/ucd/auxiliary/GraphemeBreakTest.txt")
> +                           "../tests/unigbrk/GraphemeBreakTest.txt")
> +                (copy-file (search-input-file inputs
> "share/ucd/auxiliary/WordBreakTest.txt")
> +                           "../tests/uniwbrk/WordBreakTest.txt")
> +                (delete-file "gen-uni-tables"))))
> +          (replace 'install
> +            (lambda _
> +              (install-file "gnulib-tool"
> +                            (string-append #$output "/bin"))
> +              (delete-file-recursively ".git")
> +              (copy-recursively "." (string-append #$output
> "/src/gnulib/")))))))
> +    (inputs ;; Shebangs for some auxiliary build files.
> +     (list python perl clisp))
> +    (native-inputs
> +     (list
> +      python perl clisp
> +      ;; Unicode data:
> +      ucd-next ;; If you change it, also change #$(package-version
> ucd-next)
> +               ;; in the regenerate-unicode phase.
> +      ucd3.0-update1
> +      ;; Programs for the tests:
> +      cppi indent git autoconf))
> +    (home-page "https://www.gnu.org/software/gnulib/")
> +    (synopsis "Source files to share among distributions")
> +    (description
> +     "Gnulib is a central location for common infrastructure needed
> by GNU
> +packages.  It provides a wide variety of functionality, e.g.,
> portability
> +across many systems, working with Unicode strings, cryptographic
> computation,
> +and much more.  The code is intended to be shared at the level of
> source
> +files, rather than being a standalone library that is distributed,
> built, and
> +installed.  The included @command{gnulib-tool} script helps with
> using Gnulib
> +code in other packages.  Gnulib also includes copies of licensing
> and
> +maintenance-related files, for convenience.")
> +    (native-search-paths
> +     (list (search-path-specification
> +            (variable "GNULIB_SRCDIR")
> +            (files (list "src/gnulib")))))
> +    (license (list license:lgpl2.0+ license:gpl3+))))
Cheers
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v8 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
a43e255ddaddb83de7fed33cad1fdc84512fe56a.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v8 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
bc7c989424bfe9508dd558e4ec78ee958f1f6ca2.camel@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures

base-commit: 343c220e1b73d8294b1b9a54d7a4ef2db9931e24
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v8 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
4a28e85195e4972e96d6b4647e337f681027de00.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v8 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
8889b453ec239817651fb1e06d35b99422d121f9.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables
---
gnu/packages/build-tools.scm | 201 +++++++++++++++++++++++++++++++++++
1 file changed, 201 insertions(+)

Toggle diff (246 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..6b60820649 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,27 +32,36 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,194 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ (invoke "git" "commit" "-m"
+ "Syntax checks are only run against committed files, so commit everything.")))
+ (add-after 'fix-tests 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_sym_list")
+ "disabled_check_sym_list")
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_check_copyright")
+ "disabled_check_copyright")
+ (("sc_prohibit_AC_LIBOBJ_in_m4")
+ "disabled_prohibit_AC_LIBOBJ_in_m4")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_leading_TABs")
+ "disabled_prohibit_leading_TABs"))))
+ (delete 'configure)
+ (add-after 'unpack 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define PropList-3.0.1.txt
+ #$(origin
+ (method url-fetch)
+ (uri "https://www.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt")
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ `(,@(map find-ucd-file
+ '("UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt"))
+ ,PropList-3.0.1.txt
+ ,@(map find-ucd-file
+ '("EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt"))
+ #$(package-version (this-package-native-input "ucd"))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (search-input-file inputs "share/ucd/UnicodeData.txt")
+ "uniname/uninames.h"
+ (search-input-file inputs "share/ucd/NameAliases.txt"))
+ (copy-file (search-input-file inputs "share/ucd/NameAliases.txt")
+ "../tests/uniname/NameAliases.txt")
+ (copy-file (search-input-file inputs "share/ucd/UnicodeData.txt")
+ "../tests/uniname/UnicodeData.txt")
+ (copy-file (search-input-file inputs "share/ucd/NormalizationTest.txt")
+ "../tests/uninorm/NormalizationTest.txt")
+ (copy-file (search-input-file inputs "share/ucd/auxiliary/GraphemeBreakTest.txt")
+ "../tests/unigbrk/GraphemeBreakTest.txt")
+ (copy-file (search-input-file inputs "share/ucd/auxiliary/WordBreakTest.txt")
+ "../tests/uniwbrk/WordBreakTest.txt")
+ (delete-file "gen-uni-tables"))))
+ (replace 'install
+ (lambda _
+ (install-file "gnulib-tool"
+ (string-append #$output "/bin"))
+ (delete-file-recursively ".git")
+ (copy-recursively "." (string-append #$output "/src/gnulib/")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-28"
+ #:commit "14a7b0ce5462c90ce86d97bf952185ec2500d341"
+ #:hash (base32 "0fz25ccdlxf4xp37rjsl1fslc4g0x12qpvadz4qw0cq18dvx5kbx")))
--
2.38.1
V
V
Vivien Kraus wrote on 1 Jan 2023 01:24
Re: [PATCH v7 3/5] gnu: UCD: Add version 3.0-update1.
2206897d7f4826d78caf52b1b7eca47c92313255.camel@planete-kraus.eu
Happy new year!

Le samedi 31 décembre 2022 à 20:17 +0100, Liliana Marie Prikler a
écrit :
Toggle quote (5 lines)
> Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
> > * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
> Once again, do you need all of these, or just a single file?  (Or
> indeed none at all?)

The build fails if I pass an empty file or a file with just the header.

I switched to an unnamed origin in the build phase, is that better?

Vivien
L
L
Liliana Marie Prikler wrote on 1 Jan 2023 02:28
73cdf6ccd738d27a1b92bf106f91f9a8a6662559.camel@gmail.com
Am Sonntag, dem 01.01.2023 um 01:24 +0100 schrieb Vivien Kraus:
Toggle quote (13 lines)
> Happy new year!
>
> Le samedi 31 décembre 2022 à 20:17 +0100, Liliana Marie Prikler a
> écrit :
> > Am Freitag, dem 30.12.2022 um 22:20 +0100 schrieb Vivien Kraus:
> > > * gnu/packages/unicode.scm (ucd3.0-update1): New variable.
> > Once again, do you need all of these, or just a single file?  (Or
> > indeed none at all?)
>
> The build fails if I pass an empty file or a file with just the
> header.
>
> I switched to an unnamed origin in the build phase, is that better?
Yes, that is better – an outside variable would also have been, but it
works for now.

Toggle quote (12 lines)
> + (("sc_check_sym_list")
> + "disabled_check_sym_list")
> + (("sc_cpp_indent_check")
> + "disabled_cpp_indent_check")
> + (("sc_check_copyright")
> + "disabled_check_copyright")
> + (("sc_prohibit_AC_LIBOBJ_in_m4")
> + "disabled_prohibit_AC_LIBOBJ_in_m4")
> + (("sc_prefer_ac_check_funcs_once")
> + "disabled_prefer_ac_check_funcs_once")
> + (("sc_prohibit_leading_TABs")
> + "disabled_prohibit_leading_TABs"))))
I think matching the name and then doing (string-append "disabled_"
test) should work better and possibly lets you group some.

Toggle quote (3 lines)
> + (define (find-ucd-file name)
> + (search-input-file inputs (string-append
> "share/ucd/" name)))
I think you should also 
(define (find-ucd-files . files)
(map find-ucd-file files))
Then you can

Toggle quote (20 lines)
> + (apply invoke
> + "./gen-uni-tables"
> + `(,@(map find-ucd-file
> + '("UnicodeData.txt"
> + "PropList.txt"
> + "DerivedCoreProperties.txt"
> + "emoji/emoji-data.txt"
> + "ArabicShaping.txt"
> + "Scripts.txt"
> + "Blocks.txt"))
> + ,PropList-3.0.1.txt
> + ,@(map find-ucd-file
> + '("EastAsianWidth.txt"
> + "LineBreak.txt"
> + "auxiliary/WordBreakProperty.txt"
> +
> "auxiliary/GraphemeBreakProperty.txt"
> + "CompositionExclusions.txt"
> + "SpecialCasing.txt"
> + "CaseFolding.txt"))
(apply invoke
(append
(find-ucd-files "UnicodeData.txt"
"PropList.txt"
...)
(list PropList-3.0.1.txt) ; or inline the origin here
(find-ucd-files "EastAsianWidth.txt"
...)))

Toggle quote (15 lines)
> + (copy-file (search-input-file inputs
> "share/ucd/NameAliases.txt")
> + "../tests/uniname/NameAliases.txt")
> + (copy-file (search-input-file inputs
> "share/ucd/UnicodeData.txt")
> + "../tests/uniname/UnicodeData.txt")
> + (copy-file (search-input-file inputs
> "share/ucd/NormalizationTest.txt")
> + "../tests/uninorm/NormalizationTest.txt")
> + (copy-file (search-input-file inputs
> "share/ucd/auxiliary/GraphemeBreakTest.txt")
> + "../tests/unigbrk/GraphemeBreakTest.txt")
> + (copy-file (search-input-file inputs
> "share/ucd/auxiliary/WordBreakTest.txt")
> + "../tests/uniwbrk/WordBreakTest.txt")
Can we simplify this in terms of for-each and directory excursions?
Also reuse find-ucd-file(s).

Toggle quote (7 lines)
> + (replace 'install
> + (lambda _
> + (install-file "gnulib-tool"
> + (string-append #$output "/bin"))
> + (delete-file-recursively ".git")
> + (copy-recursively "." (string-append #$output
> "/src/gnulib/")))))))
Should we perhaps use copy-build-system instead and just copy over
gnu:build and gnu:test?

Cheers
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v9 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
18b9463408e0f046dec50c933e3f02fb2783467d.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables
---
gnu/packages/build-tools.scm | 201 +++++++++++++++++++++++++++++++++++
1 file changed, 201 insertions(+)

Toggle diff (246 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..3e6a16f3f5 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,27 +32,37 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +75,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +814,193 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'gnu:check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'gnu:check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'gnu:check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_(\
+check_(sym_list|copyright)\
+|cpp_indent_check\
+|prohibit_(AC_LIBOBJ_in_m4|leading_TABs)\
+|prefer_ac_check_funcs_once)" rule)
+ (string-append "disabled_" rule)))))
+ (add-before 'gnu:check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (search-input-file inputs "share/ucd/UnicodeData.txt")
+ "uniname/uninames.h"
+ (search-input-file inputs "share/ucd/NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v9 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
60cfcae3fa9ffe400224566a8a284bb00bbf572f.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v9 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
a301274898ba67f46e37fbf0157de7c72d1ae0fe.camel@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures

base-commit: 87cc524f52b65f7f12c9b87d25b467772e357cab
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v9 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
100fe3b18156d0e02a24a933edfcf5ea09e1b862.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
L
L
Liliana Marie Prikler wrote on 1 Jan 2023 17:25
Re: [PATCH v9 3/4] gnu: Add gnulib.
84209b920016bb7c7fb5b95da42c1ed81f045a69.camel@gmail.com
Am Dienstag, dem 27.12.2022 um 17:23 +0100 schrieb Vivien Kraus:
Toggle quote (2 lines)
> * gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New
> variables
Missing the dot :)
Toggle quote (140 lines)
> ---
>  gnu/packages/build-tools.scm | 201
> +++++++++++++++++++++++++++++++++++
>  1 file changed, 201 insertions(+)
>
> diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-
> tools.scm
> index 6c1350c44f..3e6a16f3f5 100644
> --- a/gnu/packages/build-tools.scm
> +++ b/gnu/packages/build-tools.scm
> @@ -32,27 +32,37 @@
>  ;;; along with GNU Guix.  If not, see
> <http://www.gnu.org/licenses/>.
>  
>  (define-module (gnu packages build-tools)
> +  #:use-module (ice-9 optargs)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix utils)
>    #:use-module (guix packages)
>    #: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 (guix build-system copy)
> +  #:use-module (guix modules)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages adns)
> +  #:use-module (gnu packages autotools)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages check)
> +  #:use-module (gnu packages code)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages cpp)
> +  #:use-module (gnu packages cppi)
>    #:use-module (gnu packages elf)
> +  #:use-module (gnu packages gcc)
>    #: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)
> @@ -65,6 +75,7 @@ (define-module (gnu packages build-tools)
>    #:use-module (gnu packages rpc)
>    #:use-module (gnu packages sqlite)
>    #:use-module (gnu packages tls)
> +  #:use-module (gnu packages unicode)
>    #:use-module (gnu packages version-control)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system python))
> @@ -803,3 +814,193 @@ (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))))
> +
> +(define*-public (gnulib-checkout #:key
> +                                 version
> +                                 (revision "1")
> +                                 commit
> +                                 hash)
> +  "Return as a package the exact gnulib checkout."
> +  (package
> +    (name "gnulib")
> +    (version (git-version version revision commit))
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://git.savannah.gnu.org/git/gnulib.git/")
> +             (commit commit)))
> +       (file-name (git-file-name name version))
> +       (sha256 hash)
> +       (snippet
> +        (with-imported-modules (source-module-closure '((guix build
> utils)))
> +          #~(begin
> +              (use-modules (guix build utils)
> +                           (ice-9 ftw)
> +                           (ice-9 rdelim))
> +              ;; .c, .h and .gperf files whose first line is /* DO
> NOT EDIT!
> +              ;; GENERATED AUTOMATICALLY! */ are generated
> automatically based
> +              ;; on the unicode database. Since we replace the
> unicode
> +              ;; database with our own, we need to regenerate them.
> So, they
> +              ;; are removed from the source. They are sprinkled all
> over the
> +              ;; place unfortunately, so we can’t exclude whole
> directories.
> +              (let ((generated-automatically?
> +                     (lambda (filename . unused)
> +                       (and (or (string-suffix? ".c" filename)
> +                                (string-suffix? ".h" filename)
> +                                (string-suffix? ".gperf" filename))
> +                            (call-with-input-file filename
> +                              (lambda (port)
> +                                (let ((first-line (read-line port)))
> +                                  (equal?
> +                                   first-line
> +                                   "/* DO NOT EDIT! GENERATED
> AUTOMATICALLY! */"))))))))
> +                (for-each delete-file (find-files (getcwd)
> generated-automatically?)))
> +              ;; Other files are copied from UCD.
> +              (for-each delete-file
> +                        '("tests/unigbrk/GraphemeBreakTest.txt"
> +                          "tests/uninorm/NormalizationTest.txt"
> +                          "tests/uniname/UnicodeData.txt"
> +                          "tests/uniname/NameAliases.txt"
> +                          ;; FIXME:
> tests/uniname/HangulSyllableNames.txt
> +                          ;; seems like a UCD file but it is not
> distributed
> +                          ;; with UCD.
> +                          "tests/uniwbrk/WordBreakTest.txt")))))))
> +    (build-system copy-build-system)
> +    (arguments
> +     (list
> +      #:install-plan
> +      #~'(("./gnulib-tool" "bin/")
> +          ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
> +      #:modules '((ice-9 match)
> +                  (guix build utils)
> +                  (guix build copy-build-system)
> +                  ((guix build gnu-build-system) #:prefix gnu:))
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-before 'install 'gnu:check
> +            (assoc-ref gnu:%standard-phases 'check)
> )
Use just "check" for the phase name.
Toggle quote (33 lines)
> +          (add-before 'gnu:check 'fix-tests
> +            (lambda _
> +              (substitute* "Makefile"
> +                (("-f maint.mk syntax-check")
> +                 "_gl-Makefile=yes -f maint.mk syntax-check"))
> +              (invoke "git" "init")
> +              (invoke "git" "config" "user.name" "Guix")
> +              (invoke "git" "config" "user.email" "guix@localhost")
> +              (invoke "git" "add" ".")
> +              ;; Syntax checks are only run against committed files.
> +              (invoke "git" "commit" "-m" "Prepare for tests.")))
> +          (add-before 'gnu:check 'disable-failing-tests
> +            (lambda _
> +              (substitute* "cfg.mk"
> +                (("local-checks-to-skip =")
> +                 ;; sc_copyright_check fails because the fake commit
> date may
> +                 ;; be later than the copyright year.
> +                 "local-checks-to-skip = \\
> +  sc_Wundef_boolean \\
> +  sc_copyright_check \\
> +  sc_file_system \\
> +  sc_indent \\
> +  sc_keep_gnulib_texi_files_mostly_ascii \\
> +  sc_prohibit_assert_without_use \\
> +  sc_prohibit_close_stream_without_use \\
> +  sc_prohibit_defined_have_decl_tests \\
> +  sc_prohibit_doubled_word \\
> +  sc_prohibit_empty_lines_at_EOF \\
> +  sc_prohibit_intprops_without_use \\
> +  sc_prohibit_openat_without_use \\
> +  sc_prohibit_test_minus_ao \\
> +  sc_unportable_grep_q"))
Can we provide these via #:make-flags (assuming they get forwarded
through copy-build-system)?
Toggle quote (6 lines)
> +              (substitute* "Makefile"
> +                (("sc_(\
> +check_(sym_list|copyright)\
> +|cpp_indent_check\
> +|prohibit_(AC_LIBOBJ_in_m4|leading_TABs)\
> +|prefer_ac_check_funcs_once)" rule)
I do think splitting this into 4 separate rules is a comfy middle
ground between obivously splitting a regexp over multiple lines and
listing 10 rules separately.
Toggle quote (52 lines)
> +                 (string-append "disabled_" rule)))))
> +          (add-before 'gnu:check 'regenerate-unicode
> +            (lambda* (#:key inputs #:allow-other-keys)
> +              (define (find-ucd-file name)
> +                (search-input-file inputs (string-append
> "share/ucd/" name)))
> +              (define (find-ucd-files . names)
> +                (map find-ucd-file names))
> +              (with-directory-excursion "lib"
> +                ;; See the compile-command buffer-local variable in
> +                ;; lib/gen-uni-tables.c
> +                (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall"
> "gen-uni-tables.c"
> +                        "-Iunictype" "-o" "gen-uni-tables")
> +                (apply invoke
> +                       "./gen-uni-tables"
> +                       (append
> +                        (find-ucd-files "UnicodeData.txt"
> +                                        "PropList.txt"
> +                                        "DerivedCoreProperties.txt"
> +                                        "emoji/emoji-data.txt"
> +                                        "ArabicShaping.txt"
> +                                        "Scripts.txt"
> +                                        "Blocks.txt")
> +                        (list
> +                         #$(origin
> +                             (method url-fetch)
> +                             (uri (string-append
> +                                   "https://www.unicode.org/Public/"
> +                                   "3.0-Update1/PropList-
> 3.0.1.txt"))
> +                             (sha256
> +                              (base32
> +                              
> "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
> +                        (find-ucd-files "EastAsianWidth.txt"
> +                                        "LineBreak.txt"
> +                                       
> "auxiliary/WordBreakProperty.txt"
> +                                       
> "auxiliary/GraphemeBreakProperty.txt"
> +                                        "CompositionExclusions.txt"
> +                                        "SpecialCasing.txt"
> +                                        "CaseFolding.txt")
> +                         (list #$(package-version (this-package-
> native-input "ucd")))))
> +                (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
> +                        (search-input-file inputs
> "share/ucd/UnicodeData.txt")
> +                        "uniname/uninames.h"
> +                        (search-input-file inputs
> "share/ucd/NameAliases.txt"))
Why not (find-ucd-file "UnicodeData.txt") and (find-ucd-file
"NameAliases.txt") respectively?
Toggle quote (12 lines)
> +                (for-each
> +                 (match-lambda
> +                  ((ucd-file . directory)
> +                   (copy-file (find-ucd-file ucd-file)
> +                              (string-append "../tests/" directory
> "/"
> +                                             (basename ucd-file)))))
> +                 '(("NameAliases.txt" . "uniname")
> +                   ("UnicodeData.txt" . "uniname")
> +                   ("NormalizationTest.txt" . "uninorm")
> +                   ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
> +                   ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
LGTM.

Cheers
V
V
Vivien Kraus wrote on 1 Jan 2023 17:55
6a8aefb9ff81c1d8a64e4dc4927231c438742757.camel@planete-kraus.eu
Le dimanche 01 janvier 2023 à 17:25 +0100, Liliana Marie Prikler a
écrit :
Toggle quote (24 lines)
> > +              (substitute* "cfg.mk"
> > +                (("local-checks-to-skip =")
> > +                 ;; sc_copyright_check fails because the fake
> > commit
> > date may
> > +                 ;; be later than the copyright year.
> > +                 "local-checks-to-skip = \\
> > +  sc_Wundef_boolean \\
> > +  sc_copyright_check \\
> > +  sc_file_system \\
> > +  sc_indent \\
> > +  sc_keep_gnulib_texi_files_mostly_ascii \\
> > +  sc_prohibit_assert_without_use \\
> > +  sc_prohibit_close_stream_without_use \\
> > +  sc_prohibit_defined_have_decl_tests \\
> > +  sc_prohibit_doubled_word \\
> > +  sc_prohibit_empty_lines_at_EOF \\
> > +  sc_prohibit_intprops_without_use \\
> > +  sc_prohibit_openat_without_use \\
> > +  sc_prohibit_test_minus_ao \\
> > +  sc_unportable_grep_q"))
> Can we provide these via #:make-flags (assuming they get forwarded
> through copy-build-system)?

The copy-build-system does not recognize #:make-flags, unfortunately.

Vivien
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v10 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
10de0b6632a0ebf6e3baa56fd56948a5b21b7d9d.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v10 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
f8afe11e3c37e8a6dc16f4a17248d04cad4c4f85.camel@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures

base-commit: 87cc524f52b65f7f12c9b87d25b467772e357cab
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v10 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
657f79f8c9c527268a0708e43c71e8c8350dddda.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v10 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
50a67c3cc0f9ce511ae1aa5abb5e4fd3ee4f9ded.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables.
---
gnu/packages/build-tools.scm | 203 +++++++++++++++++++++++++++++++++++
1 file changed, 203 insertions(+)

Toggle diff (248 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..3a3d2a22b7 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,27 +32,37 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#: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 (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +75,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +814,195 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_(sym_list|copyright)" rule)
+ (string-append "disabled_check_" rule))
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule)
+ (string-append "disabled_prohibit_" rule)))))
+ (add-before 'check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (find-ucd-file "UnicodeData.txt")
+ "uniname/uninames.h"
+ (find-ucd-file "NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
L
L
Liliana Marie Prikler wrote on 1 Jan 2023 18:31
Re: [PATCH v9 3/4] gnu: Add gnulib.
d1ffb9f568790c1a8728a82a3feb1085a299fa01.camel@gmail.com
Am Sonntag, dem 01.01.2023 um 17:55 +0100 schrieb Vivien Kraus:
Toggle quote (27 lines)
> Le dimanche 01 janvier 2023 à 17:25 +0100, Liliana Marie Prikler a
> écrit :
> > > +              (substitute* "cfg.mk"
> > > +                (("local-checks-to-skip =")
> > > +                 ;; sc_copyright_check fails because the fake
> > > commit
> > > date may
> > > +                 ;; be later than the copyright year.
> > > +                 "local-checks-to-skip = \\
> > > +  sc_Wundef_boolean \\
> > > +  sc_copyright_check \\
> > > +  sc_file_system \\
> > > +  sc_indent \\
> > > +  sc_keep_gnulib_texi_files_mostly_ascii \\
> > > +  sc_prohibit_assert_without_use \\
> > > +  sc_prohibit_close_stream_without_use \\
> > > +  sc_prohibit_defined_have_decl_tests \\
> > > +  sc_prohibit_doubled_word \\
> > > +  sc_prohibit_empty_lines_at_EOF \\
> > > +  sc_prohibit_intprops_without_use \\
> > > +  sc_prohibit_openat_without_use \\
> > > +  sc_prohibit_test_minus_ao \\
> > > +  sc_unportable_grep_q"))
> > Can we provide these via #:make-flags (assuming they get forwarded
> > through copy-build-system)?
>
> The copy-build-system does not recognize #:make-flags, unfortunately.
Okay. I've now built this series locally and queued it for upstreaming
on the 15th. Might do it earlier if QA lights green.

Cheers
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v11 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)
82bf98d5239e2da28bfac80ca9ef536b27201ef0.camel@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v11 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
8f3409e46325bae45614dd0661b32f6af4f2dc4e.camel@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables.
---
gnu/packages/build-tools.scm | 202 +++++++++++++++++++++++++++++++++++
1 file changed, 202 insertions(+)

Toggle diff (247 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..5f6d0c6b4e 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,6 +32,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@@ -39,20 +40,28 @@ (define-module (gnu packages build-tools)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,195 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_(sym_list|copyright)" rule)
+ (string-append "disabled_check_" rule))
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule)
+ (string-append "disabled_prohibit_" rule)))))
+ (add-before 'check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (find-ucd-file "UnicodeData.txt")
+ "uniname/uninames.h"
+ (find-ucd-file "NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v11 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)
f5122fa7ac2661d8ae6bce9a6490b8cb3c18fa5b.camel@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v11 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)
387eed38e84cfe3ff7f8d3f5855338cdb42a6e38.camel@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures

base-commit: 6d4c53893308d7db340a2978307a214103660341
--
2.38.1
V
V
Vivien Kraus wrote on 1 Jan 2023 21:48
Re: [PATCH v11 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
0c9d0eb4ddcfcebe6a636b5376a1aa21f23314ff.camel@planete-kraus.eu
Le mardi 27 décembre 2022 à 17:23 +0100, Vivien Kraus a écrit :
Toggle quote (7 lines)
> * gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New
> variables.
> ---
>  gnu/packages/build-tools.scm | 202
> +++++++++++++++++++++++++++++++++++
>  1 file changed, 202 insertions(+)

I removed the (guix git) import that I introduced earlier in the series
and forgot to remove. It caused the Guix QA to fail.
V
V
Vivien Kraus wrote on 1 Jan 2023 22:45
[PATCH v11 0/4] Use a cover letter.
(address . 60358@debbugs.gnu.org)
cover.1672609541.git.vivien@planete-kraus.eu
I’m trying to learn how to make QA happy. I have not changed anything from
last time, but now I’m trying the "deep" thread style with a cover letter for
patches on my end, so maybe it will work?

Sorry for the spam.

Vivien Kraus (4):
gnu: libunibreak: Use ucd instead of ucd-next.
gnu: ucd-next: Update to 15.0.0.
gnu: Add gnulib.
gnu: guile-gnutls: Update to 3.7.11.

gnu/packages/build-tools.scm | 202 +++++++++++++++++++++++++++++++++++
gnu/packages/tls.scm | 42 +++++---
gnu/packages/unicode.scm | 9 +-
3 files changed, 235 insertions(+), 18 deletions(-)


base-commit: 6d4c53893308d7db340a2978307a214103660341
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v11 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)
9f42688c30bcaf8aae892321d38cd645dcf17a30.1672609541.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v11 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)
6b35ad2a2ad95ac51fa248e561d9f67b96ff1df1.1672609541.git.vivien@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v11 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)
92747f38e8b329c3e5a2595758d7770992300a96.1672609541.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v11 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
b193966740dbedbde15f5e07126f356c352cc3a7.1672609541.git.vivien@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables.
---
gnu/packages/build-tools.scm | 202 +++++++++++++++++++++++++++++++++++
1 file changed, 202 insertions(+)

Toggle diff (247 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..5f6d0c6b4e 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,6 +32,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@@ -39,20 +40,28 @@ (define-module (gnu packages build-tools)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,195 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_(sym_list|copyright)" rule)
+ (string-append "disabled_check_" rule))
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule)
+ (string-append "disabled_prohibit_" rule)))))
+ (add-before 'check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (find-ucd-file "UnicodeData.txt")
+ "uniname/uninames.h"
+ (find-ucd-file "NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
(address . 60358@debbugs.gnu.org)
b193966740dbedbde15f5e07126f356c352cc3a7.1672610369.git.vivien@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables.
---
gnu/packages/build-tools.scm | 202 +++++++++++++++++++++++++++++++++++
1 file changed, 202 insertions(+)

Toggle diff (247 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..5f6d0c6b4e 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -32,6 +32,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@@ -39,20 +40,28 @@ (define-module (gnu packages build-tools)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +74,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +813,195 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_(sym_list|copyright)" rule)
+ (string-append "disabled_check_" rule))
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule)
+ (string-append "disabled_prohibit_" rule)))))
+ (add-before 'check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (find-ucd-file "UnicodeData.txt")
+ "uniname/uninames.h"
+ (find-ucd-file "NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
V
V
Vivien Kraus wrote on 1 Jan 2023 22:59
[PATCH v11 0/4] Using a cover letter with a shallow thread style.
(address . 60358@debbugs.gnu.org)
cover.1672610369.git.vivien@planete-kraus.eu
I tried the "deep" thread style, but unfortunately it seems that Patchwork
only picked the last commit. My guess is that the email thread model that
Patchwork recognizes is one cover letter, and every patch links to the cover
letter. Maybe the deep thread style means that Patchwork recognizes the last
commit as a new commit, looks up its parent and interprets it as the cover
letter. So, maybe the penultimate patch was interpreted as the cover letter
and so only the last patch made its way.

I understand that you are upset because of the spam. I don’t like that either
when it happens to me.

I have more or less exhausted all the options that I can easily tweak in order
to make the patch work with patchwork. If this doesn’t work, then I won’t try
again and I will let the QA fail.

That’s my last "sorry for the spam" on this issue. Sorry for the spam!

Vivien Kraus (4):
gnu: libunibreak: Use ucd instead of ucd-next.
gnu: ucd-next: Update to 15.0.0.
gnu: Add gnulib.
gnu: guile-gnutls: Update to 3.7.11.

gnu/packages/build-tools.scm | 202 +++++++++++++++++++++++++++++++++++
gnu/packages/tls.scm | 42 +++++---
gnu/packages/unicode.scm | 9 +-
3 files changed, 235 insertions(+), 18 deletions(-)


base-commit: 6d4c53893308d7db340a2978307a214103660341
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v11 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)
9f42688c30bcaf8aae892321d38cd645dcf17a30.1672610369.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v11 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)
6b35ad2a2ad95ac51fa248e561d9f67b96ff1df1.1672610369.git.vivien@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)

Toggle diff (87 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..2c7e36a6c5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +81,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +383,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +392,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +424,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v11 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)
92747f38e8b329c3e5a2595758d7770992300a96.1672610369.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 27 Dec 2022 17:23
[PATCH v12 3/4] gnu: Add gnulib.
(address . 60358@debbugs.gnu.org)
c6b20260c21faa1d6f6517601f351b7c2cdf6043.1672688590.git.vivien@planete-kraus.eu
* gnu/packages/build-tools.scm (gnulib-checkout, gnulib): New variables.
---
gnu/packages/build-tools.scm | 203 +++++++++++++++++++++++++++++++++++
1 file changed, 203 insertions(+)

Toggle diff (255 lines)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 6c1350c44f..397318e555 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
+;;; Copyright © 2022 Vivien Kraus <vivien@planete-kraus.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
+ #:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
@@ -39,20 +41,28 @@ (define-module (gnu packages build-tools)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix modules)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages cppi)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages gcc)
#: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)
@@ -65,6 +75,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -803,3 +814,195 @@ (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))))
+
+(define*-public (gnulib-checkout #:key
+ version
+ (revision "1")
+ commit
+ hash)
+ "Return as a package the exact gnulib checkout."
+ (package
+ (name "gnulib")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/gnulib.git/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256 hash)
+ (snippet
+ (with-imported-modules (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils)
+ (ice-9 ftw)
+ (ice-9 rdelim))
+ ;; .c, .h and .gperf files whose first line is /* DO NOT EDIT!
+ ;; GENERATED AUTOMATICALLY! */ are generated automatically based
+ ;; on the unicode database. Since we replace the unicode
+ ;; database with our own, we need to regenerate them. So, they
+ ;; are removed from the source. They are sprinkled all over the
+ ;; place unfortunately, so we can’t exclude whole directories.
+ (let ((generated-automatically?
+ (lambda (filename . unused)
+ (and (or (string-suffix? ".c" filename)
+ (string-suffix? ".h" filename)
+ (string-suffix? ".gperf" filename))
+ (call-with-input-file filename
+ (lambda (port)
+ (let ((first-line (read-line port)))
+ (equal?
+ first-line
+ "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */"))))))))
+ (for-each delete-file (find-files (getcwd) generated-automatically?)))
+ ;; Other files are copied from UCD.
+ (for-each delete-file
+ '("tests/unigbrk/GraphemeBreakTest.txt"
+ "tests/uninorm/NormalizationTest.txt"
+ "tests/uniname/UnicodeData.txt"
+ "tests/uniname/NameAliases.txt"
+ ;; FIXME: tests/uniname/HangulSyllableNames.txt
+ ;; seems like a UCD file but it is not distributed
+ ;; with UCD.
+ "tests/uniwbrk/WordBreakTest.txt")))))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("./gnulib-tool" "bin/")
+ ("." "src/gnulib" #:exclude-regexp ("\\.git.*")))
+ #:modules '((ice-9 match)
+ (guix build utils)
+ (guix build copy-build-system)
+ ((guix build gnu-build-system) #:prefix gnu:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'check
+ (assoc-ref gnu:%standard-phases 'check))
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "Makefile"
+ (("-f maint.mk syntax-check")
+ "_gl-Makefile=yes -f maint.mk syntax-check"))
+ (invoke "git" "init")
+ (invoke "git" "config" "user.name" "Guix")
+ (invoke "git" "config" "user.email" "guix@localhost")
+ (invoke "git" "add" ".")
+ ;; Syntax checks are only run against committed files.
+ (invoke "git" "commit" "-m" "Prepare for tests.")))
+ (add-before 'check 'disable-failing-tests
+ (lambda _
+ (substitute* "cfg.mk"
+ (("local-checks-to-skip =")
+ ;; sc_copyright_check fails because the fake commit date may
+ ;; be later than the copyright year.
+ "local-checks-to-skip = \\
+ sc_Wundef_boolean \\
+ sc_copyright_check \\
+ sc_file_system \\
+ sc_indent \\
+ sc_keep_gnulib_texi_files_mostly_ascii \\
+ sc_prohibit_assert_without_use \\
+ sc_prohibit_close_stream_without_use \\
+ sc_prohibit_defined_have_decl_tests \\
+ sc_prohibit_doubled_word \\
+ sc_prohibit_empty_lines_at_EOF \\
+ sc_prohibit_intprops_without_use \\
+ sc_prohibit_openat_without_use \\
+ sc_prohibit_test_minus_ao \\
+ sc_unportable_grep_q"))
+ (substitute* "Makefile"
+ (("sc_check_(sym_list|copyright)" rule)
+ (string-append "disabled_check_" rule))
+ (("sc_cpp_indent_check")
+ "disabled_cpp_indent_check")
+ (("sc_prefer_ac_check_funcs_once")
+ "disabled_prefer_ac_check_funcs_once")
+ (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule)
+ (string-append "disabled_prohibit_" rule)))))
+ (add-before 'check 'regenerate-unicode
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (find-ucd-file name)
+ (search-input-file inputs (string-append "share/ucd/" name)))
+ (define (find-ucd-files . names)
+ (map find-ucd-file names))
+ (with-directory-excursion "lib"
+ ;; See the compile-command buffer-local variable in
+ ;; lib/gen-uni-tables.c
+ (invoke #+(file-append gcc "/bin/gcc") "-O" "-Wall" "gen-uni-tables.c"
+ "-Iunictype" "-o" "gen-uni-tables")
+ (apply invoke
+ "./gen-uni-tables"
+ (append
+ (find-ucd-files "UnicodeData.txt"
+ "PropList.txt"
+ "DerivedCoreProperties.txt"
+ "emoji/emoji-data.txt"
+ "ArabicShaping.txt"
+ "Scripts.txt"
+ "Blocks.txt")
+ (list
+ #$(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.unicode.org/Public/"
+ "3.0-Update1/PropList-3.0.1.txt"))
+ (sha256
+ (base32
+ "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh"))))
+ (find-ucd-files "EastAsianWidth.txt"
+ "LineBreak.txt"
+ "auxiliary/WordBreakProperty.txt"
+ "auxiliary/GraphemeBreakProperty.txt"
+ "CompositionExclusions.txt"
+ "SpecialCasing.txt"
+ "CaseFolding.txt")
+ (list #$(package-version (this-package-native-input "ucd")))))
+ (invoke "clisp" "-C" "uniname/gen-uninames.lisp"
+ (find-ucd-file "UnicodeData.txt")
+ "uniname/uninames.h"
+ (find-ucd-file "NameAliases.txt"))
+ (for-each
+ (match-lambda
+ ((ucd-file . directory)
+ (copy-file (find-ucd-file ucd-file)
+ (string-append "../tests/" directory "/"
+ (basename ucd-file)))))
+ '(("NameAliases.txt" . "uniname")
+ ("UnicodeData.txt" . "uniname")
+ ("NormalizationTest.txt" . "uninorm")
+ ("auxiliary/GraphemeBreakTest.txt" . "unigbrk")
+ ("auxiliary/WordBreakTest.txt" . "uniwbrk")))
+ (delete-file "gen-uni-tables")))))))
+ (inputs ;; Shebangs for some auxiliary build files.
+ (list python perl clisp))
+ (native-inputs
+ (list
+ python perl clisp
+ ;; Unicode data:
+ ucd-next
+ ;; Programs for the tests:
+ cppi indent git autoconf))
+ (home-page "https://www.gnu.org/software/gnulib/")
+ (synopsis "Source files to share among distributions")
+ (description
+ "Gnulib is a central location for common infrastructure needed by GNU
+packages. It provides a wide variety of functionality, e.g., portability
+across many systems, working with Unicode strings, cryptographic computation,
+and much more. The code is intended to be shared at the level of source
+files, rather than being a standalone library that is distributed, built, and
+installed. The included @command{gnulib-tool} script helps with using Gnulib
+code in other packages. Gnulib also includes copies of licensing and
+maintenance-related files, for convenience.")
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GNULIB_SRCDIR")
+ (files (list "src/gnulib")))))
+ (license (list license:lgpl2.0+ license:gpl3+))))
+
+(define-public gnulib
+ (gnulib-checkout
+ #:version "2022-12-31"
+ #:commit "875461ffdf58ac04677957b4ae4160465b83b940"
+ #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c")))
--
2.38.1
V
V
Vivien Kraus wrote on 2 Jan 2023 20:43
[PATCH v12 0/4] Add my name to the copyright line.
(address . 60358@debbugs.gnu.org)
cover.1672688590.git.vivien@planete-kraus.eu
I added my name to the copyright line of build-tools (for gnulib) and also of
tls (for guile-gnutls).

I used the 2022 year because the initial work was done in 2022.

Vivien Kraus (4):
gnu: libunibreak: Use ucd instead of ucd-next.
gnu: ucd-next: Update to 15.0.0.
gnu: Add gnulib.
gnu: guile-gnutls: Update to 3.7.11.

gnu/packages/build-tools.scm | 203 +++++++++++++++++++++++++++++++++++
gnu/packages/tls.scm | 43 +++++---
gnu/packages/unicode.scm | 9 +-
3 files changed, 237 insertions(+), 18 deletions(-)


base-commit: 7efcf36e3b753a1dba6f8208f3c22d151007eaf0
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:33
[PATCH v12 1/4] gnu: libunibreak: Use ucd instead of ucd-next.
(address . 60358@debbugs.gnu.org)
80157ef2aa8f6599ad1a0a53f687ff9d63ca3d00.1672688590.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (libunibreak) [native-inputs]: Replace ucd-next
with ucd. They are identical.
---
gnu/packages/unicode.scm | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Toggle diff (16 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index bda0de04cc..5b5900f2ba 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -48,8 +48,7 @@ (define-public libunibreak
(list autoconf-wrapper
automake
libtool
- ucd-next ; required for tests
- ))
+ ucd))
(arguments
`(#:parallel-tests? #f ; parallel tests cause non-deterministic
; build failures
--
2.38.1
V
V
Vivien Kraus wrote on 28 Dec 2022 03:20
[PATCH v12 4/4] gnu: guile-gnutls: Update to 3.7.11.
(address . 60358@debbugs.gnu.org)
c38f905fcaa7dcb0b62834ec9f5d6a0a5c8a7ee8.1672688590.git.vivien@planete-kraus.eu
* gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang autopull.sh and
autogen.sh.
* gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and git.
---
gnu/packages/tls.scm | 43 ++++++++++++++++++++++++++++++-------------
1 file changed, 30 insertions(+), 13 deletions(-)

Toggle diff (95 lines)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a74b423ccf..b8cba06386 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 Vivien Kraus <vivien@planete-kraus.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,6 +57,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
@@ -80,6 +82,7 @@ (define-module (gnu packages tls)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages time)
+ #:use-module (gnu packages version-control)
#:use-module (gnu packages base)
#:use-module (srfi srfi-1))
@@ -381,7 +384,7 @@ (define-public guile-gnutls
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.9")
+ (version "3.7.11")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
(method git-fetch)
@@ -390,21 +393,31 @@ (define-public guile-gnutls
(commit (string-append "v" version))))
(sha256
(base32
- "00sfpqjmd263ka51fq4xf7nvaaxyfqsr3r8fj94jgx45q6q6n6wq"))
+ "06d7v3i0d9ayp7zqk1rsy4z0wfpq69n0r54f1xrppb9gn7q9iva6"))
(file-name (git-file-name name version))
(patches (search-patches "gnutls-cross.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags
- ;; Tell the build system that we want Guile bindings installed to
- ;; the output instead of Guiles own module directory.
- (list "--disable-static"
- (string-append "--with-guile-site-dir="
- "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
- (string-append "--with-guile-site-ccache-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
- (string-append "--with-guile-extension-dir="
- "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))))
+ (list
+ #:configure-flags
+ ;; Tell the build system that we want Guile bindings installed to the
+ ;; output instead of Guiles own module directory.
+ #~(list "--disable-static"
+ (string-append "--with-guile-site-dir="
+ "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)")
+ (string-append "--with-guile-site-ccache-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache")
+ (string-append "--with-guile-extension-dir="
+ "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-more-shebangs
+ (lambda _
+ (for-each patch-shebang
+ '("autopull.sh" "autogen.sh"))))
+ (replace 'bootstrap
+ (lambda _
+ (invoke "bash" "./bootstrap" "--no-git"))))))
(native-inputs
(list autoconf
automake
@@ -412,7 +425,11 @@ (define-public guile-gnutls
pkg-config
texinfo
gnutls ;XXX: 'guile-snarf' invokes the native 'cpp'
- guile-3.0))
+ guile-3.0
+ (gnulib-checkout
+ #:version "2022-12-06"
+ #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811"
+ #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy"))))
(inputs
(list gnutls-latest
guile-3.0))
--
2.38.1
V
V
Vivien Kraus wrote on 31 Dec 2022 18:34
[PATCH v12 2/4] gnu: ucd-next: Update to 15.0.0.
(address . 60358@debbugs.gnu.org)
600b1498c5604f74e5ce32ce11cf1237c6540b20.1672688590.git.vivien@planete-kraus.eu
* gnu/packages/unicode.scm (ucd-next): Update to 15.0.0. Rename package to
just "ucd", not "ucd-next".
---
gnu/packages/unicode.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index 5b5900f2ba..857af13d71 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -100,8 +100,8 @@ (define-public ucd
(define-public ucd-next
(package
(inherit ucd)
- (name "ucd-next")
- (version "14.0.0")
+ (name "ucd")
+ (version "15.0.0")
(source
(origin
(method url-fetch/zipbomb)
@@ -109,7 +109,7 @@ (define-public ucd-next
"/UCD.zip"))
(sha256
(base32
- "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))))
+ "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
(define (unicode-emoji-file name version hash)
(origin
--
2.38.1
V
V
Vivien Kraus wrote on 7 Jan 2023 11:21
gnulib: Should this be in its own module?
(name . 60358)(address . 60358@debbugs.gnu.org)
546f2bfcef0e4e8d0be31ad6e06d41f9adb3bc95.camel@planete-kraus.eu
Dear guix,

gnulib is a useful tool to recreate distribution tarballs from git on
many GNU projects. In the future, it may be a native input for many.
Should I move it to its own module, (gnu packages gnulib) for instance?
That would certainly help with forseeable mess with circular guile
module dependencies.

What do you think?

Best regards,

Vivien
L
L
Liliana Marie Prikler wrote on 15 Jan 2023 08:07
Re: [PATCH v10 4/4] gnu: guile-gnutls: Update to 3.7.11.
86557646c6687aac336fad9be44101d1efcd344d.camel@gmail.com
Am Mittwoch, dem 28.12.2022 um 03:20 +0100 schrieb Vivien Kraus:
Toggle quote (5 lines)
> * gnu/packages/tls.scm (guile-gnutls) [phases]: Patch-shebang
> autopull.sh and autogen.sh.
> * gnu/packages/tls.scm (guile-gnutls) [native-inupts]: Add gnulib and
> git.
> ---
Pushed now.
Incidentally, git was not actually added, but I forgot to augment the
ChangeLog. Sorry for that.

Cheers
Closed
L
L
Ludovic Courtès wrote on 16 Jan 2023 12:59
Re: bug#60358: [PATCH] gnu: Add gnulib.
(name . Vivien Kraus)(address . vivien@planete-kraus.eu)(address . 60358@debbugs.gnu.org)
874jsqn10c.fsf_-_@gnu.org
Hi Vivien,

Vivien Kraus <vivien@planete-kraus.eu> skribis:

Toggle quote (5 lines)
> + (native-search-paths
> + (list (search-path-specification
> + (variable "GNULIB_SRCDIR")
> + (files (list "src/gnulib")))))

Perhaps you need (separator #f) if it’s meant to contain a single
directory name (as opposed to a colon-separate search path)?

Thanks,
Ludo’.
?