Package: guix-patches;
Reported by: Nicolas Graves <ngraves <at> ngraves.fr>
Date: Mon, 23 Jan 2023 12:07:02 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: Jelle Licht <jlicht <at> fsfe.org> To: 61027 <at> debbugs.gnu.org Cc: ngraves <at> ngraves.fr Subject: [bug#61027] [PATCH 3/3] gnu: Add flatpak-builder. Date: Tue, 04 Apr 2023 23:05:33 +0200
Hi Nicolas, This particular patch does not apply cleanly (anymore). I think it may introduce module import cycles as well; any chance you could have a look at that? If it becomes too much of a mess, moving this package (and eventually other packages as well) into a new 'gnu/packages/flatpak.scm' file could work. Some additional nitpicks follow inline. Nicolas Graves via Guix-patches via <guix-patches <at> gnu.org> writes: > * gnu/packages/package-management.scm (flatpak-builder): New variable. > --- > gnu/packages/package-management.scm | 103 ++++++++++++++++++++++++++++ > 1 file changed, 103 insertions(+) > > diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm > index 6210be4d5c..bfba2eeacf 100644 > --- a/gnu/packages/package-management.scm > +++ b/gnu/packages/package-management.scm You are missing a copyright line :-) > @@ -59,9 +59,11 @@ (define-module (gnu packages package-management) > #:use-module (gnu packages crypto) > #:use-module (gnu packages curl) > #:use-module (gnu packages databases) > + #:use-module (gnu packages debug) > #:use-module (gnu packages dejagnu) > #:use-module (gnu packages dbm) > #:use-module (gnu packages docbook) > + #:use-module (gnu packages elf) > #:use-module (gnu packages file) > #:use-module (gnu packages freedesktop) > #:use-module (gnu packages flex) > @@ -83,6 +85,7 @@ (define-module (gnu packages package-management) > #:use-module (gnu packages lisp) > #:use-module (gnu packages lua) > #:use-module (gnu packages man) > + #:use-module (gnu packages m4) > #:use-module (gnu packages markup) > #:use-module (gnu packages nettle) > #:use-module (gnu packages networking) > @@ -2077,6 +2080,106 @@ (define-public flatpak > sandboxed desktop applications on GNU/Linux.") > (license license:lgpl2.1+))) > > +(define-public flatpak-builder > + (package > + (name "flatpak-builder") > + (version "1.2.3") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/flatpak/flatpak-builder.git") > + (commit version))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "07pih8v2i3jzyy8zccdljgi3pgj52bgycrh4h5s20lwdxgnh2hb3")))) > + (build-system gnu-build-system) > + (arguments > + '(#:configure-flags > + (list > + "--enable-documentation=no" Enabling documentation should be workable in a way similar to what we do for gtk-doc, and I've noticed nix already has a similar patch as well as the one both us and them use for gtk-doc [1]. Adding docbook-xsl, docbook-xml-4.3, libxslt and libxml2 to native-inputs should do the trick afterwards (untested). > + "--with-system-debugedit") > + #:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'disable-submodules > + (lambda* (#:key inputs #:allow-other-keys) > + (let ((llibglnx (assoc-ref inputs "libglnx"))) > + (substitute* "autogen.sh" > + (("^if ! test -f libglnx/README.md; then") > + "if test -f libglnx/README.md; then") Instead of inverting the test, why not substitute with something like "if false; then" (untested)? > + ((".*subprojects/libglnx.*") "")) > + (substitute* "configure.ac" > + (("LIBGLNX_CONFIGURE") "")) > + (substitute* "src/Makefile.am.inc" > + (("libglnx.la") "-lglnx")) > + (substitute* "Makefile.am" > + (("^include subprojects/libglnx/Makefile-libglnx.am.inc") > + "") > + ((".*libglnx_srcpath.*") "") > + ((".*/subprojects/debugedit.*") "") > + (("-I subprojects/libglnx") > + (string-append "-I " llibglnx "/include")) > + ((".*subprojects/libglnx.*") > + (string-append " -I " llibglnx "/include")) > + (("noinst_LTLIBRARIES .=.*") "") > + (("libglnx_libs :=.*") > + (string-append "LDFLAGS += -L" llibglnx " -lglnx -static" "\n")) > + (("libglnx_cflags :=") "LIBGLNX_CFLAGS = -lglnx")) > + (substitute* > + '("src/builder-cache.c" > + "src/builder-cache.h" > + "src/builder-extension.c" > + "src/builder-flatpak-utils.c" > + "src/builder-flatpak-utils.h" > + "src/builder-main.c" > + "src/builder-manifest.c" > + "src/builder-module.c" > + "src/builder-post-process.c") > + (("\"libglnx/libglnx.h\"") "<libglnx.h>") > + (("<libglnx/libglnx.h>") "<libglnx.h>"))))) > + ;; Test are supposed to be done in /var/tmp because of the need for > + ;; xattrs. Nonetheless, moving it back to /tmp makes tests suceed. > + (add-before 'check 'allow-tests > + (lambda _ > + (substitute* '("buildutil/tap-test" "tests/libtest.sh") > + (("\\/var\\/tmp\\/") > + "/tmp/"))))))) > + (propagated-inputs (list flatpak debugedit libglnx elfutils)) > + (inputs > + (list libsoup-minimal-2 > + libostree > + json-glib > + curl > + libyaml)) > + (native-inputs > + (list autoconf > + automake > + m4 > + libtool > + pkg-config > + gettext-minimal > + which)) > + (home-page "https://github.com/flatpak/flatpak-builder.git") > + (synopsis "Tool to build flatpaks from source") > + (description "@code{flatpak-builder} is a wrapper around the flatpak build > +command that automates the building of applications and their dependencies. > +It is one option you can use to build applications. This > + > +The goal of flatpak-builder is to push as much knowledge about how to build > +modules to the individual upstream projects. An invocation of flatpak-builder > +proceeds in these stages, each being specified in detail in json format in > +the file MANIFEST : > + > +@itemize > +@item Download all sources > +@item Initialize the application directory with flatpak build-init > +@item Build and install each module with flatpak build > +@item Clean up the final build tree by removing unwanted files and > +e.g. stripping binaries > +@item Finish the application directory with flatpak build-finish > +@end itemize") > + (license license:lgpl2.1))) > + > (define-public akku > (package > (name "akku") > -- > 2.39.1 [1]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.