Commit Graph

16335 Commits

Author SHA1 Message Date
Ludovic Courtès c089511288 build-system/gnu: Patch shebangs in all the source; patch SHELL in makefiles.
* guix/build/utils.scm (call-with-ascii-input-file): New procedure.
  (patch-shebang): Use it.
  (patch-makefile-SHELL): New procedure.
* guix/build/gnu-build-system.scm (patch-source-shebangs): Patch all the
  files, not just executables; remove `po/Makefile.in.in' patching.
  (patch-generated-files): Rename to...
  (patch-generated-file-shebangs): ... this.  Patch executables and
  makefiles.
  (%standard-phases): Adjust accordingly.

* distro/packages/autotools.scm (libtool): Remove call to `patch-shebang'.
* distro/packages/base.scm (gcc-4.7): Likewise.
  (guile-final): Remove hack to skip `test-command-line-encoding2'.
* distro/packages/bash.scm (bash): Remove `pre-configure-phase'.
* distro/packages/readline.scm (readline): Likewise.
* distro/packages/ncurses.scm (ncurses): Remove `pre-install-phase'.
2012-12-21 22:31:25 +01:00
Ludovic Courtès 8722e80e82 distro: coreutils: Update to 8.20.
* distro/packages/base.scm (coreutils): Update to 8.20.
2012-12-21 17:59:23 +01:00
Ludovic Courtès 8ffaa93bff distro: guile: Patch (ice-9 popen) to use the right shell.
* distro/packages/guile.scm (guile-2.0): Add `pre-configure'.
* distro/packages/base.scm (guile-final): Adjust to preserve the
  `pre-configure' phase.
2012-12-20 23:07:46 +01:00
Ludovic Courtès eca63d3df8 build-system/gnu: Patch shebangs after `configure'.
* guix/build/gnu-build-system.scm (patch-generated-files): New
  procedure.
  (%standard-phases): Add it after `configure'.
2012-12-20 23:06:34 +01:00
Ludovic Courtès 4c377e861b build-system/gnu: Report the execution time of each phase.
* guix/build/gnu-build-system.scm (gnu-build): Report the success or
  failure of each phase and its execution time.
2012-12-20 22:31:08 +01:00
Ludovic Courtès f5b7894942 distro: m4: Patch references to /bin/sh.
* distro/packages/m4.scm (m4): Add `pre-check' phase.
2012-12-20 19:01:14 +01:00
Ludovic Courtès 42ff70e262 distro: libtool: Run test suite in parallel; patch references to /bin/sh.
* distro/packages/autotools.scm (libtool): Add `pre-check' phase.
2012-12-20 19:00:14 +01:00
Ludovic Courtès 530c169561 distro: bash, readline: Patch so that `make' uses the right shell.
* distro/packages/readline.scm (readline): Add `pre-configure-phase' to
  patch `MAKE_SHELL' in `configure.  Move `post-install-phase' body to
  a variable.
