<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix/tests/gremlin.scm, branch master</title>
<subtitle>Transactional package manager, declarative GNU/Linux distribution, reproducible deployment tool, and more! https://guix.gnu.org</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/'/>
<entry>
<title>Revert "Use mmap for the elf parser, reducing memory usage."</title>
<updated>2025-10-30T07:19:50+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2025-10-30T07:19:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=0f39db9c1942969bcbc603b306d8e47f8feb8566'/>
<id>0f39db9c1942969bcbc603b306d8e47f8feb8566</id>
<content type='text'>
This reverts commit 2c1fe0df11ae0f66392b8abb6f62430d79305538.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 2c1fe0df11ae0f66392b8abb6f62430d79305538.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "elf: Remove bundled Guile source."</title>
<updated>2025-10-30T07:19:49+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2025-10-30T07:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=9d60fdf6a2e482e7d52184521191c14449619aec'/>
<id>9d60fdf6a2e482e7d52184521191c14449619aec</id>
<content type='text'>
This reverts commit 11cf5b2fe4882f123cd5e9eb385a773703dfe872.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 11cf5b2fe4882f123cd5e9eb385a773703dfe872.
</pre>
</div>
</content>
</entry>
<entry>
<title>elf: Remove bundled Guile source.</title>
<updated>2025-10-30T07:13:03+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2025-10-28T12:50:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=11cf5b2fe4882f123cd5e9eb385a773703dfe872'/>
<id>11cf5b2fe4882f123cd5e9eb385a773703dfe872</id>
<content type='text'>
This module has been included in Guile as (system vm elf) since around version
2.1.

* guix/elf.scm: Delete file.
* CODEOWNERS: De-register module.
* Makefile.am (MODULES): Likewise.
* etc/teams.scm (core): Likewise.
* gnu/build/linux-modules.scm: Adjust imports.
* gnu/packages/gnuzilla.scm (icecat-minimal) [modules]: Likewise.
* gnu/packages/librewolf.scm (librewolf): Likewise.
* gnu/packages/sequoia.scm (sequoia): Likewise.
* gnu/packages/tor-browsers.scm (make-torbrowser): Likewise.
* gnu/packages/version-control.scm (hg-commitsigs): Likewise.
* guix/build/debug-link.scm: Likewise.
* guix/build/gnu-build-system.scm: Likewise.
* guix/build/gremlin.scm: Likewise.
* guix/build/meson-build-system.scm: Likewise.
* guix/grafts.scm (graft-derivation/shallow): Likewise.
* guix/scripts/pack.scm (wrapped-package): Likewise.
* tests/debug-link.scm: ("elf-debuglink", "set-debuglink-crc"): Likewise.
* tests/gremlin.scm: Likewise.
* guix/build-system/gnu.scm (%default-gnu-imported-modules): Remove (guix elf).

Change-Id: I86ac4237fdd820a6b54dc0fe7a7d10403a290ef9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This module has been included in Guile as (system vm elf) since around version
2.1.

* guix/elf.scm: Delete file.
* CODEOWNERS: De-register module.
* Makefile.am (MODULES): Likewise.
* etc/teams.scm (core): Likewise.
* gnu/build/linux-modules.scm: Adjust imports.
* gnu/packages/gnuzilla.scm (icecat-minimal) [modules]: Likewise.
* gnu/packages/librewolf.scm (librewolf): Likewise.
* gnu/packages/sequoia.scm (sequoia): Likewise.
* gnu/packages/tor-browsers.scm (make-torbrowser): Likewise.
* gnu/packages/version-control.scm (hg-commitsigs): Likewise.
* guix/build/debug-link.scm: Likewise.
* guix/build/gnu-build-system.scm: Likewise.
* guix/build/gremlin.scm: Likewise.
* guix/build/meson-build-system.scm: Likewise.
* guix/grafts.scm (graft-derivation/shallow): Likewise.
* guix/scripts/pack.scm (wrapped-package): Likewise.
* tests/debug-link.scm: ("elf-debuglink", "set-debuglink-crc"): Likewise.
* tests/gremlin.scm: Likewise.
* guix/build-system/gnu.scm (%default-gnu-imported-modules): Remove (guix elf).

