* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. [not found] <87a6q2i1x2.fsf@qq.com> @ 2021-04-13 16:28 ` Z572 2021-11-03 10:18 ` zimoun 0 siblings, 1 reply; 6+ messages in thread From: Z572 @ 2021-04-13 16:28 UTC (permalink / raw) To: 47754 [-- Attachment #1: 0001-gnu-transformations-fix-with-latest-option-for-git-s.patch --] [-- Type: text/x-patch, Size: 1932 bytes --] From 52bd30a6ac967375aa9a178345f1bdea8388457a Mon Sep 17 00:00:00 2001 From: Zheng Junjie <873216071@qq.com> Date: Tue, 13 Apr 2021 23:00:10 +0800 Subject: [PATCH] gnu: transformations: fix with-latest option for git source package. gnu/transformations.scm: (transform-package-latest): (package-with-latest-upstream): use git-checkout if p is a git source package. --- guix/transformations.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/guix/transformations.scm b/guix/transformations.scm index 4e9260350c..559e408c37 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright @ 2021 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:autoload (guix git-download) (git-reference? git-reference-url) #:autoload (guix git) (git-checkout git-checkout? git-checkout-url) #:autoload (guix upstream) (package-latest-release* + upstream-source-urls upstream-source-version upstream-source-signature-urls) #:use-module (guix utils) @@ -537,7 +539,11 @@ are replaced by their latest upstream version." (package (inherit p) (version (upstream-source-version source)) - (source source)))))) + (source (cond ((false-if-exception (package-git-url p)) + (git-checkout + (url (car (upstream-source-urls source))) + (recursive? #t))) + (else source)))))))) (define rewrite (package-input-rewriting/spec -- 2.31.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. 2021-04-13 16:28 ` [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package Z572 @ 2021-11-03 10:18 ` zimoun [not found] ` <87wnlp45k3.fsf@qq.com> 0 siblings, 1 reply; 6+ messages in thread From: zimoun @ 2021-11-03 10:18 UTC (permalink / raw) To: Z572; +Cc: 47754 Hi, Thanks for the patch. On Wed, 14 Apr 2021 at 00:28, Z572 <873216071@qq.com> wrote: >>From 52bd30a6ac967375aa9a178345f1bdea8388457a Mon Sep 17 00:00:00 2001 > From: Zheng Junjie <873216071@qq.com> > Date: Tue, 13 Apr 2021 23:00:10 +0800 > Subject: [PATCH] gnu: transformations: fix with-latest option for git source > package. > > gnu/transformations.scm: (transform-package-latest): (package-with-latest-upstream): > use git-checkout if p is a git source package. > --- > guix/transformations.scm | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) [...] > #:autoload (guix upstream) (package-latest-release* > + upstream-source-urls > upstream-source-version > upstream-source-signature-urls) > #:use-module (guix utils) > @@ -537,7 +539,11 @@ are replaced by their latest upstream version." > (package > (inherit p) > (version (upstream-source-version source)) > - (source source)))))) > + (source (cond ((false-if-exception (package-git-url p)) > + (git-checkout > + (url (car (upstream-source-urls source))) > + (recursive? #t))) > + (else source)))))))) Could you provide an example for an use-case? Cheers, simon ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <87wnlp45k3.fsf@qq.com>]
* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. [not found] ` <87wnlp45k3.fsf@qq.com> @ 2021-11-03 14:54 ` Z572 via Guix-patches via 2021-11-03 16:18 ` zimoun 0 siblings, 1 reply; 6+ messages in thread From: Z572 via Guix-patches via @ 2021-11-03 14:54 UTC (permalink / raw) To: zimoun; +Cc: 47754 Hi, zimoun <zimon.toutoune@gmail.com> writes: > Hi, > > Thanks for the patch. > > On Wed, 14 Apr 2021 at 00:28, Z572 <873216071@qq.com> wrote: > >>>From 52bd30a6ac967375aa9a178345f1bdea8388457a Mon Sep 17 00:00:00 2001 >> From: Zheng Junjie <873216071@qq.com> >> Date: Tue, 13 Apr 2021 23:00:10 +0800 >> Subject: [PATCH] gnu: transformations: fix with-latest option for git source >> package. >> >> gnu/transformations.scm: (transform-package-latest): (package-with-latest-upstream): >> use git-checkout if p is a git source package. >> --- >> guix/transformations.scm | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) > > [...] > >> #:autoload (guix upstream) (package-latest-release* >> + upstream-source-urls >> upstream-source-version >> upstream-source-signature-urls) >> #:use-module (guix utils) >> @@ -537,7 +539,11 @@ are replaced by their latest upstream version." >> (package >> (inherit p) >> (version (upstream-source-version source)) >> - (source source)))))) >> + (source (cond ((false-if-exception (package-git-url p)) >> + (git-checkout >> + (url (car (upstream-source-urls source))) >> + (recursive? #t))) >> + (else source)))))))) > > Could you provide an example for an use-case? Just try this: ``` bash $ file `guix build fbreader --with-latest=fbreader -S` /gnu/store/rdqkmjpiig9gddzsxj4mdyw8lvn944xg-FBReader: HTML document, UTF-8 Unicode text, with very long lines ``` If a package is a git source package, after use "with-latest" option, it's url will become to it's source. and build will fail. This patch just fix this. But i think this patch not good, maybe need a new patch(use latest version not latest commit). But i'm not familiar with this part. > > Cheers, > simon -- over ^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. 2021-11-03 14:54 ` Z572 via Guix-patches via @ 2021-11-03 16:18 ` zimoun [not found] ` <87v918ceyc.fsf@qq.com> 0 siblings, 1 reply; 6+ messages in thread From: zimoun @ 2021-11-03 16:18 UTC (permalink / raw) To: Z572; +Cc: 47754 Hi, On Wed, 3 Nov 2021 at 16:34, Z572 <873216071@qq.com> wrote: > $ file `guix build fbreader --with-latest=fbreader -S` > /gnu/store/rdqkmjpiig9gddzsxj4mdyw8lvn944xg-FBReader: HTML document, UTF-8 Unicode text, with very long lines > If a package is a git source package, after use "with-latest" option, it's url > will become to it's source. and build will fail. > > This patch just fix this. I see. However, I am not convinced your example is correct, because for instance, --8<---------------cut here---------------start------------->8--- $ file $(guix build r-soupx -S) /gnu/store/1z0j6i4a9xwwd8d3955m7vq3f1x4p3aq-r-soupx-0.3.1-1.a3354be-checkout: directory --8<---------------cut here---------------end--------------->8--- What you are seeing is: Git upstream source is modified by Guix (for instance, patches are applied or files are removed; in the field 'origin') and "guix build -S" returns what Guix actually builds, not what upstream provides. Therefore, in this case, the modified source is returned as compressed archive. However, when using the transformation 'with-latest', in this case, "guix build -S --with-latest" returns what upstream provides, thus a directory (or something else as a file). Maybe I miss something, but from me, the inconsistency comes from the behavior of "guix build -S", not about the behaviour of 'with-latest' transformation. And I also miss why the build would fail. Cheers, simon ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <87v918ceyc.fsf@qq.com>]
* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. [not found] ` <87v918ceyc.fsf@qq.com> @ 2021-11-04 11:17 ` Z572 via Guix-patches via 2021-11-06 18:17 ` zimoun 0 siblings, 1 reply; 6+ messages in thread From: Z572 via Guix-patches via @ 2021-11-04 11:17 UTC (permalink / raw) To: zimoun; +Cc: 47754 zimoun <zimon.toutoune@gmail.com> writes: > Hi, > > On Wed, 3 Nov 2021 at 16:34, Z572 <873216071@qq.com> wrote: > >> $ file `guix build fbreader --with-latest=fbreader -S` >> /gnu/store/rdqkmjpiig9gddzsxj4mdyw8lvn944xg-FBReader: HTML document, >> UTF-8 Unicode text, with very long lines > >> If a package is a git source package, after use "with-latest" >> option, it's url >> will become to it's source. and build will fail. >> >> This patch just fix this. > > I see. However, I am not convinced your example is correct, because > for instance, > > $ file $(guix build r-soupx -S) > /gnu/store/1z0j6i4a9xwwd8d3955m7vq3f1x4p3aq-r-soupx-0.3.1-1.a3354be-checkout: > directory > > What you are seeing is: Git upstream source is modified by Guix (for > instance, patches are applied or files are removed; in the field > 'origin') and "guix build -S" returns what Guix actually builds, not > what upstream provides. Therefore, in this case, the modified source > is returned as compressed archive. However, when using the > transformation 'with-latest', in this case, "guix build -S > --with-latest" returns what upstream provides, thus a directory (or > something else as a file). I looked source again, just because of "upstream-source-compiler" don't support git source package, all will become to use url-fetch. See (guix upstream) module: ``` scheme (define-gexp-compiler (upstream-source-compiler (source <upstream-source>) system target) "Download SOURCE from its first URL and lower it as a fixed-output derivation that would fetch it." (mlet* %store-monad ((url -> (first (upstream-source-urls source))) (signature -> (and=> (upstream-source-signature-urls source) first)) (tarball ((store-lift download-tarball) url signature))) (unless tarball (raise (formatted-message (G_ "failed to fetch source from '~a'") url))) ;; Instead of returning TARBALL, return a fixed-output derivation that ;; would be able to re-download it. In practice, since TARBALL is already ;; in the store, no extra download will happen, but having the derivation ;; in store improves provenance tracking. (let ((hash (call-with-input-file tarball port-sha256))) (url-fetch url 'sha256 hash (store-path-package-name tarball) #:system system)))) ``` I'm have no idea how to change it, so i just check if package is git-source, use "git-checkout" instead of "upstream-source". > > Maybe I miss something, but from me, the inconsistency comes from the > behavior of "guix build -S", not about the behaviour of 'with-latest' > transformation. And I also miss why the build would fail. > > > Cheers, > simon -- over ^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package. 2021-11-04 11:17 ` Z572 via Guix-patches via @ 2021-11-06 18:17 ` zimoun 0 siblings, 0 replies; 6+ messages in thread From: zimoun @ 2021-11-06 18:17 UTC (permalink / raw) To: Z572; +Cc: 47754 Hi, On Thu, 04 Nov 2021 at 19:17, Z572 <873216071@qq.com> wrote: >>> If a package is a git source package, after use "with-latest" >>> option, it's url >>> will become to it's source. and build will fail. >>> >>> This patch just fix this. >> >> I see. However, I am not convinced your example is correct, because >> for instance, >> >> $ file $(guix build r-soupx -S) >> /gnu/store/1z0j6i4a9xwwd8d3955m7vq3f1x4p3aq-r-soupx-0.3.1-1.a3354be-checkout: >> directory >> >> What you are seeing is: Git upstream source is modified by Guix (for >> instance, patches are applied or files are removed; in the field >> 'origin') and "guix build -S" returns what Guix actually builds, not >> what upstream provides. Therefore, in this case, the modified source >> is returned as compressed archive. However, when using the >> transformation 'with-latest', in this case, "guix build -S >> --with-latest" returns what upstream provides, thus a directory (or >> something else as a file). > > I looked source again, just because of "upstream-source-compiler" don't support > git source package, all will become to use url-fetch. [...] > I'm have no idea how to change it, so i just check if package is > git-source, use "git-checkout" instead of "upstream-source". >> Maybe I miss something, but from me, the inconsistency comes from the >> behavior of "guix build -S", not about the behaviour of 'with-latest' >> transformation. And I also miss why the build would fail. I am sorry if I misread you. What are you trying to solve? Cheers, simon ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-11-06 19:07 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <87a6q2i1x2.fsf@qq.com> 2021-04-13 16:28 ` [bug#47754] [PATCH] gnu: transformations: fix with-latest option for git source package Z572 2021-11-03 10:18 ` zimoun [not found] ` <87wnlp45k3.fsf@qq.com> 2021-11-03 14:54 ` Z572 via Guix-patches via 2021-11-03 16:18 ` zimoun [not found] ` <87v918ceyc.fsf@qq.com> 2021-11-04 11:17 ` Z572 via Guix-patches via 2021-11-06 18:17 ` zimoun
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).