* distro/packages/bash.scm (bash): Likewise.
2012-12-20 18:02:07 +01:00
Ludovic Courtès c20313637f distro: gawk: Use the right shell instead of /bin/sh.
* distro/packages/gawk.scm (gawk): Patch shell file name in io.c.
2012-12-20 17:59:10 +01:00
Andreas Enge 2ed139c42c distro: Add mpfrcx and fplll.
* distro/packages/algebra.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-20 01:43:38 +01:00
Ludovic Courtès 8ccdbaa827 distro: Update `guile-final' to not fail during `patch-source-shebangs' phase.
* distro/packages/base.scm (guile-final): Add workaround on top of
  GUILE-2.0/FIXED to avoid `patch-source-shebangs' failure on one of the
  source files.
2012-12-20 01:38:56 +01:00
Ludovic Courtès 49f5a21698 distro: ncurses: Patch references to /bin/sh.
* distro/packages/ncurses.scm (ncurses): Add `patch-makefile-phase' and
  `pre-install-phase'.
2012-12-20 01:38:56 +01:00
Ludovic Courtès a18b4d085b utils: Add a `progress' parameter to `dump-port'.
* guix/build/utils.scm (dump-port): Add a `progress' keyword parameter.
  Call it after each transfer.
2012-12-20 01:38:56 +01:00
Ludovic Courtès 0f09955213 distro: Update bootstrap binaries.
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.
2012-12-20 01:38:56 +01:00
Ludovic Courtès 5d4fd2671a distro: make-bootstrap: Have libc's functions search for `sh' in $PATH.
* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system,
  %standard-inputs-with-relocatable-glibc): New variables.
  (%static-inputs)[gawk]: Apply `gawk-shell.patch'.
  [finalize]: New procedure.
  Build all the packages against %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
  (%glibc-stripped): Inherit from %GLIBC-WITH-RELOCATABLE-SYSTEM.
  (%gcc-static, %guile-static): Build against
  %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
* distro/packages/patches/gawk-shell.patch,
  distro/packages/patches/glibc-bootstrap-system.patch: New files.
* Makefile.am (dist_patch_DATA): Add them.
2012-12-20 01:38:56 +01:00
Ludovic Courtès 6e32f6c019 distro: glibc: Add a statically-linked Bash to $out/bin.
* distro/packages/base.scm (glibc): Pass `ac_cv_path_BASH_SHELL' in the
  configure flags.  During the `pre-configure' phase, copy the
  "static-bash" input to $out/bin, and change `system' and `popen' to
  use it instead of /bin/sh.  Add the "static-bash" input.
  Suggested by Shea Levy <shea@shealevy.com> and
  Lluís Batlle i Rossell <viric@viric.name>.
2012-12-20 01:38:56 +01:00
Ludovic Courtès d6f80f187c distro: gcc: Patch to allow builds without /bin/sh.
* distro/packages/base.scm (gcc-4.7): In `pre-configure' phase, patch
  shebang in `gcc/exec-tool.in'.
2012-12-20 01:38:56 +01:00
Ludovic Courtès dfb53ee232 distro: ld-wrapper: Use the current Bash instead of /bin/sh.
* distro/packages/ld-wrapper.scm: Use @BASH@ in shebang.  Change module
  name to (gnu build-support ld-wrapper).
* distro/packages/base.scm (ld-wrapper-boot3): Substitute @BASH@.
  (ld-wrapper): Use BASH-FINAL.
2012-12-20 01:38:54 +01:00
Ludovic Courtès ea8fbbf2f2 distro: make: Change default shell from /bin/sh to the actual shell.
* distro/packages/base.scm (gnu-make): Add `set-default-shell' phase.
  (gnu-make-boot0): Adjust phases accordingly.
2012-12-19 12:34:53 +01:00
Ludovic Courtès c3ee7448c9 build-system/gnu: Change the order of `patch-source-shebangs' and `patch'.
* guix/build/gnu-build-system.scm (patch-source-shebangs): Add a newline
  after the "SHELL =" line in po/Makefile.in.in.
  (%standard-phases): Move `patch-source-shebangs' after `patch'.