Change-Id: I86ac4237fdd820a6b54dc0fe7a7d10403a290ef9
</pre>
</div>
</content>
</entry>
<entry>
<title>Use mmap for the elf parser, reducing memory usage.</title>
<updated>2025-10-30T07:13:03+00:00</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2025-10-24T07:06:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=2c1fe0df11ae0f66392b8abb6f62430d79305538'/>
<id>2c1fe0df11ae0f66392b8abb6f62430d79305538</id>
<content type='text'>
The `file-&gt;bytevector' new procedure uses a memory mapped bytevector, so
parsing the ELF file reads only the sections needed, not the whole file.

* guix/scripts/pack.scm (wrapped-package): Use file-&gt;bytevector.
* guix/build/gremlin.scm (file-dynamic-info): Likewise.
(validate-needed-in-runpath): Likewise.
(strip-runpath): Likewise, and write to bytevector directly, avoiding a port.
(set-file-runpath): Likewise.
* tests/gremlin.scm (read-elf): Delete procedure.
("elf-dynamic-info-needed, executable"): Use file-dynamic-info.
("strip-runpath"): Likewise.
("elf-dynamic-info-soname"): Likewise.
 guix/build/debug-link.scm (set-debuglink-crc): Use file-&gt;bytevector.
* tests/debug-link.scm (read-elf): Delete procedure.
("elf-debuglink"): Rename to...
("elf-debuglink, no .gnu_debuglink section"): ... this.
("elf-debuglink", "set-debuglink-crc"): Use external store, and adjust to use
file-&gt;bytevector.
* gnu/packages/gnuzilla.scm (icecat-minimal) [#:phases]
{build-sandbox-whitelist}: Use `file-runpath'.
* gnu/packages/librewolf.scm (librewolf): Likewise.

Fixes: &lt;https://issues.guix.gnu.org/59365&gt;
Fixes: #1262
Change-Id: I43b77ed0cdc38994ea89d3d401e0d136aa6b187a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `file-&gt;bytevector' new procedure uses a memory mapped bytevector, so
parsing the ELF file reads only the sections needed, not the whole file.

* guix/scripts/pack.scm (wrapped-package): Use file-&gt;bytevector.
* guix/build/gremlin.scm (file-dynamic-info): Likewise.
(validate-needed-in-runpath): Likewise.
(strip-runpath): Likewise, and write to bytevector directly, avoiding a port.
(set-file-runpath): Likewise.
* tests/gremlin.scm (read-elf): Delete procedure.
("elf-dynamic-info-needed, executable"): Use file-dynamic-info.
("strip-runpath"): Likewise.
("elf-dynamic-info-soname"): Likewise.
 guix/build/debug-link.scm (set-debuglink-crc): Use file-&gt;bytevector.
* tests/debug-link.scm (read-elf): Delete procedure.
("elf-debuglink"): Rename to...
("elf-debuglink, no .gnu_debuglink section"): ... this.
("elf-debuglink", "set-debuglink-crc"): Use external store, and adjust to use
file-&gt;bytevector.
* gnu/packages/gnuzilla.scm (icecat-minimal) [#:phases]
{build-sandbox-whitelist}: Use `file-runpath'.
* gnu/packages/librewolf.scm (librewolf): Likewise.

Fixes: &lt;https://issues.guix.gnu.org/59365&gt;
Fixes: #1262
Change-Id: I43b77ed0cdc38994ea89d3d401e0d136aa6b187a
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Fix gremlin.scm for GCC 14</title>
<updated>2024-11-12T22:40:39+00:00</updated>
<author>
<name>Ting-Wei Lan</name>
<email>lantw44@gmail.com</email>
</author>
<published>2024-11-10T03:31:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=9793403bc0f304053c6f1bd427814482273faa26'/>
<id>9793403bc0f304053c6f1bd427814482273faa26</id>
<content type='text'>
* tests/gremlin.scm: Include stdio.h before using puts since GCC 14 no
longer allows implicit declarations.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tests/gremlin.scm: Include stdio.h before using puts since GCC 14 no
longer allows implicit declarations.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Fix file-needed/recursive on aarch64-linux.</title>
<updated>2022-01-17T04:21:27+00:00</updated>
<author>
<name>Pierre Langlois</name>
<email>pierre.langlois@gmx.com</email>
</author>
<published>2021-12-22T22:02:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=24c3485bb3ffc05e687ef6513ac287b8d3048bab'/>
<id>24c3485bb3ffc05e687ef6513ac287b8d3048bab</id>
<content type='text'>
Fixes: &lt;https://issues.guix.gnu.org/52943&gt;.

