* A question about manifest for my profile [not found] <1550644224.410841277.1563289658540.JavaMail.root@zimbra49-e8.priv.proxad.net> @ 2019-07-16 15:16 ` hub.lombard 2019-07-17 13:14 ` 宋文武 0 siblings, 1 reply; 3+ messages in thread From: hub.lombard @ 2019-07-16 15:16 UTC (permalink / raw) To: Help Guix Hi Guix! I generated a 'manifest-to-manifest.scm' manifest of all the packages installed in my user profile, using this Guile script (I can not find the address anymore) ---------------------------------------------------------------------------------------------------- ;; Run with: ;; guile -s FILE ~/.guix-profile (use-modules (guix profiles) (ice-9 match) (ice-9 pretty-print)) (define (guix-manifest where) (sort (map (lambda (entry) (let ((out (manifest-entry-output entry))) (if (string= out "out") (manifest-entry-name entry) (format #f "~a:~a" (manifest-entry-name entry) (manifest-entry-output entry))))) (manifest-entries (profile-manifest where))) string<?)) ;; Thanks to Ivan Vilata-i-Balaguer for this: (define (guix-commit) (let ((guix-manifest (profile-manifest (string-append (getenv "HOME") "/.config/guix/current")))) (match (assq 'source (manifest-entry-properties (car (manifest-entries guix-manifest)))) (('source ('repository ('version 0) _ _ ('commit commit) _ ...)) commit) (_ #f)))) (match (command-line) ((_ where) (format #t ";; commit: ~a\n" (guix-commit)) (pretty-print `(specifications->manifest ',(guix-manifest where)))) (_ (error "Please provide the path to a Guix profile."))) ---------------------------------------------------------------------------------------------------- Then I called it: hubert@gnu ~$ guile -s manifest-to-manifest.scm ~/.guix-profile ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/hubert/manifest-to-manifest.scm ;;; compiled /home/hubert/.cache/guile/ccache/2.2-LE-8-3.A/home/hubert/manifest-to-manifest.scm.go ;; commit: 6c83c48391ebc2b08ca4704c437de4f1e59fca9a (specifications->manifest '("brasero" "ffmpeg" "gimp" "gnumeric" "inkscape" "lynx" "markdown" "mpv" "obs" "qemu" "quassel" "racket" "sbcl-next" "ungoogled-chromium" "wget" "youtube-dl" "youtube-viewer")) hubert@gnu ~$ Then I made the updates, reconfigured /etc/config.scm and restarted. I think the launch of the script was more or less equivalent to the following command: $ guix package --manifest=manifest-to-manifest.scm In which case, I will not need to run this command? And finally, are there any changes to make in '/etc/config.scm'? Maybe add to it: ----------------------------------------------- (specifications->manifest '("brasero" "ffmpeg" "gimp" "gnumeric" "inkscape" "lynx" "markdown" "mpv" "obs" "qemu" "quassel" "racket" "ungoogled-chromium" "wget" "youtube-dl" "youtube-viewer")) ----------------------------------------------- Thank you in advance for your possible clarification :-) Hubert ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: A question about manifest for my profile 2019-07-16 15:16 ` A question about manifest for my profile hub.lombard @ 2019-07-17 13:14 ` 宋文武 2019-07-20 19:35 ` hub.lombard 0 siblings, 1 reply; 3+ messages in thread From: 宋文武 @ 2019-07-17 13:14 UTC (permalink / raw) To: hub.lombard; +Cc: Help Guix hub.lombard@free.fr writes: > Hi Guix! > > I generated a 'manifest-to-manifest.scm' manifest of all the packages installed in my user profile, using this Guile script (I can not find the address anymore) > > ---------------------------------------------------------------------------------------------------- > ;; Run with: > ;; guile -s FILE ~/.guix-profile > > (use-modules (guix profiles) > (ice-9 match) > (ice-9 pretty-print)) > > (define (guix-manifest where) > (sort (map (lambda (entry) > (let ((out (manifest-entry-output entry))) > (if (string= out "out") > (manifest-entry-name entry) > (format #f "~a:~a" > (manifest-entry-name entry) > (manifest-entry-output entry))))) > (manifest-entries (profile-manifest where))) > string<?)) > > ;; Thanks to Ivan Vilata-i-Balaguer for this: > (define (guix-commit) > (let ((guix-manifest (profile-manifest (string-append (getenv "HOME") "/.config/guix/current")))) > (match (assq 'source (manifest-entry-properties (car (manifest-entries guix-manifest)))) > (('source ('repository ('version 0) _ _ > ('commit commit) _ ...)) > commit) > (_ #f)))) > > (match (command-line) > ((_ where) > (format #t ";; commit: ~a\n" (guix-commit)) > (pretty-print > `(specifications->manifest > ',(guix-manifest where)))) > (_ (error "Please provide the path to a Guix profile."))) > ---------------------------------------------------------------------------------------------------- > > Then I called it: > > hubert@gnu ~$ guile -s manifest-to-manifest.scm ~/.guix-profile > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > ;;; compiling /home/hubert/manifest-to-manifest.scm > ;;; compiled /home/hubert/.cache/guile/ccache/2.2-LE-8-3.A/home/hubert/manifest-to-manifest.scm.go > ;; commit: 6c83c48391ebc2b08ca4704c437de4f1e59fca9a > (specifications->manifest > '("brasero" > "ffmpeg" > "gimp" > "gnumeric" > "inkscape" > "lynx" > "markdown" > "mpv" > "obs" > "qemu" > "quassel" > "racket" > "sbcl-next" > "ungoogled-chromium" > "wget" > "youtube-dl" > "youtube-viewer")) > hubert@gnu ~$ > > Then I made the updates, reconfigured /etc/config.scm and restarted. > > I think the launch of the script was more or less equivalent to the following command: > > $ guix package --manifest=manifest-to-manifest.scm This '--manifest' option accept a file, which should return a manifest object, and the script you run generate it from your profile. So you can write the script output "(specifications->manifest .....)" into a file, eg: "~/.config/guix/manifest.scm", then use "guix package -m ~/.config/guix-manifest.scm" to apply it. > > In which case, I will not need to run this command? > > And finally, are there any changes to make in '/etc/config.scm'? Maybe add to it: > > ----------------------------------------------- > (specifications->manifest > '("brasero" > "ffmpeg" > "gimp" > "gnumeric" > "inkscape" > "lynx" > "markdown" > "mpv" > "obs" > "qemu" > "quassel" > "racket" > "ungoogled-chromium" > "wget" > "youtube-dl" > "youtube-viewer")) > ----------------------------------------------- No, the "packages" field of "operation-system" accept a list of package objects, it can't deal with "manifest". In fact, "manifest" is used to manage user's own profile, in a declarative way, just like "packages". > > Thank you in advance for your possible clarification :-) Yeah, hope it helps! ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: A question about manifest for my profile 2019-07-17 13:14 ` 宋文武 @ 2019-07-20 19:35 ` hub.lombard 0 siblings, 0 replies; 3+ messages in thread From: hub.lombard @ 2019-07-20 19:35 UTC (permalink / raw) To: 宋文武; +Cc: Help Guix ----- Mail original ----- De: "宋文武" <iyzsong@member.fsf.org> À: "hub lombard" <hub.lombard@free.fr> Cc: "Help Guix" <help-guix@gnu.org> Envoyé: Mercredi 17 Juillet 2019 15:14:38 Objet: Re: A question about manifest for my profile hub.lombard@free.fr writes: >> Hi Guix! >> I generated a 'manifest-to-manifest.scm' manifest of all the packages installed in my user profile >> Then I called it: >> hubert@gnu ~$ guile -s manifest-to-manifest.scm ~/.guix-profile >> Then I made the updates, reconfigured /etc/config.scm and restarted. >> I think the launch of the script was more or less equivalent to the following command: >> $ guix package --manifest=manifest-to-manifest.scm >This '--manifest' option accept a file, which should return a manifest >object, and the script you run generate it from your profile. So you >can write the script output "(specifications->manifest .....)" into a >file, eg: "~/.config/guix/manifest.scm", then use "guix package -m >~/.config/guix-manifest.scm" to apply it. Done!... By launching: $ guix package -m ~/.config/guix/manifest.scm > >> In which case, I will not need to run this command? > >> And finally, are there any changes to make in '/etc/config.scm'? Maybe add to it: > >> ----------------------------------------------- >> (specifications->manifest >> '("brasero" >> "ffmpeg" >> "gimp" >> "gnumeric" >> "inkscape" >> "lynx" >> "markdown" >> "mpv" >> "obs" >> "qemu" >> "quassel" >> "racket" >> "ungoogled-chromium" >> "wget" >> "youtube-dl" >> "youtube-viewer")) >> ----------------------------------------------- >No, the "packages" field of "operation-system" accept a list of package >objects, it can't deal with "manifest". In fact, "manifest" is used to >manage user's own profile, in a declarative way, just like "packages". Got it... >> Thank you in advance for your possible clarification :-) >Yeah, hope it helps! Indeed :) Thank you so much iyzsong! Hubert ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-07-20 19:35 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1550644224.410841277.1563289658540.JavaMail.root@zimbra49-e8.priv.proxad.net> 2019-07-16 15:16 ` A question about manifest for my profile hub.lombard 2019-07-17 13:14 ` 宋文武 2019-07-20 19:35 ` hub.lombard
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).