Subject: Re: [bug#42695] [PATCH] gnu: sway: Attempt to update to 1.5

From: Oleg Pykhalov <[email-masked]>
Date: Wed, 05 Aug 2020 18:49:33 +0300

Hi,

First of all thank you for your work on sway and meson!

[email-masked] (André Alexandre Gomes) writes:

> $ guix build -L ~/repos/guix/gnu/packages sway

As I know it's not enough.  Intead you could use:
--8<---------------cut here---------------start------------->8---
~/repos/guix/pre-inst-env guix build sway
--8<---------------cut here---------------end--------------->8---

Also, you could run a “make -j3” command before ‘./pre-inst-env’ to spot
some compilations errors after changing package recipes.

> meson.build:1:0: ERROR: Meson version is 0.53.2 but project requires
>>=0.54.0
>
> But I don't understand why, since I update meson as well.

Did you set GUIX_PACKAGE_PATH?  You could check with:
--8<---------------cut here---------------start------------->8---
./pre-inst-env env | grep GUIX_PACKAGE_PATH
--8<---------------cut here---------------end--------------->8---
which should show GUIX_PACKAGE_PATH= or show nothing.

[…]

> diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
> index 7213c1bd0b..ecb3551b96 100644
> --- a/gnu/packages/build-tools.scm
> +++ b/gnu/packages/build-tools.scm
> @@ -179,15 +179,16 @@ files and generates build instructions for the Ninja build system.")
>  (define-public meson
>    (package
>      (name "meson")
> -    (version "0.53.2")
> -    (source (origin
> -              (method url-fetch)
> -              (uri (string-append "https://github.com/mesonbuild/meson/"
> -                                  "releases/download/" version  "/meson-"
> -                                  version ".tar.gz"))
> -              (sha256
> -               (base32
> -                "07y2hh9dfn1m9g4bsy49nbn3vdmd0b2iwr8bxg19fhqq6c7q73ry"))))
> +    (version "0.55.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/mesonbuild/meson/")

It's OK to use ‘git-fetch’, and we switch to it in favour of ‘url-fetch’
because of GitHub could regenerate tarballs.  But I think thats probably
not a ‘meson’ case.

Release tarball could differ from Git repository.  Did you succeed to
build the ‘git-fetch’ way (via ‘pre-inst-env’)?

[…]

> -(define-public meson-for-build
> -  (package
> -    (inherit meson)
> -    (name "meson-for-build")
> -    (source (origin
> -              (inherit (package-source meson))
> -              (patches (search-patches "meson-for-build-rpath.patch"))))
> +;; (define-public meson-for-build
> +;;   (package
> +;;     (inherit meson)
> +;;     (name "meson-for-build")
> +;;     (source (origin
> +;;               (inherit (package-source meson))
> +;;               (patches (search-patches "meson-for-build-rpath.patch"))))
>  
> -    ;; People should probably install "meson", not "meson-for-build".
> -    (properties `((hidden? . #t)))))
> +;;     ;; People should probably install "meson", not "meson-for-build".
> +;;     (properties `((hidden? . #t)))))

Why do you comment ‘meson-for-build’?  First of all don't comment things
which should be removed, because of Git.  ;-) And it's used by:
--8<---------------cut here---------------start------------->8---
oleg@guixsd ~/src/guix-master$ grep -RF meson-for-build ~/src/guix-master | grep '.scm'
/home/oleg/src/guix-master/guix/build-system/meson.scm:    (module-ref module 'meson-for-build)))
--8<---------------cut here---------------end--------------->8---

>  (define-public premake4
>    (package
> diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
> index fb33bd7f6d..60e5a9d395 100644
> --- a/gnu/packages/gl.scm
> +++ b/gnu/packages/gl.scm
> @@ -233,26 +233,16 @@ also known as DXTn or DXTC) for Mesa.")
>  (define-public mesa
>    (package
>      (name "mesa")
> -    (version "20.0.7")
> -
> -    ;; Mesa 20.0.5 through 20.0.7 has problems with some graphic drivers, so
> -    ;; we need this newer version.
> -    ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882
> -    ;; https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861
> -    (replacement mesa-20.0.8)
> -
> +    (version "20.1.4")
>      (source
>        (origin
> -        (method url-fetch)
> -        (uri (list (string-append "https://mesa.freedesktop.org/archive/"
> -                                  "mesa-" version ".tar.xz")
> -                   (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
> -                                  "mesa-" version ".tar.xz")
> -                   (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
> -                                  version "/mesa-" version ".tar.xz")))
> +        (method git-fetch)
> +        (uri (git-reference
> +              (url https://gitlab.freedesktop.org/mesa/mesa/)

That url should be a string:
--8<---------------cut here---------------start------------->8---
error: https://gitlab.freedesktop.org/mesa/mesa/: unbound variable
hint: Did you forget a `use-modules' form?
--8<---------------cut here---------------end--------------->8---

> +              (commit (string-append name "-" version))))

I think we should use hard-coded "mesa-" as in source urls.

[…]

> +;; (define mesa-20.0.8
> +;;   (package
> +;;     (inherit mesa)
> +;;     (version "20.0.8")
> +;;     (source (origin
> +;;               (inherit (package-source mesa))
> +;;               (uri (list (string-append "https://mesa.freedesktop.org/archive/"
> +;;                                         "mesa-" version ".tar.xz")
> +;;                          (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
> +;;                                         "mesa-" version ".tar.xz")))
> +;;               (sha256
> +;;                (base32
> +;;                 "0v0bfh3ay07s6msxmklvwfaif0q02kq2yhy65fdhys49vw8c1w3c"))))))

Same thing about commenting unused code.  Just remove it.

Everything else looks OK, but could you split this big patch by “patch
per package upgrade”?

Thanks,
Oleg.