* guix size with manifest?
@ 2024-03-31 21:38 Spencer Skylar Chan
2024-04-01 14:18 ` Greg Hogan
0 siblings, 1 reply; 3+ messages in thread
From: Spencer Skylar Chan @ 2024-03-31 21:38 UTC (permalink / raw)
To: help-guix
Dear Guix,
How do I run guix size with a manifest? Most guix shell commands use -m
for a manifest file, but guix size uses -m for map-file. Right now I'm using
grep -F \" manifest.scm | cut -d \" -f 2 | xargs guix size
but this would only work for autogenerated manifests from
guix shell --export-manifest and not manifests written by hand.
Thanks,
Skylar
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: guix size with manifest?
2024-03-31 21:38 guix size with manifest? Spencer Skylar Chan
@ 2024-04-01 14:18 ` Greg Hogan
2024-04-01 15:01 ` Tomas Volf
0 siblings, 1 reply; 3+ messages in thread
From: Greg Hogan @ 2024-04-01 14:18 UTC (permalink / raw)
To: Spencer Skylar Chan; +Cc: help-guix
On Sun, Mar 31, 2024 at 5:39 PM Spencer Skylar Chan
<schan12@terpmail.umd.edu> wrote:
>
> Dear Guix,
>
> How do I run guix size with a manifest? Most guix shell commands use -m
> for a manifest file, but guix size uses -m for map-file. Right now I'm using
>
> grep -F \" manifest.scm | cut -d \" -f 2 | xargs guix size
>
> but this would only work for autogenerated manifests from
> guix shell --export-manifest and not manifests written by hand.
>
> Thanks,
> Skylar
I am interested to hear other ideas, but if you install the manifest
into a profile you can then size the list of packages from the profile
(which should be equivalent to the obtaining the full listing from
shell's export-manifest):
$ guix package --profile=profile --list-installed \
| cut --fields=4 \
| xargs guix size \
| less --quit-if-one-screen
Greg
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: guix size with manifest?
2024-04-01 14:18 ` Greg Hogan
@ 2024-04-01 15:01 ` Tomas Volf
0 siblings, 0 replies; 3+ messages in thread
From: Tomas Volf @ 2024-04-01 15:01 UTC (permalink / raw)
To: Greg Hogan; +Cc: Spencer Skylar Chan, help-guix
[-- Attachment #1: Type: text/plain, Size: 3701 bytes --]
On 2024-04-01 10:18:09 -0400, Greg Hogan wrote:
> On Sun, Mar 31, 2024 at 5:39 PM Spencer Skylar Chan
> <schan12@terpmail.umd.edu> wrote:
> >
> > Dear Guix,
> >
> > How do I run guix size with a manifest? Most guix shell commands use -m
> > for a manifest file, but guix size uses -m for map-file. Right now I'm using
> >
> > grep -F \" manifest.scm | cut -d \" -f 2 | xargs guix size
> >
> > but this would only work for autogenerated manifests from
> > guix shell --export-manifest and not manifests written by hand.
> >
> > Thanks,
> > Skylar
>
> I am interested to hear other ideas,
I hope you will not regret this sentence once you see my "one-liner":
$ cat manifest.scm
;; What follows is a "manifest" equivalent to the command line you gave.
;; You can store it in a file that you may then pass to any 'guix' command
;; that accepts a '--manifest' (or '-m') option.
(specifications->manifest (list "gcc-toolchain"))
$ printf '(use-modules (guix packages) (guix derivations) (guix store) (guix profiles) (guix scripts environment) (guix scripts size)) ((@@ (guix scripts size) display-profile) (run-with-store (open-connection) ((@@ (guix scripts size) store-profile) (map (λ (entry) (derivation->output-path (run-with-store (open-connection) (package->derivation (manifest-entry-item entry))))) (manifest-entries (load-manifest "manifest.scm"))))))' | guix repl /dev/stdin
store item total self
/gnu/store/i3x1cr4b0f20r8pkcfq7sxmwv6261b0y-gcc-toolchain-13.2.0 423.3 0.1 0.0%
/gnu/store/vjjk375kysja1jz0837lypd09rdgs47c-gcc-13.2.0 304.5 178.0 42.1%
/gnu/store/v5aqhqxjqdvh9fhi64ifxnfji562j178-ld-wrapper-0 189.1 0.1 0.0%
/gnu/store/ksx7y5947h14pdv09ah704lkkibw1qp0-guile-3.0.9 134.0 53.1 12.5%
/gnu/store/bnw209k5cvbyi04kngddlk2ir77x8yii-binutils-2.38 95.5 54.9 13.0%
/gnu/store/gdy0b065fk8wwxv49ln0c7892pam78z1-isl-0.24 83.2 5.2 1.2%
/gnu/store/w55122b226ss928lxxg58plalah3xl9h-mpc-1.3.1 80.6 0.5 0.1%
/gnu/store/4vn8m606saf5i3nvksgvl958c0i0nvsn-mpfr-4.2.0 80.2 2.2 0.5%
/gnu/store/m57d52krll9vlzmc0cqfg6dwn7n0p52j-gcc-13.2.0-lib 80.0 39.4 9.3%
/gnu/store/dpvr7rj89j7xdnzpjhhll8dpqh3fizz5-gmp-6.2.1 78.0 2.7 0.6%
/gnu/store/sbigf12hsr3ciyvc5pdymlbd5ji4xmv4-libunistring-1.0 77.8 2.5 0.6%
/gnu/store/bvqbwh04lfacmsifh4gnfx1z8pmpjls0-pkg-config-0.29.2 76.4 1.1 0.3%
/gnu/store/ag3azcwi1r94j9i6bzgqxhk9n40v1ma5-libgc-8.2.2 76.1 0.8 0.2%
/gnu/store/hl6lb3irs8wrfv49fnirxshsq590pi9v-zlib-1.2.13 75.5 0.2 0.1%
/gnu/store/f62ci08wpcyx4x5drvhpk831ydjmh73j-libffi-3.4.4 75.5 0.2 0.0%
/gnu/store/6ncav55lbk5kqvwwflrzcr41hp5jbq0c-gcc-11.3.0-lib 75.3 34.7 8.2%
/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16 41.6 1.0 0.2%
/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35 40.6 38.8 9.2%
/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49 5.9 5.9 1.4%
/gnu/store/zzyywykw7kriln18rxqd82f0k5kidla7-bash-static-5.1.16 1.8 1.8 0.4%
total: 423.3 MiB
The code is based on the "hack at it until it works" approach, not on the "ok so
I should first try to understand store monads" approach, so I am sure there are
issues with it. But on my simple example it seems to work. The path
("manifest.scm") is hard-coded though.
Tomas
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-04-01 15:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-31 21:38 guix size with manifest? Spencer Skylar Chan
2024-04-01 14:18 ` Greg Hogan
2024-04-01 15:01 ` Tomas Volf
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).