Ludovic Courtès
01d45404f6
distro: Configure ld and GCC to not look under /usr & co.
...
This fixes impurities with non-chroot builds on LFS-style distros.
* distro/packages/base.scm (binutils): Pass `--with-lib-path'.
(gcc-4.7): Pass `--with-local-prefix'.
* distro/packages/make-bootstrap.scm (%binutils-static): Pass
`--with-lib-path'.
2012-11-16 00:23:06 +01:00
Ludovic Courtès
ec4d308a9e
guix-download: Use code from (guix build download).
...
* guix-download.in (http-fetch, ftp-fetch): Remove.
(fetch-and-store): Replace `uri' parameter with `name', for the output
file name. Redirect the output of `fetch' to the error port.
(guix-download): Call `url-fetch' for all URI schemes except `file'.
Handle PATH equal to #f.
* guix/download.scm: Export `%mirrors'.
* tests/guix-download.sh: Change erroneous URL, because URLs at
example.com are all valid redirections.
2012-11-13 23:04:21 +01:00
Ludovic Courtès
352ec143de
guix-download: Add support for file:// URIs.
...
* guix-download.in (fetch-and-store): New procedure.
(guix-download): Use it to compute PATH. Call `add-to-store' when
a `file' URI scheme is used.
* Makefile.am (AM_TESTS_ENVIRONMENT): New variable.
* tests/guix-download.sh: Add test.
2012-11-13 22:58:43 +01:00
Ludovic Courtès
ecdb81e159
guix-download: Gracefully handle invalid URIs.
...
* guix-download.in (guix-download): Error out when `string->uri'
returns #f. Use `leave' when the scheme is unknown.
* tests/guix-download.sh: Add tests.
2012-11-13 22:15:59 +01:00
Ludovic Courtès
db32c281dd
distro: Add GNU Texinfo.
...
* distro/packages/texinfo.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:46:10 +01:00
Ludovic Courtès
7543f8653b
distro: Add GNU Libtasn1 and GnuTLS.
...
* distro/packages/gnutls.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:44:57 +01:00
Ludovic Courtès
2e65982725
distro: Add GNU Nettle.
...
* distro/packages/nettle.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:43:30 +01:00
Ludovic Courtès
c6eac7616c
distro: Add LZO.
...
* distro/packages/compression.scm (lzo): New variable.
2012-11-13 21:42:12 +01:00
Ludovic Courtès
92b8d1ea8b
tests: Make sure to use the bootstrap Guile.
...
* tests/builders.scm ("url-fetch", "gnu-build"): Pass `url-fetch'
#:guile %BOOTSTRAP-GUILE.
2012-11-13 00:40:29 +01:00
Ludovic Courtès
1dfb715df0
tests: Remove extraneous test.
...
* tests/derivations.scm ("build-expression->derivation for fixed-output
derivation"): Remove test. It is redundant with that in builders.scm,
and doesn't work out of the box with the statically-linked
%BOOTSTRAP-GUILE.
2012-11-13 00:34:56 +01:00
Ludovic Courtès
671d8f5e6f
build: Add $(top_builddir) to the load path.
...
* Makefile.am (DOWNLOAD_FILE): Add $(top_builddir) to the search path,
since that's where guix/config.scm is.
(.scm.go): Likewise.
2012-11-13 00:33:43 +01:00
Ludovic Courtès
25608d640a
distro: Patch libc to avoid accessing /etc/ld.so.cache and friends.
...
* distro/packages/base.scm (glibc): Apply `glibc-no-ld-so-cache.patch'.
(glibc-final): Inherit GLIBC's inputs.
* distro/packages/patches/glibc-no-ld-so-cache.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
0db342a590
distro: Use `mirror://' URLs.
...
* distro/packages/base.scm, distro/packages/bash.scm,
distro/packages/compression.scm, distro/packages/gawk.scm,
distro/packages/gperf.scm, distro/packages/guile.scm,
distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
distro/packages/libunistring.scm, distro/packages/m4.scm,
distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
distro/packages/pth.scm, distro/packages/readline.scm,
distro/packages/recutils.scm: Use `mirror://gnu' URLs.
* distro/packages/gnupg.scm: Use `mirror://gnupg' URLs.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
94d222ad97
download: Add support for mirror:// URLs.
...
* guix/download.scm (%mirrors): New variable. Mirror lists taken from
Nixpkgs.
(url-fetch): New `mirrors' keyword parameter.
[builder]: Pass it.
* guix/build/download.scm (url-fetch): New `mirrors' keyword parameter.
[maybe-expand-mirrors]: New procedure.
[uri]: Use it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
270246defe
download: Follow HTTP redirections.
...
* guix/build/download.scm (http-fetch): Follow the redirection when CODE
is 302.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
87f5d36630
Remove (guix http) and (guix ftp).
...
* guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm:
Remove.
* Makefile.am (MODULES): Likewise.
* tests/builders.scm, distro/packages/base.scm,
distro/packages/bash.scm, distro/packages/bdw-gc.scm,
distro/packages/compression.scm, distro/packages/gawk.scm,
distro/packages/gnupg.scm, distro/packages/gperf.scm,
distro/packages/guile.scm, distro/packages/libffi.scm,
distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
distro/packages/libunistring.scm, distro/packages/lout.scm,
distro/packages/m4.scm, distro/packages/multiprecision.scm,
distro/packages/ncurses.scm, distro/packages/perl.scm,
distro/packages/pkg-config.scm, distro/packages/pth.scm,
distro/packages/readline.scm, distro/packages/recutils.scm: Use
`url-fetch' instead of `http-fetch' and `ftp-fetch'.
* distro/packages/bootstrap.scm: Likewise
(bootstrap-origin): Remove references to `http-fetch' and
`ftp-fetch'.
* guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.
2012-11-13 00:23:39 +01:00
Ludovic Courtès
62cab99c32
Add (guix download) and (guix build download).
...
* guix/download.scm, guix/build/download.scm: New files.
* Makefile.am (MODULES): Add them.
* tests/builders.scm ("url-fetch"): New test.
* distro/packages/bootstrap.scm (bootstrap-origin): Support
`url-fetch'.
* guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead
of `http-fetch'.
2012-11-12 23:35:04 +01:00
Ludovic Courtès
ddc29a782e
Move base32 code to (guix base32).
...
* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right,
bytevector-quintet-length, bytevector-quintet-fold,
bytevector-quintet-fold-right, make-bytevector->base32-string,
%nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string,
bytevector->nix-base32-string, bytevector-quintet-set!,
bytevector-quintet-set-right!, base32-string-unfold,
base32-string-unfold-right, make-base32-string->bytevector,
base32-string->bytevector, nix-base32-string->bytevector): Move to...
* guix/base32.scm: ... here. New file.
* tests/utils.scm (%nix-hash, "bytevector->base32-string",
"base32-string->bytevector", "nix-base32-string->bytevector", "sha256
& bytevector->base32-string"): Move to...
* tests/base32.scm: ... here. New file
* guix-download.in, guix/derivations.scm, guix/packages.scm,
guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust
accordingly.
* guix.scm (%public-modules): Add `base32'.
2012-11-11 22:33:28 +01:00
Ludovic Courtès
9e782349fe
tests: Choose a less expensive test for packages.
...
* tests/packages.scm (%bootstrap-inputs): Remove.
("GNU Hello"): Rename to...
("GNU Make, bootstrap"): ... this. Build GNU-MAKE-BOOT0 instead of
HELLO.
2012-11-09 23:59:11 +01:00
Ludovic Courtès
cfeb75954a
http: Add informative output.
...
* guix/build/http.scm (http-fetch): Emit message indicating the
download.
2012-11-09 00:21:18 +01:00
Ludovic Courtès
e722af7522
http: Check the HTTP response code, and bail if not 200.
...
* guix/build/http.scm (http-fetch): Check RESP's code; error out when
it's not 200.
2012-11-09 00:19:20 +01:00
Ludovic Courtès
7bdd1f0e3c
derivations: build-expression->derivation: Builder only refers to sources.
...
* guix/derivations.scm (build-expression->derivation)[source-path]: New
procedure.
[builder]: Pass only sources as references. This fixes a bug whereby
changing a fixed-output drv referred to by a builder would cause the
builder's hash to change, thereby leading to a full rebuild.
* tests/derivations.scm ("build-expression->derivation with a
fixed-output input"): New test.
2012-11-09 00:07:10 +01:00
Ludovic Courtès
813986ac09
derivations: Add tests relative to fixed-output derivations.
...
* tests/derivations.scm ("fixed-output derivation"): Add comment that
the reference to BUILDER is optional.
("fixed-output derivation: output paths are equal",
"derivation with a fixed-output input",
"build-expression->derivation: same fixed-output path"): New tests.
2012-11-08 23:55:12 +01:00
Ludovic Courtès
c4c7406b90
store: Document add-to-store' hack for
fixed?'.
...
* guix/store.scm (add-to-store): Document that `fixed?' must be #t.
2012-11-08 00:26:13 +01:00
Ludovic Courtès
a3aa25f83d
guix-download: Print the hash of the file's contents, no that of the path.
...
* guix-download.in (guix-download): Display the hash of the contents of
PATH, not the path hash. Also, call `add-to-store' with FIXED? = #t.
2012-11-08 00:25:26 +01:00
Ludovic Courtès
37d19403e7
guix-download: Error out when the HTTP response code is not 200.
...
* guix-download.in (http-fetch): Leave with an error message when
RESPONSE's code is not 200.
* tests/guix-download.sh: New file.
* Makefile.am (TESTS): Add it.
2012-11-08 00:13:25 +01:00
Ludovic Courtès
912209ee61
guix-build: Error out when `-S' used for source-less package.
...
* guix-build.in (derivations-from-package-expressions): Leave with an
error message when SOURCE? is #t and P has no source.
* tests/guix-build.sh: Add test.
2012-11-07 23:44:38 +01:00
Ludovic Courtès
eeaf44276c
doc: Document the features and `guix-package'.
...
* doc/guix.texi: Change the category to "Package management". Add an
@direntry for "Invoking guix-package".
(Package Management): New chapter.
2012-11-07 19:27:42 +01:00
Ludovic Courtès
9518856b9b
guix-package: Fix handling of the PACKAGE:OUTPUT syntax.
...
* guix-package.in (guix-package)[find-package]: Return the correct NAME
and SUB-DRV when NAME contains #\:.
* tests/guix-package.sh (profile): Add test.
2012-11-07 19:14:22 +01:00
Ludovic Courtès
1227fabb65
guix-package: Fix invalid module use.
...
* guix-package.in: Use (distro packages guile), not (... base).
2012-11-07 19:13:10 +01:00
Ludovic Courtès
74fe2df2ad
build: Remove now unnecessary dependency of downloads on guix/utils.go.
...
* 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):
Remove dependency on guix/utils.go.
2012-11-07 18:00:16 +01:00
Ludovic Courtès
c78bd12b44
doc: Document `guix-build'.
...
* doc/guix.texi (Invoking guix-build): Populate.
2012-11-07 17:07:15 +01:00
Ludovic Courtès
d3c9a1dae8
doc: Remove unnecessary @ifinfo.
...
* doc/guix.texi: Remove @ifinfo around @dir{category,entry}. Suggested
by Karl Berry <karl@freefriends.org>.
2012-11-07 16:45:11 +01:00
Ludovic Courtès
8ba60d7b65
distro: Move bootstrap tarball packages to (distro packages make-bootstrap).
...
* distro/packages/base.scm (binutils-final): Make public.
(static-package, %bash-static, %static-inputs, %static-binaries,
%binutils-static, %binutils-static-stripped, %glibc-stripped,
%gcc-static, %gcc-stripped, %guile-static, %guile-static-stripped,
tarball-package, %bootstrap-binaries-tarball,
%binutils-bootstrap-tarball, %glibc-bootstrap-tarball,
%guile-bootstrap-tarball): Move to...
* distro/packages/make-bootstrap.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
2012-11-06 22:55:44 +01:00
Ludovic Courtès
ce1ef15b25
distro: bash-final: Link with `-static-libgcc'.
...
* distro/packages/base.scm (bash-final): Pass through
`static-libgcc-package'.
2012-11-05 23:51:43 +01:00
Ludovic Courtès
53dcd5eea1
build-system/gnu: Add `static-libgcc-package' & supporting procedure.
...
* guix/build-system/gnu.scm (package-with-extra-configure-variable,
static-libgcc-package): New procedures.
2012-11-05 23:51:09 +01:00
Ludovic Courtès
bca114d528
distro: gcc: Don't add a RUNPATH to GCC when using `-static-libgcc'.
...
* distro/packages/base.scm (gcc-4.7)[LIB_SPEC]: Add a `-rpath' to GCC
only when !static and !static-libgcc.
2012-11-05 23:51:07 +01:00
Ludovic Courtès
4500581a7c
distro: readline: Allow stripping of the libraires.
...
* distro/packages/readline.scm (readline)[arguments]: Add `post-install'
phase to make libraries writable.
2012-11-05 23:51:01 +01:00
Ludovic Courtès
0af2c24ef7
utils: Add default-keyword-arguments' and
substitute-keyword-arguments'.
...
* distro/packages/base.scm (default-keyword-arguments,
substitute-keyword-arguments): Move to...
* guix/utils.scm: ... here.
2012-11-05 23:50:57 +01:00
Ludovic Courtès
a48dddfe9c
distro: Add missing `package-with-bootstrap-guile'.
...
* distro/packages/base.scm (binutils-final): Add missing
`package-with-bootstrap-guile'.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
d1acf1fd4a
distro: recutils: Comment out optional dependencies.
...
* distro/packages/recutils.scm (recutils): Comment out optional
dependencies not packaged here.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
8d1939e4d0
distro: Add GnuPG and companion libraries.
...
* distro/packages/gnupg.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
6a92093dcd
distro: Add zlib.
...
* distro/packages/compression.scm (zlib): New variable.
2012-11-05 00:28:37 +01:00
Ludovic Courtès
a268f085db
distro: Add (distro packages compression).
...
* distro/packages/base.scm (gzip, bzip2, xz): Move to...
* distro/packages/compression.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:16:58 +01:00
Ludovic Courtès
d373e57ea3
distro: Add GNU Pth.
...
* distro/packages/pth.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:08:44 +01:00
Ludovic Courtès
1627f7f733
distro: Add GNU gperf.
...
* distro/packages/gperf.scm: New file.
* Makefile.am (MODULES): Add it.
* distro/packages/guile.scm (guile-reader): Use it.
2012-11-04 22:55:59 +01:00
Ludovic Courtès
c44899a28b
distro: Split (distro packages base) into several files.
...
* distro/packages/base.scm (libsigsegv, gawk, perl, m4, gmp, mpfr, mpc,
ncurses, readline, bash, libtool, libunistring, libffi, pkg-config,
libgc): Move to modules of their own.
(guile-1.8, guile-2.0): Move to...
* distro/packages/guile.scm: ... here.
* distro/packages/bash.scm, distro/packages/bdw-gc.scm,
distro/packages/gawk.scm, distro/packages/libffi.scm,
distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
distro/packages/libunistring.scm, distro/packages/m4.scm,
distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
distro/packages/perl.scm, distro/packages/pkg-config.scm,
distro/packages/readline.scm: New files.
2012-11-04 22:37:22 +01:00
Ludovic Courtès
18633d4f35
distro: Move bootstrap packages to (distro packages bootstrap).
...
* 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.
2012-11-04 22:04:41 +01:00
Ludovic Courtès
9d9e645081
distro: Go for one module per package.
...
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.
2012-11-04 21:46:14 +01:00
Ludovic Courtès
59b775cca9
doc: Add "Adding new packages" in `HACKING'.
...
* HACKING (Adding new packages): New section.
2012-11-04 19:45:40 +01:00