[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#61027] [PATCH 3/3] gnu: Add flatpak-builder.
From: |
Jelle Licht |
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@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.
- [bug#61027] [PATCH 3/3] gnu: Add flatpak-builder.,
Jelle Licht <=