aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* distro: Move bootstrap packages to (distro packages bootstrap).Ludovic Courtès2012-11-04
| | | | | | | | | | | | | | | | | | * distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile, bootstrap-origin, package-from-tarball, %bootstrap-base-url, %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move to ... * distro/packages/bootstrap.scm: ... here. New file. * Makefile.am (MODULES): Add it. * tests/builders.scm: Use (distro packages bootstrap). (%bootstrap-guile): Remove. * tests/packages.scm: Likewise. * tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs. * tests/derivations.scm: Use (distro packages bootstrap) and remove @@ to access %bootstrap-coreutils&co. * HACKING (When the platform is supported by Nixpkgs): Update accordingly.
* distro: Go for one module per package.Ludovic Courtès2012-11-04
| | | | | | | | | | | | | | | | The alternative, which was to use one module per category, would probably not scale well. First, because many packages could fall into several categories (does GnuTLS go into "networking", "security", or "libraries"?). Second, because that could easily lead to circular dependencies among modules ("security" and "networking" depend on each other, etc.) * distro/packages/databases.scm: Rename to... * distro/packages/recutils.scm: ... this. * distro/packages/typesetting.scm: Rename to... * distro/packages/lout.scm: ... this. * Makefile.am (MODULES): Adjust accordingly. * po/POTFILES.in: Likewise.
* doc: Add "Adding new packages" in `HACKING'.Ludovic Courtès2012-11-04
| | | | * HACKING (Adding new packages): New section.
* Add (guix snix) and the `guix-import' command.Ludovic Courtès2012-11-04
| | | | | | | | * guix/snix.scm, tests/snix.scm, guix-import.in: New files. * configure.ac: Output `guix-import' and make it executable. * Makefile.am (bin_SCRIPTS): Add `guix-import'. (MODULES): Add `guix/snix.scm'. (TESTS): Add `tests/snix.scm'.
* guix-package: Remove extraneous procedures.Ludovic Courtès2012-11-04
| | | | * guix-package.in (_, N_): Remove.
* packages: `description' → `synopsis', `long-description' → `description'.Ludovic Courtès2012-11-04
| | | | | | | | | * guix/packages.scm (<package>): Rename `description' to `synopsis', and `long-description' to `description'. * tests/packages.scm, distro/packages/base.scm, distro/packages/databases.scm, distro/packages/guile.scm, distro/packages/typesetting.scm: Update accordingly. * po/Makevars (XGETTEXT_OPTIONS): Update `--keyword' flags accordingly.
* release.nix: Pass `--with-libgcrypt-prefix' in the `tarball' job.Ludovic Courtès2012-11-04
| | | | | * release.nix (jobs.tarball)[configureFlags]: Pass `--with-libgcrypt-prefix'.
* utils: Add `package-name->name+version'.Ludovic Courtès2012-11-04
| | | | | | * guix/utils.scm (package-name->name+version): New procedure. * guix-package.in (guix-package)[find-package]: Use it. * tests/utils.scm ("package-name->name+version"): New test.
* build: Require GNU libgcrypt.Ludovic Courtès2012-11-03
| | | | | | | | | | | | * guix/utils.scm (sha256): Remove Coreutils- and libchop-based implementations. * README: Update accordingly. * m4/guix.m4: New file. * configure.ac: Use `GUIX_ASSERT_LIBGCRYPT_USABLE'. Set and substitute `LIBGCRYPT_PREFIX'. * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Pass `--with-libgcrypt-prefix=$(LIBGCRYPT_PREFIX)'.
* guix-package: Use more (guix ui) features.Ludovic Courtès2012-11-03
| | | | | * guix-package.in (leave): Remove. (guix-package): Wrap body in `with-error-handling'.
* ui: Factorize `--version'.Ludovic Courtès2012-11-03
| | | | | | | | * guix/ui.scm (show-version-and-exit): New procedure. * guix-build.in (show-version): Remove. (%options)["version"]: Use `show-version-and-exit'. * guix-download.in: Likewise. * guix-package.in: Likewise.
* build: Produce (guix config) instead of using compile-time tricks.Ludovic Courtès2012-11-03
| | | | | | | | | | | | | | * guix/config.scm.in: New file. * guix/utils.scm: Use it. (%libgcrypt): Remove. (%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use %NIXPKGS instead. (nixpkgs-derivation): Use %NIX-INSTANTIATE. * pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove. * configure.ac: Emit `guix/config.scm'. * Makefile.am (GOBJECTS): Add `guix/config.go'. (nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.
* build: Clearly mark Nixpkgs as optional.Ludovic Courtès2012-11-03
| | | | | | | | | | | | | | | | * configure.ac: Always show the result of checking for Nixpkgs. Don't warn when Nixpkgs is not found. * Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove `--with-nixpkgs' flag. * guix/utils.scm (%nixpkgs-directory): Use either the compile-time or the run-time `NIXPKGS' environment variable. * release.nix (jobs.tarball, jobs.build): Remove `--with-nixpkgs' configure flag. * README: Mark Nixpkgs as optional. * distro/packages/databases.scm, distro/packages/guile.scm, distro/packages/typesetting.scm: Change uses of `nixpkgs-derivation*' to `nixpkgs-derivation', to avoid failing at compile-time.
* tests: Run without substitutes.Ludovic Courtès2012-11-02
| | | | | * tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set #:use-substitutes? #f for %STORE.
* Add a preliminary `guix-package' command-line tool.Ludovic Courtès2012-11-01
| | | | | | | * guix-package.in, tests/guix-package.sh: New files. * configure.ac: Output `guix-package'. * Makefile.am (TESTS): Add `tests/guix-package.sh'. (bin_SCRIPTS): Add `guix-package'.
* store: Add `store-path-package-name'.Ludovic Courtès2012-11-01
| | | | | * guix/store.scm (store-path-package-name): New procedure. * tests/utils.scm ("store-path-package-name"): New test.
* utils: Remove stuff committed by error.Ludovic Courtès2012-11-01
| | | | | | This was wrongfully committed in df1fab58. * guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.
* build: Add unit test for the `guix-build' command.Ludovic Courtès2012-11-01
| | | | | | | | | * tests/guix-build.sh: New file. * Makefile.am (TESTS): Add it. (LOG_COMPILER): Rename to... (SCM_LOG_COMPILER): ... this. Move flags to... (AM_SCM_LOG_FLAGS): ... this. (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
* Add (guix ui).Ludovic Courtès2012-11-01
| | | | | | | | | | | | * guix/ui.scm: New file. * Makefile.am (MODULES): Add it. * po/POTFILES.in: Add it. * guix-build.in: Use it. (_, N_, leave): Remove. (guix-build): Use `with-error-handling' instead of the `guard' form. * guix-download.in: Use it. (_, N_, leave): Remove.
* build-system/gnu: Distinguish between imported modules and used modules.Ludovic Courtès2012-10-31
| | | | | * guix/build-system/gnu.scm (gnu-build): Add the `imported-modules' keyword parameter. Pass it to `build-expression->derivation'.
* release.nix: Use `--no-substitutes' in `distro.hello'.Ludovic Courtès2012-10-31
| | | | | | * release.nix (distro.hello): Use `guix-build --no-substitutes', to avoid failures due to unavailable stale substitutes on hydra.nixos.org.
* guix-build: Add `--root'.Ludovic Courtès2012-10-30
| | | | | | | | * guix/store.scm (add-indirect-root): New operation. * guix-build.in (show-help): Document `--root'. (%options): Add `--root'. (guix-build)[register-root]: New procedure. Call it when `--root' is passed.
* Add (guix build union).Ludovic Courtès2012-10-29
| | | | | | * guix/build/union.scm, tests/union.scm: New files. * Makefile.am (MODULES): Add `guix/build/union.scm'. (TESTS): Add `tests/union.scm'.
* release.nix: Change `distro.hello' to produce something.Ludovic Courtès2012-10-28
| | | | | | * release.nix (distro.hello)[buildPhase]: Tee the log to $out. Add a `name' attribute; remove `buildInputs' and instead use the full path to `guix-build'.
* distro: Build Bash sequentially.Ludovic Courtès2012-10-28
| | | | | * distro/packages/base.scm (bash): Set `#:parallel-build?' and `#:parallel-tests?' to #f.
* tests: Use our own bootstrap tools.Ludovic Courtès2012-10-28
| | | | | | * tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro. * tests/packages.scm (%bootstrap-inputs): Likewise. * tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.
* release.nix: Add a `distro.hello' job.Ludovic Courtès2012-10-27
| | | | * release.nix (distro.hello): New job.
* build: Preserve the executable bit of bootstrap binaries.Ludovic Courtès2012-10-27
| | | | * Makefile.am (install-data-hook): New target.
* build: Make sure scripts know where to find their modules.Ludovic Courtès2012-10-27
| | | | | * guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so that `guilemoduledir' expands to something meaningful.
* release.nix: Pre-download the Guile bootstrap tarball.Ludovic Courtès2012-10-27
| | | | | * release.nix (bootstrap_guile): New variable. (build)[preBuild]: New attribute.
* build: Fix out-of-source-tree builds.Ludovic Courtès2012-10-27
| | | | | | | | * Makefile.am (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): Make the target's parent directory. * pre-inst-env.in (DISTRO_BOOTSTRAP_PATH): Add the builddir-relative directory.
* distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.Ludovic Courtès2012-10-27
| | | | | | | | | | | | | * distro.scm (not-colon): New variable. (%patch-directory): Rename to... (%patch-path): ... this. Turn into a list. Expect $DISTRO_PATCH_PATH to be a colon-separated search path. (%bootstrap-binaries-directory): Rename to... (%bootstrap-binaries-path): ... this. Likewise. (search-patch, search-bootstrap-binary): Adjust accordingly. * pre-inst-env.in: Change to use `DISTRO_PATCH_PATH' and `DISTRO_BOOTSTRAP_PATH'.
* release.nix: Set succeed-on-failure and build-out-source-tree.Ludovic Courtès2012-10-27
| | | | | | * release.nix: Define `succeedOnFailure', `keepBuildDirectory', and `buildOutOfSourceTree'. (build): Inherit them.
* build: Move `distro/patches' to `distro/packages/patches'.Ludovic Courtès2012-10-27
| | | | | | | * distro/patches: Move directory to... * distro/packages/patches: ... here. * Makefile.am (dist_patch_DATA): Adjust accordingly. * pre-inst-env.in (DISTRO_PATCH_DIRECTORY): Likewise.
* build: Use `pre-inst-env' to compile the source.Ludovic Courtès2012-10-27
| | | | | | * Makefile.am (.scm.go): Use `pre-inst-env' instead of re-defining the environment variables, except for `DISTRO_INSTALLED_PATCH_DIRECTORY' and `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY'.
* guix-build: Gracefully handle `&package-input-error' conditions.Ludovic Courtès2012-10-27
| | | | | | * guix/packages.scm: Export `package-error?' and `package-input-error?'. * guix-build.in (guix-build): Catch `&package-input-error' conditions, print a human-readable message, and exit.
* location: Start column numbers at 1.Ludovic Courtès2012-10-27
| | | | * guix/utils.scm (source-properties->location): Use COL + 1.
* distro: Add i686-linux port.Ludovic Courtès2012-10-26
| | | | | | | | | | | | | | | | | * distro/packages/bootstrap/i686-linux/bash, distro/packages/bootstrap/i686-linux/mkdir, distro/packages/bootstrap/i686-linux/tar, distro/packages/bootstrap/i686-linux/xz: New files. * distro/packages/base.scm (%bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Add hashes of the i686-linux tarballs. * Makefile.am (bootstrap_i686_linuxdir, dist_bootstrap_i686_linux_DATA, nodist_bootstrap_i686_linux_DATA): New variables (DISTCLEANFILES): Add $(nodist_bootstrap_i686_linux_DATA). (distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz): New rule.
* distro: gcc: Adjust to support non-x86_64 architectures.Ludovic Courtès2012-10-26
| | | | | | * distro/packages/base.scm (gcc-4.7)[arguments]: In the `pre-configure' phase, patch all the relevant gcc/config files, not just those for x86_64-linux-gnu.
* utils: Remove special `substitute*' syntax for lists of files.Ludovic Courtès2012-10-26
| | | | | | | | * guix/build/utils.scm (substitute*): Remove special syntax for list-of-files; instead, check whether FILE is `list?' at run time. * distro/packages/base.scm (gcc-4.7, %binutils-static): Adjust accordingly.
* doc: Add `HACKING'.Ludovic Courtès2012-10-25
| | | | | * HACKING: New file. * Makefile.am (EXTRA_DIST): Add it.
* Add a `system' parameter to `nixpkgs-derivation'.Ludovic Courtès2012-10-25
| | | | | * guix/utils.scm (nixpkgs-derivation): Add a `system' parameter. Pass it in the `nix-instantiate' invocation.
* packages: Pass `system' around.Ludovic Courtès2012-10-25
| | | | | | | | | | * guix/packages.scm (package-source-derivation): Add `system' parameter. Pass it to METHOD. (package-derivation)[expand-input]: Pass SYSTEM to `package-derivation' and `package-source-derivation'. * distro/packages/base.scm (package-with-bootstrap-guile)[boot]: Pass SYSTEM to FETCH.
* derivations: Make sure `build-expression->derivation' & co. pass `system'.Ludovic Courtès2012-10-25
| | | | | | | * guix/derivations.scm (imported-files): Call `build-expression->derivation' with SYSTEM, not (%current-system). (build-expression->derivation): Pass SYSTEM to `imported-modules' and `compiled-modules'.
* derivations: Pass the derivation of guile-for-build to `imported-files' & co.Ludovic Courtès2012-10-25
| | | | | | | | | | | * guix/derivations.scm (%guile-for-build): Initialize to #f. (imported-files, imported-modules, compiled-modules): Add `guile' keyword parameter. Pass it down to `build-expression->derivation'. (build-expression->derivation)[guile-drv]: New variable. Pass it as the #:guile parameter for `imported-modules' and `compiled-modules'. * tests/derivations.scm: Set %GUILE-FOR-BUILD to the derivation of %BOOTSTRAP-GUILE.
* distro: Build the final inputs against the final Bash, not the bootstrap Bash.Ludovic Courtès2012-10-25
| | | | | | * distro/packages/base.scm (%boot4-inputs): New variable. (guile-final): Use it. (%final-inputs): Build with %BOOT4-INPUTS, not %BOOT3-INPUTS.
* distro: ncurses: Don't patch shebangs.Ludovic Courtès2012-10-25
| | | | * distro/packages/base.scm (ncurses): Pass #:patch-shebangs? #f.
* distro: Bootstrap using our own binaries instead of those from Nixpkgs.Ludovic Courtès2012-10-25
| | | | | * distro/packages/base.scm (%bootstrap-inputs): Switch to using our own bootstrap binaries instead of those from Nixpkgs.
* distro: Build glibc with `--enable-obsolete-rpc'.Ludovic Courtès2012-10-25
| | | | | * distro/packages/base.scm (glibc-final): Pass `--enable-obsolete-rpc'. (%bootstrap-glibc): Update hash accordingly.
* distro: Add missing Linux-Libre headers to the bootstrap glibc.Ludovic Courtès2012-10-25
| | | | | | * distro/packages/base.scm (%glibc-stripped): Copy all of Linux-Libre's `include/asm' directory; copy a few linux/ headers too. (%bootstrap-glibc): Update tarball hash.