* tests/gremlin.scm (file-needed/recursive)[ground-truth]: On aarch64-linux,
remove the dynamic linker from this list.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: &lt;https://issues.guix.gnu.org/52943&gt;.

* tests/gremlin.scm (file-needed/recursive)[ground-truth]: On aarch64-linux,
remove the dynamic linker from this list.
</pre>
</div>
</content>
</entry>
<entry>
<title>gremlin: Adjust tests for i686 and beyond.</title>
<updated>2022-01-14T21:39:24+00:00</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2022-01-14T15:42:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=e7ad192de008a6a21638def6eb973b9cc0c91116'/>
<id>e7ad192de008a6a21638def6eb973b9cc0c91116</id>
<content type='text'>
Fixes &lt;https://issues.guix.gnu.org/52752&gt;.
Reported by Denis 'GNUtoo' Carikli &lt;GNUtoo@cyberdimension.org&gt;.

* tests/gremlin.scm ("file-needed/recursive"): Augment the list of vDSO
names.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes &lt;https://issues.guix.gnu.org/52752&gt;.
Reported by Denis 'GNUtoo' Carikli &lt;GNUtoo@cyberdimension.org&gt;.

* tests/gremlin.scm ("file-needed/recursive"): Augment the list of vDSO
names.
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: Fix file-needed/recursive on powerpc64le-linux.</title>
<updated>2022-01-08T23:51:22+00:00</updated>
<author>
<name>Chris Marusich</name>
<email>cmmarusich@gmail.com</email>
</author>
<published>2022-01-08T22:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=6a2050b1e1c7f09ef9b6af43044b7c0e4786d39d'/>
<id>6a2050b1e1c7f09ef9b6af43044b7c0e4786d39d</id>
<content type='text'>
Fixes: &lt;https://issues.guix.gnu.org/52940&gt;.

* tests/gremlin.scm (file-needed/recursive): Consider two entries to be
equivalent not when they are the same string, but rather when they refer to
the same file.
[ground-truth]: In addition to strings that begin with "linux-vdso.so", remove
strings that begin with "linux-vdso64.so".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: &lt;https://issues.guix.gnu.org/52940&gt;.

* tests/gremlin.scm (file-needed/recursive): Consider two entries to be
equivalent not when they are the same string, but rather when they refer to
the same file.
[ground-truth]: In addition to strings that begin with "linux-vdso.so", remove
strings that begin with "linux-vdso64.so".
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: gremlin: Skip file-needed/recursive if DT_NEEDED is empty.</title>
<updated>2021-06-24T03:30:22+00:00</updated>
<author>
<name>Chris Marusich</name>
<email>cmmarusich@gmail.com</email>
</author>
<published>2021-02-24T08:02:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=e4b5a23841bc6a92e2e21dd8b1038addee55eb02'/>
<id>e4b5a23841bc6a92e2e21dd8b1038addee55eb02</id>
<content type='text'>
* tests/gremlin.scm (file-needed/recursive): Skip the test when (file-runpath
%guile-executable) evaluates to the empty list.  This causes the test to be
correctly skipped in the case where Guix has been built using a foreign
distro's toolchain and libraries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tests/gremlin.scm (file-needed/recursive): Skip the test when (file-runpath
%guile-executable) evaluates to the empty list.  This causes the test to be
correctly skipped in the case where Guix has been built using a foreign
distro's toolchain and libraries.
</pre>
</div>
</content>
</entry>
<entry>
<title>gremlin: 'elf-dynamic-info' returns a file name rathern than a dynamic entry.</title>
<updated>2021-04-22T12:04:27+00:00</updated>
<author>
<name>Dion Mendel</name>
<email>guix@dm9.info</email>
</author>
<published>2021-04-22T02:32:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/guix/commit/?id=1010171280cb34c8dc361644b66fdd1a041d297a'/>
<id>1010171280cb34c8dc361644b66fdd1a041d297a</id>
<content type='text'>
* guix/build/gremlin.scm (elf-dynamic-info): Return the dynamic entry
value, not the dynamic entry.
* tests/gremlin.scm ("elf-dynamic-info-soname"): New test.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* guix/build/gremlin.scm (elf-dynamic-info): Return the dynamic entry
value, not the dynamic entry.
* tests/gremlin.scm ("elf-dynamic-info-soname"): New test.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
