<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/import/utils.scm, branch merge-deploy</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://git.jakob.space/guix.git/atom?h=merge-deploy</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=merge-deploy'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-07-24T22:16:41Z</updated>
<entry>
<title>maint: Switch to Guile-JSON 3.x.</title>
<updated>2019-07-24T22:16:41Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-21T21:05:54Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=81c3dc32244a17241d74eea9fa265edfcb326f6d'/>
<id>urn:sha1:81c3dc32244a17241d74eea9fa265edfcb326f6d</id>
<content type='text'>
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on
until now: it maps JSON dictionaries to alists (instead of hash tables),
and JSON arrays to vectors (instead of lists).  This commit is about
adjusting all the existing code to this new mapping.

* m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro.
* configure.ac: Use it.
* doc/guix.texi (Requirements): Mention the Guile-JSON version.
* guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3.
* guix/import/cpan.scm (string-&gt;license): Expect vectors instead of
lists.
(module-&gt;dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector-&gt;list'
for DEPS.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/json.scm (json-fetch-alist): Remove.
* guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of
'json-fetch-alist'.
(latest-source-release, latest-wheel-release): Call 'vector-&gt;list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector-&gt;list'.
* guix/import/utils.scm (hash-table-&gt;alist): Remove.
(alist-&gt;package): Pass 'vector-&gt;list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table-&gt;alist'.
* guix/swh.scm (define-json-reader): Expect pair? or null? instead of
hash-table?.
[extract-field]: Use 'assoc-ref' instead of 'hash-ref'.
(json-&gt;branches): Use 'map' instead of 'hash-map-&gt;list'.
(json-&gt;checksums): Likewise.
(json-&gt;directory-entries, origin-visits): Call 'vector-&gt;list' on the
result of 'json-&gt;scm'.
* tests/import-utils.scm ("alist-&gt;package with dependencies"): New test.
* gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3.
* gnu/installer.scm (installer-program)[installer-builder]: Likewise.
* gnu/installer/locale.scm (iso639-&gt;iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector-&gt;list'.
(iso3166-&gt;iso3166-territories): Likewise.
* gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3.
* guix/docker.scm (manifest, config): Adjust for Guile-JSON 3.
* guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3.
* guix/import/github.scm (fetch-releases-or-tags): Update docstring.
(latest-released-version): Use 'assoc-ref' instead of 'hash-ref'.  Pass
the result of 'fetch-releases-or-tags' to 'vector-&gt;list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
</content>
</entry>
<entry>
<title>import: crate: Define dependencies as arguments.</title>
<updated>2019-06-12T01:05:44Z</updated>
<author>
<name>Ivan Petkov</name>
<email>ivanppetkov@gmail.com</email>
</author>
<published>2019-05-17T07:26:07Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5a9ef8a960706a55764f5bbc67ac83dd48516016'/>
<id>urn:sha1:5a9ef8a960706a55764f5bbc67ac83dd48516016</id>
<content type='text'>
* guix/import/crate.scm:
(crate-fetch)[input-crates]: Rename to dev-crates.
[native-input-crates]: Rename to dev-dep-crates.
[inputs]: Rename to cargo-inputs.
[native-inputs]: Rename to cargo-development-inputs.
(maybe-cargo-inputs, maybe-cargo-development-inputs, maybe-arguments): Add
them.
(make-crate-sexp)[inputs]: Rename to cargo-inputs.
[native-inputs]: Rename to cargo-development-inputs.
[maybe-native-inputs, maybe-inputs]: Replace with maybe-arguments.
* guix/import/utils.scm: (package-names-&gt;package-inputs): Make public.  Add
docstring.
* tests/crate.scm (crate-&gt;guix-package): Update the match pattern.

Signed-off-by: Chris Marusich &lt;cmmarusich@gmail.com&gt;
</content>
</entry>
<entry>
<title>import: utils: 'specs-&gt;package-lists' correctly matches "out".</title>
<updated>2019-06-07T20:55:50Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-07T20:55:50Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=f54cab2784493f4e9c51d3d7bcd38f155dc0fe7d'/>
<id>urn:sha1:f54cab2784493f4e9c51d3d7bcd38f155dc0fe7d</id>
<content type='text'>
* guix/import/utils.scm (specs-&gt;package-lists): Match "out", not ("out").
</content>
</entry>
<entry>
<title>guix: import: simplify recursive import</title>
<updated>2019-06-03T19:52:10Z</updated>
<author>
<name>Robert Vollmert</name>
<email>rob@vllmrt.net</email>
</author>
<published>2019-05-27T20:07:31Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5b315f3ea93020df52bc11105064a1398687e572'/>
<id>urn:sha1:5b315f3ea93020df52bc11105064a1398687e572</id>
<content type='text'>
This simplifies the logic of recursive-import, intending no
major functional changes. The package import function is no
longer called twice per package. Failed imports now make it
to the package stream as '() instead of #f.

* guix/import/utils.scm (recursive-import): Simplify.

Signed-off-by: Oleg Pykhalov &lt;go.wigust@gmail.com&gt;
</content>
</entry>
<entry>
<title>Switch to Guile-Gcrypt.</title>
<updated>2018-09-04T15:25:11Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-31T15:07:07Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=ca719424455465fca4b872c371daf2a46de88b33'/>
<id>urn:sha1:ca719424455465fca4b872c371daf2a46de88b33</id>
<content type='text'>
This removes (guix hash) and (guix pk-crypto), which now live as part of
Guile-Gcrypt (version 0.1.0.)

* guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm,
tests/hash.scm, tests/pk-crypto.scm: Remove.
* configure.ac: Test for Guile-Gcrypt.  Remove LIBGCRYPT and
LIBGCRYPT_LIBDIR assignments.
* m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove.
* README: Add Guile-Gcrypt to the dependencies; move libgcrypt as
"required unless --disable-daemon".
* doc/guix.texi (Requirements): Likewise.
* gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm,
guix/git.scm, guix/http-client.scm, guix/import/cpan.scm,
guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm,
guix/import/gnu.scm, guix/import/hackage.scm,
guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm,
guix/pki.scm, guix/scripts/archive.scm,
guix/scripts/authenticate.scm, guix/scripts/download.scm,
guix/scripts/hash.scm, guix/scripts/pack.scm,
guix/scripts/publish.scm, guix/scripts/refresh.scm,
guix/scripts/substitute.scm, guix/store.scm,
guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm,
tests/builders.scm, tests/challenge.scm, tests/cpan.scm,
tests/crate.scm, tests/derivations.scm, tests/gem.scm,
tests/nar.scm, tests/opam.scm, tests/pki.scm,
tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm,
tests/store.scm, tests/substitute.scm: Adjust imports.
* gnu/system/vm.scm: Likewise.
(guile-sqlite3&amp;co): Rename to...
(gcrypt-sqlite3&amp;co): ... this.  Add GUILE-GCRYPT.
(expression-&gt;derivation-in-linux-vm)[config]: Remove.
(iso9660-image)[config]: Remove.
(qemu-image)[config]: Remove.
(system-docker-image)[config]: Remove.
* guix/scripts/pack.scm: Adjust imports.
(guile-sqlite3&amp;co): Rename to...
(gcrypt-sqlite3&amp;co): ... this.  Add GUILE-GCRYPT.
(self-contained-tarball)[build]: Call 'make-config.scm' without
 #:libgcrypt argument.
(squashfs-image)[libgcrypt]: Remove.
[build]: Call 'make-config.scm' without #:libgcrypt.
(docker-image)[config, json]: Remove.
[build]: Add GUILE-GCRYPT to the extensions  Remove (guix config) from
the imported modules.
* guix/self.scm (specification-&gt;package): Remove "libgcrypt", add
"guile-gcrypt".
(compiled-guix): Remove #:libgcrypt.
[guile-gcrypt]: New variable.
[dependencies]: Add it.
[*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call.
Add #:extensions.
[*config*]: Remove #:libgcrypt from 'make-config.scm' call.
(%dependency-variables): Remove %libgcrypt.
(make-config.scm): Remove #:libgcrypt.
* build-aux/build-self.scm (guile-gcrypt): New variable.
(make-config.scm): Remove #:libgcrypt.
(build-program)[fake-gcrypt-hash]: New variable.
Add (gcrypt hash) to the imported modules.  Adjust load path
assignments.
* gnu/packages/package-management.scm (guix)[propagated-inputs]: Add
GUILE-GCRYPT.
[arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search
path.
</content>
</entry>
<entry>
<title>import: utils: Import more dependencies.</title>
<updated>2018-06-12T16:51:03Z</updated>
<author>
<name>Oleg Pykhalov</name>
<email>go.wigust@gmail.com</email>
</author>
<published>2018-06-11T14:36:06Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=38212ff7b91a276228d9e6b9b6e265eb1a5e6fff'/>
<id>urn:sha1:38212ff7b91a276228d9e6b9b6e265eb1a5e6fff</id>
<content type='text'>
* guix/import/utils.scm (recursive-import): Import more dependencies.
</content>
</entry>
<entry>
<title>import: utils: Add recursive-import.</title>
<updated>2018-06-08T11:58:33Z</updated>
<author>
<name>Oleg Pykhalov</name>
<email>go.wigust@gmail.com</email>
</author>
<published>2018-06-08T10:46:43Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=ae9e5d6602544390fa5da0a87450405ebba012fd'/>
<id>urn:sha1:ae9e5d6602544390fa5da0a87450405ebba012fd</id>
<content type='text'>
* guix/import/cran.scm (cran-guix-name, cran-recursive-import): New
procedures.
(recursive-import): Remove procedure.
* guix/import/utils.scm (guix-name, recursive-import): New procedures.
* guix/scripts/import/cran.scm (guix-import-cran): Use
'cran-recursive-import' procedure.
</content>
</entry>
<entry>
<title>import: utils: 'alist-&gt;package' allows false license.</title>
<updated>2018-02-16T10:10:12Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-02-16T10:06:31Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5e2495d09e5ad78f8ebb6bfa6fb4ff09fb305ec4'/>
<id>urn:sha1:5e2495d09e5ad78f8ebb6bfa6fb4ff09fb305ec4</id>
<content type='text'>
Reported by &lt;pkill9@runbox.com&gt;.
Fixes &lt;https://bugs.gnu.org/30470&gt;.

* guix/import/utils.scm (alist-&gt;package): Check whether 'license' is
false and set the 'license' field to #f in this case.
* tests/import-utils.scm ("alist-&gt;package with false license"): New
test.
</content>
</entry>
<entry>
<title>import: utils: Add string helpers.</title>
<updated>2017-11-07T07:07:51Z</updated>
<author>
<name>Ricardo Wurmus</name>
<email>rekado@elephly.net</email>
</author>
<published>2017-11-06T15:53:39Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=6b46b04f919881e0122e201db4590ba5da77aa88'/>
<id>urn:sha1:6b46b04f919881e0122e201db4590ba5da77aa88</id>
<content type='text'>
* guix/import/utils.scm (read-lines, chunk-lines): New procedures.
</content>
</entry>
<entry>
<title>import: Add generic data to package converter.</title>
<updated>2017-09-28T11:10:11Z</updated>
<author>
<name>Ricardo Wurmus</name>
<email>rekado@elephly.net</email>
</author>
<published>2017-08-27T15:38:47Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=5e892bc365a3da0d30a0982783ee2ab82ee090f8'/>
<id>urn:sha1:5e892bc365a3da0d30a0982783ee2ab82ee090f8</id>
<content type='text'>
* guix/import/utils.scm (build-system-modules, lookup-build-system-by-name,
specs-&gt;package-lists, source-spec-&gt;object, alist-&gt;package): New procedures.
* tests/import-utils.scm: Add tests for alist-&gt;package.
</content>
</entry>
</feed>