2012-12-19 00:48:20 +01:00
Ludovic Courtès 45298f8fd2 distro: Linux-Libre: Set $ARCH based on the actual system type.
* distro/packages/linux.scm (linux-libre-headers): Set $ARCH based on
  the `system' keyword argument.
2012-12-19 00:48:13 +01:00
Nikita Karetnikov 5d5c427839 distro: Add Usbutils.
* distro/packages/linux.scm (usbutils): New variable.
2012-12-18 23:04:09 +00:00
Nikita Karetnikov 3b48f78c85 distro: Add Libusb.
* distro/packages/libusb.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-18 22:44:18 +00:00
Ludovic Courtès 325285d581 distro: guile: Switch to 2.0.7.
* distro/packages/guile.scm (guile-2.0/fixed): Alias GUILE-2.0.
2012-12-18 22:16:21 +01:00
Nikita Karetnikov d8989c2394 distro: Add Check.
* distro/packages/check.scm: New file.
* Makefile.am (MODULES): Add it.
2012-12-17 15:26:58 +00:00
Ludovic Courtès c43e006164 download: Remove unreachable SourceForge mirror.
* guix/download.scm (%mirrors)[sourceforge]: Remove kent.dl.*, which is
  unreachable.
2012-12-17 00:18:15 +01:00
Ludovic Courtès 3c738d6bd8 download: Correctly detect "No route to host" conditions.
* guix/build/download.scm (open-connection-for-uri): Delete addrinfos
  with the same address.  Always open SOCK_STREAM/IPPROTO_IP sockets.
  Fix the error handler's condition to determine what to do.
  Reported by Nikita Karetnikov <nikita.karetnikov@gmail.com> at
  <http://lists.gnu.org/archive/html/bug-guix/2012-12/msg00150.html>.
2012-12-17 00:14:30 +01:00
Ludovic Courtès 868fce7c4a daemon: Gracefully handle Nix errors.
* nix/nix-daemon/guix-daemon.cc (main): Run Nix code in an exception
  handler; gracefully print error messages, and exit with EXIT_FAILURE.
2012-12-16 18:28:00 +01:00
Ludovic Courtès e2332e8aa7 daemon: Warn against running as root without `--build-users-group'.
* nix/nix-daemon/guix-daemon.cc (main): Recommend using
  `--build-users-group' when running  as root without a build users
  group.
2012-12-16 18:13:59 +01:00
Ludovic Courtès 72ce03739e daemon: Add `--chroot-directory'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_CHROOT_DIR): New macro.
  (options): Add `--chroot-directory'.
  (parse_opt): Handle it.
2012-12-16 18:09:27 +01:00
Ludovic Courtès d008415219 build-system/gnu: Patch shebangs in executable source files.
This allows many packages to build in a chroot that lacks /bin and
thus /bin/sh.

* guix/build/gnu-build-system.scm (patch-source-shebangs): New
  procedure.
  (%standard-phases): Add it.
* guix/build/utils.scm (executable-file?): New procedure.
* distro/packages/perl.scm (perl): Don't use /bin/sh to run `Configure'.
2012-12-15 16:35:26 +01:00
Ludovic Courtès c1c94acf32 build-system/gnu: Make the error port line-buffered.
* guix/build/gnu-build-system.scm (gnu-build): Make the error port
  line-buffered.
2012-12-15 16:01:52 +01:00
Ludovic Courtès 74baf333bf utils: Make the buffer size of `dump-port' a parameter.
* guix/build/utils.scm (dump-port): Make `buffer-size' a keyword
  parameter.
2012-12-15 15:54:29 +01:00
Ludovic Courtès a784c3077e Merge branch 'master' into core-updates
Conflicts:
	distro/packages/multiprecision.scm
2012-12-15 15:28:50 +01:00
Ludovic Courtès 07ab4bf1fc guix-build: Add `--verbosity'.
* guix-build.in (%default-options): Add `verbosity'.
  (%options): Add `--verbosity'.
  (guix-build): Pass it to `set-build-options'.
  (show-help): Update accordingly.
* doc/guix.texi (Invoking guix-build): Document `--verbosity'.
2012-12-15 15:21:38 +01:00
Ludovic Courtès da30f55582 daemon: Add `--debug' option.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_DEBUG): New macro.
  (options): Add `--debug'.
  (parse_opt): Set `verbosity' upon GUIX_OPT_DEBUG.
2012-12-15 00:06:09 +01:00
Ludovic Courtès 335dd762cc daemon: Disable use of substitutes for now.
* nix/nix-daemon/guix-daemon.cc (main): Set `settings.useSubstitutes' to
  false, and `settings.substituters' to the empty list.
2012-12-14 23:57:33 +01:00
Nikita Karetnikov 4a44e743a0 distro: Use (guix licenses) instead of strings.
* distro/packages/acl.scm, distro/packages/attr.scm,
  distro/packages/autotools.scm, distro/packages/base.scm,
  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/bison.scm, distro/packages/bootstrap.scm,
  distro/packages/compression.scm, distro/packages/cpio.scm,
  distro/packages/ddrescue.scm, distro/packages/ed.scm,
  distro/packages/flex.scm, distro/packages/gawk.scm,
  distro/packages/gdbm.scm, distro/packages/gettext.scm,
  distro/packages/gnupg.scm, distro/packages/gnutls.scm,
  distro/packages/gperf.scm, distro/packages/guile.scm,
  distro/packages/help2man.scm, distro/packages/less.scm,
  distro/packages/libffi.scm, distro/packages/libsigsegv.scm,
  distro/packages/libunistring.scm, distro/packages/linux.scm,
  distro/packages/lout.scm, distro/packages/lsh.scm,
  distro/packages/m4.scm, distro/packages/multiprecision.scm,
  distro/packages/nano.scm, distro/packages/ncurses.scm,
  distro/packages/nettle.scm, distro/packages/perl.scm,
  distro/packages/pkg-config.scm, distro/packages/pth.scm,
  distro/packages/readline.scm, distro/packages/recutils.scm,
  distro/packages/shishi.scm, distro/packages/system.scm,
  distro/packages/texinfo.scm, distro/packages/time.scm,
  distro/packages/wget.scm, distro/packages/which.scm,
  distro/packages/zile.scm: Use (guix licenses).
