Thanks to Jason Self <jself@gnu.org> for the kernel configs.
* gnu/packages/linux.scm (kernel-config): New procedure.
(linux-libre)[build-phase]: Copy it to .config. Reduce the list of
things appended to .config.
[native-inputs]: Add "kconfig" input.
* gnu/packages/linux-libre-i686.conf,
gnu/packages/linux-libre-x86_64.conf: New files, from
<http://jxself.org/x86-32.txt> and <http://jxself.org/x86-64.txt>.
* Makefile.am (KCONFIGS): New variable.
(nobase_dist_guilemodule_DATA): Add it.
* build-aux/check-final-inputs-self-contained.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
(assert-final-inputs-self-contained): New target.
(distcheck-hook): Depend on it.
* gnu/system.scm (<operating-system>)[packages]: Change default value to
%BASE-PACKAGES.
(%base-packages): New variable.
* gnu/system/install.scm (installation-os): Use it when defining the
'packages' field.
* doc/guix.texi (Using the Configuration System): Use %BASE-PACKAGES in
example. Remove now unneeded module imports. Explain this.
* build-aux/hydra/gnu-system.scm (demo-os): New procedure.
(qemu-jobs): Build for both x86_64-linux and i686-linux. Add
'usb-image' job that builds INSTALLATION-OS.
* gnu.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* build-aux/hydra/demo-os.scm: Use (gnu) and strip import list
accordingly.
* doc/guix.texi (Using the Configuration System): Adjust example
accordingly.
This fixes a circular dependency between (gnu system) and (gnu system
linux-initrd), where the latter could end up being compiled before
'file-system-type' was defined as a macro.
* gnu/system.scm (<file-system>, %fuse-control-file-system,
%binary-format-file-system): Move to...
* gnu/system/file-systems.scm: ... here. New file.
* build-aux/hydra/demo-os.scm, gnu/system/linux-initrd.scm,
gnu/system/vm.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu/system/grub.scm (<grub-configuration>): New record type.
(grub-configuration-file): Add 'config' parameter; remove
#:default-entry and #:timeout. Honor CONFIG.
* gnu/system.scm (<operating-system>): Remove 'bootloader-entries'
field; remove default value for 'bootloader' field.
(operating-system-grub.cfg): Pass the 'bootloader' field to
'grub-configuration-file'.
* build-aux/hydra/demo-os.scm (bootloader): New field.
* gnu/system.scm (<operating-system>)[groups]: Change default to just
the 'root' group.
[sudoers]: New field.
(etc-directory): Add #:sudoers parameter. Add 'sudoers' to the
file union.
(operating-system-etc-directory): Pass #:sudoers to 'etc-directory'.
(%setuid-programs): Add 'sudo'.
(%sudoers-specification): New variable.
* gnu/system/linux.scm (base-pam-services): Add 'sudo'.
* build-aux/hydra/demo-os.scm: Add 'groups' field; add 'guest' to the
'wheel' group.
* gnu/system.scm (<operating-system>)[pam-services, setuid-programs]:
New fields.
(etc-directory)[bashrc]: Prepend /run/setuid-programs to $PATH.
(operating-system-etc-directory): Honor
'operating-system-pam-services'.
(%setuid-programs): New variable.
(operating-system-boot-script): Add (guix build utils) to the set of
imported modules. Call 'activate-setuid-programs' in boot script.
* gnu/system/linux.scm (base-pam-services): New procedure.
* guix/build/activation.scm (%setuid-directory): New variable.
(activate-setuid-programs): New procedure.
* build-aux/hydra/demo-os.scm: Add 'pam-services' field.
* build-aux/hydra/demo-os.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* build-aux/hydra/gnu-system.scm (qemu-jobs): New procedure.
(hydra-jobs): Use it.
* guix/scripts/system.scm (read-operating-system): Export.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[systems]: Define locally,
independently of ARGUMENTS. This matches the new Hydra convention,
where using a 'system' input is deprecated.
* build-aux/download.scm (file-name->uri): Update URL to /20131110.
* gnu-system.am (nodist_bootstrap_x86_64_linux_DATA,
nodist_bootstrap_i686_linux_DATA): Change base name to
'guile-2.0.9.tar.xz'.
(gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz,
gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz): New targets.
(gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Remove.
(gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): Update
hash.
* gnu/packages/base.scm (gcc-boot0): Base upon GCC-4.8. Enable C++, and
add a few --disable flags. Remove MPFR workaround.
(cross-gcc-wrapper): Base upon GCC-4.8. Wrap both 'gcc' and 'g++'.
(libstdc++): New variable.
(gcc-final): Add it as an input; pass corresponding -I and -L flags.
* gnu/packages/bootstrap.scm (%bootstrap-guile): Always use
"guile-2.0.9.tar.xz.
(%bootstrap-coreutils&co): Update hashes.
(%bootstrap-binutils): Update URL and hashes.
(%bootstrap-glibc): Likewise.
(%bootstrap-gcc): Likewise.
* gnu/packages/gcc.scm (gcc-4.7): Add LDFLAGS.
Add --disable-libstdcxx-pch.
Modify the GNU_USER*_SPEC macros from gnu-user*.h instead of the raw
_SPEC macros.
* build-aux/sync-synopses.scm: Rename to...
* build-aux/sync-descriptions.scm: ... this. Compare the value of
'gnu-package-doc-description' and 'package-description' and report any
mismatch.
* Makefile.am (EXTRA_DIST): Adjust accordingly.
(sync-synopses): Rename to...
(sync-descriptions): ... this.
* build-aux/list-packages.scm (package->sxml): Add parameters previous,
description-ids and remaining, update docstring accordingly. Introduce logic
for fold-values process.
(insert-tr): Moved sxml package table-row generation to new function; remove
<a> elements and JS function calls. These are created through JS
(prep_pkg_descs). Add insert-js-call for every 15th package, and the last.
(insert-js-call): New function.
(packages->sxml): Change map to fold values; add init params.
(insert-js): show_hide: add compatibility check, introduce, use thingLink
prep: new JS function.
bulk_show_hide: new JS function.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-aux/hydra/gnu-system.scm (package->alist): Call
'derivation-file-name' on the result of 'package-derivation'.
* build-aux/hydra/guix.scm (package->alist): Likewise.
* build-aux/hydra/guix.scm (tarball-package): Add 'nix-checkout'
parameter. Replace 'patch-bootstrap-script' phase by
'set-nix-module'.
(hydra-jobs): Get the 'nix' value from ARGUMENTS, and pass it to
'tarball-package'.
* build-aux/hydra/gnu-system.scm (%core-packages): New variable.
(%packages-to-cross-build): Make an alias for %CORE-PACKAGES.
(hydra-jobs): Check for the 'subset' argument, and honor it for values
"all" and "core".
* build-aux/list-packages.scm (package->sxml)[license, status]: Add
title for <a> element.
Add alt and title for gnu-logo <img> element. Add title to package
website <a> element.
(packages->sxml): Wrap <div id="intro"> intro paragraph in <p> element.
Add table header row to <table id="packages">
Add <a> back to top of the page beneath table.
(insert-css, insert-js): New procedures.
(list-packages): Move JavaScript to 'insert-js', and CSS to 'insert-css'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-aux/list-packages.scm (package-logo): Assign class of
'package-description' to package synopsis div; 'package-logo'. Move inline
CSS where possible.
(packages->sxml): Assign id of 'intro' to intro div, 'packages' to the
table. Move inline CSS.
(list-packages): Create new <style> section, containing all inline CSS.
Move JavaScript <script> section to above banner include to place it in
<head>.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-aux/list-packages.scm (package->sxml)[status]: New procedure.
Use it at the end of each description.
(packages->sxml): Add link to hydra.gnu.org.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Pick all the `system'
keys in ARGUMENTS.
[cross-jobs]: Turn into a procedure, with a `system' parameter.
Build packages for all of SYSTEMS and %CROSS-TARGETS.
* guix/packages.scm (package-field-location): Rewrite using `read' and
source properties. Change to return #f upon failure.
* tests/packages.scm ("package-field-location"): Check for #f upon failure.
* build-aux/sync-synopses.scm: Adjust accordingly.
* guix/packages.scm (package-field-location): New procedure.
* build-aux/sync-synopses.scm: Use it instead of `package-location'.
* tests/packages.scm ("package-field-location"): New test.
Use bootstrap binaries that were generated with the `make-bootstrap'
changes introduced in previous commit.
* Makefile.am (nodist_bootstrap_x86_64_linux_DATA,
nodist_bootstrap_i686_linux_DATA): Change Guile tarball name.
(distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): New targets.
(distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
Remove.
* build-aux/download.scm (file-name->uri): Use "20121219" directory.
* distro/packages/bootstrap.scm (%bootstrap-guile): Update file name.
(%bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
%bootstrap-gcc): Update directory name and hashes.
These new binaries are built with the `--with-lib-path' and
`--with-local-prefix' flags, respectively, as introduced in commit
01d4540.
* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
%bootstrap-glibc): Update URL.
(%bootstrap-binutils, %bootstrap-gcc): Update URL and hashes.
* build-aux/download.scm (file-name->uri): Update URL.