bug#20067: fix interpretation of grub configuration

2016-09-14 Thread Tomáš Čech

On Sat, Sep 10, 2016 at 12:03:38AM +0200, Ludovic Courtès wrote:

Good news!


Good news indeed!



l...@gnu.org (Ludovic Courtès) skribis:


Tomáš Čech  skribis:


Grub configuration interpretes `linux' as directory where is located
bzImage. If I enter file name instead, result configuration will be
wrong.


The solution will be to not automatically append “/bzImage” (and
likewise for the initrd.)

We could change places where ‘menu-entry’ is instantiated to:

  #~(string-append #$kernel "/bzImage")

However, there’s the problem that the image name appears in the
‘parameters’ file of the system (as seen in the output of ‘guix system
build foo.scm’), where it is unevaluated.  If we use ‘string-append’ as
above, a raw (string-append …) sexp will appear in there, which is not
nice.

To address this, an idea is to add “expanders” for gexps: gexps already
have “compilers”, and expanders would be similar except that they would
produce something possibly different from just the derivation’s output
file name.  For instance, we could write:

  (file-append kernel "/bzImage")

and that would expand directly to:

  "/gnu/store/…/bzImage"


AFAICS this is finally fixed!

 expanders in commit ebdfd776f4504c456d383ee8afa59fc6fdfc6756
 ‘file-append’ in commit a9e5e92f940381e3a4ee828c6d8ff22a73067e17
 kernel file name in commit 44d5f54e31039d78f156bd9562dca293124eaa76

Please let me know how it goes!  In particular, does it work for the
dual-boot scenario you were interested in?


It is almost perfect.

Configuration excerpt...

(bootloader (grub-configuration
 (device "/dev/sda")
 (menu-entries
  (list
   (menu-entry
(label "openSUSE")
(linux "(hd0,msdos1)/vmlinuz")
(linux-arguments (list
  "root=/dev/venom/opensuse"
  "init=/usr/lib/systemd/systemd"))
(initrd "(hd0,msdos1)/initrd"))


...transforms into

menuentry "openSUSE" {
  search --file --set (hd0,msdos1)/vmlinuz
  linux (hd0,msdos1)/vmlinuz root=/dev/venom/opensuse 
init=/usr/lib/systemd/systemd
  initrd (hd0,msdos1)/initrd
}

I think that if linux contains prefix '(.*)/', there should be no
search for kernel.

Thank you very much for fixing this bug (especially when I wasn't
able). I believe that fixing this bug is big step in more friendly
behavior to other OS.

Best regards,

S_W


signature.asc
Description: Digital signature


bug#24433: fish needs to have bc in propagated-inputs

2016-09-14 Thread Thompson, David
On Wed, Sep 14, 2016 at 4:48 AM, Arun Isaac  wrote:
>
> 'fish' needs 'bc' as a propagated input. I have noticed runtime errors
> due to absence of bc. It's also mentioned here:
>
> https://github.com/fish-shell/fish-shell#runtime-dependencies
>
> Quoting the relevant paragraph:
>
> "fish requires a number of utilities to operate, which should be present
> on any Unix, GNU/Linux or OS X system. These include (but are not
> limited to) hostname, grep, awk, sed, which, and getopt. fish also
> requires the bc program."

A runtime dependency does *not* mean that an input should be
propagated.  Propagation is a solution of last resort.

Instead, try finding the places where 'bc' is referenced in the fish
source and replace it with the absolute path to the binary.

Thanks,

- Dave





bug#24433: fish needs to have bc in propagated-inputs

2016-09-14 Thread Arun Isaac

'fish' needs 'bc' as a propagated input. I have noticed runtime errors
due to absence of bc. It's also mentioned here:

https://github.com/fish-shell/fish-shell#runtime-dependencies

Quoting the relevant paragraph:

"fish requires a number of utilities to operate, which should be present
on any Unix, GNU/Linux or OS X system. These include (but are not
limited to) hostname, grep, awk, sed, which, and getopt. fish also
requires the bc program."


signature.asc
Description: PGP signature