[PATCH 1/3] emacs: Add "c" key binding to copy a button link.
I think it may be useful to copy the current URL or file path by pressing "c". >From c55a306d9a0588b3950e2905fb288200c27faa84 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sat, 8 Nov 2014 20:13:32 +0300 Subject: [PATCH 1/3] emacs: Add "c" key binding to copy a button link. * emacs/guix-info.el (guix-info-button-map): New variable. (guix-info-button-copy-label): New procedure. * doc/emacs.texi (Emacs Info buffer): Mention a "c" key binding. (Emacs Keymaps): Add 'guix-info-button-map'. --- doc/emacs.texi | 6 ++ emacs/guix-info.el | 16 2 files changed, 22 insertions(+) diff --git a/doc/emacs.texi b/doc/emacs.texi index 89e2570..ad2dcd8 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -290,6 +290,9 @@ emacs, The GNU Emacs Manual}) which can be used to: @end itemize +It is also possible to copy a button label (a link to an URL or a file) +by pressing @kbd{c} on a button. + @node Emacs Configuration @subsection Configuration @@ -397,6 +400,9 @@ Keymap with specific keys for ``output-info'' buffers. @item guix-generation-info-mode-map Keymap with specific keys for ``generation-info'' buffers. +@item guix-info-button-map +Keymap with keys available when a point is placed on a button. + @end table @node Emacs Appearance diff --git a/emacs/guix-info.el b/emacs/guix-info.el index 88363e5..edb4450 100644 --- a/emacs/guix-info.el +++ b/emacs/guix-info.el @@ -313,7 +313,15 @@ VAL is a list, call the function on each element of this list." ;;; Buttons +(defvar guix-info-button-map + (let ((map (make-sparse-keymap))) +(set-keymap-parent map button-map) +(define-key map (kbd "c") 'guix-info-button-copy-label) +map) + "Keymap for buttons in info buffers.") + (define-button-type 'guix + 'keymap guix-info-button-map 'follow-link t) (define-button-type 'guix-action @@ -350,6 +358,14 @@ VAL is a list, call the function on each element of this list." (guix-get-show-entries guix-profile 'info guix-package-info-type 'name (button-label btn +(defun guix-info-button-copy-label (&optional pos) + "Copy a label of the button at POS into kill ring. +If POS is nil, use the current point position." + (interactive) + (let ((button (button-at (or pos (point) +(when button + (kill-new (button-label button) + (defun guix-info-insert-action-button (label action &optional message &rest properties) "Make action button with LABEL and insert it at point. -- 2.1.2
[PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.
This patch adds URL of a package source and 2 buttons ("Show" and "Download") to an ‘info’ buffer (see the attached screenshot). Pushing the "Show" button displays a store path of the package source. Pushing the "Download" button has the same meaning as “guix build -S …”. >From c879b5520718726366a5afd83143315a16ab29a7 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 9 Nov 2014 11:03:39 +0300 Subject: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested by Ludovic Courtès. * emacs/guix-info.el (guix-info-insert-methods, guix-info-displayed-params): Add 'source' parameter. (guix-package-info-source): New face. (guix-package-info-find-source-p): New variable. (guix-package-source): New button type. (guix-info-redisplay-entries, guix-package-info-insert-source-url, guix-package-info-show-source, guix-package-info-insert-source): New procedures. * emacs/guix-base.el (guix-param-titles): Add 'source' parameter. (guix-package-source-path, guix-package-source-build-derivation): New procedures. * emacs/guix-main.scm (%package-param-alist): Add 'source' parameter. (package-source-names, package-source-derivation->store-path, package-source-path, package-source-build-derivation): New procedures. --- emacs/guix-base.el | 20 + emacs/guix-info.el | 116 +--- emacs/guix-main.scm | 49 ++ 3 files changed, 179 insertions(+), 6 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 784474e..a542a0c 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -82,6 +82,7 @@ Interactively, prompt for PATH. With prefix, use (id. "ID") (name . "Name") (version . "Version") + (source. "Source") (license . "License") (synopsis . "Synopsis") (description . "Description") @@ -100,6 +101,7 @@ Interactively, prompt for PATH. With prefix, use (id. "ID") (name . "Name") (version . "Version") + (source. "Source") (license . "License") (synopsis . "Synopsis") (description . "Description") @@ -1008,6 +1010,24 @@ Each element from GENERATIONS is a generation number." 'switch-to-generation profile generation) operation-buffer))) +(defun guix-package-source-path (package-id) + "Return a store file path to a source of a package PACKAGE-ID." + (message "Calculating the source derivation ...") + (guix-eval-read + (guix-make-guile-expression +'package-source-path package-id))) + +(defun guix-package-source-build-derivation (package-id) + "Build source derivation of a package PACKAGE-ID." + (when (or (not guix-operation-confirm) +(guix-operation-prompt)) +(guix-eval-in-repl + (guix-make-guile-expression + 'package-source-build-derivation + package-id + :use-substitutes? (or guix-use-substitutes 'f) + :dry-run? (or guix-dry-run 'f) + ;;; Pull diff --git a/emacs/guix-info.el b/emacs/guix-info.el index edb4450..bd56937 100644 --- a/emacs/guix-info.el +++ b/emacs/guix-info.el @@ -1,4 +1,4 @@ -;;; guix-info.el --- Info buffers for displaying entries +;;; guix-info.el --- Info buffers for displaying entries -*- lexical-binding: t -*- ;; Copyright © 2014 Alex Kost @@ -24,7 +24,6 @@ ;;; Code: -(require 'guix-history) (require 'guix-base) (require 'guix-utils) @@ -107,6 +106,8 @@ number of characters, it will be split into several lines.") guix-info-insert-title-simple) (outputs guix-package-info-insert-outputs guix-info-insert-title-simple) + (sourceguix-package-info-insert-source +guix-info-insert-title-simple) (home-url guix-info-insert-url) (inputsguix-package-info-insert-inputs) (native-inputs guix-package-info-insert-native-inputs) @@ -121,6 +122,8 @@ number of characters, it will be split into several lines.") (name guix-package-info-name) (version guix-output-info-insert-version) (outputguix-output-info-insert-output) + (sourceguix-package-info-insert-source +guix-info-insert-title-simple) (path guix-package-info-insert-output-path guix-info-insert-title-simple) (dependencies guix-package-info-insert-output-dependencies @@ -157,10 +160,11 @@ is a function, this function is called with parameter title as argument.") (defvar guix-info-displayed-params - '((package name version synopsis outputs location home-url + '((package name version synopsis outputs source location home-url license
[PATCH 2/3] emacs: Restore mode-line after operation prompt.
Earlier a prompt “Continue operation? (y, n, s, d)” was used only with a temporary buffer for package operations and there were no problems with modifying a mode-line there. But now (I mean after the next patch) it is also used to prompt before building a source derivation (as "substitutes" and "dry-run" make sence there too). This patch will handle this case. >From 8036ec72ef486c158683ce67a1a5f15056de0cc4 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 9 Nov 2014 11:00:35 +0300 Subject: [PATCH 2/3] emacs: Restore mode-line after operation prompt. * emacs/guix-base.el (guix-operation-prompt): Restore 'mode-line-format' after prompting. --- emacs/guix-base.el | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 3dda938..784474e 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -928,7 +928,7 @@ ENTRIES is a list of package entries to get info about packages." (insert "\n"))) (defun guix-operation-prompt () - "Prompt a user for continuing the current package operation. + "Prompt a user for continuing the current operation. Return non-nil, if the operation should be continued; nil otherwise." (let* ((option-keys (mapcar #'guix-operation-option-key guix-operation-options)) @@ -943,9 +943,11 @@ Return non-nil, if the operation should be continued; nil otherwise." keys ", ") ") "))) -(prog1 (guix-operation-prompt-1 prompt keys) - ;; Clear the minibuffer after prompting. - (message "" +(let ((mode-line mode-line-format)) + (prog1 (guix-operation-prompt-1 prompt keys) +(setq mode-line-format mode-line) +;; Clear the minibuffer after prompting. +(message "") (defun guix-operation-prompt-1 (prompt keys) "This function is internal for `guix-operation-prompt'." -- 2.1.2
Libtool
Hello, I need a newer libtool, and thought it would have to go into core-updates. But: $ guix refresh -l libtool Building the following 93 packages would ensure 162 dependent packages are rebuilt So should I update in master instead? Andreas
1000
Hello, if my count is correct, I just pushed package number 1000: $ guix package -A|wc -l 1000 The package itself is not so exciting, but the number is something to celebrate! Andreas
Re: [PATCH] gnu: cross-base: Add libc/hurd.
In crossbase.scm I merged libc and libc/hurd into libc. It chooses the right libc based on target. Also included a fix for the autoconf input on hurd-minimal. Before testing it, do make clean && make on the wip-hurd branch. Manolis From e0fa86ca6fa59e8365188e19b4360ccf71e309f2 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sun, 26 Oct 2014 11:29:41 + Subject: [PATCH] gnu: cross-base: Add libc/hurd. * gnu/packages/cross-base.scm (cross-libc): Added libc/hurd. --- gnu/packages/cross-base.scm | 159 +--- gnu/packages/hurd.scm | 2 +- 2 files changed, 137 insertions(+), 24 deletions(-) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 90fc606..4ea6076 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -23,6 +23,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages commencement) #:use-module (gnu packages linux) + #:use-module (gnu packages hurd) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -238,30 +239,142 @@ XBINUTILS and the cross tool chain." (native-inputs `(("cross-gcc" ,xgcc) ("cross-binutils" ,xbinutils) ,@(package-native-inputs linux-libre-headers) + + (define xgnumach-headers +(package (inherit gnumach-headers) + (name (string-append (package-name gnumach-headers) + "-cross-" target)) - (package (inherit glibc) -(name (string-append "glibc-cross-" target)) -(arguments - (substitute-keyword-arguments - `(#:strip-binaries? #f; disable stripping (see above) - ,@(package-arguments glibc)) - ((#:configure-flags flags) -`(cons ,(string-append "--host=" target) - ,flags)) - ((#:phases phases) -`(alist-cons-before - 'configure 'set-cross-linux-headers-path - (lambda* (#:key inputs #:allow-other-keys) -(let ((linux (assoc-ref inputs "cross-linux-headers"))) - (setenv "CROSS_CPATH" - (string-append linux "/include")) - #t)) - ,phases - -(propagated-inputs `(("cross-linux-headers" ,xlinux-headers))) -(native-inputs `(("cross-gcc" ,xgcc) - ("cross-binutils" ,xbinutils) - ,@(package-native-inputs glibc) + (native-inputs `(("cross-gcc" ,xgcc) + ("cross-binutils" ,xbinutils) + ,@(package-native-inputs gnumach-headers) + + (define xmig +(package (inherit mig) + (name (string-append "mig-cross")) + (arguments + (substitute-keyword-arguments (package-arguments mig) + ((#:configure-flags flags) + `(cons ,(string-append "--host=" target) + ,flags + + (propagated-inputs `(("cross-gnumach-headers" ,xgnumach-headers))) + (native-inputs `(("cross-gcc" ,xgcc) + ("cross-binutils" ,xbinutils) + ,@(package-native-inputs mig) + + (define xhurd-headers +(package (inherit hurd-headers) + (name (string-append (package-name hurd-headers) + "-cross-" target)) + + (native-inputs `(("cross-gcc" ,xgcc) + ("cross-binutils" ,xbinutils) + ("cross-mig" ,xmig) + ,@(alist-delete "mig"(package-native-inputs hurd-headers)) + + (define xglibc/hurd-headers +(package (inherit glibc/hurd-headers) + (name (string-append (package-name glibc/hurd-headers) + "-cross-" target)) + + (arguments + (substitute-keyword-arguments (package-arguments glibc/hurd-headers) + ((#:phases phases) + `(alist-cons-before +'pre-configure 'set-cross-headers-path +(lambda* (#:key inputs #:allow-other-keys) + (let ((mach (assoc-ref inputs "gnumach-headers")) +(hurd (assoc-ref inputs "hurd-headers"))) +(setenv "CROSS_CPATH" +(string-append mach "/include:" + hurd "/include" +,phases + + (propagated-inputs `(("gnumach-headers" ,xgnumach-headers) + ("hurd-headers" ,xhurd-headers))) + + (native-inputs `(("cross-gcc" ,xgcc) + ("cross-binutils" ,xbinutils) + ("cross-mig" ,xmig) + ,@(alist-delete "mig"(package-native-inputs glibc/hurd-headers)) + + (define xhurd-minimal +(package (inherit hurd-minimal) + (name (string-append (package-name hurd-minimal) + "-cross-" target)) + (arguments + (substitute-keyword-arguments (package-arguments hurd-minimal) + ((#:phases phases) + `(alist-cons-before +'configur
Re: 1000
W00t! I'll drink to Guix tonight :-) Alex Andreas Enge writes: > Hello, > > if my count is correct, I just pushed package number 1000: > $ guix package -A|wc -l > 1000 > > The package itself is not so exciting, but the number is something > to celebrate! > > Andreas
Re: [PATCH 1/2] gnu: Add sdl-union.
David Thompson skribis: > From 6b119f2ab64f84ff03d1ddf9a1b3c715a3b17e9f Mon Sep 17 00:00:00 2001 > From: David Thompson > Date: Sun, 2 Nov 2014 11:54:20 -0500 > Subject: [PATCH 1/2] gnu: Add sdl-union. > > * gnu/packages/sdl.scm (sdl-union): New variable. LGTM! > +(synopsis "Union of all SDL libraries.") ^ Please remove the period before committing. Thanks, Ludo’.
Re: [PATCH 2/2] gnu: Add guile-sdl.
David Thompson skribis: > From 215bd5af729055196da818518c816f7fd08e6a06 Mon Sep 17 00:00:00 2001 > From: David Thompson > Date: Sun, 2 Nov 2014 11:55:21 -0500 > Subject: [PATCH 2/2] gnu: Add guile-sdl. > > * gnu/packages/sdl.scm (guile-sdl): New variable. LGTM! Nice work with the tests. > +(synopsis "SDL bindings for GNU Guile.") > +(description "Guile-SDL is a set of modules that provide bindings for SDL > +to enable Guile programmers to do all the nice things you can do with SDL.") Please run ‘make sync-descriptions’ and use whatever synopsis and description it suggests. OK to commit with this change. Thank you! Ludo’.
Re: [PATCH 1/3] emacs: Add "c" key binding to copy a button link.
Alex Kost skribis: > I think it may be useful to copy the current URL or file path by > pressing "c". > > > From c55a306d9a0588b3950e2905fb288200c27faa84 Mon Sep 17 00:00:00 2001 > From: Alex Kost > Date: Sat, 8 Nov 2014 20:13:32 +0300 > Subject: [PATCH 1/3] emacs: Add "c" key binding to copy a button link. > > * emacs/guix-info.el (guix-info-button-map): New variable. > (guix-info-button-copy-label): New procedure. > * doc/emacs.texi (Emacs Info buffer): Mention a "c" key binding. > (Emacs Keymaps): Add 'guix-info-button-map'. Sure, please push, thanks! Ludo’.
Re: [PATCH 2/3] emacs: Restore mode-line after operation prompt.
Alex Kost skribis: > Earlier a prompt “Continue operation? (y, n, s, d)” was used only with a > temporary buffer for package operations and there were no problems with > modifying a mode-line there. > > But now (I mean after the next patch) it is also used to prompt before > building a source derivation (as "substitutes" and "dry-run" make sence > there too). This patch will handle this case. > > > From 8036ec72ef486c158683ce67a1a5f15056de0cc4 Mon Sep 17 00:00:00 2001 > From: Alex Kost > Date: Sun, 9 Nov 2014 11:00:35 +0300 > Subject: [PATCH 2/3] emacs: Restore mode-line after operation prompt. > > * emacs/guix-base.el (guix-operation-prompt): Restore 'mode-line-format' after > prompting. Okay! Ludo'.
Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.
Alex Kost skribis: > This patch adds URL of a package source and 2 buttons ("Show" and > "Download") to an ‘info’ buffer (see the attached screenshot). > > Pushing the "Show" button displays a store path of the package source. > Pushing the "Download" button has the same meaning as “guix build -S …”. This is very cool! I had in mind a slightly simpler user interface: just a “View source” button. The thing would build (package-source-derivation p), effectively downloading it if it’s not already present, and opening it in dired. With the interface you propose, things might be slightly confusing: sometimes clicking on “Download” will do nothing (because the source is already there), sometime “Show” will work without “Download”, sometimes not, etc. Also it takes up quite a bit of space. WDYT? Thanks, Ludo’.
Re: Libtool
Andreas Enge skribis: > I need a newer libtool, and thought it would have to go into core-updates. > But: > $ guix refresh -l libtool > Building the following 93 packages would ensure 162 dependent packages are > rebuilt > > So should I update in master instead? core-updates, please: Guile depends on it, and everything depends on Guile. (Now, you’ve probably found a good case for Eric to study. ;-)) Ludo’.
Re: 1000
Andreas Enge skribis: > if my count is correct, I just pushed package number 1000: > $ guix package -A|wc -l > 1000 > > The package itself is not so exciting, but the number is something > to celebrate! Heheh, congrats and e-cheers to everyone celebrating it! ;-) Thanks to everyone who’s made it possible! Ludo’.
Re: Libtool
On Sun, Nov 09, 2014 at 06:47:19PM +0100, Ludovic Courtès wrote: > (Now, you’ve probably found a good case for Eric to study. ;-)) I have another one: $ guix refresh -l acl Building the following 95 packages would ensure 195 dependent packages are rebuilt Andreas
Re: Libtool
The test suite has been rewritten, the patches do not apply any more, and some of the tests they disabled do not seem to exist any more. The current test results are: ERROR: 137 tests were run, 66 failed (59 expected failures). 32 tests were skipped. So there are 7 failed tests now. I am attaching the testsuite.log and leave it to the specialists (Ludovic?) to decide whether they fall into the same category as the previously disabled tests. Also the NEWS file speaks about tests: - The legacy tests have all been migrated to the Autotest harness. - The Autotest testsuite can be run without the especially time consuming tests with: make check-local TESTSUITEFLAGS='-k "!expensive"' So I wonder whether the 'pre-check phase should not be dropped now. Andreas testsuite.log.bz2 Description: Binary data
Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.
Ludovic Courtès (2014-11-09 20:45 +0300) wrote: > Alex Kost skribis: > >> This patch adds URL of a package source and 2 buttons ("Show" and >> "Download") to an ‘info’ buffer (see the attached screenshot). >> >> Pushing the "Show" button displays a store path of the package source. >> Pushing the "Download" button has the same meaning as “guix build -S …”. > > This is very cool! > > I had in mind a slightly simpler user interface: just a “View source” > button. The thing would build (package-source-derivation p), > effectively downloading it if it’s not already present, and opening it > in dired. I don't think opening in dired should be a default (although I made ‘guix-package-info-find-source-p’ variable +for you+ for this case) because there may be a big compressed tarball that a user wouldn't like to uncompress with emacs tar-mode. I think displaying a link is the preferable variant as a user can open the file or copy its path if he wants. Also you suggest to make “View source” synchronous: build a source derivation, download it and open in dired. Did I understand it right? As this process may take a long time (for big sources or for git checkouts if a user doesn't have a necessary git infrastructure), I think it should be evaluated asynchronously in a REPL and it's not possible (at least not easy) to define what value was returned by a REPL command, so no way to define what file to open in dired. Also what if I want to define whether there is a source in the store or not? (And I don't want to download it if it's not there.) With your variant of a single “View source” button it would not be possible, as the source that doesn't exist in the store will be downloaded unconditionally. > With the interface you propose, things might be slightly confusing: > sometimes clicking on “Download” will do nothing (because the source is > already there), sometime “Show” will work without “Download”, sometimes > not, etc. Also it takes up quite a bit of space. Sorry, I didn't get it. What space do you mean? > WDYT? Pushing a “Download” button will always do something: it will run some command in a REPL and will always display a store path in the end. And «Hey, USER, what did you expect from a “Download” button if the source is already downloaded?» But if you find it confusing what about the following variant: initially there will be only “Show” button and when you press it, “Download” button appears only if the source does not exist in the store. After a successful downloading, it disappears again. -- Alex
address@hidden: ATLAS fails to build on mips]
Andreas Enge writes: > As I am not sure if Fede is subscribed to the bug mailing list, > I am forwarding my report here. It is >http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18933 > > Andreas > > > - Forwarded message from Andreas Enge - > ATLAS fails to build on mipsel64: >http://hydra.gnu.org/build/133025 As I have no practical experience with MIPS platforms, I'm writing here to seek some advice. The ATLAS build log for the mipsel64 platform seems to indicate that the configure program is not able to find out the system architecture. To try to fix the problem we could specify the architecture with the help of a configure parameter. ATLAS supports the following two options for MIPS: 49 = 'MIPSR1xK' 50 = 'MIPSICE9' I have the following questions: 1. Do we support one, or both of these architectures? 2. If we do support both, what is the value of %current-system for them both? 3. If they are the same, how can we distinguish between them? As a side note: The Debian Wheezy package appears to use architecture 0 = 'UNKNOWN', which is what we currently do by not specifying any architecture explicitly. This tells ATLAS to find out by probing. I'm not sure why this is failing for us. Thanks! Fede
Re: bug#18534: problems with "guix pull"
l...@gnu.org (Ludovic Courtès) skribis: > The old ‘guix pull’ didn’t now about the gnu.scm file, hence the error > (this was fixed in June, in commit 9d0b8fbd.) > > That means you have to actually run ‘guix pull’ from 0.7, or from a > recent checkout. > > The fact that ‘guix pull’ can potentially break for some future version > is unfortunate. It would be ideal if instead of using its own build > recipe, it would use one from the tarball. [...] > Igor Gajsin skribis: > > > This is a output of `guix pull --verbose` > > > > compiling > > /gnu/store/akma9bmmjnizkv9sj1669wa8x4abrzyp-guix-latest/guix/import/pypi.scm'... > > ERROR: no code for module (json) > > For now, this problem can be worked around as described here: > > http://lists.gnu.org/archive/html/guix-devel/2014-09/msg00488.html This bug should be fixed by f81ac34. The idea is that the build recipe that is executed is now taken from the newly-downloaded Guix. Before that, we would use the build recipe from whatever Guix version was running, hence this kind of problems. Comments and testing welcome! Thanks, Ludo’.
Propagated inputs
Hello, polkit builds two libraries, polkit-agent and polkit-gobject. According to pkg-config, the second one Requires: gio-2.0 >= 2.18 glib-2.0 >= 2.18, while the first one requires nothing. So I decided to not propagate the glib input (which also contains gio), as potentially one could use the first library without glib. Or is it our policy to propagate inputs as soon as any of the built libraries requires them? Andreas
Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.
Alex Kost skribis: > Ludovic Courtès (2014-11-09 20:45 +0300) wrote: >> I had in mind a slightly simpler user interface: just a “View source” >> button. The thing would build (package-source-derivation p), >> effectively downloading it if it’s not already present, and opening it >> in dired. > > I don't think opening in dired should be a default (although I made > ‘guix-package-info-find-source-p’ variable +for you+ for this case) :-) > because there may be a big compressed tarball that a user wouldn't like > to uncompress with emacs tar-mode. I think displaying a link is the > preferable variant as a user can open the file or copy its path if he > wants. Oh right, I didn’t think about big tarballs. > Also you suggest to make “View source” synchronous: build a source > derivation, download it and open in dired. Did I understand it right? Yes. > As this process may take a long time (for big sources or for git > checkouts if a user doesn't have a necessary git infrastructure), I > think it should be evaluated asynchronously in a REPL and it's not > possible (at least not easy) to define what value was returned by a REPL > command, so no way to define what file to open in dired. Oh, makes sense. I completely overlooked “implementation details.” :-) > Also what if I want to define whether there is a source in the store or > not? (And I don't want to download it if it's not there.) I don’t think it’s natural for a user to think in terms of downloads. Personally, when I want to see the source of a package, I do: tar xf $(guix build -S foo) and that’s it. If it’s taking too long or something, I can still hit C-c. But typically, I don’t ask myself “is this already in the store?”. > With your variant of a single “View source” button it would not be > possible, as the source that doesn't exist in the store will be > downloaded unconditionally. Rather: the result of ‘package-source-derivation’ would be built unconditionally; that entails a download if and only if the source is not already in the store, otherwise nothing happens (which you probably already know, but I just want to be clear.) >> With the interface you propose, things might be slightly confusing: >> sometimes clicking on “Download” will do nothing (because the source is >> already there), sometime “Show” will work without “Download”, sometimes >> not, etc. Also it takes up quite a bit of space. > > Sorry, I didn't get it. What space do you mean? I meant visual space in the user interface; visual clutter. > Pushing a “Download” button will always do something: it will run some > command in a REPL and will always display a store path in the end. And > «Hey, USER, what did you expect from a “Download” button if the source > is already downloaded?» Right, but we don’t need the user’s mind to carry part of the store’s state: there’s already a database for that. :-) > But if you find it confusing what about the following variant: initially > there will be only “Show” button and when you press it, “Download” > button appears only if the source does not exist in the store. After > a successful downloading, it disappears again. That would work, yes. But note that derivation outputs not obtained by a ‘build-derivations’ call with the current store connection may be garbage-collected anytime. That makes it more difficult to reliably determine whether the “Download” button should be displayed; to be safe, it would have to be displayed by default. Then we’re very close to the current patch, I think, no? If that’s fine with you, perhaps let’s just commit the patch as is, and see in another patch whether “Download” can be made to disappear in safe cases? Thanks, Ludo’.
Re: [PATCH 2/2] gnu: Add guile-sdl.
Ludovic Courtès writes: > Please run ‘make sync-descriptions’ and use whatever synopsis and > description it suggests. > > OK to commit with this change. Done and pushed. -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate
Re: [PATCH 1/2] gnu: Add sdl-union.
Ludovic Courtès writes: > David Thompson skribis: > >> +(synopsis "Union of all SDL libraries.") > ^ > Please remove the period before committing. Done and pushed. Thanks for reviewing these patches. -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate
Re: 1000
Andreas Enge writes: > Hello, > > if my count is correct, I just pushed package number 1000: > $ guix package -A|wc -l > 1000 Wow, congrats everyone! Here's to the next 1000! -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate