Package: guix-patches;
Reported by: Sughosha <Sughosha <at> proton.me>
Date: Mon, 3 Apr 2023 08:19:01 UTC
Severity: normal
Tags: patch
Merged with 49577
Done: Danny Milosavljevic <dannym <at> friendly-machines.com>
To reply to this bug, email your comments to 62640 AT debbugs.gnu.org.
There is no need to reopen the bug first.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Mon, 03 Apr 2023 08:19:02 GMT) Full text and rfc822 format available.Sughosha <Sughosha <at> proton.me>
:guix-patches <at> gnu.org
.
(Mon, 03 Apr 2023 08:19:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Sughosha <Sughosha <at> proton.me> To: "guix-patches <at> gnu.org" <guix-patches <at> gnu.org> Subject: [PATCH] gnu: Add pmbootstrap. Date: Mon, 03 Apr 2023 08:17:50 +0000
* gnu/packages/postmarketos.scm: New file. (pmbootstrap): New public variable. * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Add the new file. --- gnu/local.mk | 1 + gnu/packages/postmarketos.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/postmarketos.scm diff --git a/gnu/local.mk b/gnu/local.mk index 186d82a..92848b2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -502,6 +502,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/postmarketos \ %D%/packages/printers.scm \ %D%/packages/profiling.scm \ %D%/packages/prolog.scm \ diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm new file mode 100644 index 0000000..9de45ec --- /dev/null +++ b/gnu/packages/postmarketos.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages postmarketos) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages admin) + #:use-module (gnu packages bash) + #:use-module (gnu packages linux) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control)) + +(define-public pmbootstrap + (package + (name "pmbootstrap") + (version "1.51.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pmbootstrap" version)) + (sha256 + (base32 + "08g55fh24n3wpva7d1ps6fnk65ik49wfycjpwrjs9w0889zlwsl1")))) + (build-system python-build-system) + (arguments + `(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'wrap + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/pmbootstrap") + `("PATH" = ("/run/setuid-programs" ,(getenv "PATH"))) + `("GUIX_PYTHONPATH" = + (,(getenv "GUIX_PYTHONPATH")))))) + ;; Dissociate "sudo" as setuid-programs is preferred + (add-after 'sanity-check 'dissociate-sudo + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (sudo (assoc-ref inputs "sudo"))) + (substitute* (string-append out "/bin/pmbootstrap") + (((string-append ":" sudo "/sbin")) + "") + (((string-append ":" sudo "/bin")) + "")))))))) + (native-inputs (list sudo)) + (inputs (list bash-minimal git openssl procps)) + (home-page "https://git.sr.ht/~postmarketos/pmbootstrap") + (synopsis "Bootstrap a postmarketOS system") + (description + "This package provides a sophisticated chroot / build / flash tool to + develop and install postmarketOS.") + (license license:gpl3+))) -- libgit2 1.5.1
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Mon, 03 Apr 2023 08:26:02 GMT) Full text and rfc822 format available.Message #8 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: Sughosha <Sughosha <at> proton.me> To: "62640 <at> debbugs.gnu.org" <62640 <at> debbugs.gnu.org> Subject: [PATCH v2] gnu: Add pmbootstrap. Date: Mon, 03 Apr 2023 08:24:37 +0000
* gnu/packages/postmarketos.scm: New file. (pmbootstrap): New public variable. * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Add the new file. --- gnu/local.mk | 1 + gnu/packages/postmarketos.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/postmarketos.scm diff --git a/gnu/local.mk b/gnu/local.mk index 186d82a..12e5f68 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -502,6 +502,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/postmarketos.scm \ %D%/packages/printers.scm \ %D%/packages/profiling.scm \ %D%/packages/prolog.scm \ diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm new file mode 100644 index 0000000..9de45ec --- /dev/null +++ b/gnu/packages/postmarketos.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages postmarketos) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages admin) + #:use-module (gnu packages bash) + #:use-module (gnu packages linux) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control)) + +(define-public pmbootstrap + (package + (name "pmbootstrap") + (version "1.51.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pmbootstrap" version)) + (sha256 + (base32 + "08g55fh24n3wpva7d1ps6fnk65ik49wfycjpwrjs9w0889zlwsl1")))) + (build-system python-build-system) + (arguments + `(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'wrap + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/pmbootstrap") + `("PATH" = ("/run/setuid-programs" ,(getenv "PATH"))) + `("GUIX_PYTHONPATH" = + (,(getenv "GUIX_PYTHONPATH")))))) + ;; Dissociate "sudo" as setuid-programs is preferred + (add-after 'sanity-check 'dissociate-sudo + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (sudo (assoc-ref inputs "sudo"))) + (substitute* (string-append out "/bin/pmbootstrap") + (((string-append ":" sudo "/sbin")) + "") + (((string-append ":" sudo "/bin")) + "")))))))) + (native-inputs (list sudo)) + (inputs (list bash-minimal git openssl procps)) + (home-page "https://git.sr.ht/~postmarketos/pmbootstrap") + (synopsis "Bootstrap a postmarketOS system") + (description + "This package provides a sophisticated chroot / build / flash tool to + develop and install postmarketOS.") + (license license:gpl3+))) -- libgit2 1.5.1
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Mon, 19 May 2025 11:44:02 GMT) Full text and rfc822 format available.Message #11 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: Herman Rimm <herman <at> rimm.ee> To: 62640 <at> debbugs.gnu.org Cc: Sughosha <Sughosha <at> proton.me> Subject: [PATCH v3] gnu: Add pmbootstrap. Date: Mon, 19 May 2025 13:42:13 +0200
From: Sughosha <Sughosha <at> proton.me> * gnu/packages/postmarketos.scm: New file. * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Register file. Change-Id: Ib8347dd536738d2ea16a961c85308a0e43b98c1f --- Hello, For v3: version is bumped to 3.4.0; source uses git-fetch; three tests are skipped; mkbootimg, python-setuptools, python-wheel and util-linux are added to native-inputs; multipath-tools is added to propagated-inputs. pmbootstrap uses kpartx from multipath-tools for e.g.: $ pmbootstrap install --sdcard /dev/sda If the kpartx invocations could be replaced with a store path, then multipath-tools could be moved to (normal) inputs. Cheers, Herman gnu/local.mk | 3 +- gnu/packages/postmarketos.scm | 71 +++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/postmarketos.scm diff --git a/gnu/local.mk b/gnu/local.mk index 3730d272eae..c4d5e6cb2e4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -566,7 +566,8 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ - %D%/packages/potassco.scm \ + %D%/packages/postmarketos.scm \ + %D%/packages/potassco.scm \ %D%/packages/power.scm \ %D%/packages/printers.scm \ %D%/packages/profiling.scm \ diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm new file mode 100644 index 00000000000..78e95fcbb5d --- /dev/null +++ b/gnu/packages/postmarketos.scm @@ -0,0 +1,71 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> +;;; Copyright © 2025 Herman Rimm <herman <at> rimm.ee> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages postmarketos) + #:use-module (gnu packages admin) + #:use-module (gnu packages android) + #:use-module (gnu packages bash) + #:use-module (gnu packages check) + #:use-module (gnu packages linux) + #:use-module (gnu packages python-build) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (guix build-system pyproject) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +(define-public pmbootstrap + (package + (name "pmbootstrap") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://gitlab.postmarketos.org/" + "postmarketOS/pmbootstrap")) + (commit version))) + (sha256 + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags + ;; Tests require a pmaports git repository in the workdir. + #~(list (string-append "--deselect=test/core/test_pkgrepo.py" + "::test_pkgrepo_pmaports") + (string-append "--deselect=test/parse/test_bootimg.py" + "::test_bootimg") + ;; RuntimeError: No package repositories specified? + (string-append "--deselect=test/parse/test_deviceinfo.py" + "::test_random_valid_deviceinfos")))) + (native-inputs (list mkbootimg + python-pytest + python-setuptools + python-wheel + util-linux)) ; for losetup + (inputs (list bash-minimal git openssl procps)) + (propagated-inputs (list multipath-tools)) ; for kpartx + (home-page "https://gitlab.com/postmarketOS/pmbootstrap") + (synopsis "Bootstrap a postmarketOS system") + (description + "This package provides a sophisticated chroot, build and flash tool +to develop and install postmarketOS.") + (license license:gpl3+))) base-commit: 450a361532573a02389530a6a80b7821683ed41b -- 2.47.1
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Fri, 23 May 2025 18:42:02 GMT) Full text and rfc822 format available.Message #14 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: André Batista <nandre <at> riseup.net> To: Herman Rimm <herman <at> rimm.ee> Cc: Sughosha <Sughosha <at> proton.me>, 62640 <at> debbugs.gnu.org Subject: Re: [bug#62640] [PATCH v3] gnu: Add pmbootstrap. Date: Fri, 23 May 2025 15:41:18 -0300
Hi Herman, seg 19 mai 2025 às 13:42:13 (1747672933), guix-patches <at> gnu.org enviou: > From: Sughosha <Sughosha <at> proton.me> > > * gnu/packages/postmarketos.scm: New file. > * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Register file. > > Change-Id: Ib8347dd536738d2ea16a961c85308a0e43b98c1f > --- > Hello, > > For v3: > version is bumped to 3.4.0; > source uses git-fetch; > three tests are skipped; > mkbootimg, python-setuptools, python-wheel and util-linux are added to > native-inputs; > multipath-tools is added to propagated-inputs. > > pmbootstrap uses kpartx from multipath-tools for e.g.: > $ pmbootstrap install --sdcard /dev/sda > If the kpartx invocations could be replaced with a store path, > then multipath-tools could be moved to (normal) inputs. > > Cheers, > Herman > > gnu/local.mk | 3 +- > gnu/packages/postmarketos.scm | 71 +++++++++++++++++++++++++++++++++++ > 2 files changed, 73 insertions(+), 1 deletion(-) > create mode 100644 gnu/packages/postmarketos.scm > > diff --git a/gnu/local.mk b/gnu/local.mk > index 3730d272eae..c4d5e6cb2e4 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -566,7 +566,8 @@ GNU_SYSTEM_MODULES = \ > %D%/packages/poedit.scm \ > %D%/packages/polkit.scm \ > %D%/packages/popt.scm \ > - %D%/packages/potassco.scm \ > + %D%/packages/postmarketos.scm \ > + %D%/packages/potassco.scm \ IMO, it would be better if you did not touch the potassco.scm line, since this format change is unrelated to this commit. > %D%/packages/power.scm \ > %D%/packages/printers.scm \ > %D%/packages/profiling.scm \ > diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm > new file mode 100644 > index 00000000000..78e95fcbb5d > --- /dev/null > +++ b/gnu/packages/postmarketos.scm > @@ -0,0 +1,71 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> > +;;; Copyright © 2025 Herman Rimm <herman <at> rimm.ee> > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. > + > +(define-module (gnu packages postmarketos) > + #:use-module (gnu packages admin) > + #:use-module (gnu packages android) > + #:use-module (gnu packages bash) > + #:use-module (gnu packages check) > + #:use-module (gnu packages linux) > + #:use-module (gnu packages python-build) > + #:use-module (gnu packages tls) > + #:use-module (gnu packages version-control) > + #:use-module (guix build-system pyproject) > + #:use-module (guix gexp) > + #:use-module (guix git-download) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix packages)) > + > +(define-public pmbootstrap > + (package > + (name "pmbootstrap") > + (version "3.4.0") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url (string-append "https://gitlab.postmarketos.org/" > + "postmarketOS/pmbootstrap")) > + (commit version))) 'origin' is missing a file-name field which usually goes: (file-name (git-file-name name version)) > + (sha256 > + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) > + (build-system pyproject-build-system) > + (arguments > + (list #:test-flags > + ;; Tests require a pmaports git repository in the workdir. > + #~(list (string-append "--deselect=test/core/test_pkgrepo.py" > + "::test_pkgrepo_pmaports") This is a nitpick of mine, but I find it confusing when keys starting with '#' are followed by their arguments on another aligned line which also starts with '#' (a gexp this time, not another key). So, I'd suggest indenting the arguments with two spaces to ease reading. Also, I would also have inserted this package directly on android.scm, since this tool is useful for android related activities and it seems overkill to create a new file for just one package. WDYT? Thanks for picking up this patch!
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Sat, 24 May 2025 13:02:02 GMT) Full text and rfc822 format available.Message #17 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: Herman Rimm <herman <at> rimm.ee> To: André Batista <nandre <at> riseup.net> Cc: Sughosha <Sughosha <at> proton.me>, 62640 <at> debbugs.gnu.org Subject: Re: [bug#62640] [PATCH v3] gnu: Add pmbootstrap. Date: Sat, 24 May 2025 14:59:48 +0200
Hi, On Fri, May 23, 2025 at 03:41:18PM -0300, Andr� Batista wrote: > > diff --git a/gnu/local.mk b/gnu/local.mk > > index 3730d272eae..c4d5e6cb2e4 100644 > > --- a/gnu/local.mk > > +++ b/gnu/local.mk > > @@ -566,7 +566,8 @@ GNU_SYSTEM_MODULES = \ > > %D%/packages/poedit.scm \ > > %D%/packages/polkit.scm \ > > %D%/packages/popt.scm \ > > - %D%/packages/potassco.scm \ > > + %D%/packages/postmarketos.scm \ > > + %D%/packages/potassco.scm \ > > IMO, it would be better if you did not touch the potassco.scm line, since > this format change is unrelated to this commit. > > > +(define-public pmbootstrap > > + (package > > + (name "pmbootstrap") > > + (version "3.4.0") > > + (source > > + (origin > > + (method git-fetch) > > + (uri (git-reference > > + (url (string-append "https://gitlab.postmarketos.org/" > > + "postmarketOS/pmbootstrap")) > > + (commit version))) > > 'origin' is missing a file-name field which usually goes: > (file-name (git-file-name name version)) Thanks, I will make the appropriate changes for the next revision. I will also add a wrap phase so pmbootstrap can find the inputs' binaries. > > + (sha256 > > + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) > > + (build-system pyproject-build-system) > > + (arguments > > + (list #:test-flags > > + ;; Tests require a pmaports git repository in the workdir. > > + #~(list (string-append "--deselect=test/core/test_pkgrepo.py" > > + "::test_pkgrepo_pmaports") > > This is a nitpick of mine, but I find it confusing when keys starting > with '#' are followed by their arguments on another aligned line which > also starts with '#' (a gexp this time, not another key). So, I'd suggest > indenting the arguments with two spaces to ease reading. Like this? (arguments (list #:test-flags ;; Tests require a pmaports git repository in the workdir. #~(list (string-append "--deselect=test/core/test_pkgrepo.py" ...)))) I would rather do it like this: (arguments (list ;; The first two tests require a pmaports git repository in the workdir. #:test-flags #~(list (string-append "--deselect=test/core/test_pkgrepo" ...)))) > Also, I would also have inserted this package directly on android.scm, > since this tool is useful for android related activities and it seems > overkill to create a new file for just one package. Besides handling the Android bootimg format, I don't think pmbootstrap is Android related. Yes, the only other major PostmarketOS project is pmaports, but I don't think there is an existing module where pmbootstrap belongs. Should it be a more general module like: (gnu packages smartphone)? Can you please close or merge issue #49577, because the PyPi pmbootstrap releases are apparently deprecated? Cheers, Herman
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Sat, 24 May 2025 16:27:01 GMT) Full text and rfc822 format available.Message #20 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: André Batista <nandre <at> riseup.net> To: Herman Rimm <herman <at> rimm.ee> Cc: Sughosha <Sughosha <at> proton.me>, control <at> debbugs.gnu.org, 62640 <at> debbugs.gnu.org Subject: Re: [bug#62640] [PATCH v3] gnu: Add pmbootstrap. Date: Sat, 24 May 2025 13:26:17 -0300
merge 62640 49577 quit sáb 24 mai 2025 às 14:59:48 (1748109588), herman <at> rimm.ee enviou: > (...) > > > > + (sha256 > > > + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) > > > + (build-system pyproject-build-system) > > > + (arguments > > > + (list #:test-flags > > > + ;; Tests require a pmaports git repository in the workdir. > > > + #~(list (string-append "--deselect=test/core/test_pkgrepo.py" > > > + "::test_pkgrepo_pmaports") > > > > This is a nitpick of mine, but I find it confusing when keys starting > > with '#' are followed by their arguments on another aligned line which > > also starts with '#' (a gexp this time, not another key). So, I'd suggest > > indenting the arguments with two spaces to ease reading. > > Like this? > > (arguments > (list #:test-flags > ;; Tests require a pmaports git repository in the workdir. > #~(list (string-append "--deselect=test/core/test_pkgrepo.py" > ...)))) > Precisely. > I would rather do it like this: > > (arguments > (list > ;; The first two tests require a pmaports git repository in the workdir. > #:test-flags #~(list (string-append "--deselect=test/core/test_pkgrepo" > ...)))) > This would be even better, IMO. But after reviewing some files, I think this is just my personal take on it, not a guix standard. So your patch, your take. > > Also, I would also have inserted this package directly on android.scm, > > since this tool is useful for android related activities and it seems > > overkill to create a new file for just one package. > > Besides handling the Android bootimg format, I don't think pmbootstrap > is Android related. Yes, the only other major PostmarketOS project is > pmaports, but I don't think there is an existing module where > pmbootstrap belongs. Should it be a more general module like: (gnu > packages smartphone)? > Makes sense. The only time I've used pmbootstrap was for analysing android images, so I've given this functionality undue primacy. I guess we may keep it as is for now and move it elsewhere on a separate commit if others see fit. > Can you please close or merge issue #49577, because the PyPi pmbootstrap > releases are apparently deprecated? > You may also do it by sending a mail to control <at> debbugs.gnu.org, as I've done here. There's no special priviledge to it. See: https://debbugs.gnu.org/server-control.html Note: I'm not a commiter, I'm just trying to help this patch get through by helping commiters with the review and giving it more visibility. Thanks!
André Batista <nandre <at> riseup.net>
to control <at> debbugs.gnu.org
.
(Sat, 24 May 2025 16:27:02 GMT) Full text and rfc822 format available.guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Sat, 24 May 2025 16:54:01 GMT) Full text and rfc822 format available.Message #25 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: Herman Rimm <herman <at> rimm.ee> To: 62640 <at> debbugs.gnu.org Cc: Sughosha <Sughosha <at> proton.me> Subject: [PATCH] gnu: Add pmbootstrap. Date: Sat, 24 May 2025 18:52:18 +0200
From: Sughosha <Sughosha <at> proton.me> * gnu/packages/postmarketos.scm: New file. * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Register file. Change-Id: Ib8347dd536738d2ea16a961c85308a0e43b98c1f --- gnu/local.mk | 1 + gnu/packages/postmarketos.scm | 107 ++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 gnu/packages/postmarketos.scm diff --git a/gnu/local.mk b/gnu/local.mk index 3730d272eae..a884110d381 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -566,6 +566,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/postmarketos.scm \ %D%/packages/potassco.scm \ %D%/packages/power.scm \ %D%/packages/printers.scm \ diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm new file mode 100644 index 00000000000..43e8caf2c80 --- /dev/null +++ b/gnu/packages/postmarketos.scm @@ -0,0 +1,107 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> +;;; Copyright © 2025 Herman Rimm <herman <at> rimm.ee> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages postmarketos) + #:use-module (gnu packages admin) + #:use-module (gnu packages android) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages check) + #:use-module (gnu packages linux) + #:use-module (gnu packages python-build) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (guix build-system pyproject) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (ice-9 match)) + +(define-public pmbootstrap + (package + (name "pmbootstrap") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://gitlab.postmarketos.org/" + "postmarketOS/pmbootstrap.git")) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) + (build-system pyproject-build-system) + (arguments + (list + #:modules `((guix build pyproject-build-system) + (guix build utils) + (ice-9 match)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-sudo + (lambda _ + (substitute* "pmb/config/sudo.py" + (("sudo\"") "/run/privileged/bin/sudo\"")))) + (add-after 'wrap 'wrap-required-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/pmbootstrap") + `("PATH" ":" prefix + ,(map (match-lambda + ((input directory) + (string-append (assoc-ref inputs input) + "/" directory))) + '(("bash" "bin") + ("coreutils" "bin") + ("git" "bin") + ("openssl" "bin") + ("procps" "bin") + ("multipath-tools" "sbin") + ("tar" "bin") + ("util-linux" "bin") + ("util-linux" "sbin")))))))) + ;; The first two tests require a pmaports git repository in the workdir. + #:test-flags #~(list (string-append "--deselect=test/core/test_pkgrepo" + ".py::test_pkgrepo_pmaports") + (string-append "--deselect=test/parse/test_bootimg" + ".py::test_bootimg") + ;; RuntimeError: No package repositories specified? + (string-append "--deselect=test/parse/" + "test_deviceinfo.py::" + "test_random_valid_deviceinfos")))) + (native-inputs (list mkbootimg + python-pytest + python-setuptools + python-wheel + util-linux)) ; for losetup + (inputs (list bash-minimal + coreutils + git + multipath-tools + openssl + procps + tar + util-linux)) + (home-page "https://gitlab.com/postmarketOS/pmbootstrap") + (synopsis "Bootstrap a postmarketOS system") + (description + "This package provides a sophisticated chroot, build and flash tool +to develop and install postmarketOS.") + (license license:gpl3+))) base-commit: 096dedd0bb13523002c814b001429c2f65b6f10d -- 2.47.1
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Thu, 29 May 2025 19:40:02 GMT) Full text and rfc822 format available.Message #28 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: André Batista <nandre <at> riseup.net> To: Herman Rimm <herman <at> rimm.ee> Cc: Sughosha <Sughosha <at> proton.me>, 62640 <at> debbugs.gnu.org Subject: Re: [bug#62640] [PATCH] gnu: Add pmbootstrap. Date: Thu, 29 May 2025 16:39:37 -0300
Quite a lot of improvements! sáb 24 mai 2025 às 18:52:18 (1748123538), guix-patches <at> gnu.org enviou: > (...) > + (arguments > + (list > + #:modules `((guix build pyproject-build-system) > + (guix build utils) > + (ice-9 match)) > + #:phases #~(modify-phases %standard-phases > + (add-after 'unpack 'set-sudo > + (lambda _ > + (substitute* "pmb/config/sudo.py" > + (("sudo\"") "/run/privileged/bin/sudo\"")))) > + (add-after 'wrap 'wrap-required-programs > + (lambda* (#:key inputs outputs #:allow-other-keys) > + (wrap-program (string-append (assoc-ref outputs "out") > + "/bin/pmbootstrap") > + `("PATH" ":" prefix > + ,(map (match-lambda > + ((input directory) > + (string-append (assoc-ref inputs input) Even though this is fine, maintainers have been favoring the usage of 'this-package-inputs' and related functions that improve code semantics and readability. The same goes for gexps in place for the usual quote unquote dance. See: <https://guix.gnu.org/en/blog/2021/the-big-change> and <https://lists.gnu.org/archive/html/guix-commits/2022-09/msg00511.html> Also, a bit above, instead of 'assoc-ref outputs "out"', you may use #$output. Incidentally, the first link shows that I was really in the wrong as to the indentation comments in the previous mail. > + "/" directory))) > + '(("bash" "bin") > + ("coreutils" "bin") > + ("git" "bin") > + ("openssl" "bin") > + ("procps" "bin") > + ("multipath-tools" "sbin") Breaks alphabetical order, which was consistently respected otherwise. > + ("tar" "bin") > + ("util-linux" "bin") > + ("util-linux" "sbin")))))))) > + ;; The first two tests require a pmaports git repository in the workdir. > + #:test-flags #~(list (string-append "--deselect=test/core/test_pkgrepo" > + ".py::test_pkgrepo_pmaports") > + (string-append "--deselect=test/parse/test_bootimg" > + ".py::test_bootimg") > + ;; RuntimeError: No package repositories specified? > + (string-append "--deselect=test/parse/" > + "test_deviceinfo.py::" > + "test_random_valid_deviceinfos")))) But this is way clearer to me, thanks.. :) > + (native-inputs (list mkbootimg > + python-pytest > + python-setuptools > + python-wheel > + util-linux)) ; for losetup > + (inputs (list bash-minimal > + coreutils > + git > + multipath-tools > + openssl > + procps > + tar > + util-linux)) I could not check this, so more of a question: are this new inputs required for what? They seem to enlarge the package size quite a bit according to guix size. Cheers!
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Sat, 31 May 2025 08:34:03 GMT) Full text and rfc822 format available.Message #31 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: Herman Rimm <herman <at> rimm.ee> To: 62640 <at> debbugs.gnu.org Cc: André Batista <nandre <at> riseup.net>, Sughosha <Sughosha <at> proton.me> Subject: [PATCH v5] gnu: Add pmbootstrap. Date: Sat, 31 May 2025 10:32:15 +0200
From: Sughosha <Sughosha <at> proton.me> * gnu/packages/postmarketos.scm: New file. * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Register file. Change-Id: Ib8347dd536738d2ea16a961c85308a0e43b98c1f --- Hi, Thanks again André. The wrap-required-programs phase now uses output, ungexp and this-package-input. I also replaced the coreutils and git inputs with their minimal counterparts, and this still works: $ guix shell --pure pmbootstrap -- pmbootstrap init $ guix shell --pure pmbootstrap -- pmbootstrap export Cheers, Herman gnu/local.mk | 1 + gnu/packages/postmarketos.scm | 107 ++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 gnu/packages/postmarketos.scm diff --git a/gnu/local.mk b/gnu/local.mk index 2948bfb1bff..b56cfe34d75 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -567,6 +567,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/poedit.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/postmarketos.scm \ %D%/packages/potassco.scm \ %D%/packages/power.scm \ %D%/packages/printers.scm \ diff --git a/gnu/packages/postmarketos.scm b/gnu/packages/postmarketos.scm new file mode 100644 index 00000000000..7bb7e788e34 --- /dev/null +++ b/gnu/packages/postmarketos.scm @@ -0,0 +1,107 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Sughosha <sughosha <at> proton.me> +;;; Copyright © 2025 Herman Rimm <herman <at> rimm.ee> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages postmarketos) + #:use-module (gnu packages admin) + #:use-module (gnu packages android) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages check) + #:use-module (gnu packages linux) + #:use-module (gnu packages python-build) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (guix build-system pyproject) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (ice-9 match)) + +(define-public pmbootstrap + (package + (name "pmbootstrap") + (version "3.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://gitlab.postmarketos.org/" + "postmarketOS/pmbootstrap.git")) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16naj8ykipbrs2a93zaxci1wl045cc9jn7rq8sy76d1rqlqb9mmw")))) + (build-system pyproject-build-system) + (arguments + (list + #:modules '((guix build pyproject-build-system) + (guix build utils) + (ice-9 match)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-sudo + (lambda _ + (substitute* "pmb/config/sudo.py" + (("sudo\"") "/run/privileged/bin/sudo\"")))) + (add-after 'wrap 'wrap-required-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append #$output + "/bin/pmbootstrap") + '("PATH" ":" prefix + #$(map (match-lambda + ((input directory) + (file-append (this-package-input input) + "/" directory))) + '(("bash-minimal" "bin") + ("coreutils-minimal" "bin") + ("git-minimal" "bin") + ("multipath-tools" "sbin") + ("openssl" "bin") + ("procps" "bin") + ("tar" "bin") + ("util-linux" "bin") + ("util-linux" "sbin")))))))) + ;; The first two tests require a pmaports git repository in the workdir. + #:test-flags #~(list (string-append "--deselect=test/core/test_pkgrepo" + ".py::test_pkgrepo_pmaports") + (string-append "--deselect=test/parse/test_bootimg" + ".py::test_bootimg") + ;; RuntimeError: No package repositories specified? + (string-append "--deselect=test/parse/" + "test_deviceinfo.py::" + "test_random_valid_deviceinfos")))) + (native-inputs (list mkbootimg + python-pytest + python-setuptools + python-wheel + util-linux)) ; for losetup + (inputs (list bash-minimal + coreutils-minimal + git-minimal + multipath-tools + openssl + procps + tar + util-linux)) + (home-page "https://gitlab.com/postmarketOS/pmbootstrap") + (synopsis "Bootstrap a postmarketOS system") + (description + "This package provides a sophisticated chroot, build and flash tool +to develop and install postmarketOS.") + (license license:gpl3+))) base-commit: d3334af3958caad3617df5aa9ebe08c76285f345 -- 2.47.1
guix-patches <at> gnu.org
:bug#62640
; Package guix-patches
.
(Wed, 04 Jun 2025 15:25:02 GMT) Full text and rfc822 format available.Message #34 received at 62640 <at> debbugs.gnu.org (full text, mbox):
From: André Batista <nandre <at> riseup.net> To: Herman Rimm <herman <at> rimm.ee> Cc: Sughosha <Sughosha <at> proton.me>, control <at> debbugs.gnu.org, 62640 <at> debbugs.gnu.org Subject: Re: [PATCH v5] gnu: Add pmbootstrap. Date: Wed, 4 Jun 2025 12:23:53 -0300
user guix usertag 62640 reviewed-looks-good quit sáb 31 mai 2025 às 10:32:15 (1748698335), herman <at> rimm.ee enviou: > From: Sughosha <Sughosha <at> proton.me> > > * gnu/packages/postmarketos.scm: New file. > * gnu/packages/local.mk (GNU_SYSTEM_MODULES): Register file. > > Change-Id: Ib8347dd536738d2ea16a961c85308a0e43b98c1f > --- > Hi, > > Thanks again André. The wrap-required-programs phase now uses output, > ungexp and this-package-input. I also replaced the coreutils and git > inputs with their minimal counterparts, and this still works: > > $ guix shell --pure pmbootstrap -- pmbootstrap init > $ guix shell --pure pmbootstrap -- pmbootstrap export > Nice! LGTM, lets wait for someone to pick it up. Cheers
Danny Milosavljevic <dannym <at> friendly-machines.com>
:Sughosha <Sughosha <at> proton.me>
:Message #39 received at 62640-done <at> debbugs.gnu.org (full text, mbox):
From: Danny Milosavljevic <dannym <at> friendly-machines.com> To: Sughosha <Sughosha <at> proton.me>, André Batista <nandre <at> riseup.net> Cc: Herman Rimm <herman <at> rimm.ee>, 62640-done <at> debbugs.gnu.org Subject: Re: [bug#62640] [PATCH v5] gnu: Add pmbootstrap. Date: Fri, 06 Jun 2025 01:21:05 +0200
Merged pmboostrap to guix master as commit e4e3176a061d046e34d30a0c39a8afc913d4228d.
Danny Milosavljevic <dannym <at> friendly-machines.com>
:phodina <phodina <at> protonmail.com>
:
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.