From 633bfb5af57f707dea12ab747133182d085951ff Mon Sep 17 00:00:00 2001 From: Federico Beffa
Date: Sat, 7 Mar 2015 17:23:14 +0100 Subject: [PATCH 01/29] import: Add hackage importer. * guix/scripts/import.scm (importers): Add hackage. * guix/scripts/import/hackage.scm: New file. * po/guix/POTFILES.in: Add guix/scripts/import.scm. * doc/guix.texi: Add section on 'hackage' importer. --- doc/guix.texi | 29 +++++++++++ guix/scripts/import.scm | 2 +- guix/scripts/import/hackage.scm | 106 ++++++++++++++++++++++++++++++++++++++++ po/guix/POTFILES.in | 1 + 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 guix/scripts/import/hackage.scm diff --git a/doc/guix.texi b/doc/guix.texi index 549da80..8c90b2d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3140,6 +3140,35 @@ bound to the @code{libreoffice} top-level attribute): @example guix import nix ~/path/to/nixpkgs libreoffice @end example + address@hidden hackage address@hidden hackage +Import meta-data from Haskell community's central package archive address@hidden://hackage.haskell.org/, Hackage}. Information is taken from +Cabal files and includes all the relevant information, including package +dependencies. + +Specific command-line options are: + address@hidden @code address@hidden --no-test-dependencies address@hidden -t +Do not include dependencies only required to run the test suite. address@hidden table + +The command below imports meta-data for latest version of the address@hidden Haskell package without including test dependencies: + address@hidden +guix import hackage -t HTTP address@hidden example + +A specific package version may optionally be specified by following the +package name by a hyphen and a version number as in the following example: + address@hidden +guix import hackage mtl-2.1.3.1 address@hidden example @end table The structure of the @command{guix import} code is modular. It would be diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 7e75c10..06b4c17 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -73,7 +73,7 @@ rather than \\n." ;;; Entry point. ;;; -(define importers '("gnu" "nix" "pypi" "cpan")) +(define importers '("gnu" "nix" "pypi" "cpan" "hackage")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm new file mode 100644 index 0000000..f7c18cd --- /dev/null +++ b/guix/scripts/import/hackage.scm @@ -0,0 +1,106 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Federico Beffa +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU 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. +;;; +;;; GNU 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 GNU Guix. If not, see