* [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
* [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
* [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).