diff options
29 files changed, 72 insertions, 371 deletions
diff --git a/Makefile.am b/Makefile.am index c4e03a2d6a..3cb7bf3bf9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -30,15 +30,11 @@ MODULES = \ guix/build-system.scm \ guix/build-system/gnu.scm \ guix/build-system/trivial.scm \ - guix/ftp.scm \ guix/ftp-client.scm \ - guix/http.scm \ guix/store.scm \ guix/ui.scm \ guix/build/download.scm \ guix/build/gnu-build-system.scm \ - guix/build/ftp.scm \ - guix/build/http.scm \ guix/build/utils.scm \ guix/build/union.scm \ guix/packages.scm \ diff --git a/distro/packages/base.scm b/distro/packages/base.scm index 707e8db2f2..04b1cccedc 100644 --- a/distro/packages/base.scm +++ b/distro/packages/base.scm @@ -27,8 +27,7 @@ #:use-module (distro packages multiprecision) #:use-module (distro packages perl) #:use-module (guix packages) - #:use-module (guix ftp) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix utils) @@ -47,7 +46,7 @@ (name "hello") (version "2.8") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/hello/hello-" version ".tar.gz")) (sha256 @@ -68,7 +67,7 @@ (name "grep") (version "2.14") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/grep/grep-" version ".tar.xz")) (sha256 @@ -88,7 +87,7 @@ lines.") (name "sed") (version "4.2.1") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/sed/sed-" version ".tar.bz2")) (sha256 @@ -110,7 +109,7 @@ substituting multiple occurrences of a string within a file.") (name "tar") (version "1.26") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/tar/tar-" version ".tar.bz2")) (sha256 @@ -140,7 +139,7 @@ files (as archives).") (name "patch") (version "2.6.1") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/patch/patch-" version ".tar.xz")) (sha256 @@ -166,7 +165,7 @@ producing patched versions.") (name "diffutils") (version "3.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/diffutils/diffutils-" version ".tar.xz")) (sha256 @@ -211,7 +210,7 @@ You can use the sdiff command to merge two files interactively.") (name "findutils") (version "4.4.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/findutils/findutils-" version ".tar.gz")) (sha256 @@ -253,7 +252,7 @@ The tools supplied with this package are: (name "coreutils") (version "8.19") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 @@ -279,7 +278,7 @@ are expected to exist on every operating system.") (name "make") (version "3.82") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/make/make-" version ".tar.bz2")) (sha256 @@ -308,7 +307,7 @@ that it is possible to use Make to build and install the program.") (name "binutils") (version "2.22") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/binutils/binutils-" version ".tar.bz2")) (sha256 @@ -341,7 +340,7 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.") (name "gcc") (version "4.7.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/gcc/gcc-" version "/gcc-" version ".tar.bz2")) (sha256 @@ -469,7 +468,7 @@ used in the GNU system including the GNU/Linux variant.") (name "linux-libre-headers") (version version*) (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://linux-libre.fsfla.org/pub/linux-libre/releases/3.3.8-gnu/linux-libre-" version "-gnu.tar.xz")) @@ -498,7 +497,7 @@ used in the GNU system including the GNU/Linux variant.") (name "glibc") (version "2.16.0") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/glibc/glibc-" version ".tar.xz")) (sha256 diff --git a/distro/packages/bash.scm b/distro/packages/bash.scm index b4e5c1158a..3ee54299f9 100644 --- a/distro/packages/bash.scm +++ b/distro/packages/bash.scm @@ -20,7 +20,7 @@ #:use-module (distro packages ncurses) #:use-module (distro packages readline) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -36,7 +36,7 @@ (name "bash") (version "4.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/bash/bash-" version ".tar.gz")) (sha256 diff --git a/distro/packages/bdw-gc.scm b/distro/packages/bdw-gc.scm index 9cf6c4cb2d..7f9800eb09 100644 --- a/distro/packages/bdw-gc.scm +++ b/distro/packages/bdw-gc.scm @@ -18,7 +18,7 @@ (define-module (distro packages bdw-gc) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -27,7 +27,7 @@ (name "libgc") (version "7.2alpha6") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-" version ".tar.gz")) diff --git a/distro/packages/bootstrap.scm b/distro/packages/bootstrap.scm index 95a7de444c..8165be1d53 100644 --- a/distro/packages/bootstrap.scm +++ b/distro/packages/bootstrap.scm @@ -19,8 +19,6 @@ (define-module (distro packages bootstrap) #:use-module (distro) #:use-module (guix packages) - #:use-module (guix ftp) - #:use-module (guix http) #:use-module (guix download) #:use-module (guix build-system) #:use-module (guix build-system gnu) @@ -67,11 +65,7 @@ (let ((orig-method (origin-method source))) (origin (inherit source) - (method (cond ((eq? orig-method http-fetch) - (boot http-fetch)) - ((eq? orig-method ftp-fetch) - (boot ftp-fetch)) - ((eq? orig-method url-fetch) + (method (cond ((eq? orig-method url-fetch) (boot url-fetch)) (else orig-method)))))) @@ -207,7 +201,7 @@ $out/bin/guile --version~%" (package-from-tarball "bootstrap-binaries" (lambda (system) (origin - (method http-fetch) + (method url-fetch) (uri (string-append %bootstrap-base-url "/" system "/static-binaries.tar.xz")) @@ -226,7 +220,7 @@ $out/bin/guile --version~%" (package-from-tarball "binutils-bootstrap" (lambda (system) (origin - (method http-fetch) + (method url-fetch) (uri (string-append %bootstrap-base-url "/" system "/binutils-2.22.tar.xz")) @@ -280,7 +274,7 @@ $out/bin/guile --version~%" ("tarball" ,(lambda (system) (bootstrap-origin (origin - (method http-fetch) + (method url-fetch) (uri (string-append %bootstrap-base-url "/" system "/glibc-2.16.0.tar.xz")) (sha256 @@ -351,7 +345,7 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ ("tarball" ,(lambda (system) (bootstrap-origin (origin - (method http-fetch) + (method url-fetch) (uri (string-append %bootstrap-base-url "/" system "/gcc-4.7.2.tar.xz")) (sha256 diff --git a/distro/packages/compression.scm b/distro/packages/compression.scm index b6f16afdf5..d5299f62bb 100644 --- a/distro/packages/compression.scm +++ b/distro/packages/compression.scm @@ -18,7 +18,7 @@ (define-module (distro packages compression) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public zlib @@ -27,7 +27,7 @@ (version "1.2.7") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://zlib.net/zlib-" version ".tar.gz")) (sha256 @@ -66,7 +66,7 @@ in compression.") (name "gzip") (version "1.5") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/gzip/gzip-" version ".tar.gz")) (sha256 @@ -114,7 +114,7 @@ superior compression ratio of gzip is just a bonus.") (name "bzip2") (version "1.0.6") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://www.bzip.org/" version "/bzip2-" version ".tar.gz")) (sha256 @@ -150,7 +150,7 @@ decompression.") (name "xz") (version "5.0.4") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://tukaani.org/xz/xz-" version ".tar.gz")) (sha256 diff --git a/distro/packages/gawk.scm b/distro/packages/gawk.scm index b04a1ebb57..58c1bf1bea 100644 --- a/distro/packages/gawk.scm +++ b/distro/packages/gawk.scm @@ -19,7 +19,7 @@ (define-module (distro packages gawk) #:use-module (distro packages libsigsegv) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -28,7 +28,7 @@ (name "gawk") (version "4.0.0") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/gawk/gawk-" version ".tar.bz2")) (sha256 diff --git a/distro/packages/gnupg.scm b/distro/packages/gnupg.scm index 062187c0f8..7bc3b0c266 100644 --- a/distro/packages/gnupg.scm +++ b/distro/packages/gnupg.scm @@ -21,7 +21,7 @@ #:use-module (distro packages readline) #:use-module (distro packages compression) #:use-module (guix packages) - #:use-module (guix ftp) + #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public libgpg-error @@ -30,7 +30,7 @@ (version "1.10") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-" version ".tar.bz2")) (sha256 @@ -53,7 +53,7 @@ Daemon and possibly more in the future.") (version "1.5.0") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 @@ -79,7 +79,7 @@ functions, random numbers and a lot of supporting functions.") (version "2.0.3") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-" version ".tar.bz2")) (sha256 @@ -104,7 +104,7 @@ provided.") (version "1.2.0") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnupg.org/gcrypt/libksba/libksba-" version ".tar.bz2")) @@ -129,7 +129,7 @@ specifications are building blocks of S/MIME and TLS.") (version "2.0.19") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-" version ".tar.bz2")) diff --git a/distro/packages/gperf.scm b/distro/packages/gperf.scm index 392b9dd4fe..099038af69 100644 --- a/distro/packages/gperf.scm +++ b/distro/packages/gperf.scm @@ -18,7 +18,7 @@ (define-module (distro packages gperf) #:use-module (guix packages) - #:use-module (guix ftp) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -28,7 +28,7 @@ (version "3.0.4") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnu.org/gnu/gperf/gperf-" version ".tar.gz")) (sha256 diff --git a/distro/packages/guile.scm b/distro/packages/guile.scm index d65584f371..937be8dd2c 100644 --- a/distro/packages/guile.scm +++ b/distro/packages/guile.scm @@ -29,7 +29,7 @@ #:use-module (distro packages pkg-config) #:use-module (distro packages readline) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix build-system gnu)) ;;; Commentary: @@ -43,7 +43,7 @@ (name "guile") (version "1.8.8") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version ".tar.gz")) (sha256 @@ -93,7 +93,7 @@ extensible. It supports many SRFIs.") (name "guile") (version "2.0.6") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version ".tar.xz")) (sha256 @@ -142,7 +142,7 @@ or 2.0." (name (string-append "guile-reader-for-guile-" (package-version guile))) (version "0.6") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-" version ".tar.gz")) diff --git a/distro/packages/libffi.scm b/distro/packages/libffi.scm index dca0387433..8d702a92dd 100644 --- a/distro/packages/libffi.scm +++ b/distro/packages/libffi.scm @@ -18,7 +18,7 @@ (define-module (distro packages libffi) #:use-module (guix packages) - #:use-module (guix ftp) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -40,7 +40,7 @@ (name "libffi") (version "3.0.9") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://sourceware.org/pub/libffi/" name "-" version ".tar.gz")) diff --git a/distro/packages/libsigsegv.scm b/distro/packages/libsigsegv.scm index 9c6d80296d..030557f918 100644 --- a/distro/packages/libsigsegv.scm +++ b/distro/packages/libsigsegv.scm @@ -18,7 +18,7 @@ (define-module (distro packages libsigsegv) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -27,7 +27,7 @@ (name "libsigsegv") (version "2.10") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-" version ".tar.gz")) diff --git a/distro/packages/libtool.scm b/distro/packages/libtool.scm index 02af715d32..63c88cd4cd 100644 --- a/distro/packages/libtool.scm +++ b/distro/packages/libtool.scm @@ -21,7 +21,7 @@ #:use-module (distro packages m4) #:use-module (distro packages perl) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -30,7 +30,7 @@ (name "libtool") (version "2.4.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/libtool/libtool-" version ".tar.gz")) (sha256 diff --git a/distro/packages/libunistring.scm b/distro/packages/libunistring.scm index fb912eaf8f..0d865645bd 100644 --- a/distro/packages/libunistring.scm +++ b/distro/packages/libunistring.scm @@ -18,7 +18,7 @@ (define-module (distro packages libunistring) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -27,7 +27,7 @@ (name "libunistring") (version "0.9.3") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/libunistring/libunistring-" version ".tar.gz")) diff --git a/distro/packages/lout.scm b/distro/packages/lout.scm index 3045afa3ab..0ea3b0887d 100644 --- a/distro/packages/lout.scm +++ b/distro/packages/lout.scm @@ -18,7 +18,7 @@ (define-module (distro packages lout) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -78,7 +78,7 @@ (name "lout") (version "3.39") (source (origin - (method http-fetch) + (method url-fetch) ;; FIXME: `http-get' doesn't follow redirects, hence the URL. (uri (string-append "http://download-mirror.savannah.gnu.org/releases/lout/lout-" diff --git a/distro/packages/m4.scm b/distro/packages/m4.scm index 7097ffb68f..8517b73834 100644 --- a/distro/packages/m4.scm +++ b/distro/packages/m4.scm @@ -19,7 +19,7 @@ (define-module (distro packages m4) #:use-module (distro) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -28,7 +28,7 @@ (name "m4") (version "1.4.16") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/m4/m4-" version ".tar.bz2")) (sha256 diff --git a/distro/packages/multiprecision.scm b/distro/packages/multiprecision.scm index 98e4c72a72..c780e4ce03 100644 --- a/distro/packages/multiprecision.scm +++ b/distro/packages/multiprecision.scm @@ -20,7 +20,7 @@ #:use-module (distro) #:use-module (distro packages m4) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -29,7 +29,7 @@ (name "gmp") (version "5.0.5") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/gmp/gmp-" version ".tar.bz2")) (sha256 @@ -71,7 +71,7 @@ faster algorithms.") (name "mpfr") (version "3.1.1") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/mpfr/mpfr-" version ".tar.xz")) (sha256 (base32 @@ -97,7 +97,7 @@ double-precision floating-point arithmetic (53-bit mantissa).") (name "mpc") (version "1.0") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://www.multiprecision.org/mpc/download/mpc-" version ".tar.gz")) diff --git a/distro/packages/ncurses.scm b/distro/packages/ncurses.scm index d9c31c6fee..b16d4002ee 100644 --- a/distro/packages/ncurses.scm +++ b/distro/packages/ncurses.scm @@ -18,7 +18,7 @@ (define-module (distro packages ncurses) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -55,7 +55,7 @@ (name "ncurses") (version "5.9") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/ncurses/ncurses-" version ".tar.gz")) (sha256 diff --git a/distro/packages/perl.scm b/distro/packages/perl.scm index 7e6cf0e4f7..9704ae1440 100644 --- a/distro/packages/perl.scm +++ b/distro/packages/perl.scm @@ -19,7 +19,7 @@ (define-module (distro packages perl) #:use-module (distro) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -29,7 +29,7 @@ (name "perl") (version "5.16.1") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://www.cpan.org/src/5.0/perl-" version ".tar.gz")) (sha256 diff --git a/distro/packages/pkg-config.scm b/distro/packages/pkg-config.scm index 7e44efb429..554be6bcde 100644 --- a/distro/packages/pkg-config.scm +++ b/distro/packages/pkg-config.scm @@ -18,7 +18,7 @@ (define-module (distro packages pkg-config) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -27,7 +27,7 @@ (name "pkg-config") (version "0.27.1") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://pkgconfig.freedesktop.org/releases/pkg-config-" version ".tar.gz")) diff --git a/distro/packages/pth.scm b/distro/packages/pth.scm index 94e0dbbaee..bb65c41598 100644 --- a/distro/packages/pth.scm +++ b/distro/packages/pth.scm @@ -18,7 +18,7 @@ (define-module (distro packages pth) #:use-module (guix packages) - #:use-module (guix ftp) + #:use-module (guix download) #:use-module (guix build-system gnu)) (define-public pth @@ -27,7 +27,7 @@ (version "2.0.7") (source (origin - (method ftp-fetch) + (method url-fetch) (uri (string-append "ftp://ftp.gnu.org/gnu/pth/pth-" version ".tar.gz")) (sha256 diff --git a/distro/packages/readline.scm b/distro/packages/readline.scm index 6f54d32825..18c149b2c6 100644 --- a/distro/packages/readline.scm +++ b/distro/packages/readline.scm @@ -20,7 +20,7 @@ #:use-module (distro) #:use-module (distro packages ncurses) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -29,7 +29,7 @@ (name "readline") (version "6.2") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/readline/readline-" version ".tar.gz")) (sha256 diff --git a/distro/packages/recutils.scm b/distro/packages/recutils.scm index c3b74b6085..a03e73b7d6 100644 --- a/distro/packages/recutils.scm +++ b/distro/packages/recutils.scm @@ -19,7 +19,7 @@ (define-module (distro packages recutils) #:use-module (distro) #:use-module (guix packages) - #:use-module (guix http) + #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu)) @@ -28,7 +28,7 @@ (name "recutils") (version "1.5") (source (origin - (method http-fetch) + (method url-fetch) (uri (string-append "http://ftp.gnu.org/gnu/recutils/recutils-" version ".tar.gz")) (sha256 diff --git a/guix.scm b/guix.scm index 1e136372bc..9efc6e7139 100644 --- a/guix.scm +++ b/guix.scm @@ -27,8 +27,7 @@ build-system derivations ftp-client - ftp - http + download packages store utils)) diff --git a/guix/build/ftp.scm b/guix/build/ftp.scm deleted file mode 100644 index 17486953c2..0000000000 --- a/guix/build/ftp.scm +++ /dev/null @@ -1,48 +0,0 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of Guix. -;;; -;;; Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (guix build ftp) - #:use-module (guix ftp-client) - #:use-module (guix build utils) - #:use-module (web uri) - #:export (ftp-fetch)) - -;;; Commentary: -;;; -;;; Fetch data such as tarballs over FTP (builder-side code). -;;; -;;; Code: - -(define (ftp-fetch url file) - "Fetch data from URL and write it to FILE. Return FILE on success." - - (setvbuf (current-output-port) _IOLBF) - (format #t "starting FTP download of `~a' from `~a'...~%" file url) - (let* ((uri (string->uri url)) - (conn (ftp-open (uri-host uri))) - (in (ftp-retr conn (basename (uri-path uri)) - (dirname (uri-path uri))))) - (call-with-output-file file - (lambda (out) - ;; TODO: Show a progress bar. - (dump-port in out))) - - (ftp-close conn)) - file) - -;;; ftp.scm ends here diff --git a/guix/build/http.scm b/guix/build/http.scm deleted file mode 100644 index 65c09fa4cd..0000000000 --- a/guix/build/http.scm +++ /dev/null @@ -1,100 +0,0 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of Guix. -;;; -;;; Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (guix build http) - #:use-module (web uri) - #:use-module (web client) - #:use-module (web response) - #:use-module (rnrs io ports) - #:use-module (srfi srfi-11) - #:export (http-fetch)) - -;;; Commentary: -;;; -;;; Fetch data such as tarballs over HTTP (builder-side code). -;;; -;;; Code: - -(define (open-connection-for-uri uri) - "Return an open input/output port for a connection to URI. - -This is the same as Guile's `open-socket-for-uri', except that we always -use a numeric port argument, to avoid the need to go through libc's NSS, -which is not available during bootstrap." - (define addresses - (let ((port (or (uri-port uri) - (case (uri-scheme uri) - ((http) 80) ; /etc/services, not for me! - (else - (error "unsupported URI scheme" uri)))))) - (getaddrinfo (uri-host uri) - (number->string port) - AI_NUMERICSERV))) - - (let loop ((addresses addresses)) - (let* ((ai (car addresses)) - (s (with-fluids ((%default-port-encoding #f)) - (socket (addrinfo:fam ai) (addrinfo:socktype ai) - (addrinfo:protocol ai))))) - (catch 'system-error - (lambda () - (connect s (addrinfo:addr ai)) - - ;; Buffer input and output on this port. - (setvbuf s _IOFBF) - ;; Enlarge the receive buffer. - (setsockopt s SOL_SOCKET SO_RCVBUF (* 12 1024)) - s) - (lambda args - ;; Connection failed, so try one of the other addresses. - (close s) - (if (null? addresses) - (apply throw args) - (loop (cdr addresses)))))))) - -;; XXX: This is an awful hack to make sure the (set-port-encoding! p -;; "ISO-8859-1") call in `read-response' passes, even during bootstrap -;; where iconv is not available. -(module-define! (resolve-module '(web response)) - 'set-port-encoding! - (lambda (p e) #f)) - -(define (http-fetch url file) - "Fetch data from URL and write it to FILE. Return FILE on success." - - (setvbuf (current-output-port) _IOLBF) - (format #t "starting HTTP download of `~a' from `~a'...~%" file url) - - ;; FIXME: Use a variant of `http-get' that returns a port instead of - ;; loading everything in memory. - (let*-values (((uri) - (string->uri url)) - ((connection) - (open-connection-for-uri uri)) - ((resp bv) - (http-get uri #:port connection #:decode-body? #f)) - ((code) - (response-code resp))) - (if (= 200 code) - (begin - (call-with-output-file file - (lambda (p) - (put-bytevector p bv))) - file) - (error "download failed" url - code (response-reason-phrase resp))))) diff --git a/guix/ftp.scm b/guix/ftp.scm deleted file mode 100644 index 2717bf3fb3..0000000000 --- a/guix/ftp.scm +++ /dev/null @@ -1,65 +0,0 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of Guix. -;;; -;;; Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with Guix. If not, see <ftp://www.gnu.org/licenses/>. - -(define-module (guix ftp) - #:use-module (ice-9 match) - #:use-module (guix derivations) - #:use-module (guix packages) - #:use-module ((guix store) #:select (derivation-path?)) - #:use-module (guix utils) - #:export (ftp-fetch)) - -;;; Commentary: -;;; -;;; Produce fixed-output derivations with data fetched over FTP. -;;; -;;; Code: - -(define* (ftp-fetch store url hash-algo hash - #:optional name - #:key (system (%current-system)) guile) - "Return the path of a fixed-output derivation in STORE that fetches URL, -which is expected to have hash HASH of type HASH-ALGO (a symbol). By -default, the file name is the base name of URL; optionally, NAME can specify -a different file name." - (define builder - `(begin - (use-modules (guix build ftp)) - (ftp-fetch ,url %output))) - - (define guile-for-build - (match guile - ((? package?) - (package-derivation store guile system)) - ((and (? string?) (? derivation-path?)) - guile) - (#f ; the default - (let* ((distro (resolve-interface '(distro packages base))) - (guile (module-ref distro 'guile-final))) - (package-derivation store guile system))))) - - (build-expression->derivation store (or name (basename url)) system - builder '() - #:hash-algo hash-algo - #:hash hash - #:modules '((guix ftp-client) - (guix build ftp) - (guix build utils)) - #:guile-for-build guile-for-build)) - -;;; ftp.scm ends here diff --git a/guix/http.scm b/guix/http.scm deleted file mode 100644 index 182d011b77..0000000000 --- a/guix/http.scm +++ /dev/null @@ -1,63 +0,0 @@ -;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*- -;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of Guix. -;;; -;;; Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (guix http) - #:use-module (ice-9 match) - #:use-module (guix derivations) - #:use-module (guix packages) - #:use-module ((guix store) #:select (derivation-path?)) - #:use-module (guix utils) - #:export (http-fetch)) - -;;; Commentary: -;;; -;;; Produce fixed-output derivations with data fetched over HTTP. -;;; -;;; Code: - -(define* (http-fetch store url hash-algo hash - #:optional name - #:key (system (%current-system)) guile) - "Return the path of a fixed-output derivation in STORE that fetches URL, -which is expected to have hash HASH of type HASH-ALGO (a symbol). By -default, the file name is the base name of URL; optionally, NAME can specify -a different file name." - (define builder - `(begin - (use-modules (guix build http)) - (http-fetch ,url %output))) - - (define guile-for-build - (match guile - ((? package?) - (package-derivation store guile system)) - ((and (? string?) (? derivation-path?)) - guile) - (#f ; the default - (let* ((distro (resolve-interface '(distro packages base))) - (guile (module-ref distro 'guile-final))) - (package-derivation store guile system))))) - - (build-expression->derivation store (or name (basename url)) system - builder '() - #:hash-algo hash-algo - #:hash hash - #:modules '((guix build http)) - #:guile-for-build guile-for-build)) - -;;; http.scm ends here diff --git a/tests/builders.scm b/tests/builders.scm index 9cc86ef1c2..d2691c521f 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -18,7 +18,6 @@ (define-module (test-builders) - #:use-module (guix http) #:use-module (guix download) #:use-module (guix build-system) #:use-module (guix build-system gnu) @@ -54,16 +53,6 @@ (test-begin "builders") -(test-assert "http-fetch" - (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz") - (hash (nix-base32-string->bytevector - "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")) - (drv-path (http-fetch %store url 'sha256 hash)) - (out-path (derivation-path->output-path drv-path))) - (and (build-derivations %store (list drv-path)) - (file-exists? out-path) - (valid-path? %store out-path)))) - (test-assert "url-fetch" (let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz" "ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")) @@ -83,7 +72,7 @@ (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz") (hash (nix-base32-string->bytevector "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")) - (tarball (http-fetch %store url 'sha256 hash)) + (tarball (url-fetch %store url 'sha256 hash)) (build (gnu-build %store "hello-2.8" tarball %bootstrap-inputs #:implicit-inputs? #f |