2012-12-14 23:37:24 +01:00
Andreas Enge 0d12bea306 build: Avoid brace expansion in `nix/sync-with-upstream'.
* nix/sync-with-upstream: Avoid brace expansion, for the sake of Dash.
2012-12-14 22:12:37 +01:00
Ludovic Courtès e1b7096acd daemon: Build `nix-setuid-helper'.
* daemon.am (libexec_PROGRAMS, nix_setuid_helper_SOURCES,
  nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): New variables.
* test-env.in: Set and export `NIX_SETUID_HELPER'.
* README (Installing Guix as non-root): New section.
2012-12-14 18:15:37 +01:00
Ludovic Courtès b3a53fb361 download: Work around (web client) bug <http://bugs.gnu.org/13095>.
* guix/build/download.scm: Annihilate `shutdown' in (web client).
2012-12-14 18:07:10 +01:00
Ludovic Courtès 7f131cf368 distro: Fix incorrect "bash" input for gcc-boot0-wrapped.
* distro/packages/base.scm (gcc-boot0-wrapped): Fix incorrect "bash" input.
2012-12-14 18:04:27 +01:00
Ludovic Courtès cdec10f936 release.nix: Remove trailing "/nix" from localstatedir.
* release.nix (tarball, build): Use /nix/var as localstatedir, as a
  follow-up to 7f4f065.
2012-12-14 10:44:22 +01:00
Ludovic Courtès 7f4f06513a build: Fix default value of `%state-directory'.
* guix/config.scm.in (%state-directory): Append `/nix'.
  Reported by Andreas Enge <andreas@enge.fr>.
2012-12-13 23:53:37 +01:00
Ludovic Courtès e2a06ddc7a build: Have `bootstrap' run all the necessary steps.
* bootstrap: Always run "git submodule init".  Run
  `nix/sync-with-upstream'.
  Reported by Nikita Karetnikov and Andreas Enge.
2012-12-13 23:46:33 +01:00
Ludovic Courtès 9d1d434cd0 build-system/gnu: Avoid using /bin/sh.
* guix/build/gnu-build-system.scm (configure): Add `inputs' keyword
  parameter.  Take Bash from there, falling back to /bin/sh.  Set
  `CONFIG_SHELL' and `SHELL' to that Bash.  Run "bash ./configure"
  instead of just "./configure".
* distro/packages/bootstrap.scm (%bootstrap-inputs): Add "bash".
* distro/packages/base.scm (gcc-boot0-wrapped): Use "bash" from
  %BOOT1-INPUTS instead of /bin/sh.
2012-12-13 23:38:32 +01:00
Ludovic Courtès 4aa52039a7 guix-package: Avoid use of the `guix' sub-directory for profiles.
* guix-package.in (%current-profile): Change to `guix-profile'.
2012-12-13 23:02:22 +01:00
Ludovic Courtès 6cb3ccf835 release.nix: tarball: Fix typo.
* release.nix (tarball): Replace "gnulib" by "nix".
2012-12-13 22:57:37 +01:00
Ludovic Courtès a020d2a996 guix-package: Use directory names from (guix config).
* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
  a hard-coded directory.
2012-12-13 22:57:36 +01:00
Ludovic Courtès cb1427dd08 release.nix: tarball: Fix typo.
* release.nix (tarball): Replace "gnulib" by "nix".
2012-12-13 22:53:45 +01:00