GNU bug report logs -
#36242
Repacked source checkouts get a misleading file name
Previous Next
Reported by: Marius Bakke <mbakke <at> fastmail.com>
Date: Sun, 16 Jun 2019 09:05:02 UTC
Severity: normal
Done: Marius Bakke <mbakke <at> fastmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#36242: Repacked source checkouts get a misleading file name
which was filed against the guix package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 36242 <at> debbugs.gnu.org.
--
36242: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36242
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Efraim Flashner <efraim <at> flashner.co.il> writes:
> On Sun, Jun 16, 2019 at 11:04:26AM +0200, Marius Bakke wrote:
>> Hello,
>>
>> When repacking a source checkout (e.g. by using git-fetch with a
>> snippet), the generated file name contains only the first two version
>> identifiers.
>>
>> E.g. `guix build -S eudev` returns
>>
>> /gnu/store/7lgsxmr0rk9f8fbq6k0kj1aqb7lnrlll-eudev-3.2.tar.xz
>>
>> ...even though it should be "3.2.8".
>>
>> This patch fixes it:
>>
>
>> From 0c44561d0d45de91f4674d659b86d740642ae801 Mon Sep 17 00:00:00 2001
>> From: Marius Bakke <mbakke <at> fastmail.com>
>> Date: Sun, 16 Jun 2019 10:50:15 +0200
>> Subject: [PATCH] packages: Keep full version in file name when repacking
>> source checkouts.
>>
>> * guix/packages.scm (patch-and-repack): If ORIGINAL-FILE-NAME is a source
>> checkout, drop the '-checkout' part so the version-detecting code works.
>> ---
>> guix/packages.scm | 12 +++++++++---
>> 1 file changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/guix/packages.scm b/guix/packages.scm
>> index c94a651f27..5b8969e079 100644
>> --- a/guix/packages.scm
>> +++ b/guix/packages.scm
>> @@ -505,11 +505,17 @@ specifies modules in scope when evaluating SNIPPET."
>> (and=> (file-extension file-name)
>> (cut string-every char-set:hex-digit <>)))
>>
>> + (define (checkout? directory)
>> + ;; Return true if DIRECTORY is a checkout (git, svn, etc).
>> + (string-suffix? "-checkout" directory))
>> +
>> (define (tarxz-name file-name)
>> ;; Return a '.tar.xz' file name based on FILE-NAME.
>> - (let ((base (if (numeric-extension? file-name)
>> - original-file-name
>> - (file-sans-extension file-name))))
>> + (let ((base (cond ((numeric-extension? file-name)
>> + original-file-name)
>> + ((checkout? file-name)
>> + (string-drop-right file-name 9))
>> + (else (file-sans-extension file-name)))))
>> (string-append base
>> (if (equal? (file-extension base) "tar")
>> ".xz"
>> --
>> 2.22.0
>>
>
> Pinging Mark and Ludo, similar to https://issues.guix.info/issue/34066
Whoops, was not aware of that report! Closing as duplicate.
[signature.asc (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
[Message part 6 (text/plain, inline)]
Hello,
When repacking a source checkout (e.g. by using git-fetch with a
snippet), the generated file name contains only the first two version
identifiers.
E.g. `guix build -S eudev` returns
/gnu/store/7lgsxmr0rk9f8fbq6k0kj1aqb7lnrlll-eudev-3.2.tar.xz
...even though it should be "3.2.8".
This patch fixes it:
[0001-packages-Keep-full-version-in-file-name-when-repacki.patch (text/x-patch, inline)]
From 0c44561d0d45de91f4674d659b86d740642ae801 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke <at> fastmail.com>
Date: Sun, 16 Jun 2019 10:50:15 +0200
Subject: [PATCH] packages: Keep full version in file name when repacking
source checkouts.
* guix/packages.scm (patch-and-repack): If ORIGINAL-FILE-NAME is a source
checkout, drop the '-checkout' part so the version-detecting code works.
---
guix/packages.scm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/guix/packages.scm b/guix/packages.scm
index c94a651f27..5b8969e079 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -505,11 +505,17 @@ specifies modules in scope when evaluating SNIPPET."
(and=> (file-extension file-name)
(cut string-every char-set:hex-digit <>)))
+ (define (checkout? directory)
+ ;; Return true if DIRECTORY is a checkout (git, svn, etc).
+ (string-suffix? "-checkout" directory))
+
(define (tarxz-name file-name)
;; Return a '.tar.xz' file name based on FILE-NAME.
- (let ((base (if (numeric-extension? file-name)
- original-file-name
- (file-sans-extension file-name))))
+ (let ((base (cond ((numeric-extension? file-name)
+ original-file-name)
+ ((checkout? file-name)
+ (string-drop-right file-name 9))
+ (else (file-sans-extension file-name)))))
(string-append base
(if (equal? (file-extension base) "tar")
".xz"
--
2.22.0
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 5 years and 337 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.