* bug#32347: gzip cannot be patched
@ 2018-08-02 11:32 Marius Bakke
2018-08-02 11:57 ` Efraim Flashner
0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2018-08-02 11:32 UTC (permalink / raw)
To: 32347
[-- Attachment #1.1: Type: text/plain, Size: 166 bytes --]
Hello!
I'm trying to add a patch to 'gzip', but it causes an infinite loop and
eventually the system runs out of memory.
It can be reproduced by adding this hunk:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: Type: text/x-patch, Size: 410 bytes --]
modified gnu/packages/compression.scm
@@ -215,6 +215,7 @@ adding and extracting files to/from a tar archive.")
(method url-fetch)
(uri (string-append "mirror://gnu/gzip/gzip-"
version ".tar.xz"))
+ (snippet '(#t))
(sha256
(base32
"16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
[back]
[-- Attachment #1.3: Type: text/plain, Size: 148 bytes --]
I guess this is because gzip itself is a patch input. Is this something
that can be fixed, or do we have to use "patching phases" in these cases?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32347: gzip cannot be patched
2018-08-02 11:32 bug#32347: gzip cannot be patched Marius Bakke
@ 2018-08-02 11:57 ` Efraim Flashner
2018-08-19 13:48 ` Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: Efraim Flashner @ 2018-08-02 11:57 UTC (permalink / raw)
To: Marius Bakke; +Cc: 32347
[-- Attachment #1: Type: text/plain, Size: 1362 bytes --]
On Thu, Aug 02, 2018 at 01:32:02PM +0200, Marius Bakke wrote:
> Hello!
>
> I'm trying to add a patch to 'gzip', but it causes an infinite loop and
> eventually the system runs out of memory.
>
> It can be reproduced by adding this hunk:
>
> modified gnu/packages/compression.scm
> @@ -215,6 +215,7 @@ adding and extracting files to/from a tar archive.")
> (method url-fetch)
> (uri (string-append "mirror://gnu/gzip/gzip-"
> version ".tar.xz"))
> + (snippet '(#t))
> (sha256
> (base32
> "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
>
> [back]
>
> I guess this is because gzip itself is a patch input. Is this something
> that can be fixed, or do we have to use "patching phases" in these cases?
Its also in commencement.scm, so that might be the loop instead. You
could try "unpatching" it there. It looks like it has a pseudo-package
inside of glibc-utf8-locales-final, with grep-final a few packages lower
being potential inspiration for undoing the modifications in "real
gzip".
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32347: gzip cannot be patched
2018-08-02 11:57 ` Efraim Flashner
@ 2018-08-19 13:48 ` Ludovic Courtès
2018-10-03 8:01 ` Efraim Flashner
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2018-08-19 13:48 UTC (permalink / raw)
To: Efraim Flashner; +Cc: 32347
Hello,
Efraim Flashner <efraim@flashner.co.il> skribis:
> On Thu, Aug 02, 2018 at 01:32:02PM +0200, Marius Bakke wrote:
>> Hello!
>>
>> I'm trying to add a patch to 'gzip', but it causes an infinite loop and
>> eventually the system runs out of memory.
>>
>> It can be reproduced by adding this hunk:
>>
>
>> modified gnu/packages/compression.scm
>> @@ -215,6 +215,7 @@ adding and extracting files to/from a tar archive.")
>> (method url-fetch)
>> (uri (string-append "mirror://gnu/gzip/gzip-"
>> version ".tar.xz"))
>> + (snippet '(#t))
>> (sha256
>> (base32
>> "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
>>
>> [back]
>>
>> I guess this is because gzip itself is a patch input. Is this something
>> that can be fixed, or do we have to use "patching phases" in these cases?
>
> Its also in commencement.scm, so that might be the loop instead. You
> could try "unpatching" it there. It looks like it has a pseudo-package
> inside of glibc-utf8-locales-final, with grep-final a few packages lower
> being potential inspiration for undoing the modifications in "real
> gzip".
Indeed. The ‘bootstrap-origin’ procedure, defined in (gnu packages
bootstrap), arranges to use the bootstrap binaries of gzip, patch,
guile, etc. when patching origins.
Perhaps we’re missing a use of ‘bootstrap-origin’ somewhere in (gnu
packages commencement)?
HTH,
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32347: gzip cannot be patched
2018-08-19 13:48 ` Ludovic Courtès
@ 2018-10-03 8:01 ` Efraim Flashner
2023-08-29 12:44 ` Maxim Cournoyer
0 siblings, 1 reply; 5+ messages in thread
From: Efraim Flashner @ 2018-10-03 8:01 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 32347
[-- Attachment #1.1: Type: text/plain, Size: 2273 bytes --]
On Sun, Aug 19, 2018 at 03:48:05PM +0200, Ludovic Courtès wrote:
> Hello,
>
> Efraim Flashner <efraim@flashner.co.il> skribis:
>
> > On Thu, Aug 02, 2018 at 01:32:02PM +0200, Marius Bakke wrote:
> >> Hello!
> >>
> >> I'm trying to add a patch to 'gzip', but it causes an infinite loop and
> >> eventually the system runs out of memory.
> >>
> >> It can be reproduced by adding this hunk:
> >>
> >
> >> modified gnu/packages/compression.scm
> >> @@ -215,6 +215,7 @@ adding and extracting files to/from a tar archive.")
> >> (method url-fetch)
> >> (uri (string-append "mirror://gnu/gzip/gzip-"
> >> version ".tar.xz"))
> >> + (snippet '(#t))
> >> (sha256
> >> (base32
> >> "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
> >>
> >> [back]
> >>
> >> I guess this is because gzip itself is a patch input. Is this something
> >> that can be fixed, or do we have to use "patching phases" in these cases?
> >
> > Its also in commencement.scm, so that might be the loop instead. You
> > could try "unpatching" it there. It looks like it has a pseudo-package
> > inside of glibc-utf8-locales-final, with grep-final a few packages lower
> > being potential inspiration for undoing the modifications in "real
> > gzip".
>
> Indeed. The ‘bootstrap-origin’ procedure, defined in (gnu packages
> bootstrap), arranges to use the bootstrap binaries of gzip, patch,
> guile, etc. when patching origins.
>
> Perhaps we’re missing a use of ‘bootstrap-origin’ somewhere in (gnu
> packages commencement)?
>
Looks like it in the end. the gzip for glibc-utf8-locales-final uses the
bootstrap guile for its building, but doesn't get the input rewriting
that comes from package-with-bootstrap-guile. With this patch adding the
trivial snippet to gzip doesn't cause an infinite loop anymore. Since
the patch doesn't change the hash of glibc-utf8-locales-final it should
be OK for master.
--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #1.2: 0001-gnu-glibc-utf8-locales-final-Wrap-inputs-with-packag.patch --]
[-- Type: text/plain, Size: 1462 bytes --]
From a3b7f9851e121fd3eb5f52ff4197923553032ec7 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Wed, 3 Oct 2018 10:33:23 +0300
Subject: [PATCH] gnu: glibc-utf8-locales-final: Wrap inputs with
'package-with-bootstrap-guile'.
* gnu/packages/commencement.scm (glibc-utf8-locales-final)[inputs]: Wrap
gzip with 'package-with-bootstrap-guile'.
---
gnu/packages/commencement.scm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 30a0ffcec..6c0f4e310 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -870,9 +870,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(inherit glibc-utf8-locales)
(inputs `(("glibc" ,glibc-final)
("gzip"
- ,(package-with-explicit-inputs gzip %boot4-inputs
- (current-source-location)
- #:guile %bootstrap-guile))))))
+ ,(package-with-bootstrap-guile
+ (package-with-explicit-inputs gzip %boot4-inputs
+ (current-source-location)
+ #:guile %bootstrap-guile)))))))
(define-public ld-wrapper
;; The final 'ld' wrapper, which uses the final Guile and Binutils.
--
2.19.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#32347: gzip cannot be patched
2018-10-03 8:01 ` Efraim Flashner
@ 2023-08-29 12:44 ` Maxim Cournoyer
0 siblings, 0 replies; 5+ messages in thread
From: Maxim Cournoyer @ 2023-08-29 12:44 UTC (permalink / raw)
To: Efraim Flashner; +Cc: Ludovic Courtès, Marius Bakke, 32347
Hi Efraim,
Efraim Flashner <efraim@flashner.co.il> writes:
> On Sun, Aug 19, 2018 at 03:48:05PM +0200, Ludovic Courtès wrote:
>> Hello,
>>
>> Efraim Flashner <efraim@flashner.co.il> skribis:
>>
>> > On Thu, Aug 02, 2018 at 01:32:02PM +0200, Marius Bakke wrote:
>> >> Hello!
>> >>
>> >> I'm trying to add a patch to 'gzip', but it causes an infinite loop and
>> >> eventually the system runs out of memory.
>> >>
>> >> It can be reproduced by adding this hunk:
>> >>
>> >
>> >> modified gnu/packages/compression.scm
>> >> @@ -215,6 +215,7 @@ adding and extracting files to/from a tar archive.")
>> >> (method url-fetch)
>> >> (uri (string-append "mirror://gnu/gzip/gzip-"
>> >> version ".tar.xz"))
>> >> + (snippet '(#t))
>> >> (sha256
>> >> (base32
>> >> "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
>> >>
>> >> [back]
>> >>
>> >> I guess this is because gzip itself is a patch input. Is this something
>> >> that can be fixed, or do we have to use "patching phases" in these cases?
>> >
>> > Its also in commencement.scm, so that might be the loop instead. You
>> > could try "unpatching" it there. It looks like it has a pseudo-package
>> > inside of glibc-utf8-locales-final, with grep-final a few packages lower
>> > being potential inspiration for undoing the modifications in "real
>> > gzip".
>>
>> Indeed. The ‘bootstrap-origin’ procedure, defined in (gnu packages
>> bootstrap), arranges to use the bootstrap binaries of gzip, patch,
>> guile, etc. when patching origins.
>>
>> Perhaps we’re missing a use of ‘bootstrap-origin’ somewhere in (gnu
>> packages commencement)?
>>
>
> Looks like it in the end. the gzip for glibc-utf8-locales-final uses the
> bootstrap guile for its building, but doesn't get the input rewriting
> that comes from package-with-bootstrap-guile. With this patch adding the
> trivial snippet to gzip doesn't cause an infinite loop anymore. Since
> the patch doesn't change the hash of glibc-utf8-locales-final it should
> be OK for master.
If you have verified the patch doesn't cause a world rebuild (guix build
libreoffice), feel free t opush and close this old bug!
--
Thanks,
Maxim
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-08-29 12:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-02 11:32 bug#32347: gzip cannot be patched Marius Bakke
2018-08-02 11:57 ` Efraim Flashner
2018-08-19 13:48 ` Ludovic Courtès
2018-10-03 8:01 ` Efraim Flashner
2023-08-29 12:44 ` Maxim Cournoyer
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).