unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* 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).