Merge branch 'master' into core-updates
This commit is contained in:
commit
7facbf2b58
88
NEWS
88
NEWS
|
@ -10,6 +10,94 @@ Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
|||
|
||||
Please send Guix bug reports to bug-guix@gnu.org.
|
||||
|
||||
* Changes in 0.4 (since 0.3)
|
||||
|
||||
** Package management
|
||||
|
||||
*** New ‘--list-generations’ and ‘--delete-generations’ options
|
||||
|
||||
The ‘guix package’ command has these two new options, which make it easier to
|
||||
deal with a profile’s generation. See “Invoking guix package” in the manual.
|
||||
|
||||
*** New ‘guix-register’ program
|
||||
|
||||
This program allows the meta-data of a new store to be initialized, by
|
||||
copying info from an existing store. It is mostly an internal tool.
|
||||
|
||||
** Programming interfaces
|
||||
|
||||
*** New API to bootstrap Autotools-based packages
|
||||
|
||||
The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
|
||||
package object and source directory, and returns a new package object that
|
||||
runs ‘./bootstrap && make dist’ or anything similar.
|
||||
|
||||
*** ‘derivation’ and related procedures have a #:references-graphs parameter
|
||||
|
||||
This parameter instructs the build daemon to populate the derivation’s build
|
||||
tree with files containing the list of references of the given store files.
|
||||
This is useful to write code that copies a packages and all its dependencies
|
||||
to another storage device, such as a QEMU disk image.
|
||||
|
||||
*** Extended API to build a GNU system virtual machine image
|
||||
|
||||
The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
|
||||
procedure can now populate and initialize the image’s store; the new
|
||||
‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
|
||||
system, has ‘login’ running on several consoles, has a set of installed
|
||||
packages, and where Guix can be used.
|
||||
|
||||
New (gnu system …) modules have been added to handle the configuration of the
|
||||
various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
|
||||
support for instantiating dmd services; (gnu system linux) helps with Linux
|
||||
PAM configuration; and so on.
|
||||
|
||||
*** <derivation> objects supersede .drv file names in the API
|
||||
|
||||
‘derivation’ and similar procedures no longer return two values (a
|
||||
<derivation> and a .drv file name); they now return a single value, which is
|
||||
a <derivation> object. The <derivation> object embeds the corresponding .drv
|
||||
file name. See “Derivations” in the manual for details.
|
||||
|
||||
** GNU distribution
|
||||
|
||||
*** XXX new packages
|
||||
|
||||
*** XXX package updates
|
||||
|
||||
*** Fontconfig font search path made more convenient
|
||||
|
||||
Fontconfig, the library used by many graphical applications, such as those
|
||||
based on GTK+, now knows where to find the default set of fonts. Additional
|
||||
fonts installed in the user profile are automatically picked up.
|
||||
|
||||
*** More GUI applications
|
||||
|
||||
The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
|
||||
applications have been added (see above.)
|
||||
|
||||
*** Packaging guidelines
|
||||
|
||||
The documentation of packaging guidelines has been augmented. See the manual
|
||||
under “GNU Distribution”.
|
||||
|
||||
*** Support for Python 3 along with Python 2
|
||||
|
||||
Python 3 has been added to the distribution, and Python packages that support
|
||||
it are now built for both Python 2 and Python 3. See the “Python Modules”
|
||||
section of the manual for details.
|
||||
|
||||
** Internationalization
|
||||
|
||||
Updated translations: eo.
|
||||
|
||||
** Bugs fixed
|
||||
|
||||
*** The dependency graph image has correct size in PDF output
|
||||
*** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
|
||||
*** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
|
||||
*** Workarounds for Guile 2.0.5 now work on Debian derivatives
|
||||
|
||||
|
||||
* Changes in 0.3 (since 0.2)
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ exec guile -l "$0" \
|
|||
#:use-module (guix gnu-maintenance)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (sxml simple)
|
||||
#:use-module (sxml fold)
|
||||
#:use-module (web uri)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -48,8 +49,13 @@ exec guile -l "$0" \
|
|||
(equal? (gnu-package-name package) name))
|
||||
gnu))))
|
||||
|
||||
(define (package->sxml package)
|
||||
"Return HTML-as-SXML representing PACKAGE."
|
||||
(define (package->sxml package previous description-ids remaining)
|
||||
"Return 3 values: the HTML-as-SXML for PACKAGE added to all previously
|
||||
collected package output in PREVIOUS, a list of DESCRIPTION-IDS and the number
|
||||
of packages still to be processed in REMAINING. Also Introduces a call to the
|
||||
JavaScript prep_pkg_descs function as part of the output of PACKAGE, every
|
||||
time the length of DESCRIPTION-IDS, increasing, is 15 or when REMAINING,
|
||||
decreasing, is 1."
|
||||
(define (source-url package)
|
||||
(let ((loc (package-location package)))
|
||||
(and loc
|
||||
|
@ -92,37 +98,66 @@ exec guile -l "$0" \
|
|||
(and=> (lookup-gnu-package name)
|
||||
gnu-package-logo))
|
||||
|
||||
(define (insert-tr description-id js?)
|
||||
(define (insert-js-call description-ids)
|
||||
"Return an sxml call to prep_pkg_descs, with up to 15 elements of
|
||||
description-ids as formal parameters."
|
||||
`(script (@ (type "text/javascript"))
|
||||
,(format #f "prep_pkg_descs(~a)"
|
||||
(string-append "'"
|
||||
(string-join description-ids "', '")
|
||||
"'"))))
|
||||
|
||||
(let ((description-ids (cons description-id description-ids)))
|
||||
`(tr (td ,(if (gnu-package? package)
|
||||
`(img (@ (src "/graphics/gnu-head-mini.png")
|
||||
(alt "Part of GNU")
|
||||
(title "Part of GNU")))
|
||||
""))
|
||||
(td (a (@ (href ,(source-url package))
|
||||
(title "Link to the Guix package source code"))
|
||||
,(package-name package) " "
|
||||
,(package-version package)))
|
||||
(td (span ,(package-synopsis package))
|
||||
(div (@ (id ,description-id))
|
||||
,(match (package-logo (package-name package))
|
||||
((? string? url)
|
||||
`(img (@ (src ,url)
|
||||
(height "35")
|
||||
(class "package-logo")
|
||||
(alt ("Logo of " ,(package-name package))))))
|
||||
(_ #f))
|
||||
(p ,(package-description package))
|
||||
,(license package)
|
||||
(a (@ (href ,(package-home-page package))
|
||||
(title "Link to the package's website"))
|
||||
,(package-home-page package))
|
||||
,(status package)
|
||||
,(if js?
|
||||
(insert-js-call description-ids)
|
||||
""))))))
|
||||
|
||||
(let ((description-id (symbol->string
|
||||
(gensym (package-name package)))))
|
||||
`(tr (td ,(if (gnu-package? package)
|
||||
`(img (@ (src "/graphics/gnu-head-mini.png")
|
||||
(alt "Part of GNU")
|
||||
(title "Part of GNU")))
|
||||
""))
|
||||
(td (a (@ (href ,(source-url package))
|
||||
(title "Link to the Guix package source code"))
|
||||
,(package-name package) " "
|
||||
,(package-version package)))
|
||||
(td (a (@ (href "javascript:void(0)")
|
||||
(title "show/hide package description")
|
||||
(onClick ,(format #f "javascript:show_hide('~a')"
|
||||
description-id)))
|
||||
,(package-synopsis package))
|
||||
(div (@ (id ,description-id)
|
||||
(style "display: none;"))
|
||||
,(match (package-logo (package-name package))
|
||||
((? string? url)
|
||||
`(img (@ (src ,url)
|
||||
(height "35")
|
||||
(class "package-logo")
|
||||
(alt ("Logo of " ,(package-name package))))))
|
||||
(_ #f))
|
||||
(p ,(package-description package))
|
||||
,(license package)
|
||||
(a (@ (href ,(package-home-page package))
|
||||
(title "Link to the package's website"))
|
||||
,(package-home-page package))
|
||||
,(status package))))))
|
||||
(cond ((= remaining 1) ; Last package in packages
|
||||
(values
|
||||
(reverse ; Fold has reversed packages
|
||||
(cons (insert-tr description-id 'js) ; Prefix final sxml
|
||||
previous))
|
||||
'() ; No more work to do
|
||||
0)) ; End of the line
|
||||
((= (length description-ids) 15) ; Time for a JS call
|
||||
(values
|
||||
(cons (insert-tr description-id 'js)
|
||||
previous) ; Prefix new sxml
|
||||
'() ; Reset description-ids
|
||||
(1- remaining))) ; Reduce remaining
|
||||
(else ; Insert another row, and build description-ids
|
||||
(values
|
||||
(cons (insert-tr description-id #f)
|
||||
previous) ; Prefix new sxml
|
||||
(cons description-id description-ids) ; Update description-ids
|
||||
(1- remaining)))))) ; Reduce remaining
|
||||
|
||||
(define (packages->sxml packages)
|
||||
"Return an HTML page as SXML describing PACKAGES."
|
||||
|
@ -145,7 +180,7 @@ exec guile -l "$0" \
|
|||
(tr (th "GNU?")
|
||||
(th "Package version")
|
||||
(th "Package details"))
|
||||
,@(map package->sxml packages))
|
||||
,@(fold-values package->sxml packages '() '() (length packages)))
|
||||
(a (@ (href "#intro")
|
||||
(title "Back to top.")
|
||||
(id "top"))
|
||||
|
@ -239,14 +274,45 @@ a#top:hover, a#top:focus {
|
|||
// license: CC0
|
||||
function show_hide(idThing)
|
||||
{
|
||||
if(document.getElementById && document.createTextNode) {
|
||||
var thing = document.getElementById(idThing);
|
||||
/* Used to change the link text, depending on whether description is
|
||||
collapsed or expanded */
|
||||
var thingLink = thing.previousSibling.lastChild.firstChild;
|
||||
if (thing) {
|
||||
if (thing.style.display == \"none\") {
|
||||
thing.style.display = \"\";
|
||||
thingLink.data = 'Collapse';
|
||||
} else {
|
||||
thing.style.display = \"none\";
|
||||
thingLink.data = 'Expand';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Add controllers used for collapse/expansion of package descriptions */
|
||||
function prep(idThing)
|
||||
{
|
||||
var tdThing = document.getElementById(idThing).parentNode;
|
||||
if (tdThing) {
|
||||
var aThing = tdThing.firstChild.appendChild(document.createElement('a'));
|
||||
aThing.setAttribute('href', 'javascript:void(0)');
|
||||
aThing.setAttribute('title', 'show/hide package description');
|
||||
aThing.appendChild(document.createTextNode('Expand'));
|
||||
aThing.onclick=function(){show_hide(idThing);};
|
||||
/* aThing.onkeypress=function(){show_hide(idThing);}; */
|
||||
}
|
||||
}
|
||||
/* Take n element IDs, prepare them for javascript enhanced
|
||||
display and hide the IDs by default. */
|
||||
function prep_pkg_descs()
|
||||
{
|
||||
if(document.getElementById && document.createTextNode) {
|
||||
for(var i=0; i<arguments.length; i++) {
|
||||
prep(arguments[i])
|
||||
show_hide(arguments[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>"))
|
||||
|
||||
|
|
|
@ -583,9 +583,8 @@ When combined with options such as @code{--install}, roll back occurs
|
|||
before any other actions.
|
||||
|
||||
When rolling back from the first generation that actually contains
|
||||
installed packages, the profile is made to point to the @dfn{empty
|
||||
profile}, also known as @dfn{profile zero}---i.e., it contains no files
|
||||
apart from its own meta-data.
|
||||
installed packages, the profile is made to point to the @dfn{zeroth
|
||||
generation}, which contains no files apart from its own meta-data.
|
||||
|
||||
Installing, removing, or upgrading packages from a generation that has
|
||||
been rolled back to overwrites previous future generations. Thus, the
|
||||
|
@ -683,7 +682,8 @@ Multiple Outputs}), and the source location of its definition.
|
|||
@itemx -l [@var{pattern}]
|
||||
Return a list of generations along with their creation dates; for each
|
||||
generation, show the installed packages, with the most recently
|
||||
installed packages shown last.
|
||||
installed packages shown last. Note that the zeroth generation is never
|
||||
shown.
|
||||
|
||||
For each installed package, print the following items, separated by
|
||||
tabs: the name of a package, its version string, the part of the package
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
(define-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
|
||||
|
@ -75,11 +76,16 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
|
|||
(build-system gnu-build-system)
|
||||
(inputs `(("expat" ,expat)
|
||||
("freetype" ,freetype)
|
||||
("gs-fonts" ,gs-fonts)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
;; point to user profile instead of /usr/share/fonts in /etc/fonts.conf
|
||||
`("--with-default-fonts=~/.guix-profile/share/fonts")))
|
||||
;; point to user profile instead of /usr/share/fonts in /etc/fonts.conf
|
||||
(list "--with-default-fonts=~/.guix-profile/share/fonts"
|
||||
;; register gs-fonts
|
||||
(string-append "--with-add-fonts="
|
||||
(assoc-ref %build-inputs "gs-fonts")
|
||||
"/share/fonts"))))
|
||||
(synopsis "Fontconfig, a library for configuring and customising font access.")
|
||||
(description
|
||||
"Fontconfig can discover new fonts when installed automatically;
|
||||
|
|
|
@ -57,14 +57,14 @@ Daemon and possibly more in the future.")
|
|||
(define-public libgcrypt
|
||||
(package
|
||||
(name "libgcrypt")
|
||||
(version "1.5.2")
|
||||
(version "1.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gwnzqd64cpwdmk93nll54nidsr74jpimxzj4p4z7502ylwl66p4"))))
|
||||
"1lar8y3lh61zl5flljpz540d78g99h4d5idfwrfw8lm3gm737xdw"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error)))
|
||||
|
@ -106,7 +106,7 @@ provided.")
|
|||
(define-public libksba
|
||||
(package
|
||||
(name "libksba")
|
||||
(version "1.2.0")
|
||||
(version "1.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -115,7 +115,7 @@ provided.")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jwk7hm3x3g4hd7l12z3d79dy7359x7lc88dq6z7q0ixn1jwxbq9"))))
|
||||
"0w8rfb6yhcwkwzvjafrashcygy4hd9xwwmvlnkfd1m2h0paywqas"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error)))
|
||||
|
@ -131,7 +131,7 @@ specifications are building blocks of S/MIME and TLS.")
|
|||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.0.20")
|
||||
(version "2.0.21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -139,12 +139,10 @@ specifications are building blocks of S/MIME and TLS.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"16mp0j5inrcqcb3fxbn0b3aamascy3n923wiy0y8marc0rzrp53f"))))
|
||||
"1xgf1q1phdawk6y66haaqcvfnlsqk12jmjin1m2d5x6fqw18kpq0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(;; TODO: Add missing optional dep libusb.
|
||||
;; ("libusb" ,libusb)
|
||||
("bzip2" ,guix:bzip2)
|
||||
`(("bzip2" ,guix:bzip2)
|
||||
("curl" ,curl)
|
||||
("libassuan" ,libassuan)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
(define-module (gnu packages mail)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages gdbm)
|
||||
#:use-module (gnu packages gnutls)
|
||||
|
@ -154,7 +155,8 @@ aliasing facilities to work just as they would on normal mail.")
|
|||
"1864cwz240gh0zy56fb47qqzwyf6ghg01037rb4p2kqgimpg6h91"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
`(("cyrus-sasl" ,cyrus-sasl)
|
||||
("ncurses" ,ncurses)
|
||||
("openssl" ,openssl)
|
||||
("perl" ,perl)))
|
||||
(arguments
|
||||
|
@ -162,6 +164,7 @@ aliasing facilities to work just as they would on normal mail.")
|
|||
"--enable-imap"
|
||||
"--enable-pop"
|
||||
"--with-ssl"
|
||||
"--with-sasl"
|
||||
;; so that mutt does not check whether the path
|
||||
;; exists, which it does not in the chroot
|
||||
"--with-mailpath=/var/mail")))
|
||||
|
|
|
@ -108,7 +108,7 @@ extensive test suite.")
|
|||
(define-public pspp
|
||||
(package
|
||||
(name "pspp")
|
||||
(version "0.8.0a")
|
||||
(version "0.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -116,7 +116,7 @@ extensive test suite.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pgkb3z8b4wk4gymnafclhkrqq7n05wq83mra3v53jdl6bnllmyq"))))
|
||||
"0qhxsdbwxd3cn1shc13wxvx2lg32lp4z6sz24kv3jz7p5xfi8j7x"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,gnu:gettext)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:select (gpl3+))
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module ((gnu packages compression) #:select (bzip2))
|
||||
#:use-module ((gnu packages compression) #:select (bzip2 gzip))
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
@ -41,6 +41,7 @@
|
|||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list
|
||||
"--localstatedir=/var"
|
||||
(string-append "--with-libgcrypt-prefix="
|
||||
(assoc-ref %build-inputs
|
||||
"libgcrypt")))
|
||||
|
@ -70,6 +71,8 @@
|
|||
"/20130105/guile-2.0.7.tar.xz"))
|
||||
(sha256 hash)))))
|
||||
`(("bzip2" ,bzip2)
|
||||
("gzip" ,gzip)
|
||||
|
||||
("sqlite" ,sqlite)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("guile" ,guile-2.0)
|
||||
|
@ -100,3 +103,20 @@ A user-land free software distribution for GNU/Linux comes as part of Guix.
|
|||
|
||||
Guix is based on the Nix package manager.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public guix-0.4
|
||||
;; XXX: Hack to allow the use of a 0.4ish tarball. This assumes that you
|
||||
;; have run 'make dist' in your build tree. Remove when 0.4 is out.
|
||||
(let* ((builddir (dirname
|
||||
(canonicalize-path
|
||||
(dirname (search-path %load-path
|
||||
"guix/config.scm")))))
|
||||
(tarball (string-append builddir "/guix-0.4.tar.gz")))
|
||||
(package (inherit guix)
|
||||
(version "0.4rc")
|
||||
(source (if (file-exists? tarball)
|
||||
tarball
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"warning: 'guix-0.4.tar.gz' not found~%")
|
||||
(package-source guix)))))))
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages libphidget)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages libjpeg)
|
||||
#:use-module ((gnu packages gtk) #:select (cairo pango))
|
||||
|
@ -358,12 +359,15 @@ implementation techniques and as an expository tool.")
|
|||
'(#:phases
|
||||
(let* ((gui-libs
|
||||
(lambda (inputs)
|
||||
;; FIXME: Add GTK+ and GDK for DrRacket.
|
||||
(let ((glib (string-append (assoc-ref inputs "glib") "/lib"))
|
||||
(cairo (string-append (assoc-ref inputs "cairo") "/lib"))
|
||||
(pango (string-append (assoc-ref inputs "pango") "/lib"))
|
||||
(libjpeg (string-append (assoc-ref inputs "libjpeg") "/lib")))
|
||||
(list glib cairo pango libjpeg)))))
|
||||
(define (lib input)
|
||||
(string-append (assoc-ref inputs input) "/lib"))
|
||||
|
||||
(list (lib "glib")
|
||||
(lib "cairo")
|
||||
(lib "pango")
|
||||
(lib "libjpeg")
|
||||
(lib "gtk")
|
||||
(lib "gdk-pixbuf")))))
|
||||
(alist-cons-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -397,7 +401,9 @@ implementation techniques and as an expository tool.")
|
|||
("glib" ,glib) ; for DrRacket
|
||||
("cairo" ,cairo)
|
||||
("pango" ,pango)
|
||||
("libjpeg" ,libjpeg-8)))
|
||||
("libjpeg" ,libjpeg-8)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gtk" ,gtk+)))
|
||||
(home-page "http://racket-lang.org")
|
||||
(synopsis "Implementation of Scheme and related languages")
|
||||
(description
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'gnu:))
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages libpng)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages openssl)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -3114,9 +3114,9 @@ tracking.")
|
|||
(license license:x11)))
|
||||
|
||||
|
||||
(define-public xkbcomp
|
||||
(define xkbcomp-intermediate ; used as input for xkeyboard-config
|
||||
(package
|
||||
(name "xkbcomp")
|
||||
(name "xkbcomp-intermediate")
|
||||
(version "1.2.4")
|
||||
(source
|
||||
(origin
|
||||
|
@ -3139,6 +3139,18 @@ tracking.")
|
|||
(description "X.org provides an implementation of the X Window System")
|
||||
(license license:x11)))
|
||||
|
||||
(define-public xkbcomp ; using xkeyboard-config as input
|
||||
(package (inherit xkbcomp-intermediate)
|
||||
(name "xkbcomp")
|
||||
(inputs
|
||||
`(,@(package-inputs xkbcomp-intermediate)
|
||||
("xkeyboard-config" ,xkeyboard-config)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-xkb-config-root="
|
||||
(assoc-ref %build-inputs "xkeyboard-config")
|
||||
"/share/X11/xkb"))))))
|
||||
|
||||
|
||||
(define-public xkbevd
|
||||
(package
|
||||
|
@ -3212,7 +3224,7 @@ tracking.")
|
|||
("intltool" ,intltool)
|
||||
("libx11" ,libx11)
|
||||
("pkg-config" ,pkg-config)
|
||||
("xkbcomp" ,xkbcomp)))
|
||||
("xkbcomp-intermediate" ,xkbcomp-intermediate)))
|
||||
(home-page "http://www.x.org/wiki/")
|
||||
(synopsis "xorg implementation of the X Window System")
|
||||
(description "X.org provides an implementation of the X Window System")
|
||||
|
@ -4262,6 +4274,7 @@ emulation to complete hardware acceleration for modern GPUs.")
|
|||
("dbus" ,dbus)
|
||||
("dmxproto" ,dmxproto)
|
||||
("libdmx" ,libdmx)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("libxau" ,libxau)
|
||||
("libxaw" ,libxaw)
|
||||
("libxdmcp" ,libxdmcp)
|
||||
|
@ -4273,7 +4286,6 @@ emulation to complete hardware acceleration for modern GPUs.")
|
|||
("libxt" ,libxt)
|
||||
("libxv" ,libxv)
|
||||
("mesa" ,mesa)
|
||||
("openssl" ,openssl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)
|
||||
("recordproto" ,recordproto)
|
||||
|
@ -4284,10 +4296,30 @@ emulation to complete hardware acceleration for modern GPUs.")
|
|||
("xf86dgaproto" ,xf86dgaproto)
|
||||
("xf86driproto" ,xf86driproto)
|
||||
("xf86vidmodeproto" ,xf86vidmodeproto)
|
||||
;; ("xkbutils" ,xkbutils)
|
||||
;; ("xkeyboard-config" ,xkeyboard-config)
|
||||
("xkbcomp" ,xkbcomp)
|
||||
("xkeyboard-config" ,xkeyboard-config)
|
||||
("xtrans" ,xtrans)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-xkb-path="
|
||||
(assoc-ref %build-inputs "xkeyboard-config")
|
||||
"/share/X11/xkb")
|
||||
(string-append "--with-xkb-output="
|
||||
"/tmp") ; FIXME: This is a bit doubtful; where should
|
||||
; the compiled keyboard maps go?
|
||||
(string-append "--with-xkb-bin-directory="
|
||||
(assoc-ref %build-inputs "xkbcomp")
|
||||
"/bin"))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(substitute* (find-files "." "\\.c$")
|
||||
(("/bin/sh") (which "sh")))
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.x.org/wiki/")
|
||||
(synopsis "xorg implementation of the X Window System")
|
||||
(description "X.org provides an implementation of the X Window System")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,25 +24,37 @@
|
|||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages help2man)
|
||||
#:use-module (gnu packages ncurses))
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages bash))
|
||||
|
||||
(define-public zile
|
||||
(package
|
||||
(name "zile")
|
||||
(version "2.4.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/zile/zile-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j801c28ypm924rw3lqyb6khxyslg6ycrv16wmmwcam0mk3mj6f7"))))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/zile/zile-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j801c28ypm924rw3lqyb6khxyslg6ycrv16wmmwcam0mk3mj6f7"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-before
|
||||
'configure 'patch-/bin/sh
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
;; Refer to the actual shell.
|
||||
(substitute* '("lib/spawni.c" "src/funcs.c")
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/sh")))))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("boehm-gc" ,libgc)
|
||||
("ncurses" ,ncurses)
|
||||
("perl" ,perl)
|
||||
("bash" ,bash)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("help2man" ,help2man)))
|
||||
(home-page "http://www.gnu.org/software/zile/")
|
||||
(synopsis "Zile is lossy Emacs, a lightweight Emacs clone")
|
||||
|
|
|
@ -21,8 +21,12 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix records)
|
||||
#:use-module ((gnu packages base)
|
||||
#:select (glibc-final))
|
||||
#:use-module ((gnu packages system)
|
||||
#:select (mingetty inetutils))
|
||||
#:use-module ((gnu packages package-management)
|
||||
#:select (guix))
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (service?
|
||||
|
@ -34,8 +38,13 @@
|
|||
service-stop
|
||||
service-inputs
|
||||
|
||||
host-name-service
|
||||
syslog-service
|
||||
mingetty-service
|
||||
nscd-service
|
||||
guix-service
|
||||
static-networking-service
|
||||
|
||||
dmd-configuration-file))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -58,6 +67,14 @@
|
|||
(inputs service-inputs ; list of inputs
|
||||
(default '())))
|
||||
|
||||
(define (host-name-service store name)
|
||||
"Return a service that sets the host name to NAME."
|
||||
(service
|
||||
(provision '(host-name))
|
||||
(start `(lambda _
|
||||
(sethostname ,name)))
|
||||
(respawn? #f)))
|
||||
|
||||
(define (mingetty-service store tty)
|
||||
"Return a service to run mingetty on TTY."
|
||||
(let* ((mingetty-drv (package-derivation store mingetty))
|
||||
|
@ -65,9 +82,32 @@
|
|||
"/sbin/mingetty")))
|
||||
(service
|
||||
(provision (list (symbol-append 'term- (string->symbol tty))))
|
||||
|
||||
;; Since the login prompt shows the host name, wait for the 'host-name'
|
||||
;; service to be done.
|
||||
(requirement '(host-name))
|
||||
|
||||
(start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
|
||||
(inputs `(("mingetty" ,mingetty))))))
|
||||
|
||||
(define* (nscd-service store
|
||||
#:key (glibc glibc-final))
|
||||
"Return a service that runs libc's name service cache daemon (nscd)."
|
||||
(let ((nscd (string-append (package-output store glibc) "/sbin/nscd")))
|
||||
(service
|
||||
(provision '(nscd))
|
||||
(start `(make-forkexec-constructor ,nscd "-f" "/dev/null"))
|
||||
|
||||
;; XXX: Local copy of 'make-kill-destructor' because the one upstream
|
||||
;; uses the broken 'opt-lambda' macro.
|
||||
(stop `(lambda* (#:optional (signal SIGTERM))
|
||||
(lambda (pid . args)
|
||||
(kill pid signal)
|
||||
#f)))
|
||||
|
||||
(respawn? #f)
|
||||
(inputs `(("glibc" ,glibc))))))
|
||||
|
||||
(define (syslog-service store)
|
||||
"Return a service that runs 'syslogd' with reasonable default settings."
|
||||
|
||||
|
@ -104,6 +144,33 @@
|
|||
(inputs `(("inetutils" ,inetutils)
|
||||
("syslog.conf" ,syslog.conf))))))
|
||||
|
||||
(define* (guix-service store #:key (guix guix))
|
||||
"Return a service that runs the build daemon from GUIX."
|
||||
(let* ((drv (package-derivation store guix))
|
||||
(daemon (string-append (derivation->output-path drv)
|
||||
"/bin/guix-daemon")))
|
||||
(service
|
||||
(provision '(guix-daemon))
|
||||
(start `(make-forkexec-constructor ,daemon))
|
||||
(inputs `(("guix" ,guix))))))
|
||||
|
||||
(define* (static-networking-service store interface ip
|
||||
#:key (inetutils inetutils))
|
||||
"Return a service that starts INTERFACE with address IP."
|
||||
|
||||
;; TODO: Eventually we should do this using Guile's networking procedures,
|
||||
;; like 'configure-qemu-networking' does, but the patch that does this is
|
||||
;; not yet in stock Guile.
|
||||
(let ((ifconfig (string-append (package-output store inetutils)
|
||||
"/bin/ifconfig")))
|
||||
(service
|
||||
(provision '(networking))
|
||||
(start `(make-forkexec-constructor ,ifconfig ,interface ,ip "up"))
|
||||
(stop `(make-forkexec-constructor ,ifconfig ,interface "down"))
|
||||
(respawn? #f)
|
||||
(inputs `(("inetutils" ,inetutils))))))
|
||||
|
||||
|
||||
(define (dmd-configuration-file store services)
|
||||
"Return the dmd configuration file for SERVICES."
|
||||
(define config
|
||||
|
|
|
@ -125,9 +125,10 @@
|
|||
(let ((unix (pam-entry
|
||||
(control "required")
|
||||
(module "pam_unix.so"))))
|
||||
(lambda* (name #:key allow-empty-passwords?)
|
||||
(lambda* (name #:key allow-empty-passwords? motd)
|
||||
"Return a standard Unix-style PAM service for NAME. When
|
||||
ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords."
|
||||
ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it
|
||||
should be the name of a file used as the message-of-the-day."
|
||||
;; See <http://www.linux-pam.org/Linux-PAM-html/sag-configuration-example.html>.
|
||||
(let ((name* name))
|
||||
(pam-service
|
||||
|
@ -140,6 +141,12 @@ ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords."
|
|||
(arguments '("nullok")))
|
||||
unix)))
|
||||
(password (list unix))
|
||||
(session (list unix)))))))
|
||||
(session (if motd
|
||||
(list unix
|
||||
(pam-entry
|
||||
(control "optional")
|
||||
(module "pam_motd.so")
|
||||
(arguments (list (string-append "motd=" motd)))))
|
||||
(list unix))))))))
|
||||
|
||||
;;; linux.scm ends here
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module ((gnu packages base) #:select (%final-inputs
|
||||
guile-final
|
||||
gcc-final
|
||||
glibc-final
|
||||
coreutils))
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages bash)
|
||||
|
@ -31,6 +33,7 @@
|
|||
#:use-module (gnu packages grub)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages linux-initrd)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module ((gnu packages make-bootstrap)
|
||||
#:select (%guile-static-stripped))
|
||||
#:use-module (gnu packages system)
|
||||
|
@ -91,6 +94,10 @@ made available under the /xchg CIFS share."
|
|||
`(,input . ,(package-output store package "out" system)))
|
||||
((input (? package? package) sub-drv)
|
||||
`(,input . ,(package-output store package sub-drv system)))
|
||||
((input (? derivation? drv))
|
||||
`(,input . ,(derivation->output-path drv)))
|
||||
((input (? derivation? drv) sub-drv)
|
||||
`(,input . ,(derivation->output-path drv sub-drv)))
|
||||
((input (and (? string?) (? store-path?) file))
|
||||
`(,input . ,file)))
|
||||
inputs))
|
||||
|
@ -177,7 +184,8 @@ made available under the /xchg CIFS share."
|
|||
`(,name ,(->drv package)
|
||||
,@sub-drv))
|
||||
((name (? string? file))
|
||||
`(,name ,file)))
|
||||
`(,name ,file))
|
||||
(tuple tuple))
|
||||
inputs))
|
||||
#:env-vars env-vars
|
||||
#:modules (delete-duplicates
|
||||
|
@ -191,6 +199,7 @@ made available under the /xchg CIFS share."
|
|||
(system (%current-system))
|
||||
(disk-image-size (* 100 (expt 2 20)))
|
||||
grub-configuration
|
||||
(initialize-store? #f)
|
||||
(populate #f)
|
||||
(inputs '())
|
||||
(inputs-to-copy '()))
|
||||
|
@ -199,11 +208,13 @@ disk image, with a GRUB installation that uses GRUB-CONFIGURATION as its
|
|||
configuration file.
|
||||
|
||||
INPUTS-TO-COPY is a list of inputs (as for packages) whose closure is copied
|
||||
into the image being built.
|
||||
into the image being built. When INITIALIZE-STORE? is true, initialize the
|
||||
store database in the image so that Guix can be used in the image.
|
||||
|
||||
When POPULATE is true, it must be the store file name of a Guile script to run
|
||||
in the disk image partition once it has been populated with INPUTS-TO-COPY.
|
||||
It can be used to provide additional files, such as /etc files."
|
||||
POPULATE is a list of directives stating directories or symlinks to be created
|
||||
in the disk image partition. It is evaluated once the image has been
|
||||
populated with INPUTS-TO-COPY. It can be used to provide additional files,
|
||||
such as /etc files."
|
||||
(define input->name+derivation
|
||||
(match-lambda
|
||||
((name (? package? package))
|
||||
|
@ -213,6 +224,10 @@ It can be used to provide additional files, such as /etc files."
|
|||
`(,name . ,(derivation->output-path
|
||||
(package-derivation store package system)
|
||||
sub-drv)))
|
||||
((name (? derivation? drv))
|
||||
`(,name . ,(derivation->output-path drv)))
|
||||
((name (? derivation? drv) sub-drv)
|
||||
`(,name . ,(derivation->output-path drv sub-drv)))
|
||||
((input (and (? string?) (? store-path?) file))
|
||||
`(,input . ,file))))
|
||||
|
||||
|
@ -298,6 +313,36 @@ It can be used to provide additional files, such as /etc files."
|
|||
;; Populate /dev.
|
||||
(make-essential-device-nodes #:root "/fs")
|
||||
|
||||
;; Optionally, register the inputs in the image's store.
|
||||
(let* ((guix (assoc-ref %build-inputs "guix"))
|
||||
(register (string-append guix
|
||||
"/sbin/guix-register")))
|
||||
,@(if initialize-store?
|
||||
(match inputs-to-copy
|
||||
(((graph-files . _) ...)
|
||||
(map (lambda (closure)
|
||||
`(system* register "--prefix" "/fs"
|
||||
,(string-append "/xchg/"
|
||||
closure)))
|
||||
graph-files)))
|
||||
'(#f)))
|
||||
|
||||
;; Evaluate the POPULATE directives.
|
||||
,@(let loop ((directives populate)
|
||||
(statements '()))
|
||||
(match directives
|
||||
(()
|
||||
(reverse statements))
|
||||
((('directory name) rest ...)
|
||||
(loop rest
|
||||
(cons `(mkdir-p ,(string-append "/fs" name))
|
||||
statements)))
|
||||
(((new '-> old) rest ...)
|
||||
(loop rest
|
||||
(cons `(symlink ,old
|
||||
,(string-append "/fs" new))
|
||||
statements)))))
|
||||
|
||||
(and=> (assoc-ref %build-inputs "populate")
|
||||
(lambda (populate)
|
||||
(chdir "/fs")
|
||||
|
@ -337,8 +382,8 @@ It can be used to provide additional files, such as /etc files."
|
|||
("gawk" ,(car (assoc-ref %final-inputs "gawk")))
|
||||
("util-linux" ,util-linux)
|
||||
|
||||
,@(if populate
|
||||
`(("populate" ,populate))
|
||||
,@(if initialize-store?
|
||||
`(("guix" ,guix-0.4))
|
||||
'())
|
||||
|
||||
,@inputs-to-copy)
|
||||
|
@ -353,19 +398,73 @@ It can be used to provide additional files, such as /etc files."
|
|||
;;; Stand-alone VM image.
|
||||
;;;
|
||||
|
||||
(define* (union store inputs
|
||||
#:key (guile (%guile-for-build)) (system (%current-system))
|
||||
(name "union"))
|
||||
"Return a derivation that builds the union of INPUTS. INPUTS is a list of
|
||||
input tuples."
|
||||
(define builder
|
||||
`(begin
|
||||
(use-modules (guix build union))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(setvbuf (current-error-port) _IOLBF)
|
||||
|
||||
(let ((output (assoc-ref %outputs "out"))
|
||||
(inputs (map cdr %build-inputs)))
|
||||
(format #t "building union `~a' with ~a packages...~%"
|
||||
output (length inputs))
|
||||
(union-build output inputs))))
|
||||
|
||||
(build-expression->derivation store name system builder
|
||||
(map (match-lambda
|
||||
((name (? package? p))
|
||||
`(,name ,(package-derivation store p
|
||||
system)))
|
||||
((name (? package? p) output)
|
||||
`(,name ,(package-derivation store p
|
||||
system)
|
||||
,output))
|
||||
(x x))
|
||||
inputs)
|
||||
#:modules '((guix build union))
|
||||
#:guile-for-build guile))
|
||||
|
||||
(define (system-qemu-image store)
|
||||
"Return the derivation of a QEMU image of the GNU system."
|
||||
(define motd
|
||||
(add-text-to-store store "motd" "
|
||||
Happy birthday, GNU! http://www.gnu.org/gnu30
|
||||
|
||||
"))
|
||||
|
||||
(define %pam-services
|
||||
;; Services known to PAM.
|
||||
(list %pam-other-services
|
||||
(unix-pam-service "login" #:allow-empty-passwords? #t)))
|
||||
(unix-pam-service "login"
|
||||
#:allow-empty-passwords? #t
|
||||
#:motd motd)))
|
||||
|
||||
(define %dmd-services
|
||||
;; Services run by dmd.
|
||||
(list (mingetty-service store "tty1")
|
||||
(list (host-name-service store "gnu")
|
||||
(mingetty-service store "tty1")
|
||||
(mingetty-service store "tty2")
|
||||
(mingetty-service store "tty3")
|
||||
(syslog-service store)))
|
||||
(mingetty-service store "tty4")
|
||||
(mingetty-service store "tty5")
|
||||
(mingetty-service store "tty6")
|
||||
(syslog-service store)
|
||||
(guix-service store #:guix guix-0.4)
|
||||
(nscd-service store)
|
||||
|
||||
;; QEMU networking settings.
|
||||
(static-networking-service store "eth0" "10.0.2.10")))
|
||||
|
||||
(define resolv.conf
|
||||
;; Name resolution for default QEMU settings.
|
||||
(add-text-to-store store "resolv.conf"
|
||||
"nameserver 10.0.2.3\n"))
|
||||
|
||||
(parameterize ((%guile-for-build (package-derivation store guile-final)))
|
||||
(let* ((bash-drv (package-derivation store bash))
|
||||
|
@ -383,20 +482,53 @@ It can be used to provide additional files, such as /etc files."
|
|||
"root:x:0:\n"))
|
||||
(pam.d-drv (pam-services->directory store %pam-services))
|
||||
(pam.d (derivation->output-path pam.d-drv))
|
||||
(populate
|
||||
(add-text-to-store store "populate-qemu-image"
|
||||
(object->string
|
||||
`(begin
|
||||
(mkdir-p "etc")
|
||||
(mkdir-p "var/log") ; for dmd
|
||||
(symlink ,shadow "etc/shadow")
|
||||
(symlink ,passwd "etc/passwd")
|
||||
(symlink ,group "etc/group")
|
||||
(symlink "/dev/null"
|
||||
"etc/login.defs")
|
||||
(symlink ,pam.d "etc/pam.d")
|
||||
(mkdir-p "var/run")))
|
||||
(list passwd)))
|
||||
|
||||
(packages `(("coreutils" ,coreutils)
|
||||
("bash" ,bash)
|
||||
("guile" ,guile-2.0)
|
||||
("dmd" ,dmd)
|
||||
("gcc" ,gcc-final)
|
||||
("libc" ,glibc-final)
|
||||
("inetutils" ,inetutils)
|
||||
("guix" ,guix-0.4)))
|
||||
|
||||
;; TODO: Replace with a real profile with a manifest.
|
||||
;; TODO: Generate bashrc from packages' search-paths.
|
||||
(profile-drv (union store packages
|
||||
#:name "default-profile"))
|
||||
(profile (derivation->output-path profile-drv))
|
||||
(bashrc (add-text-to-store store "bashrc"
|
||||
(string-append "
|
||||
export PS1='\\u@\\h\\$ '
|
||||
export PATH=$HOME/.guix-profile/bin:" profile "/bin:" profile "/sbin
|
||||
export CPATH=$HOME/.guix-profile/include:" profile "/include
|
||||
export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib
|
||||
alias ls='ls -p --color'
|
||||
alias ll='ls -l'
|
||||
")))
|
||||
|
||||
(issue (add-text-to-store store "issue" "
|
||||
This is an alpha preview of the GNU system. Welcome.
|
||||
|
||||
This image features the GNU Guix package manager, which was used to
|
||||
build it (http://www.gnu.org/software/guix/). The init system is
|
||||
GNU dmd (http://www.gnu.org/software/dmd/).
|
||||
|
||||
You can log in as 'root' with no password.
|
||||
"))
|
||||
|
||||
(populate `((directory "/etc")
|
||||
(directory "/var/log") ; for dmd
|
||||
(directory "/var/run/nscd")
|
||||
("/etc/shadow" -> ,shadow)
|
||||
("/etc/passwd" -> ,passwd)
|
||||
("/etc/login.defs" -> "/dev/null")
|
||||
("/etc/pam.d" -> ,pam.d)
|
||||
("/etc/resolv.conf" -> ,resolv.conf)
|
||||
("/etc/profile" -> ,bashrc)
|
||||
("/etc/issue" -> ,issue)
|
||||
(directory "/var/nix/gcroots")
|
||||
("/var/nix/gcroots/default-profile" -> ,profile)))
|
||||
(out (derivation->output-path
|
||||
(package-derivation store mingetty)))
|
||||
(boot (add-text-to-store store "boot"
|
||||
|
@ -405,32 +537,36 @@ It can be used to provide additional files, such as /etc files."
|
|||
"--config" ,dmd-conf))
|
||||
(list out)))
|
||||
(entries (list (menu-entry
|
||||
(label "Boot-to-Guile! (GNU System technology preview)")
|
||||
(label (string-append
|
||||
"GNU System with Linux-Libre "
|
||||
(package-version linux-libre)
|
||||
" (technology preview)"))
|
||||
(linux linux-libre)
|
||||
(linux-arguments `("--root=/dev/vda1"
|
||||
,(string-append "--load=" boot)))
|
||||
(initrd gnu-system-initrd))))
|
||||
(grub.cfg (grub-configuration-file store entries)))
|
||||
(build-derivations store (list pam.d-drv))
|
||||
(qemu-image store
|
||||
#:grub-configuration grub.cfg
|
||||
#:populate populate
|
||||
#:disk-image-size (* 400 (expt 2 20))
|
||||
#:disk-image-size (* 500 (expt 2 20))
|
||||
#:initialize-store? #t
|
||||
#:inputs-to-copy `(("boot" ,boot)
|
||||
("linux" ,linux-libre)
|
||||
("initrd" ,gnu-system-initrd)
|
||||
("coreutils" ,coreutils)
|
||||
("bash" ,bash)
|
||||
("guile" ,guile-2.0)
|
||||
("mingetty" ,mingetty)
|
||||
("dmd" ,dmd)
|
||||
("pam.d" ,pam.d-drv)
|
||||
("profile" ,profile-drv)
|
||||
|
||||
;; Configuration.
|
||||
("dmd.conf" ,dmd-conf)
|
||||
("etc-pam.d" ,pam.d)
|
||||
("etc-pam.d" ,pam.d-drv)
|
||||
("etc-passwd" ,passwd)
|
||||
("etc-shadow" ,shadow)
|
||||
("etc-group" ,group)
|
||||
("etc-resolv.conf" ,resolv.conf)
|
||||
("etc-bashrc" ,bashrc)
|
||||
("etc-issue" ,issue)
|
||||
("etc-motd" ,motd)
|
||||
,@(append-map service-inputs
|
||||
%dmd-services))))))
|
||||
|
||||
|
|
|
@ -462,8 +462,8 @@ system identifying string)."
|
|||
#:outputs outputs #:system system
|
||||
(args))))))))
|
||||
|
||||
(define* (package-output store package output
|
||||
#:optional (system (%current-system)))
|
||||
(define* (package-output store package
|
||||
#:optional (output "out") (system (%current-system)))
|
||||
"Return the output path of PACKAGE's OUTPUT for SYSTEM---where OUTPUT is the
|
||||
symbolic output name, such as \"out\". Note that this procedure calls
|
||||
`package-derivation', which is costly."
|
||||
|
|
|
@ -955,12 +955,16 @@ more information.~%"))
|
|||
(match (assoc-ref opts 'query)
|
||||
(('list-generations pattern)
|
||||
(define (list-generation number)
|
||||
(begin
|
||||
(format #t (_ "Generation ~a\t~a~%") number
|
||||
(date->string
|
||||
(time-utc->date
|
||||
(generation-time profile number))
|
||||
"~b ~d ~Y ~T"))
|
||||
(unless (zero? number)
|
||||
(let ((header (format #f (_ "Generation ~a\t~a") number
|
||||
(date->string
|
||||
(time-utc->date
|
||||
(generation-time profile number))
|
||||
"~b ~d ~Y ~T")))
|
||||
(current (generation-number profile)))
|
||||
(if (= number current)
|
||||
(format #t (_ "~a\t(current)~%") header)
|
||||
(format #t "~a~%" header)))
|
||||
(for-each (match-lambda
|
||||
((name version output location _)
|
||||
(format #t " ~a\t~a\t~a\t~a~%"
|
||||
|
@ -977,11 +981,16 @@ more information.~%"))
|
|||
(leave (_ "profile '~a' does not exist~%")
|
||||
profile))
|
||||
((string-null? pattern)
|
||||
(for-each list-generation
|
||||
(generation-numbers profile)))
|
||||
(let ((numbers (generation-numbers profile)))
|
||||
(if (equal? numbers '(0))
|
||||
(exit 1)
|
||||
(for-each list-generation numbers))))
|
||||
((matching-generations pattern profile)
|
||||
=>
|
||||
(cut for-each list-generation <>))
|
||||
(lambda (numbers)
|
||||
(if (null-list? numbers)
|
||||
(exit 1)
|
||||
(for-each list-generation numbers))))
|
||||
(else
|
||||
(leave (_ "invalid syntax: ~a~%")
|
||||
pattern)))
|
||||
|
|
|
@ -62,6 +62,10 @@ static const struct argp_option options[] =
|
|||
{ 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
/* Prefix of the store being populated. */
|
||||
static std::string prefix;
|
||||
|
||||
/* Parse a single option. */
|
||||
static error_t
|
||||
parse_opt (int key, char *arg, struct argp_state *state)
|
||||
|
@ -70,7 +74,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
|||
{
|
||||
case 'p':
|
||||
{
|
||||
string prefix = canonPath (arg);
|
||||
prefix = canonPath (arg);
|
||||
settings.nixStore = prefix + NIX_STORE_DIR;
|
||||
settings.nixDataDir = prefix + NIX_DATA_DIR;
|
||||
settings.nixLogDir = prefix + NIX_LOG_DIR;
|
||||
|
@ -128,15 +132,25 @@ register_validity (LocalStore *store, std::istream &input,
|
|||
ValidPathInfo info = decodeValidPathInfo (input, hashGiven);
|
||||
if (info.path == "")
|
||||
break;
|
||||
|
||||
/* Rewrite the input to refer final name, as if we were in a chroot
|
||||
under PREFIX. */
|
||||
std::string final_prefix (NIX_STORE_DIR "/");
|
||||
info.path = final_prefix + baseNameOf (info.path);
|
||||
|
||||
/* Keep its real path to canonicalize it and compute its hash. */
|
||||
std::string real_path;
|
||||
real_path = prefix + "/" + settings.nixStore + "/" + baseNameOf (info.path);
|
||||
|
||||
if (!store->isValidPath (info.path) || reregister)
|
||||
{
|
||||
/* !!! races */
|
||||
if (canonicalise)
|
||||
canonicalisePathMetaData (info.path, -1);
|
||||
canonicalisePathMetaData (real_path, -1);
|
||||
|
||||
if (!hashGiven)
|
||||
{
|
||||
HashResult hash = hashPath (htSHA256, info.path);
|
||||
HashResult hash = hashPath (htSHA256, real_path);
|
||||
info.hash = hash.first;
|
||||
info.narSize = hash.second;
|
||||
}
|
||||
|
@ -155,7 +169,15 @@ main (int argc, char *argv[])
|
|||
{
|
||||
argp_parse (&argp, argc, argv, 0, 0, 0);
|
||||
|
||||
/* Instantiate the store. This creates any missing directories among
|
||||
'settings.nixStore', 'settings.nixDBPath', etc. */
|
||||
LocalStore store;
|
||||
|
||||
/* Under the --prefix tree, the final name of the store will be
|
||||
NIX_STORE_DIR. Set it here so that the database uses file names
|
||||
prefixed by NIX_STORE_DIR and not PREFIX + NIX_STORE_DIR. */
|
||||
settings.nixStore = NIX_STORE_DIR;
|
||||
|
||||
register_validity (&store, *input);
|
||||
}
|
||||
catch (std::exception &e)
|
||||
|
|
346
po/eo.po
346
po/eo.po
|
@ -5,16 +5,17 @@
|
|||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: guix 0.3-pre3\n"
|
||||
"Project-Id-Version: guix 0.4-pre2\n"
|
||||
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
|
||||
"POT-Creation-Date: 2013-08-15 11:44+0200\n"
|
||||
"PO-Revision-Date: 2013-07-25 09:25-0300\n"
|
||||
"POT-Creation-Date: 2013-09-25 16:04+0200\n"
|
||||
"PO-Revision-Date: 2013-09-25 15:53-0300\n"
|
||||
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
|
||||
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
|
||||
"Language: eo\n"
|
||||
"Language: Esperanto\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
|
||||
#: gnu/packages.scm:94
|
||||
#, scheme-format
|
||||
|
@ -52,15 +53,13 @@ msgid ""
|
|||
"Sed (stream editor) isn't really a true text editor or text processor.\n"
|
||||
"Instead, it is used to filter text, i.e., it takes text input and performs\n"
|
||||
"some operation (or set of operations) on it and outputs the modified text.\n"
|
||||
"Sed is typically used for extracting part of a file using pattern matching "
|
||||
"or\n"
|
||||
"Sed is typically used for extracting part of a file using pattern matching or\n"
|
||||
"substituting multiple occurrences of a string within a file."
|
||||
msgstr ""
|
||||
"Sed (flu-redaktilo) ne estas fakte vera tekst-redaktilo aŭ tekst-procezilo.\n"
|
||||
"Anstataŭe, ĝi estas uzata por filtri tekston, t.e., ĝi prenas tekston kaj\n"
|
||||
"aplikas iun operacion (aŭ aron) al ĝi kaj eligas la modifitan tekston.\n"
|
||||
"Sed ordinare estas uzata por eltiri parton de dosiero per ŝablon-kongruon "
|
||||
"aŭ\n"
|
||||
"Sed ordinare estas uzata por eltiri parton de dosiero per ŝablon-kongruon aŭ\n"
|
||||
"por anstataŭigi multoblajn aperojn de ĉeno interne de dosiero."
|
||||
|
||||
#: gnu/packages/base.scm:140
|
||||
|
@ -77,8 +76,7 @@ msgid ""
|
|||
"Initially, tar archives were used to store files conveniently on magnetic\n"
|
||||
"tape. The name \"Tar\" comes from this use; it stands for tape archiver.\n"
|
||||
"Despite the utility's name, Tar can direct its output to available devices,\n"
|
||||
"files, or other programs (using pipes), it can even access remote devices "
|
||||
"or\n"
|
||||
"files, or other programs (using pipes), it can even access remote devices or\n"
|
||||
"files (as archives)."
|
||||
msgstr ""
|
||||
|
||||
|
@ -89,8 +87,7 @@ msgstr "Apliki malsamojn al originaloj, kun nedevigaj savkopioj"
|
|||
#: gnu/packages/base.scm:175
|
||||
msgid ""
|
||||
"GNU Patch takes a patch file containing a difference listing produced by\n"
|
||||
"the diff program and applies those differences to one or more original "
|
||||
"files,\n"
|
||||
"the diff program and applies those differences to one or more original files,\n"
|
||||
"producing patched versions."
|
||||
msgstr ""
|
||||
|
||||
|
@ -104,25 +101,21 @@ msgid ""
|
|||
"differences between files.\n"
|
||||
"\n"
|
||||
"Computer users often find occasion to ask how two files differ. Perhaps one\n"
|
||||
"file is a newer version of the other file. Or maybe the two files started "
|
||||
"out\n"
|
||||
"file is a newer version of the other file. Or maybe the two files started out\n"
|
||||
"as identical copies but were changed by different people.\n"
|
||||
"\n"
|
||||
"You can use the diff command to show differences between two files, or each\n"
|
||||
"corresponding file in two directories. diff outputs differences between "
|
||||
"files\n"
|
||||
"corresponding file in two directories. diff outputs differences between files\n"
|
||||
"line by line in any of several formats, selectable by command line\n"
|
||||
"options. This set of differences is often called a ‘diff’ or ‘patch’. For\n"
|
||||
"files that are identical, diff normally produces no output; for\n"
|
||||
"binary (non-text) files, diff normally reports only that they are "
|
||||
"different.\n"
|
||||
"binary (non-text) files, diff normally reports only that they are different.\n"
|
||||
"\n"
|
||||
"You can use the cmp command to show the offsets and line numbers where two\n"
|
||||
"files differ. cmp can also show all the characters that differ between the\n"
|
||||
"two files, side by side.\n"
|
||||
"\n"
|
||||
"You can use the diff3 command to show differences among three files. When "
|
||||
"two\n"
|
||||
"You can use the diff3 command to show differences among three files. When two\n"
|
||||
"people have made independent changes to a common original, diff3 can report\n"
|
||||
"the differences between the original and the two changed versions, and can\n"
|
||||
"produce a merged file that contains both persons' changes together with\n"
|
||||
|
@ -139,8 +132,7 @@ msgstr "Operacio sur dosieroj kongruantaj al indikia kriterio"
|
|||
msgid ""
|
||||
"The GNU Find Utilities are the basic directory searching utilities of\n"
|
||||
"the GNU operating system. These programs are typically used in conjunction\n"
|
||||
"with other programs to provide modular and powerful directory search and "
|
||||
"file\n"
|
||||
"with other programs to provide modular and powerful directory search and file\n"
|
||||
"locating capabilities to other commands.\n"
|
||||
"\n"
|
||||
"The tools supplied with this package are:\n"
|
||||
|
@ -172,10 +164,8 @@ msgid ""
|
|||
"non-source files of a program from the program's source files.\n"
|
||||
"\n"
|
||||
"Make gets its knowledge of how to build your program from a file called the\n"
|
||||
"makefile, which lists each of the non-source files and how to compute it "
|
||||
"from\n"
|
||||
"other files. When you write a program, you should write a makefile for it, "
|
||||
"so\n"
|
||||
"makefile, which lists each of the non-source files and how to compute it from\n"
|
||||
"other files. When you write a program, you should write a makefile for it, so\n"
|
||||
"that it is possible to use Make to build and install the program."
|
||||
msgstr ""
|
||||
|
||||
|
@ -197,12 +187,10 @@ msgstr "La Biblioteko GNU C"
|
|||
#: gnu/packages/base.scm:502
|
||||
msgid ""
|
||||
"Any Unix-like operating system needs a C library: the library which\n"
|
||||
"defines the \"system calls\" and other basic facilities such as open, "
|
||||
"malloc,\n"
|
||||
"defines the \"system calls\" and other basic facilities such as open, malloc,\n"
|
||||
"printf, exit...\n"
|
||||
"\n"
|
||||
"The GNU C library is used as the C library in the GNU system and most "
|
||||
"systems\n"
|
||||
"The GNU C library is used as the C library in the GNU system and most systems\n"
|
||||
"with the Linux kernel."
|
||||
msgstr ""
|
||||
|
||||
|
@ -215,8 +203,7 @@ msgid ""
|
|||
"The Time Zone Database (often called tz or zoneinfo)\n"
|
||||
"contains code and data that represent the history of local time for many\n"
|
||||
"representative locations around the globe. It is updated periodically to\n"
|
||||
"reflect changes made by political bodies to time zone boundaries, UTC "
|
||||
"offsets,\n"
|
||||
"reflect changes made by political bodies to time zone boundaries, UTC offsets,\n"
|
||||
"and daylight-saving rules."
|
||||
msgstr ""
|
||||
|
||||
|
@ -227,8 +214,7 @@ msgstr "La ligila ĉirkaŭanto"
|
|||
#: gnu/packages/base.scm:992
|
||||
msgid ""
|
||||
"The linker wrapper (or `ld-wrapper') wraps the linker to add any\n"
|
||||
"missing `-rpath' flags, and to detect any misuse of libraries outside of "
|
||||
"the\n"
|
||||
"missing `-rpath' flags, and to detect any misuse of libraries outside of the\n"
|
||||
"store."
|
||||
msgstr ""
|
||||
|
||||
|
@ -262,8 +248,7 @@ msgid ""
|
|||
"Guile-Reader is a simple framework for building readers for GNU Guile.\n"
|
||||
"\n"
|
||||
"The idea is to make it easy to build procedures that extend Guile’s read\n"
|
||||
"procedure. Readers supporting various syntax variants can easily be "
|
||||
"written,\n"
|
||||
"procedure. Readers supporting various syntax variants can easily be written,\n"
|
||||
"possibly by re-using existing “token readers” of a standard Scheme\n"
|
||||
"readers. For example, it is used to implement Skribilo’s R5RS-derived\n"
|
||||
"document syntax.\n"
|
||||
|
@ -280,8 +265,7 @@ msgstr "Bindoj de Guile por ncurses"
|
|||
#: gnu/packages/guile.scm:268
|
||||
msgid ""
|
||||
"GNU Guile-Ncurses is a library for the Guile Scheme interpreter that\n"
|
||||
"provides functions for creating text user interfaces. The text user "
|
||||
"interface\n"
|
||||
"provides functions for creating text user interfaces. The text user interface\n"
|
||||
"functionality is built on the ncurses libraries: curses, form, panel, and\n"
|
||||
"menu."
|
||||
msgstr ""
|
||||
|
@ -293,33 +277,39 @@ msgstr "Lanĉi taskoj je antaŭplanitaj horoj"
|
|||
#: gnu/packages/guile.scm:294
|
||||
msgid ""
|
||||
"The GNU package mcron (Mellor's cron) is a 100% compatible replacement\n"
|
||||
"for Vixie cron. It is written in pure Guile, and allows configuration "
|
||||
"files\n"
|
||||
"for Vixie cron. It is written in pure Guile, and allows configuration files\n"
|
||||
"to be written in scheme (as well as Vixie's original format) for infinite\n"
|
||||
"flexibility in specifying when jobs should be run. Mcron was written by "
|
||||
"Dale\n"
|
||||
"flexibility in specifying when jobs should be run. Mcron was written by Dale\n"
|
||||
"Mellor."
|
||||
msgstr ""
|
||||
|
||||
#: gnu/packages/guile.scm:323
|
||||
msgid "Collection of useful Guile Scheme modules"
|
||||
msgstr "Aro da utilaj moduloj de Guile Scheme"
|
||||
|
||||
#: gnu/packages/guile.scm:325
|
||||
msgid ""
|
||||
"guile-lib is intended as an accumulation place for pure-scheme Guile\n"
|
||||
"modules, allowing for people to cooperate integrating their generic Guile\n"
|
||||
"modules into a coherent library. Think \"a down-scaled, limited-scope CPAN\n"
|
||||
"for Guile\"."
|
||||
msgstr ""
|
||||
|
||||
#: gnu/packages/lout.scm:109
|
||||
msgid "Lout, a document layout system similar in style to LaTeX"
|
||||
msgstr "Lout, dokument-aranĝa sistemo simila al LaTeX, laŭ stilo"
|
||||
|
||||
#: gnu/packages/lout.scm:111
|
||||
msgid ""
|
||||
"The Lout document formatting system is now reads a high-level description "
|
||||
"of\n"
|
||||
"a document similar in style to LaTeX and produces a PostScript or plain "
|
||||
"text\n"
|
||||
"The Lout document formatting system is now reads a high-level description of\n"
|
||||
"a document similar in style to LaTeX and produces a PostScript or plain text\n"
|
||||
"output file.\n"
|
||||
"\n"
|
||||
"Lout offers an unprecedented range of advanced features, including optimal\n"
|
||||
"paragraph and page breaking, automatic hyphenation, PostScript EPS file\n"
|
||||
"inclusion and generation, equation formatting, tables, diagrams, rotation "
|
||||
"and\n"
|
||||
"inclusion and generation, equation formatting, tables, diagrams, rotation and\n"
|
||||
"scaling, sorted indexes, bibliographic databases, running headers and\n"
|
||||
"odd-even pages, automatic cross referencing, multilingual documents "
|
||||
"including\n"
|
||||
"odd-even pages, automatic cross referencing, multilingual documents including\n"
|
||||
"hyphenation (most European languages are supported), formatting of computer\n"
|
||||
"programs, and much more, all ready to use. Furthermore, Lout is easily\n"
|
||||
"extended with definitions which are very much easier to write than troff of\n"
|
||||
|
@ -408,25 +398,23 @@ msgstr ""
|
|||
"\n"
|
||||
" -n, --dry-run ne konstrui derivaĵojn"
|
||||
|
||||
#: guix/scripts/build.scm:84 guix/scripts/package.scm:449
|
||||
#: guix/scripts/build.scm:84 guix/scripts/package.scm:519
|
||||
msgid ""
|
||||
"\n"
|
||||
" --fallback fall back to building when the substituter fails"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" --fallback retropaŝi al konstruado kiam la anstataŭiganto "
|
||||
"fiaskas"
|
||||
" --fallback retropaŝi al konstruado kiam la anstataŭiganto fiaskas"
|
||||
|
||||
#: guix/scripts/build.scm:86 guix/scripts/package.scm:451
|
||||
#: guix/scripts/build.scm:86 guix/scripts/package.scm:521
|
||||
msgid ""
|
||||
"\n"
|
||||
" --no-substitutes build instead of resorting to pre-built substitutes"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" --no-substitutes konstrui anstataŭ provi jam-konstruitajn "
|
||||
"anstataŭigantojn"
|
||||
" --no-substitutes konstrui anstataŭ provi jam-konstruitajn anstataŭigantojn"
|
||||
|
||||
#: guix/scripts/build.scm:88 guix/scripts/package.scm:453
|
||||
#: guix/scripts/build.scm:88 guix/scripts/package.scm:523
|
||||
msgid ""
|
||||
"\n"
|
||||
" --max-silent-time=SECONDS\n"
|
||||
|
@ -434,8 +422,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"\n"
|
||||
" --max-silent-time=SEKUNDOJ\n"
|
||||
" marki la konstruo kiel fiaskinta post SEKUNDOJ da "
|
||||
"silento"
|
||||
" marki la konstruo kiel fiaskinta post SEKUNDOJ da silento"
|
||||
|
||||
#: guix/scripts/build.scm:91
|
||||
msgid ""
|
||||
|
@ -452,8 +439,7 @@ msgid ""
|
|||
" as a garbage collector root"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" -r, --root=DOSIERO igi DOSIEROn simbola ligo al la rezulto, kaj "
|
||||
"registri\n"
|
||||
" -r, --root=DOSIERO igi DOSIEROn simbola ligo al la rezulto, kaj registri\n"
|
||||
" ĝin kiel radikon de rubaĵ-kolektanto"
|
||||
|
||||
#: guix/scripts/build.scm:96
|
||||
|
@ -465,8 +451,9 @@ msgstr ""
|
|||
" --verbosity=NIVELO uzi la indikitan detaligan NIVELOn"
|
||||
|
||||
#: guix/scripts/build.scm:99 guix/scripts/download.scm:53
|
||||
#: guix/scripts/package.scm:470 guix/scripts/gc.scm:58
|
||||
#: guix/scripts/hash.scm:51 guix/scripts/pull.scm:149
|
||||
#: guix/scripts/package.scm:540 guix/scripts/gc.scm:58
|
||||
#: guix/scripts/hash.scm:51 guix/scripts/pull.scm:152
|
||||
#: guix/scripts/substitute-binary.scm:463
|
||||
msgid ""
|
||||
"\n"
|
||||
" -h, --help display this help and exit"
|
||||
|
@ -475,8 +462,9 @@ msgstr ""
|
|||
" -h, --help montri ĉi tiun helpon kaj eliri"
|
||||
|
||||
#: guix/scripts/build.scm:101 guix/scripts/download.scm:55
|
||||
#: guix/scripts/package.scm:472 guix/scripts/gc.scm:60
|
||||
#: guix/scripts/hash.scm:53 guix/scripts/pull.scm:151
|
||||
#: guix/scripts/package.scm:542 guix/scripts/gc.scm:60
|
||||
#: guix/scripts/hash.scm:53 guix/scripts/pull.scm:154
|
||||
#: guix/scripts/substitute-binary.scm:465
|
||||
msgid ""
|
||||
"\n"
|
||||
" -V, --version display version information and exit"
|
||||
|
@ -490,8 +478,8 @@ msgid "~a: not a number~%"
|
|||
msgstr "~a: ne estas numero~%"
|
||||
|
||||
#: guix/scripts/build.scm:176 guix/scripts/download.scm:96
|
||||
#: guix/scripts/package.scm:554 guix/scripts/gc.scm:152
|
||||
#: guix/scripts/pull.scm:178
|
||||
#: guix/scripts/package.scm:628 guix/scripts/gc.scm:152
|
||||
#: guix/scripts/pull.scm:181
|
||||
#, scheme-format
|
||||
msgid "~A: unrecognized option~%"
|
||||
msgstr "~A: nerekonata modifilo~%"
|
||||
|
@ -501,12 +489,12 @@ msgstr "~A: nerekonata modifilo~%"
|
|||
msgid "failed to create GC root `~a': ~a~%"
|
||||
msgstr "fiasko dum kreo de radiko GC '~a': ~a~%"
|
||||
|
||||
#: guix/scripts/build.scm:226 guix/scripts/package.scm:600
|
||||
#: guix/scripts/build.scm:226 guix/scripts/package.scm:674
|
||||
#, scheme-format
|
||||
msgid "ambiguous package specification `~a'~%"
|
||||
msgstr "plursenca pak-specifigo '~a'~%"
|
||||
|
||||
#: guix/scripts/build.scm:227 guix/scripts/package.scm:602
|
||||
#: guix/scripts/build.scm:227 guix/scripts/package.scm:676
|
||||
#, scheme-format
|
||||
msgid "choosing ~a from ~a~%"
|
||||
msgstr "ni elektas ~a el ~a~%"
|
||||
|
@ -560,42 +548,42 @@ msgstr "~a: analizo de URI fiaskis~%"
|
|||
msgid "~a: download failed~%"
|
||||
msgstr "~a: elŝuto fiaskis~%"
|
||||
|
||||
#: guix/scripts/package.scm:225
|
||||
#: guix/scripts/package.scm:227
|
||||
#, scheme-format
|
||||
msgid "switching from generation ~a to ~a~%"
|
||||
msgstr "alterno el generacio ~a al ~a~%"
|
||||
|
||||
#: guix/scripts/package.scm:230
|
||||
#: guix/scripts/package.scm:232
|
||||
#, scheme-format
|
||||
msgid "profile `~a' does not exist~%"
|
||||
msgstr "profilo '~a' ne ekzistas~%"
|
||||
|
||||
#: guix/scripts/package.scm:234
|
||||
#: guix/scripts/package.scm:236
|
||||
#, scheme-format
|
||||
msgid "nothing to do: already at the empty profile~%"
|
||||
msgstr "nenio por fari: jam estas ĉe la malplena profilo~%"
|
||||
|
||||
#: guix/scripts/package.scm:243
|
||||
#: guix/scripts/package.scm:242
|
||||
#, scheme-format
|
||||
msgid "failed to build the empty profile~%"
|
||||
msgstr "fiasko dum konstruo de malplena profilo~%"
|
||||
|
||||
#: guix/scripts/package.scm:346
|
||||
#: guix/scripts/package.scm:413
|
||||
#, scheme-format
|
||||
msgid "looking for the latest release of GNU ~a..."
|
||||
msgstr "ni serĉas la lastan eldonon de GNU ~a..."
|
||||
|
||||
#: guix/scripts/package.scm:350
|
||||
#: guix/scripts/package.scm:417
|
||||
#, scheme-format
|
||||
msgid "~a: note: using ~a but ~a is available upstream~%"
|
||||
msgstr "~a: rimarko: ni uzas ~a sed ~a disponeblas unuanivele~%"
|
||||
|
||||
#: guix/scripts/package.scm:414
|
||||
#: guix/scripts/package.scm:481
|
||||
#, scheme-format
|
||||
msgid "The following environment variable definitions may be needed:~%"
|
||||
msgstr "La jenaj medi-variablaj difinoj povos esti necesaj:~%"
|
||||
|
||||
#: guix/scripts/package.scm:429
|
||||
#: guix/scripts/package.scm:496
|
||||
msgid ""
|
||||
"Usage: guix package [OPTION]... PACKAGES...\n"
|
||||
"Install, remove, or upgrade PACKAGES in a single transaction.\n"
|
||||
|
@ -603,7 +591,7 @@ msgstr ""
|
|||
"Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
|
||||
"Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
|
||||
|
||||
#: guix/scripts/package.scm:431
|
||||
#: guix/scripts/package.scm:498
|
||||
msgid ""
|
||||
"\n"
|
||||
" -i, --install=PACKAGE install PACKAGE"
|
||||
|
@ -611,7 +599,7 @@ msgstr ""
|
|||
"\n"
|
||||
" -i, --install=PAKO instali PAKOn"
|
||||
|
||||
#: guix/scripts/package.scm:433
|
||||
#: guix/scripts/package.scm:500
|
||||
msgid ""
|
||||
"\n"
|
||||
" -e, --install-from-expression=EXP\n"
|
||||
|
@ -621,7 +609,7 @@ msgstr ""
|
|||
" -e, --install-from-expression=ESP\n"
|
||||
" instali la pakon ESP rezultas al"
|
||||
|
||||
#: guix/scripts/package.scm:436
|
||||
#: guix/scripts/package.scm:503
|
||||
msgid ""
|
||||
"\n"
|
||||
" -r, --remove=PACKAGE remove PACKAGE"
|
||||
|
@ -629,16 +617,15 @@ msgstr ""
|
|||
"\n"
|
||||
" -r, --remove=PAKO forigi PAKOn"
|
||||
|
||||
#: guix/scripts/package.scm:438
|
||||
#: guix/scripts/package.scm:505
|
||||
msgid ""
|
||||
"\n"
|
||||
" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" -u, --upgrade[=REGESP] ĝisdatigi ĉiujn instalitajn pakojn kongruantajn al "
|
||||
"REGESP"
|
||||
" -u, --upgrade[=REGESP] ĝisdatigi ĉiujn instalitajn pakojn kongruantajn al REGESP"
|
||||
|
||||
#: guix/scripts/package.scm:440
|
||||
#: guix/scripts/package.scm:507
|
||||
msgid ""
|
||||
"\n"
|
||||
" --roll-back roll back to the previous generation"
|
||||
|
@ -646,7 +633,7 @@ msgstr ""
|
|||
"\n"
|
||||
" --roll-back retropaŝi al la antaŭa generacio"
|
||||
|
||||
#: guix/scripts/package.scm:442
|
||||
#: guix/scripts/package.scm:509
|
||||
msgid ""
|
||||
"\n"
|
||||
" --search-paths display needed environment variable definitions"
|
||||
|
@ -654,16 +641,25 @@ msgstr ""
|
|||
"\n"
|
||||
" --search-paths montri necesajn medi-variablajn difinojn"
|
||||
|
||||
#: guix/scripts/package.scm:445
|
||||
#: guix/scripts/package.scm:511
|
||||
msgid ""
|
||||
"\n"
|
||||
" -l, --list-generations[=PATTERN]\n"
|
||||
" list generations matching PATTERN"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" -I, --list-generations[=ŜABLONO]\n"
|
||||
" listigi generaciojn kongruantajn al ŜABLONO"
|
||||
|
||||
#: guix/scripts/package.scm:515
|
||||
msgid ""
|
||||
"\n"
|
||||
" -p, --profile=PROFILE use PROFILE instead of the user's default profile"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" -p, --profile=PROFILO uzi PROFILOn anstataŭ la apriora profilo de la "
|
||||
"uzanto"
|
||||
" -p, --profile=PROFILO uzi PROFILOn anstataŭ la apriora profilo de la uzanto"
|
||||
|
||||
#: guix/scripts/package.scm:447
|
||||
#: guix/scripts/package.scm:517
|
||||
msgid ""
|
||||
"\n"
|
||||
" -n, --dry-run show what would be done without actually doing it"
|
||||
|
@ -671,7 +667,7 @@ msgstr ""
|
|||
"\n"
|
||||
" -n, --dry-run montri kion estus farita sen fakte fari ĝin"
|
||||
|
||||
#: guix/scripts/package.scm:456
|
||||
#: guix/scripts/package.scm:526
|
||||
msgid ""
|
||||
"\n"
|
||||
" --bootstrap use the bootstrap Guile to build the profile"
|
||||
|
@ -679,7 +675,7 @@ msgstr ""
|
|||
"\n"
|
||||
" --bootstrap uzi la praŝargilon Guile por konstrui la profilon"
|
||||
|
||||
#: guix/scripts/package.scm:458 guix/scripts/pull.scm:144
|
||||
#: guix/scripts/package.scm:528 guix/scripts/pull.scm:147
|
||||
msgid ""
|
||||
"\n"
|
||||
" --verbose produce verbose output"
|
||||
|
@ -687,7 +683,7 @@ msgstr ""
|
|||
"\n"
|
||||
" --verbose produkti detalplenan eligon"
|
||||
|
||||
#: guix/scripts/package.scm:461
|
||||
#: guix/scripts/package.scm:531
|
||||
msgid ""
|
||||
"\n"
|
||||
" -s, --search=REGEXP search in synopsis and description using REGEXP"
|
||||
|
@ -695,7 +691,7 @@ msgstr ""
|
|||
"\n"
|
||||
" -s, --search=REGESP serĉi en resumo kaj priskribo uzante REGESP"
|
||||
|
||||
#: guix/scripts/package.scm:463
|
||||
#: guix/scripts/package.scm:533
|
||||
msgid ""
|
||||
"\n"
|
||||
" -I, --list-installed[=REGEXP]\n"
|
||||
|
@ -705,7 +701,7 @@ msgstr ""
|
|||
" -I, --list-installed[=REGESP]\n"
|
||||
" listigi instalitajn pakojn kongruantajn al REGESP"
|
||||
|
||||
#: guix/scripts/package.scm:466
|
||||
#: guix/scripts/package.scm:536
|
||||
msgid ""
|
||||
"\n"
|
||||
" -A, --list-available[=REGEXP]\n"
|
||||
|
@ -715,76 +711,91 @@ msgstr ""
|
|||
" -A, --list-available[=REGESP]\n"
|
||||
" listigi disponeblajn pakojn kongruantajn al REGESP"
|
||||
|
||||
#: guix/scripts/package.scm:556
|
||||
#: guix/scripts/package.scm:630
|
||||
#, scheme-format
|
||||
msgid "~A: extraneous argument~%"
|
||||
msgstr "~A: fremda argumento~%"
|
||||
|
||||
#: guix/scripts/package.scm:584
|
||||
#: guix/scripts/package.scm:658
|
||||
#, scheme-format
|
||||
msgid "package `~a' lacks output `~a'~%"
|
||||
msgstr "pako '~a' malhavas eligon '~a'~%"
|
||||
|
||||
#: guix/scripts/package.scm:608
|
||||
#: guix/scripts/package.scm:682
|
||||
#, scheme-format
|
||||
msgid "~a: package not found~%"
|
||||
msgstr "~a: pako ne trovita~%"
|
||||
|
||||
#: guix/scripts/package.scm:631
|
||||
#: guix/scripts/package.scm:705
|
||||
#, scheme-format
|
||||
msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
|
||||
msgstr "Provu \"info '(guix) Invoking guix package'\" por pli da informo.'%"
|
||||
|
||||
#: guix/scripts/package.scm:653
|
||||
#: guix/scripts/package.scm:727
|
||||
#, scheme-format
|
||||
msgid "error: while creating directory `~a': ~a~%"
|
||||
msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
|
||||
|
||||
#: guix/scripts/package.scm:657
|
||||
#: guix/scripts/package.scm:731
|
||||
#, scheme-format
|
||||
msgid "Please create the `~a' directory, with you as the owner.~%"
|
||||
msgstr "Bonvolu krei la dosierujon '~a', kun vi kiel posedanto.~%"
|
||||
|
||||
#: guix/scripts/package.scm:664
|
||||
#: guix/scripts/package.scm:738
|
||||
#, scheme-format
|
||||
msgid "error: directory `~a' is not owned by you~%"
|
||||
msgstr "eraro: dosierujo '~a' ne estas posedata de vi~%"
|
||||
|
||||
#: guix/scripts/package.scm:667
|
||||
#: guix/scripts/package.scm:741
|
||||
#, scheme-format
|
||||
msgid "Please change the owner of `~a' to user ~s.~%"
|
||||
msgstr "Bonvole ŝanĝu la posedanton de '~a' al la uzanto ~s.~%"
|
||||
|
||||
#: guix/scripts/package.scm:725
|
||||
#: guix/scripts/package.scm:799
|
||||
#, scheme-format
|
||||
msgid "The following package would be removed:~% ~{~a~%~}~%"
|
||||
msgstr "La jena pako devos esti forigata:~% ~{~a~%~}~%"
|
||||
|
||||
#: guix/scripts/package.scm:730
|
||||
#: guix/scripts/package.scm:804
|
||||
#, scheme-format
|
||||
msgid "The following package will be removed:~% ~{~a~%~}~%"
|
||||
msgstr "La jena pako estos forigata:~% ~{~a~%~}~%"
|
||||
|
||||
#: guix/scripts/package.scm:742
|
||||
#: guix/scripts/package.scm:816
|
||||
#, scheme-format
|
||||
msgid "The following package would be installed:~%~{~a~%~}~%"
|
||||
msgstr "La jena pako estus instalata:~% ~{~a~%~}~%"
|
||||
|
||||
#: guix/scripts/package.scm:747
|
||||
#: guix/scripts/package.scm:821
|
||||
#, scheme-format
|
||||
msgid "The following package will be installed:~%~{~a~%~}~%"
|
||||
msgstr "La jena pako estos instalata:~% ~{~a~%~}~%"
|
||||
|
||||
#: guix/scripts/package.scm:859
|
||||
#: guix/scripts/package.scm:933
|
||||
#, scheme-format
|
||||
msgid "nothing to be done~%"
|
||||
msgstr "nenio por fari~%"
|
||||
|
||||
#: guix/scripts/package.scm:870
|
||||
#: guix/scripts/package.scm:944
|
||||
#, scheme-format
|
||||
msgid "~a package in profile~%"
|
||||
msgstr "pako ~a en profilo~%"
|
||||
|
||||
#: guix/scripts/package.scm:959
|
||||
#, scheme-format
|
||||
msgid "Generation ~a\t~a~%"
|
||||
msgstr "Generacio ~a\t~a~%"
|
||||
|
||||
#: guix/scripts/package.scm:977
|
||||
#, scheme-format
|
||||
msgid "profile '~a' does not exist~%"
|
||||
msgstr "profilo '~a' ne ekzistas~%"
|
||||
|
||||
#: guix/scripts/package.scm:986
|
||||
#, scheme-format
|
||||
msgid "invalid syntax: ~a~%"
|
||||
msgstr "malvalida sintakso: ~a~%"
|
||||
|
||||
#: guix/scripts/gc.scm:39
|
||||
msgid ""
|
||||
"Usage: guix gc [OPTION]... PATHS...\n"
|
||||
|
@ -885,7 +896,7 @@ msgstr ""
|
|||
msgid "unrecognized option: ~a~%"
|
||||
msgstr "nerekonata modifilo: ~a~%"
|
||||
|
||||
#: guix/scripts/hash.scm:123 guix/ui.scm:183
|
||||
#: guix/scripts/hash.scm:123 guix/ui.scm:187
|
||||
#, scheme-format
|
||||
msgid "~a~%"
|
||||
msgstr "~a~%"
|
||||
|
@ -895,7 +906,7 @@ msgstr "~a~%"
|
|||
msgid "wrong number of arguments~%"
|
||||
msgstr "malĝusta nombro da argumentoj~%"
|
||||
|
||||
#: guix/scripts/pull.scm:142
|
||||
#: guix/scripts/pull.scm:145
|
||||
msgid ""
|
||||
"Usage: guix pull [OPTION]...\n"
|
||||
"Download and deploy the latest version of Guix.\n"
|
||||
|
@ -903,7 +914,7 @@ msgstr ""
|
|||
"Uzmaniero: guix pull [MODIFILO]...\n"
|
||||
"Elŝuti kaj liveri la lastan version de Guix.\n"
|
||||
|
||||
#: guix/scripts/pull.scm:146
|
||||
#: guix/scripts/pull.scm:149
|
||||
msgid ""
|
||||
"\n"
|
||||
" --bootstrap use the bootstrap Guile to build the new Guix"
|
||||
|
@ -911,44 +922,89 @@ msgstr ""
|
|||
"\n"
|
||||
" --bootstrap uzi la 'bootstrap' Guile por konstrui novan Guix"
|
||||
|
||||
#: guix/scripts/pull.scm:180
|
||||
#: guix/scripts/pull.scm:183
|
||||
#, scheme-format
|
||||
msgid "~A: unexpected argument~%"
|
||||
msgstr "~A: neatendita argumento~%"
|
||||
|
||||
#: guix/scripts/pull.scm:189
|
||||
#: guix/scripts/pull.scm:192
|
||||
msgid "failed to download up-to-date source, exiting\n"
|
||||
msgstr "fiasko dum elŝuto de aktuala fonto, ni ĉesas\n"
|
||||
|
||||
#: guix/scripts/pull.scm:212
|
||||
#: guix/scripts/pull.scm:211
|
||||
#, scheme-format
|
||||
msgid "updated ~a successfully deployed under `~a'~%"
|
||||
msgstr "ni ĝisdatigis ~a sukcese, liverita sur '~a'~%"
|
||||
|
||||
#: guix/scripts/pull.scm:215
|
||||
#: guix/scripts/pull.scm:214
|
||||
#, scheme-format
|
||||
msgid "failed to update Guix, check the build log~%"
|
||||
msgstr "fiasko dum ĝisdatigo de Guix, kontrolu la konstru-protokolon~%"
|
||||
|
||||
#: guix/scripts/pull.scm:217
|
||||
#: guix/scripts/pull.scm:216
|
||||
msgid "Guix already up to date\n"
|
||||
msgstr "Guix jam estas ĝisdata\n"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:163
|
||||
#: guix/scripts/substitute-binary.scm:162
|
||||
#, scheme-format
|
||||
msgid "while fetching ~a: server is unresponsive~%"
|
||||
msgstr "dum havigo de ~a: servilo ne respondas~%"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:165
|
||||
#: guix/scripts/substitute-binary.scm:164
|
||||
#, scheme-format
|
||||
msgid "try `--no-substitutes' if the problem persists~%"
|
||||
msgstr "provu '--no-substituse' se la problemo persistos~%"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:437
|
||||
#: guix/scripts/substitute-binary.scm:425
|
||||
#, scheme-format
|
||||
msgid "Downloading, please wait...~%"
|
||||
msgstr "Ni elŝutas, bonvolu atendi...~%"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:427
|
||||
#, scheme-format
|
||||
msgid "(Please consider upgrading Guile to get proper progress report.)~%"
|
||||
msgstr "(Bonvolu konsideri pri ĝisdatigo de Guile por havigi ĝustan progres-raporton.)~%"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:444
|
||||
#, scheme-format
|
||||
msgid "host name lookup error: ~a~%"
|
||||
msgstr "eraro en serĉado de gastigant-nomo: ~a~%"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:453
|
||||
msgid ""
|
||||
"Usage: guix substitute-binary [OPTION]...\n"
|
||||
"Internal tool to substitute a pre-built binary to a local build.\n"
|
||||
msgstr ""
|
||||
"Uzmaniero: guix substitute-binary [MODIFILO]...\n"
|
||||
"Interna ilo por anstataŭigi antaŭ-konstruitan duumaĵon al loka kompilaĵo.\n"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:455
|
||||
msgid ""
|
||||
"\n"
|
||||
" --query report on the availability of substitutes for the\n"
|
||||
" store file names passed on the standard input"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" --query raporti pri la disponebleco de anstataŭigoj por la\n"
|
||||
" konservaj dosier-nomoj indikitaj per la ĉefenigujo"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:458
|
||||
msgid ""
|
||||
"\n"
|
||||
" --substitute STORE-FILE DESTINATION\n"
|
||||
" download STORE-FILE and store it as a Nar in file\n"
|
||||
" DESTINATION"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" --substitute KONSERV-DOSIERO CELO\n"
|
||||
" elŝuti KONSERV-DOSIEROn kaj konservi ĝin kiel Nar en la\n"
|
||||
" dosiero CELO"
|
||||
|
||||
#: guix/scripts/substitute-binary.scm:567
|
||||
#, scheme-format
|
||||
msgid "~a: unrecognized options~%"
|
||||
msgstr "~a: nerekonata modifiloj~%"
|
||||
|
||||
#: guix/gnu-maintenance.scm:344
|
||||
#, scheme-format
|
||||
msgid "signature verification failed for `~a'~%"
|
||||
|
@ -969,12 +1025,12 @@ msgstr "~a: ne eblis trovi fontan dosieron"
|
|||
msgid "~a: ~a: no `version' field in source; skipping~%"
|
||||
msgstr "~a: ~a: neniu kampo 'version' en la fonto; ni saltas~%"
|
||||
|
||||
#: guix/ui.scm:116
|
||||
#: guix/ui.scm:120
|
||||
#, scheme-format
|
||||
msgid "failed to install locale: ~a~%"
|
||||
msgstr "fiasko dum instalo de lokaĵaro: ~a~%"
|
||||
|
||||
#: guix/ui.scm:138
|
||||
#: guix/ui.scm:142
|
||||
#, scheme-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -983,7 +1039,7 @@ msgstr ""
|
|||
"\n"
|
||||
"Raportu program-misojn al: ~a."
|
||||
|
||||
#: guix/ui.scm:140
|
||||
#: guix/ui.scm:144
|
||||
#, scheme-format
|
||||
msgid ""
|
||||
"\n"
|
||||
|
@ -992,7 +1048,7 @@ msgstr ""
|
|||
"\n"
|
||||
"hejm-paĝo de ~a: <~a>"
|
||||
|
||||
#: guix/ui.scm:142
|
||||
#: guix/ui.scm:146
|
||||
msgid ""
|
||||
"\n"
|
||||
"General help using GNU software: <http://www.gnu.org/gethelp/>"
|
||||
|
@ -1000,90 +1056,90 @@ msgstr ""
|
|||
"\n"
|
||||
"Ĝenerala helpo por uzi programaron de GNU: <http://www.gnu.org/gethelp/>"
|
||||
|
||||
#: guix/ui.scm:149
|
||||
#: guix/ui.scm:153
|
||||
#, scheme-format
|
||||
msgid "~a: invalid number~%"
|
||||
msgstr "~a: nevalida numero~%"
|
||||
|
||||
#: guix/ui.scm:160
|
||||
#: guix/ui.scm:164
|
||||
#, scheme-format
|
||||
msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
|
||||
msgstr "~a:~a:~a: pako '~a' havas malvalidan enigon: ~s~%"
|
||||
|
||||
#: guix/ui.scm:167
|
||||
#: guix/ui.scm:171
|
||||
#, scheme-format
|
||||
msgid "~a: ~a: build system `~a' does not support cross builds~%"
|
||||
msgstr "~a: ~a: konstrui sistemon '~a' ne subtenas crucajn konstruojn~%"
|
||||
|
||||
#: guix/ui.scm:172
|
||||
#: guix/ui.scm:176
|
||||
#, scheme-format
|
||||
msgid "failed to connect to `~a': ~a~%"
|
||||
msgstr "fiasko dum konekto al '~a': ~a~%"
|
||||
|
||||
#: guix/ui.scm:177
|
||||
#: guix/ui.scm:181
|
||||
#, scheme-format
|
||||
msgid "build failed: ~a~%"
|
||||
msgstr "konstruo fiakis: ~a~%"
|
||||
|
||||
#: guix/ui.scm:193
|
||||
#: guix/ui.scm:197
|
||||
#, scheme-format
|
||||
msgid "failed to read expression ~s: ~s~%"
|
||||
msgstr "fiasko dum lego de esprimo ~s: ~s~%"
|
||||
|
||||
#: guix/ui.scm:199
|
||||
#: guix/ui.scm:203
|
||||
#, scheme-format
|
||||
msgid "failed to evaluate expression `~a': ~s~%"
|
||||
msgstr "fiasko dum analizo de esprimo '~a': ~a~%"
|
||||
|
||||
#: guix/ui.scm:203
|
||||
#: guix/ui.scm:207
|
||||
#, scheme-format
|
||||
msgid "expression `~s' does not evaluate to a package~%"
|
||||
msgstr "la esprimo '~s' ne rezultas pakon~%"
|
||||
|
||||
#: guix/ui.scm:248
|
||||
#: guix/ui.scm:253
|
||||
#, scheme-format
|
||||
msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]"
|
||||
msgstr "~:[La jena derivo povus esti konstruata:~%~{ ~a~%~}~;~]"
|
||||
|
||||
#: guix/ui.scm:253
|
||||
#: guix/ui.scm:258
|
||||
#, scheme-format
|
||||
msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]"
|
||||
msgstr "~:[La jena derivo povus esti elŝutata:~%~{ ~a~%~}~;~]"
|
||||
|
||||
#: guix/ui.scm:259
|
||||
#: guix/ui.scm:264
|
||||
#, scheme-format
|
||||
msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]"
|
||||
msgstr "~:[La jena derivo estos esti konstruata:~%~{ ~a~%~}~;~]"
|
||||
|
||||
#: guix/ui.scm:264
|
||||
#: guix/ui.scm:269
|
||||
#, scheme-format
|
||||
msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]"
|
||||
msgstr "~:[La jena derivo estos esti elŝutata:~%~{ ~a~%~}~;~]"
|
||||
|
||||
#: guix/ui.scm:281
|
||||
#: guix/ui.scm:286
|
||||
msgid "<unknown location>"
|
||||
msgstr "<nekonata loko>"
|
||||
|
||||
#: guix/ui.scm:309
|
||||
#: guix/ui.scm:314
|
||||
#, scheme-format
|
||||
msgid "failed to create configuration directory `~a': ~a~%"
|
||||
msgstr "fiasko dum kreo de agorda dosierujo '~a': ~a~%"
|
||||
|
||||
#: guix/ui.scm:385 guix/ui.scm:395
|
||||
#: guix/ui.scm:390 guix/ui.scm:400
|
||||
msgid "unknown"
|
||||
msgstr "nekonata"
|
||||
|
||||
#: guix/ui.scm:415
|
||||
#: guix/ui.scm:484
|
||||
#, scheme-format
|
||||
msgid "invalid argument: ~a~%"
|
||||
msgstr "malvalida argumento: ~a~%"
|
||||
|
||||
#: guix/ui.scm:420
|
||||
#: guix/ui.scm:489
|
||||
#, scheme-format
|
||||
msgid "Try `guix --help' for more information.~%"
|
||||
msgstr "Provu 'guix --help' por pli da informo.~%"
|
||||
|
||||
#: guix/ui.scm:447
|
||||
#: guix/ui.scm:516
|
||||
msgid ""
|
||||
"Usage: guix COMMAND ARGS...\n"
|
||||
"Run COMMAND with ARGS.\n"
|
||||
|
@ -1091,21 +1147,21 @@ msgstr ""
|
|||
"Uzmaniero: guix KOMANDO ARGj...\n"
|
||||
"Lanĉas KOMANDOn kun ARGj.\n"
|
||||
|
||||
#: guix/ui.scm:450
|
||||
#: guix/ui.scm:519
|
||||
msgid "COMMAND must be one of the sub-commands listed below:\n"
|
||||
msgstr "KOMANDO devas esti unu el la sub-komandoj sube listataj:\n"
|
||||
|
||||
#: guix/ui.scm:469
|
||||
#: guix/ui.scm:538
|
||||
#, scheme-format
|
||||
msgid "guix: ~a: command not found~%"
|
||||
msgstr "guix: ~a: komando ne trovita~%"
|
||||
|
||||
#: guix/ui.scm:487
|
||||
#: guix/ui.scm:556
|
||||
#, scheme-format
|
||||
msgid "guix: missing command name~%"
|
||||
msgstr "guix: mankas komanda nomo~%"
|
||||
|
||||
#: guix/ui.scm:495
|
||||
#: guix/ui.scm:564
|
||||
#, scheme-format
|
||||
msgid "guix: unrecognized option '~a'~%"
|
||||
msgstr "guix: nerekonata modifilo: '~a'~%"
|
||||
|
|
|
@ -79,12 +79,16 @@ then
|
|||
# Search.
|
||||
test "`guix package -s "An example GNU package" | grep ^name:`" = \
|
||||
"name: hello"
|
||||
test "`guix package -s "n0t4r341p4ck4g3"`" = ""
|
||||
test -z "`guix package -s "n0t4r341p4ck4g3"`"
|
||||
|
||||
# List generations.
|
||||
test "`guix package -p "$profile" -l | cut -f1 | grep guile | head -n1`" \
|
||||
= " guile-bootstrap"
|
||||
|
||||
# Exit with 1 when a generation does not exist.
|
||||
if guix package -p "$profile" --list-generations=42;
|
||||
then false; else true; fi
|
||||
|
||||
# Remove a package.
|
||||
guix package --bootstrap -p "$profile" -r "guile-bootstrap"
|
||||
test -L "$profile-3-link"
|
||||
|
@ -107,11 +111,17 @@ then
|
|||
test "`readlink_base "$profile"`" = "$profile-0-link"
|
||||
done
|
||||
|
||||
# Test that '--list-generations' does not output the zeroth generation.
|
||||
test -z "`guix package -p "$profile" -l 0`"
|
||||
|
||||
# Reinstall after roll-back to the empty profile.
|
||||
guix package --bootstrap -p "$profile" -e "$boot_make"
|
||||
test "`readlink_base "$profile"`" = "$profile-1-link"
|
||||
test -x "$profile/bin/guile" && ! test -x "$profile/bin/make"
|
||||
|
||||
# Check that the first generation is the current one.
|
||||
test "`guix package -p "$profile" -l 1 | cut -f3 | head -n1`" = "(current)"
|
||||
|
||||
# Roll-back to generation 0, and install---all at once.
|
||||
guix package --bootstrap -p "$profile" --roll-back -i guile-bootstrap
|
||||
test "`readlink_base "$profile"`" = "$profile-1-link"
|
||||
|
|
|
@ -38,9 +38,10 @@ cp -r "$to_copy" "$new_store_dir"
|
|||
copied="$new_store_dir/`basename $to_copy`"
|
||||
|
||||
# Create a file representing a closure with zero references, and with an empty
|
||||
# "deriver" field.
|
||||
# "deriver" field. Note that we give the file name as it appears in the
|
||||
# original store, and 'guix-register' translates it to match the prefix.
|
||||
cat >> "$closure" <<EOF
|
||||
$copied
|
||||
$to_copy
|
||||
|
||||
0
|
||||
EOF
|
||||
|
@ -49,26 +50,37 @@ EOF
|
|||
guix-register -p "$new_store" < "$closure"
|
||||
|
||||
# Doing it a second time shouldn't hurt.
|
||||
guix-register -p "$new_store" "$closure"
|
||||
guix-register --prefix "$new_store" "$closure"
|
||||
|
||||
# Now make sure this is recognized as valid.
|
||||
|
||||
NIX_IGNORE_SYMLINK_STORE=1
|
||||
NIX_STORE_DIR="$new_store_dir"
|
||||
NIX_LOCALSTATE_DIR="$new_store$localstatedir"
|
||||
NIX_STATE_DIR="$new_store$localstatedir"
|
||||
NIX_LOG_DIR="$new_store$localstatedir/log/nix"
|
||||
NIX_DB_DIR="$new_store$localstatedir/nix/db"
|
||||
|
||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR NIX_LOCALSTATE_DIR \
|
||||
export NIX_IGNORE_SYMLINK_STORE NIX_STORE_DIR NIX_STATE_DIR \
|
||||
NIX_LOG_DIR NIX_DB_DIR
|
||||
|
||||
guix-daemon --disable-chroot &
|
||||
subdaemon_pid=$!
|
||||
exit_hook="kill $subdaemon_pid"
|
||||
|
||||
final_name="$storedir/`basename $to_copy`"
|
||||
|
||||
# At this point the copy in $new_store must be valid, and unreferenced.
|
||||
# The database under $new_store uses the $final_name, but we can't use
|
||||
# that name in a 'valid-path?' query because 'assertStorePath' would kill
|
||||
# us because of the wrong prefix. So we just list dead paths instead.
|
||||
guile -c "
|
||||
(use-modules (guix store))
|
||||
(define s (open-connection))
|
||||
(exit (and (valid-path? s \"$copied\")
|
||||
(equal? (list \"$copied\") (dead-paths s))))"
|
||||
(exit (equal? (list \"$copied\") (dead-paths s)))"
|
||||
|
||||
# When 'sqlite3' is available, check the name in the database.
|
||||
if type -P sqlite3
|
||||
then
|
||||
echo "select * from ValidPaths where path=\"$final_name\";" | \
|
||||
sqlite3 $NIX_DB_DIR/db.sqlite
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue