Merge branch 'master' into staging
This commit is contained in:
commit
58366883f2
156 changed files with 7450 additions and 2645 deletions
|
@ -79,6 +79,7 @@ MODULES = \
|
|||
guix/build-system/dub.scm \
|
||||
guix/build-system/emacs.scm \
|
||||
guix/build-system/font.scm \
|
||||
guix/build-system/meson.scm \
|
||||
guix/build-system/minify.scm \
|
||||
guix/build-system/asdf.scm \
|
||||
guix/build-system/glib-or-gtk.scm \
|
||||
|
@ -106,6 +107,7 @@ MODULES = \
|
|||
guix/build/cmake-build-system.scm \
|
||||
guix/build/dub-build-system.scm \
|
||||
guix/build/emacs-build-system.scm \
|
||||
guix/build/meson-build-system.scm \
|
||||
guix/build/minify-build-system.scm \
|
||||
guix/build/font-build-system.scm \
|
||||
guix/build/asdf-build-system.scm \
|
||||
|
@ -164,6 +166,7 @@ MODULES = \
|
|||
guix/scripts/authenticate.scm \
|
||||
guix/scripts/refresh.scm \
|
||||
guix/scripts/system.scm \
|
||||
guix/scripts/system/search.scm \
|
||||
guix/scripts/lint.scm \
|
||||
guix/scripts/challenge.scm \
|
||||
guix/scripts/import/cran.scm \
|
||||
|
@ -312,6 +315,7 @@ SCM_TESTS = \
|
|||
tests/workers.scm \
|
||||
tests/zlib.scm \
|
||||
tests/file-systems.scm \
|
||||
tests/uuid.scm \
|
||||
tests/system.scm \
|
||||
tests/services.scm \
|
||||
tests/scripts-build.scm \
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
;; FIXME: 'format' is missing because it reports "non-literal format
|
||||
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
|
||||
;; help from Guile to solve this.
|
||||
'(unsupported-warning unbound-variable arity-mismatch))
|
||||
'(unsupported-warning unbound-variable arity-mismatch
|
||||
macro-use-before-definition)) ;new in 2.2
|
||||
|
||||
(define host (getenv "host"))
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ AC_MSG_CHECKING([for the store directory])
|
|||
AC_MSG_RESULT([$storedir])
|
||||
|
||||
AC_ARG_ENABLE([daemon],
|
||||
[AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])],
|
||||
[AS_HELP_STRING([--disable-daemon], [do not build the Nix daemon (C++)])],
|
||||
[guix_build_daemon="$enableval"],
|
||||
[guix_build_daemon="yes"])
|
||||
|
||||
|
|
|
@ -298,11 +298,7 @@ This mailing list is backed by a Debbugs instance accessible at
|
|||
of submissions. Each message sent to that mailing list gets a new
|
||||
tracking number assigned; people can then follow up on the submission by
|
||||
sending email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is
|
||||
the tracking number. When sending a patch series, please first send one
|
||||
message to @email{guix-patches@@gnu.org}, and then send subsequent
|
||||
patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they are kept
|
||||
together. See @uref{https://debbugs.gnu.org/Advanced.html, the Debbugs
|
||||
documentation}, for more information.
|
||||
the tracking number (@pxref{Sending a Patch Series}).
|
||||
|
||||
Please write commit logs in the ChangeLog format (@pxref{Change Logs,,,
|
||||
standards, GNU Coding Standards}); you can check the commit history for
|
||||
|
@ -434,7 +430,25 @@ Please follow our code formatting rules, possibly running the
|
|||
|
||||
When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as
|
||||
a subject. You may use your email client or the @command{git
|
||||
send-email} command. We prefer to get patches in plain text messages,
|
||||
either inline or as MIME attachments. You are advised to pay attention if
|
||||
your email client changes anything like line breaks or indentation which
|
||||
could potentially break the patches.
|
||||
send-email} command (@pxref{Sending a Patch Series}). We prefer to get
|
||||
patches in plain text messages, either inline or as MIME attachments.
|
||||
You are advised to pay attention if your email client changes anything
|
||||
like line breaks or indentation which could potentially break the
|
||||
patches.
|
||||
|
||||
When a bug is resolved, please close the thread by sending an email to
|
||||
@email{@var{NNN}-done@@debbugs.gnu.org}.
|
||||
|
||||
@unnumberedsubsec Sending a Patch Series
|
||||
@anchor{Sending a Patch Series}
|
||||
@cindex patch series
|
||||
@cindex @code{git send-email}
|
||||
@cindex @code{git-send-email}
|
||||
|
||||
When sending a patch series (e.g., using @code{git send-email}), please
|
||||
first send one message to @email{guix-patches@@gnu.org}, and then send
|
||||
subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure
|
||||
they are kept together. See
|
||||
@uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation}
|
||||
for more information.
|
||||
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
|
||||
|
|
179
doc/guix.texi
179
doc/guix.texi
|
@ -27,7 +27,7 @@ Copyright @copyright{} 2016 Chris Marusich@*
|
|||
Copyright @copyright{} 2016, 2017 Efraim Flashner@*
|
||||
Copyright @copyright{} 2016 John Darrington@*
|
||||
Copyright @copyright{} 2016 ng0@*
|
||||
Copyright @copyright{} 2016 Jan Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2016 Julien Lepiller@*
|
||||
Copyright @copyright{} 2016 Alex ter Weele@*
|
||||
Copyright @copyright{} 2017 Clément Lassieur@*
|
||||
|
@ -38,8 +38,9 @@ Copyright @copyright{} 2017 Thomas Danckaert@*
|
|||
Copyright @copyright{} 2017 humanitiesNerd@*
|
||||
Copyright @copyright{} 2017 Christopher Allan Webber@*
|
||||
Copyright @copyright{} 2017 Marius Bakke@*
|
||||
Copyright @copyright{} 2017 Hartmut Goebel
|
||||
Copyright @copyright{} 2017 Hartmut Goebel@*
|
||||
Copyright @copyright{} 2017 Maxim Cournoyer@*
|
||||
Copyright @copyright{} 2017 Tobias Geerinckx-Rice
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
@ -2142,6 +2143,8 @@ your system has unpatched security vulnerabilities.
|
|||
@cindex security
|
||||
@cindex digital signatures
|
||||
@cindex substitutes, authorization thereof
|
||||
@cindex access control list (ACL), for substitutes
|
||||
@cindex ACL (access control list), for substitutes
|
||||
To allow Guix to download substitutes from @code{hydra.gnu.org} or a
|
||||
mirror thereof, you
|
||||
must add its public key to the access control list (ACL) of archive
|
||||
|
@ -2190,9 +2193,29 @@ The following files would be downloaded:
|
|||
This indicates that substitutes from @code{hydra.gnu.org} are usable and
|
||||
will be downloaded, when possible, for future builds.
|
||||
|
||||
Guix ignores substitutes that are not signed, or that are not signed by
|
||||
one of the keys listed in the ACL. It also detects and raises an error
|
||||
when attempting to use a substitute that has been tampered with.
|
||||
Guix detects and raises an error when attempting to use a substitute
|
||||
that has been tampered with. Likewise, it ignores substitutes that are
|
||||
not signed, or that are not signed by one of the keys listed in the ACL.
|
||||
|
||||
There is one exception though: if an unauthorized server provides
|
||||
substitutes that are @emph{bit-for-bit identical} to those provided by
|
||||
an authorized server, then the unauthorized server becomes eligible for
|
||||
downloads. For example, assume we have chosen two substitute servers
|
||||
with this option:
|
||||
|
||||
@example
|
||||
--substitute-urls="https://a.example.org https://b.example.org"
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
@cindex reproducible builds
|
||||
If the ACL contains only the key for @code{b.example.org}, and if
|
||||
@code{a.example.org} happens to serve the @emph{exact same} substitutes,
|
||||
then Guix will download substitutes from @code{a.example.org} because it
|
||||
comes first in the list and can be considered a mirror of
|
||||
@code{b.example.org}. In practice, independent build machines usually
|
||||
produce the same binaries, thanks to bit-reproducible builds (see
|
||||
below).
|
||||
|
||||
@vindex http_proxy
|
||||
Substitutes are downloaded over HTTP or HTTPS.
|
||||
|
@ -3788,6 +3811,61 @@ need to be copied into place. It copies font files to standard
|
|||
locations in the output directory.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} meson-build-system
|
||||
This variable is exported by @code{(guix build-system meson)}. It
|
||||
implements the build procedure for packages that use
|
||||
@url{http://mesonbuild.com, Meson} as their build system.
|
||||
|
||||
It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set
|
||||
of inputs, and they can be changed with the parameters @code{#:meson}
|
||||
and @code{#:ninja} if needed. The default Meson is
|
||||
@code{meson-for-build}, which is special because it doesn't clear the
|
||||
@code{RUNPATH} of binaries and libraries when they are installed.
|
||||
|
||||
This build system is an extension of @var{gnu-build-system}, but with the
|
||||
following phases changed to some specific for Meson:
|
||||
|
||||
@table @code
|
||||
|
||||
@item configure
|
||||
The phase runs @code{meson} with the flags specified in
|
||||
@code{#:configure-flags}. The flag @code{--build-type} is always set to
|
||||
@code{plain} unless something else is specified in @code{#:build-type}.
|
||||
|
||||
@item build
|
||||
The phase runs @code{ninja} to build the package in parallel by default, but
|
||||
this can be changed with @code{#:parallel-build?}.
|
||||
|
||||
@item check
|
||||
The phase runs @code{ninja} with the target specified in @code{#:test-target},
|
||||
which is @code{"test"} by default.
|
||||
|
||||
@item install
|
||||
The phase runs @code{ninja install} and can not be changed.
|
||||
@end table
|
||||
|
||||
Apart from that, the build system also adds the following phases:
|
||||
|
||||
@table @code
|
||||
|
||||
@item fix-runpath
|
||||
This phase tries to locate the local directories in the package being build,
|
||||
which has libraries that some of the binaries need. If any are found, they will
|
||||
be added to the programs @code{RUNPATH}. It is needed because
|
||||
@code{meson-for-build} keeps the @code{RUNPATH} of binaries and libraries from
|
||||
when they are build, but often that is not the @code{RUNPATH} we want.
|
||||
Therefor it is also shrinked to the minimum needed by the program.
|
||||
|
||||
@item glib-or-gtk-wrap
|
||||
This phase is the phase provided by @code{glib-or-gtk-build-system}, and it
|
||||
is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}.
|
||||
|
||||
@item glib-or-gtk-compile-schemas
|
||||
This phase is the phase provided by @code{glib-or-gtk-build-system}, and it
|
||||
is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}.
|
||||
@end table
|
||||
@end defvr
|
||||
|
||||
Lastly, for packages that do not need anything as sophisticated, a
|
||||
``trivial'' build system is provided. It is trivial in the sense that
|
||||
it provides basically no support: it does not pull any implicit inputs,
|
||||
|
@ -6382,10 +6460,10 @@ Use substitute information from @var{urls}.
|
|||
Sort lines according to @var{key}, one of the following options:
|
||||
|
||||
@table @code
|
||||
@item closure
|
||||
the total size of the item's closure (the default);
|
||||
@item self
|
||||
the size of each item.
|
||||
the size of each item (the default);
|
||||
@item closure
|
||||
the total size of the item's closure.
|
||||
@end table
|
||||
|
||||
@item --map-file=@var{file}
|
||||
|
@ -7852,7 +7930,12 @@ Once you are done partitioning the target hard disk drive, you have to
|
|||
create a file system on the relevant partition(s)@footnote{Currently
|
||||
GuixSD only supports ext4 and btrfs file systems. In particular, code
|
||||
that reads partition UUIDs and labels only works for these file system
|
||||
types.}.
|
||||
types.}. For the ESP, if you have one and assuming it is
|
||||
@file{/dev/sda2}, run:
|
||||
|
||||
@example
|
||||
mkfs.fat -F32 /dev/sda2
|
||||
@end example
|
||||
|
||||
Preferably, assign partitions a label so that you can easily and
|
||||
reliably refer to them in @code{file-system} declarations (@pxref{File
|
||||
|
@ -8163,8 +8246,9 @@ environment variable---in addition to the per-user profiles
|
|||
provides all the tools one would expect for basic user and administrator
|
||||
tasks---including the GNU Core Utilities, the GNU Networking Utilities,
|
||||
the GNU Zile lightweight text editor, @command{find}, @command{grep},
|
||||
etc. The example above adds tcpdump to those, taken from the @code{(gnu
|
||||
packages admin)} module (@pxref{Package Modules}). The
|
||||
etc. The example above adds GNU@tie{}Screen and OpenSSH to those,
|
||||
taken from the @code{(gnu packages screen)} and @code{(gnu packages ssh)}
|
||||
modules (@pxref{Package Modules}). The
|
||||
@code{(list package output)} syntax can be used to add a specific output
|
||||
of a package:
|
||||
|
||||
|
@ -11658,7 +11742,7 @@ and policy files. For example, to allow avahi-daemon to use the system bus,
|
|||
|
||||
@deffn {Scheme Procedure} elogind-service [#:config @var{config}]
|
||||
Return a service that runs the @code{elogind} login and
|
||||
seat management daemon. @uref{https://github.com/andywingo/elogind,
|
||||
seat management daemon. @uref{https://github.com/elogind/elogind,
|
||||
Elogind} exposes a D-Bus interface that can be used to know which users
|
||||
are logged in, know what kind of sessions they have open, suspend the
|
||||
system, inhibit system suspend, reboot the system, and other tasks.
|
||||
|
@ -14036,7 +14120,7 @@ A simple example configuration is given below.
|
|||
@example
|
||||
(service nginx-service-type
|
||||
(nginx-configuration
|
||||
(server-list
|
||||
(server-blocks
|
||||
(list (nginx-server-configuration
|
||||
(server-name '("www.example.com"))
|
||||
(root "/srv/http/www.example.com")
|
||||
|
@ -14084,7 +14168,7 @@ The directory to which NGinx will write log files.
|
|||
The directory in which NGinx will create a pid file, and write temporary
|
||||
files.
|
||||
|
||||
@item @code{server-list} (default: @code{'()})
|
||||
@item @code{server-blocks} (default: @code{'()})
|
||||
A list of @dfn{server blocks} to create in the generated configuration
|
||||
file, the elements should be of type
|
||||
@code{<nginx-server-configuration>}.
|
||||
|
@ -14095,7 +14179,7 @@ HTTPS.
|
|||
@example
|
||||
(service nginx-service-type
|
||||
(nginx-configuration
|
||||
(server-list
|
||||
(server-blocks
|
||||
(list (nginx-server-configuration
|
||||
(server-name '("www.example.com"))
|
||||
(root "/srv/http/www.example.com")
|
||||
|
@ -14104,12 +14188,12 @@ HTTPS.
|
|||
(ssl-certificate-key #f))))))
|
||||
@end example
|
||||
|
||||
@item @code{upstream-list} (default: @code{'()})
|
||||
@item @code{upstream-blocks} (default: @code{'()})
|
||||
A list of @dfn{upstream blocks} to create in the generated configuration
|
||||
file, the elements should be of type
|
||||
@code{<nginx-upstream-configuration>}.
|
||||
|
||||
Configuring upstreams through the @code{upstream-list} can be useful
|
||||
Configuring upstreams through the @code{upstream-blocks} can be useful
|
||||
when combined with @code{locations} in the
|
||||
@code{<nginx-server-configuration>} records. The following example
|
||||
creates a server configuration with one location configuration, that
|
||||
|
@ -14120,7 +14204,7 @@ requests with two servers.
|
|||
(service
|
||||
nginx-service-type
|
||||
(nginx-configuration
|
||||
(server-list
|
||||
(server-blocks
|
||||
(list (nginx-server-configuration
|
||||
(server-name '("www.example.com"))
|
||||
(root "/srv/http/www.example.com")
|
||||
|
@ -14132,20 +14216,19 @@ requests with two servers.
|
|||
(nginx-location-configuration
|
||||
(uri "/path1")
|
||||
(body '("proxy_pass http://server-proxy;"))))))))
|
||||
(upstream-list
|
||||
(upstream-blocks
|
||||
(list (nginx-upstream-configuration
|
||||
(name "server-proxy")
|
||||
(servers (list "server1.example.com"
|
||||
"server2.example.com")))))))
|
||||
@end example
|
||||
|
||||
@item @code{config-file} (default: @code{#f})
|
||||
If the @var{config-file} is provided, this will be used, rather than
|
||||
@item @code{file} (default: @code{#f})
|
||||
If a configuration @var{file} is provided, this will be used, rather than
|
||||
generating a configuration file from the provided @code{log-directory},
|
||||
@code{run-directory}, @code{server-list} and @code{upstream-list}. For
|
||||
proper operation, these arguments should match what is in
|
||||
@var{config-file} to ensure that the directories are created when the
|
||||
service is activated.
|
||||
@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}. For
|
||||
proper operation, these arguments should match what is in @var{file} to ensure
|
||||
that the directories are created when the service is activated.
|
||||
|
||||
This can be useful if you have an existing configuration file, or it's
|
||||
not possible to do what is required through the other parts of the
|
||||
|
@ -15223,7 +15306,7 @@ packages, as prescribed in the @file{gnu-system.scm} example spec:
|
|||
(#:branch . "master"))))
|
||||
(service cuirass-service-type
|
||||
(cuirass-configuration
|
||||
(specifications #~(list #$spec)))))
|
||||
(specifications #~(list '#$spec)))))
|
||||
@end example
|
||||
|
||||
While information related to build jobs is located directly in the
|
||||
|
@ -15254,7 +15337,7 @@ Cuirass jobs.
|
|||
Location of sqlite database which contains the build results and previously
|
||||
added specifications.
|
||||
|
||||
@item @code{port} (default: @code{8080})
|
||||
@item @code{port} (default: @code{8081})
|
||||
Port number used by the HTTP server.
|
||||
|
||||
@item @code{specifications} (default: @code{#~'()})
|
||||
|
@ -17368,6 +17451,42 @@ operating system is instantiated. Currently the following values are
|
|||
supported:
|
||||
|
||||
@table @code
|
||||
@item search
|
||||
Display available service type definitions that match the given regular
|
||||
expressions, sorted by relevance:
|
||||
|
||||
@example
|
||||
$ guix system search console font
|
||||
name: console-fonts
|
||||
location: gnu/services/base.scm:729:2
|
||||
extends: shepherd-root
|
||||
description: Install the given fonts on the specified ttys (fonts are
|
||||
+ per virtual console on GNU/Linux). The value of this service is a list
|
||||
+ of tty/font pairs like:
|
||||
+
|
||||
+ '(("tty1" . "LatGrkCyr-8x16"))
|
||||
relevance: 20
|
||||
|
||||
name: mingetty
|
||||
location: gnu/services/base.scm:1048:2
|
||||
extends: shepherd-root
|
||||
description: Provide console login using the `mingetty' program.
|
||||
relevance: 2
|
||||
|
||||
name: login
|
||||
location: gnu/services/base.scm:775:2
|
||||
extends: pam
|
||||
description: Provide a console log-in service as specified by its
|
||||
+ configuration value, a `login-configuration' object.
|
||||
relevance: 2
|
||||
|
||||
@dots{}
|
||||
@end example
|
||||
|
||||
As for @command{guix package --search}, the result is written in
|
||||
@code{recutils} format, which makes it easy to filter the output
|
||||
(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual}).
|
||||
|
||||
@item reconfigure
|
||||
Build the operating system described in @var{file}, activate it, and
|
||||
switch to it@footnote{This action (and the related actions
|
||||
|
@ -17997,6 +18116,12 @@ Udev extensions are composed into a list of rules, but the udev service
|
|||
value is itself a @code{<udev-configuration>} record. So here, we
|
||||
extend that record by appending the list of rules it contains to the
|
||||
list of contributed rules.
|
||||
|
||||
@item description
|
||||
This is a string giving an overview of the service type. The string can
|
||||
contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The
|
||||
@command{guix system search} command searches these strings and displays
|
||||
them (@pxref{Invoking guix system}).
|
||||
@end table
|
||||
|
||||
There can be only one instance of an extensible service type such as
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#:use-module (gnu artwork)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu bootloader)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system uuid)
|
||||
#:autoload (gnu packages bootloaders) (grub)
|
||||
#:autoload (gnu packages compression) (gzip)
|
||||
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
|
||||
|
@ -300,7 +300,7 @@ code."
|
|||
(match device
|
||||
;; Preferably refer to DEVICE by its UUID or label. This is more
|
||||
;; efficient and less ambiguous, see <http://bugs.gnu.org/22281>.
|
||||
((? bytevector? uuid)
|
||||
((? uuid? uuid)
|
||||
(format #f "search --fs-uuid --set ~a"
|
||||
(uuid->string device)))
|
||||
((? string? label)
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build file-systems)
|
||||
#:use-module (gnu system uuid)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build bournish)
|
||||
#:use-module (guix build syscalls)
|
||||
|
@ -26,8 +27,6 @@
|
|||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (system foreign)
|
||||
#:autoload (system repl repl) (start-repl)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
@ -41,15 +40,6 @@
|
|||
find-partition-by-luks-uuid
|
||||
canonicalize-device-spec
|
||||
|
||||
uuid->string
|
||||
string->uuid
|
||||
string->iso9660-uuid
|
||||
string->ext2-uuid
|
||||
string->ext3-uuid
|
||||
string->ext4-uuid
|
||||
string->btrfs-uuid
|
||||
iso9660-uuid->string
|
||||
|
||||
bind-mount
|
||||
|
||||
mount-flags->bit-mask
|
||||
|
@ -95,20 +85,6 @@ takes a bytevector and returns #t when it's a valid superblock."
|
|||
(and (magic? block)
|
||||
block)))))))))
|
||||
|
||||
(define (sub-bytevector bv start size)
|
||||
"Return a copy of the SIZE bytes of BV starting from offset START."
|
||||
(let ((result (make-bytevector size)))
|
||||
(bytevector-copy! bv start result 0 size)
|
||||
result))
|
||||
|
||||
(define (latin1->string bv terminator)
|
||||
"Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate
|
||||
that takes a number and returns #t when a termination character is found."
|
||||
(let ((bytes (take-while (negate terminator) (bytevector->u8-list bv))))
|
||||
(if (null? bytes)
|
||||
#f
|
||||
(list->string (map integer->char bytes)))))
|
||||
|
||||
(define null-terminated-latin1->string
|
||||
(cut latin1->string <> zero?))
|
||||
|
||||
|
@ -196,10 +172,6 @@ if DEVICE does not contain a btrfs file system."
|
|||
|
||||
;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-107.pdf>.
|
||||
|
||||
(define-syntax %fat32-endianness
|
||||
;; Endianness of fat file systems.
|
||||
(identifier-syntax (endianness little)))
|
||||
|
||||
(define (fat32-superblock? sblock)
|
||||
"Return #t when SBLOCK is a fat32 superblock."
|
||||
(bytevector=? (sub-bytevector sblock 82 8)
|
||||
|
@ -214,12 +186,6 @@ if DEVICE does not contain a btrfs file system."
|
|||
"Return the Volume ID of a fat superblock SBLOCK as a 4-byte bytevector."
|
||||
(sub-bytevector sblock 67 4))
|
||||
|
||||
(define (fat32-uuid->string uuid)
|
||||
"Convert fat32 UUID, a 4-byte bytevector, to its string representation."
|
||||
(let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2))
|
||||
(low (bytevector-uint-ref uuid 2 %fat32-endianness 2)))
|
||||
(format #f "~:@(~x-~x~)" low high)))
|
||||
|
||||
(define (fat32-superblock-volume-name sblock)
|
||||
"Return the volume name of SBLOCK as a string of at most 11 characters, or
|
||||
#f if SBLOCK has no volume name. The volume name is a latin1 string.
|
||||
|
@ -241,27 +207,6 @@ Trailing spaces are trimmed."
|
|||
|
||||
;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>.
|
||||
|
||||
(define %iso9660-uuid-rx
|
||||
;; Y m d H M S ss
|
||||
(make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$"))
|
||||
|
||||
(define (string->iso9660-uuid str)
|
||||
"Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid).
|
||||
Return its contents as a 16-byte bytevector. Return #f if STR is not a valid
|
||||
ISO9660 UUID representation."
|
||||
(and=> (regexp-exec %iso9660-uuid-rx str)
|
||||
(lambda (match)
|
||||
(letrec-syntax ((match-numerals
|
||||
(syntax-rules ()
|
||||
((_ index (name rest ...) body)
|
||||
(let ((name (match:substring match index)))
|
||||
(match-numerals (+ 1 index) (rest ...) body)))
|
||||
((_ index () body)
|
||||
body))))
|
||||
(match-numerals 1 (year month day hour minute second hundredths)
|
||||
(string->utf8 (string-append year month day
|
||||
hour minute second hundredths)))))))
|
||||
|
||||
(define (iso9660-superblock? sblock)
|
||||
"Return #t when SBLOCK is an iso9660 volume descriptor."
|
||||
(bytevector=? (sub-bytevector sblock 1 6)
|
||||
|
@ -308,20 +253,6 @@ SBLOCK as a bytevector. If that's not set, returns the creation time."
|
|||
modification-time)))
|
||||
(sub-bytevector time 0 16))) ; strips GMT offset.
|
||||
|
||||
(define (iso9660-uuid->string uuid)
|
||||
"Given an UUID bytevector, return its timestamp string."
|
||||
(define (digits->string bytes)
|
||||
(latin1->string bytes (lambda (c) #f)))
|
||||
(let* ((year (sub-bytevector uuid 0 4))
|
||||
(month (sub-bytevector uuid 4 2))
|
||||
(day (sub-bytevector uuid 6 2))
|
||||
(hour (sub-bytevector uuid 8 2))
|
||||
(minute (sub-bytevector uuid 10 2))
|
||||
(second (sub-bytevector uuid 12 2))
|
||||
(hundredths (sub-bytevector uuid 14 2))
|
||||
(parts (list year month day hour minute second hundredths)))
|
||||
(string-append (string-join (map digits->string parts) "-"))))
|
||||
|
||||
(define (iso9660-superblock-volume-name sblock)
|
||||
"Return the volume name of SBLOCK as a string. The volume name is an ASCII
|
||||
string. Trailing spaces are trimmed."
|
||||
|
@ -508,65 +439,6 @@ were found."
|
|||
(define find-partition-by-luks-uuid
|
||||
(find-partition luks-partition-uuid-predicate))
|
||||
|
||||
|
||||
;;;
|
||||
;;; UUIDs.
|
||||
;;;
|
||||
|
||||
(define-syntax %network-byte-order
|
||||
(identifier-syntax (endianness big)))
|
||||
|
||||
(define (uuid->string uuid)
|
||||
"Convert UUID, a 16-byte bytevector, to its string representation, something
|
||||
like \"6b700d61-5550-48a1-874c-a3d86998990e\"."
|
||||
;; See <https://tools.ietf.org/html/rfc4122>.
|
||||
(let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4))
|
||||
(time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2))
|
||||
(time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2))
|
||||
(clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2))
|
||||
(node (bytevector-uint-ref uuid 10 %network-byte-order 6)))
|
||||
(format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x"
|
||||
time-low time-mid time-hi clock-seq node)))
|
||||
|
||||
(define %uuid-rx
|
||||
;; The regexp of a UUID.
|
||||
(make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$"))
|
||||
|
||||
(define (string->uuid str)
|
||||
"Parse STR as a DCE UUID (see <https://tools.ietf.org/html/rfc4122>) and
|
||||
return its contents as a 16-byte bytevector. Return #f if STR is not a valid
|
||||
UUID representation."
|
||||
(and=> (regexp-exec %uuid-rx str)
|
||||
(lambda (match)
|
||||
(letrec-syntax ((hex->number
|
||||
(syntax-rules ()
|
||||
((_ index)
|
||||
(string->number (match:substring match index)
|
||||
16))))
|
||||
(put!
|
||||
(syntax-rules ()
|
||||
((_ bv index (number len) rest ...)
|
||||
(begin
|
||||
(bytevector-uint-set! bv index number
|
||||
(endianness big) len)
|
||||
(put! bv (+ index len) rest ...)))
|
||||
((_ bv index)
|
||||
bv))))
|
||||
(let ((time-low (hex->number 1))
|
||||
(time-mid (hex->number 2))
|
||||
(time-hi (hex->number 3))
|
||||
(clock-seq (hex->number 4))
|
||||
(node (hex->number 5))
|
||||
(uuid (make-bytevector 16)))
|
||||
(put! uuid 0
|
||||
(time-low 4) (time-mid 2) (time-hi 2)
|
||||
(clock-seq 2) (node 6)))))))
|
||||
|
||||
(define string->ext2-uuid string->uuid)
|
||||
(define string->ext3-uuid string->uuid)
|
||||
(define string->ext4-uuid string->uuid)
|
||||
(define string->btrfs-uuid string->uuid)
|
||||
|
||||
|
||||
(define* (canonicalize-device-spec spec #:optional (title 'any))
|
||||
"Return the device name corresponding to SPEC. TITLE is a symbol, one of
|
||||
|
|
|
@ -165,13 +165,14 @@ QEMU monitor and to the guest's backdoor REPL."
|
|||
(newline repl)
|
||||
(read repl))))
|
||||
|
||||
(define* (wait-for-file file marionette #:key (timeout 10))
|
||||
"Wait until FILE exists in MARIONETTE; 'read' its content and return it. If
|
||||
(define* (wait-for-file file marionette
|
||||
#:key (timeout 10) (read 'read))
|
||||
"Wait until FILE exists in MARIONETTE; READ its content and return it. If
|
||||
FILE has not shown up after TIMEOUT seconds, raise an error."
|
||||
(match (marionette-eval
|
||||
`(let loop ((i ,timeout))
|
||||
(cond ((file-exists? ,file)
|
||||
(cons 'success (call-with-input-file ,file read)))
|
||||
(cons 'success (call-with-input-file ,file ,read)))
|
||||
((> i 0)
|
||||
(sleep 1)
|
||||
(loop (- i 1)))
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#:use-module (guix build syscalls)
|
||||
#:use-module (gnu build linux-boot)
|
||||
#:use-module (gnu build install)
|
||||
#:use-module (gnu build file-systems)
|
||||
#:use-module (gnu system uuid)
|
||||
#:use-module (guix records)
|
||||
#:use-module ((guix combinators) #:select (fold2))
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -163,6 +163,7 @@ the #:references-graphs parameter of 'derivation'."
|
|||
(size partition-size)
|
||||
(file-system partition-file-system (default "ext4"))
|
||||
(label partition-label (default #f))
|
||||
(uuid partition-uuid (default #f))
|
||||
(flags partition-flags (default '()))
|
||||
(initializer partition-initializer (default (const #t))))
|
||||
|
||||
|
@ -236,22 +237,26 @@ actual /dev name based on DEVICE."
|
|||
(define MS_BIND 4096) ; <sys/mounts.h> again!
|
||||
|
||||
(define* (create-ext-file-system partition type
|
||||
#:key label)
|
||||
#:key label uuid)
|
||||
"Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true,
|
||||
use that as the volume name."
|
||||
use that as the volume name. If UUID is true, use it as the partition UUID."
|
||||
(format #t "creating ~a partition...\n" type)
|
||||
(unless (zero? (apply system* (string-append "mkfs." type)
|
||||
"-F" partition
|
||||
(if label
|
||||
`("-L" ,label)
|
||||
'())))
|
||||
`(,@(if label
|
||||
`("-L" ,label)
|
||||
'())
|
||||
,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
'()))))
|
||||
(error "failed to create partition")))
|
||||
|
||||
(define* (create-fat-file-system partition
|
||||
#:key label)
|
||||
#:key label uuid)
|
||||
"Create a FAT filesystem on PARTITION. The number of File Allocation Tables
|
||||
will be determined based on filesystem size. If LABEL is true, use that as the
|
||||
volume name."
|
||||
;; FIXME: UUID is ignored!
|
||||
(format #t "creating FAT partition...\n")
|
||||
(unless (zero? (apply system* "mkfs.fat" partition
|
||||
(if label
|
||||
|
@ -260,13 +265,13 @@ volume name."
|
|||
(error "failed to create FAT partition")))
|
||||
|
||||
(define* (format-partition partition type
|
||||
#:key label)
|
||||
#:key label uuid)
|
||||
"Create a file system TYPE on PARTITION. If LABEL is true, use that as the
|
||||
volume name."
|
||||
(cond ((string-prefix? "ext" type)
|
||||
(create-ext-file-system partition type #:label label))
|
||||
(create-ext-file-system partition type #:label label #:uuid uuid))
|
||||
((or (string-prefix? "fat" type) (string= "vfat" type))
|
||||
(create-fat-file-system partition #:label label))
|
||||
(create-fat-file-system partition #:label label #:uuid uuid))
|
||||
(else (error "Unsupported file system."))))
|
||||
|
||||
(define (initialize-partition partition)
|
||||
|
@ -275,7 +280,8 @@ it, run its initializer, and unmount it."
|
|||
(let ((target "/fs"))
|
||||
(format-partition (partition-device partition)
|
||||
(partition-file-system partition)
|
||||
#:label (partition-label partition))
|
||||
#:label (partition-label partition)
|
||||
#:uuid (partition-uuid partition))
|
||||
(mkdir-p target)
|
||||
(mount (partition-device partition) target
|
||||
(partition-file-system partition))
|
||||
|
@ -366,18 +372,39 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
|
|||
(error "failed to create GRUB EFI image"))))
|
||||
|
||||
(define* (make-iso9660-image grub config-file os-drv target
|
||||
#:key (volume-id "GuixSD_image") (volume-uuid #f))
|
||||
#:key (volume-id "GuixSD_image") (volume-uuid #f)
|
||||
register-closures? (closures '()))
|
||||
"Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as
|
||||
GRUB configuration and OS-DRV as the stuff in it."
|
||||
(let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")))
|
||||
(let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue"))
|
||||
(target-store (string-append "/tmp/root" (%store-directory))))
|
||||
(mkdir-p "/tmp/root/var/run")
|
||||
(mkdir-p "/tmp/root/run")
|
||||
(mkdir-p "/tmp/root/mnt")
|
||||
|
||||
(mkdir-p target-store)
|
||||
(mount (%store-directory) target-store "" MS_BIND)
|
||||
|
||||
(when register-closures?
|
||||
(display "registering closures...\n")
|
||||
(for-each (lambda (closure)
|
||||
(register-closure
|
||||
"/tmp/root"
|
||||
(string-append "/xchg/" closure)
|
||||
;; XXX: Using deduplication causes cross device link errors.
|
||||
#:deduplicate? #f))
|
||||
closures))
|
||||
|
||||
(unless (zero? (apply system*
|
||||
`(,grub-mkrescue "-o" ,target
|
||||
,(string-append "boot/grub/grub.cfg=" config-file)
|
||||
,(string-append "gnu/store=" os-drv "/..")
|
||||
"var=/tmp/root/var"
|
||||
"run=/tmp/root/run"
|
||||
;; /mnt is used as part of the installation
|
||||
;; process, as the mount point for the target
|
||||
;; filesystem, so create it.
|
||||
"mnt=/tmp/root/mnt"
|
||||
"--"
|
||||
;; Store two copies of the headers.
|
||||
;; The resulting ISO-9660 image has a DOS MBR and
|
||||
|
|
30
gnu/local.mk
30
gnu/local.mk
|
@ -88,6 +88,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/chez.scm \
|
||||
%D%/packages/ci.scm \
|
||||
%D%/packages/cmake.scm \
|
||||
%D%/packages/cobol.scm \
|
||||
%D%/packages/code.scm \
|
||||
%D%/packages/commencement.scm \
|
||||
%D%/packages/compression.scm \
|
||||
|
@ -363,6 +364,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/shells.scm \
|
||||
%D%/packages/shellutils.scm \
|
||||
%D%/packages/simh.scm \
|
||||
%D%/packages/simulation.scm \
|
||||
%D%/packages/skarnet.scm \
|
||||
%D%/packages/skribilo.scm \
|
||||
%D%/packages/slang.scm \
|
||||
|
@ -468,6 +470,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/system/nss.scm \
|
||||
%D%/system/pam.scm \
|
||||
%D%/system/shadow.scm \
|
||||
%D%/system/uuid.scm \
|
||||
%D%/system/vm.scm \
|
||||
\
|
||||
%D%/build/activation.scm \
|
||||
|
@ -487,6 +490,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/tests/audio.scm \
|
||||
%D%/tests/base.scm \
|
||||
%D%/tests/databases.scm \
|
||||
%D%/tests/desktop.scm \
|
||||
%D%/tests/dict.scm \
|
||||
%D%/tests/nfs.scm \
|
||||
%D%/tests/install.scm \
|
||||
|
@ -534,9 +538,9 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/binutils-ld-new-dtags.patch \
|
||||
%D%/packages/patches/binutils-loongson-workaround.patch \
|
||||
%D%/packages/patches/blast+-fix-makefile.patch \
|
||||
%D%/packages/patches/bluez-CVE-2017-1000250.patch \
|
||||
%D%/packages/patches/byobu-writable-status.patch \
|
||||
%D%/packages/patches/cairo-CVE-2016-9082.patch \
|
||||
%D%/packages/patches/calibre-drop-unrar.patch \
|
||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||
%D%/packages/patches/calibre-use-packaged-feedparser.patch \
|
||||
%D%/packages/patches/catdoc-CVE-2017-11110.patch \
|
||||
|
@ -546,6 +550,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ceph-disable-unittest-throttle.patch \
|
||||
%D%/packages/patches/ceph-skip-collect-sys-info-test.patch \
|
||||
%D%/packages/patches/ceph-skip-unittest_blockdev.patch \
|
||||
%D%/packages/patches/python-acme-dont-use-openssl-rand.patch \
|
||||
%D%/packages/patches/chicken-CVE-2017-6949.patch \
|
||||
%D%/packages/patches/chicken-CVE-2017-11343.patch \
|
||||
%D%/packages/patches/chmlib-inttypes.patch \
|
||||
|
@ -567,7 +572,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/crawl-upgrade-saves.patch \
|
||||
%D%/packages/patches/crda-optional-gcrypt.patch \
|
||||
%D%/packages/patches/crossmap-allow-system-pysam.patch \
|
||||
%D%/packages/patches/csound-header-ordering.patch \
|
||||
%D%/packages/patches/clucene-contribs-lib.patch \
|
||||
%D%/packages/patches/curl-bounds-check.patch \
|
||||
%D%/packages/patches/cursynth-wave-rand.patch \
|
||||
|
@ -590,6 +594,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
|
||||
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
|
||||
%D%/packages/patches/emacs-source-date-epoch.patch \
|
||||
%D%/packages/patches/emacs-unsafe-enriched-mode-translations.patch \
|
||||
%D%/packages/patches/erlang-man-path.patch \
|
||||
%D%/packages/patches/eudev-rules-directory.patch \
|
||||
%D%/packages/patches/evilwm-lost-focus-bug.patch \
|
||||
|
@ -603,6 +608,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/fasthenry-spFactor.patch \
|
||||
%D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \
|
||||
%D%/packages/patches/fcgi-2.4.0-poll.patch \
|
||||
%D%/packages/patches/file-CVE-2017-1000249.patch \
|
||||
%D%/packages/patches/findutils-localstatedir.patch \
|
||||
%D%/packages/patches/findutils-gnulib-multi-core.patch \
|
||||
%D%/packages/patches/findutils-test-xargs.patch \
|
||||
|
@ -610,6 +616,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/fltk-shared-lib-defines.patch \
|
||||
%D%/packages/patches/fltk-xfont-on-demand.patch \
|
||||
%D%/packages/patches/fontforge-svg-modtime.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
|
||||
%D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \
|
||||
|
@ -672,11 +680,14 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
%D%/packages/patches/gobject-introspection-cc.patch \
|
||||
%D%/packages/patches/gobject-introspection-girepository.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-12935.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-12936.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-12937.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-13775.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \
|
||||
%D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \
|
||||
%D%/packages/patches/graphite2-ffloat-store.patch \
|
||||
%D%/packages/patches/grep-gnulib-lock.patch \
|
||||
%D%/packages/patches/grep-timing-sensitive-test.patch \
|
||||
|
@ -713,6 +724,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/heimdal-CVE-2017-11103.patch \
|
||||
%D%/packages/patches/hmmer-remove-cpu-specificity.patch \
|
||||
%D%/packages/patches/higan-remove-march-native-flag.patch \
|
||||
%D%/packages/patches/httpd-CVE-2017-9798.patch \
|
||||
%D%/packages/patches/hubbub-sort-entities.patch \
|
||||
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
|
||||
%D%/packages/patches/hydra-disable-darcs-test.patch \
|
||||
|
@ -752,6 +764,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/liba52-link-with-libm.patch \
|
||||
%D%/packages/patches/liba52-set-soname.patch \
|
||||
%D%/packages/patches/liba52-use-mtune-not-mcpu.patch \
|
||||
%D%/packages/patches/libarchive-CVE-2017-14166.patch \
|
||||
%D%/packages/patches/libbase-fix-includes.patch \
|
||||
%D%/packages/patches/libbase-use-own-logging.patch \
|
||||
%D%/packages/patches/libbonobo-activation-test-race.patch \
|
||||
|
@ -812,7 +825,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libxslt-generated-ids.patch \
|
||||
%D%/packages/patches/libxslt-CVE-2016-4738.patch \
|
||||
%D%/packages/patches/libxt-guix-search-paths.patch \
|
||||
%D%/packages/patches/libzip-CVE-2017-12858.patch \
|
||||
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
|
||||
%D%/packages/patches/lierolibre-is-free-software.patch \
|
||||
%D%/packages/patches/lierolibre-newer-libconfig.patch \
|
||||
|
@ -845,6 +857,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
|
||||
%D%/packages/patches/mesa-skip-disk-cache-test.patch \
|
||||
%D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \
|
||||
%D%/packages/patches/meson-for-build-rpath.patch \
|
||||
%D%/packages/patches/metabat-fix-compilation.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
|
||||
|
@ -869,6 +882,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/netsurf-y2038-tests.patch \
|
||||
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
||||
%D%/packages/patches/newsbeuter-CVE-2017-12904.patch \
|
||||
%D%/packages/patches/newsbeuter-CVE-2017-14500.patch \
|
||||
%D%/packages/patches/ngircd-handle-zombies.patch \
|
||||
%D%/packages/patches/ninja-zero-mtime.patch \
|
||||
%D%/packages/patches/nss-increase-test-timeout.patch \
|
||||
|
@ -885,9 +899,13 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ola-readdir-r.patch \
|
||||
%D%/packages/patches/openscenegraph-ffmpeg3.patch \
|
||||
%D%/packages/patches/openexr-missing-samples.patch \
|
||||
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-12982.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-14040.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-14041.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-14151.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-14152.patch \
|
||||
%D%/packages/patches/openjpeg-CVE-2017-14164.patch \
|
||||
%D%/packages/patches/openldap-CVE-2017-9287.patch \
|
||||
%D%/packages/patches/openocd-nrf52.patch \
|
||||
%D%/packages/patches/openssl-runpath.patch \
|
||||
|
@ -976,6 +994,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
||||
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
||||
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
|
||||
%D%/packages/patches/qemu-CVE-2017-13711.patch \
|
||||
%D%/packages/patches/qemu-CVE-2017-14167.patch \
|
||||
%D%/packages/patches/qt4-ldflags.patch \
|
||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||
|
@ -994,10 +1014,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/rsem-makefile.patch \
|
||||
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
|
||||
%D%/packages/patches/ruby-concurrent-test-arm.patch \
|
||||
%D%/packages/patches/ruby-rubygems-2612-ruby24.patch \
|
||||
%D%/packages/patches/ruby-rubygems-2613-ruby24.patch \
|
||||
%D%/packages/patches/ruby-2.2.7-rubygems-2613-ruby22.patch \
|
||||
%D%/packages/patches/ruby-2.3.4-rubygems-2613-ruby23.patch \
|
||||
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \
|
||||
%D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
|
||||
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
|
||||
|
|
|
@ -661,14 +661,14 @@ network statistics collection, security monitoring, network debugging, etc.")
|
|||
(define-public tcpdump
|
||||
(package
|
||||
(name "tcpdump")
|
||||
(version "4.9.1")
|
||||
(version "4.9.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.tcpdump.org/release/tcpdump-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wyqbg7bkmgqyslf1ns0xx9fcqi66hvcfm9nf77rl15jvvs8qi7r"))))
|
||||
"0ygy0layzqaj838r5xd613iraz09wlfgpyh7pc6cwclql8v3b2vr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libpcap" ,libpcap)
|
||||
("openssl" ,openssl)))
|
||||
|
@ -818,7 +818,7 @@ system administrator.")
|
|||
(define-public sudo
|
||||
(package
|
||||
(name "sudo")
|
||||
(version "1.8.20p2")
|
||||
(version "1.8.21p2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -828,7 +828,7 @@ system administrator.")
|
|||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1na5likm1srnd1g5sjx7b0543sczw0yppacyqsazfdg9b48awhmx"))
|
||||
"0s33szq6q59v5s377l4v6ybsdy7pfq6sz7y364j4x09ssdn79ibl"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(delete-file-recursively "lib/zlib"))))
|
||||
|
@ -871,7 +871,8 @@ system administrator.")
|
|||
"$(TMPDIR)/dummy")
|
||||
(("\\$\\(DESTDIR\\)\\$\\(vardir\\)")
|
||||
;; Don't try to create /var/db/sudo.
|
||||
"$(TMPDIR)/dummy")))))
|
||||
"$(TMPDIR)/dummy"))
|
||||
#t)))
|
||||
|
||||
;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
|
||||
;; the chroot's /etc/passwd doesn't have it. Turn off the tests.
|
||||
|
|
|
@ -568,23 +568,17 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
|
|||
(define-public csound
|
||||
(package
|
||||
(name "csound")
|
||||
(version "6.05")
|
||||
(version "6.09.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/csound/csound6/Csound"
|
||||
version "/Csound" version ".tar.gz"))
|
||||
"https://github.com/csound/csound/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd"))
|
||||
(patches (search-patches "csound-header-ordering.patch"))))
|
||||
"0f67vyy3r29hn26qkkcwnizrnzzy8p7gmg3say5q3wjhxns3b5yl"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
;; Work around this error on x86_64 with libc 2.22+:
|
||||
;; libmvec.so.1: error adding symbols: DSO missing from command line
|
||||
(if (string-prefix? "x86_64" (or (%current-target-system) (%current-system)))
|
||||
'(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec"))
|
||||
'()))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("boost" ,boost)
|
||||
|
|
|
@ -184,6 +184,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
|
|||
(define-public libarchive
|
||||
(package
|
||||
(name "libarchive")
|
||||
(replacement libarchive-3.3.2)
|
||||
(version "3.3.1")
|
||||
(source
|
||||
(origin
|
||||
|
@ -239,19 +240,19 @@ archive. In particular, note that there is currently no built-in support for
|
|||
random access nor for in-place modification.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define libarchive-3.3.1
|
||||
(define libarchive-3.3.2
|
||||
(package
|
||||
(inherit libarchive)
|
||||
(name "libarchive")
|
||||
(version "3.3.1")
|
||||
(version "3.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "libarchive-CVE-2017-14166.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9"))))))
|
||||
"1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))))
|
||||
|
||||
(define-public rdup
|
||||
(package
|
||||
|
|
|
@ -394,6 +394,7 @@ change. GNU make offers many powerful extensions over the standard utility.")
|
|||
|
||||
(define-public binutils
|
||||
(package
|
||||
(replacement binutils/fixed)
|
||||
(name "binutils")
|
||||
(version "2.28")
|
||||
(source (origin
|
||||
|
@ -435,6 +436,19 @@ included.")
|
|||
(license gpl3+)
|
||||
(home-page "https://www.gnu.org/software/binutils/")))
|
||||
|
||||
(define binutils/fixed
|
||||
(package
|
||||
(inherit binutils)
|
||||
;; 2.28.1 is two characters longer than 2.28, so grafting fails due to
|
||||
;; mismatched lengths of filenames, so we have to force it to the same length.
|
||||
(version "2281")
|
||||
(source
|
||||
(origin (inherit (package-source binutils))
|
||||
(uri "mirror://gnu/binutils/binutils-2.28.1.tar.bz2")
|
||||
(sha256
|
||||
(base32
|
||||
"1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939"))))))
|
||||
|
||||
(define* (make-ld-wrapper name #:key
|
||||
(target (const #f))
|
||||
binutils
|
||||
|
|
|
@ -4486,7 +4486,7 @@ distribution, coverage uniformity, strand specificity, etc.")
|
|||
"Data2DB"
|
||||
"PCL2Bin")))
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'bootstrap
|
||||
(add-before 'configure 'bootstrap
|
||||
(lambda _
|
||||
(zero? (system* "bash" "gen_auto"))))
|
||||
(add-after 'build 'build-additional-tools
|
||||
|
@ -6137,6 +6137,29 @@ data. It is derived from the UCSC hg19 genome and based on the \"knownGene\"
|
|||
track. The database is exposed as a @code{TxDb} object.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-sparql
|
||||
(package
|
||||
(name "r-sparql")
|
||||
(version "1.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "SPARQL" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc"))))
|
||||
(properties `((upstream-name . "SPARQL")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcurl" ,r-rcurl)
|
||||
("r-xml" ,r-xml)))
|
||||
(home-page "http://cran.r-project.org/web/packages/SPARQL")
|
||||
(synopsis "SPARQL client for R")
|
||||
(description "This package provides an interface to use SPARQL to pose
|
||||
SELECT or UPDATE queries to an end-point.")
|
||||
;; The only license indication is found in the DESCRIPTION file,
|
||||
;; which states GPL-3. So we cannot assume GPLv3+.
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public vsearch
|
||||
(package
|
||||
(name "vsearch")
|
||||
|
@ -8001,7 +8024,7 @@ paired-end data.")
|
|||
(define-public r-rcas
|
||||
(package
|
||||
(name "r-rcas")
|
||||
(version "1.3.3")
|
||||
(version "1.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/BIMSBbioinfo/RCAS/archive/v"
|
||||
|
@ -8009,7 +8032,7 @@ paired-end data.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19mk7vkbngmch54kzcxb52161ljfchhjsaanza8iwv5h98sjj66d"))))
|
||||
"1qgc7vi6fpzl440yg7jhiycg5q336kd4pxqzx10yx2zcq3bq3msg"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)
|
||||
|
@ -8030,6 +8053,7 @@ paired-end data.")
|
|||
("r-bsgenome-dmelanogaster-ucsc-dm3" ,r-bsgenome-dmelanogaster-ucsc-dm3)
|
||||
("r-topgo" ,r-topgo)
|
||||
("r-dt" ,r-dt)
|
||||
("r-pbapply" ,r-pbapply)
|
||||
("r-plotly" ,r-plotly)
|
||||
("r-plotrix" ,r-plotrix)
|
||||
("r-motifrg" ,r-motifrg)
|
||||
|
|
|
@ -395,3 +395,72 @@ also initializes the boards (RAM etc).")
|
|||
|
||||
(define-public u-boot-odroid-c2
|
||||
(make-u-boot-package "odroid-c2" "aarch64-linux-gnu"))
|
||||
|
||||
(define-public os-prober
|
||||
(package
|
||||
(name "os-prober")
|
||||
(version "1.76")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vb45i76bqivlghrq7m3n07qfmmq4wxrkplqx8gywj011rhq19fk"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex) ; for string-match
|
||||
(srfi srfi-26)) ; for cut
|
||||
#:make-flags (list "CC=gcc")
|
||||
#:tests? #f ; no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* (find-files ".")
|
||||
(("/usr") (assoc-ref outputs "out")))
|
||||
(substitute* (find-files "." "50mounted-tests$")
|
||||
(("mkdir") "mkdir -p"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(define (find-files-non-recursive directory)
|
||||
(find-files directory
|
||||
(lambda (file stat)
|
||||
(string-match (string-append "^" directory "/[^/]*$")
|
||||
file))
|
||||
#:directories? #t))
|
||||
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(lib (string-append out "/lib"))
|
||||
(share (string-append out "/share")))
|
||||
(for-each (cut install-file <> bin)
|
||||
(list "linux-boot-prober" "os-prober"))
|
||||
(install-file "newns" (string-append lib "/os-prober"))
|
||||
(install-file "common.sh" (string-append share "/os-prober"))
|
||||
(install-file "os-probes/mounted/powerpc/20macosx"
|
||||
(string-append lib "/os-probes/mounted"))
|
||||
(for-each
|
||||
(lambda (directory)
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(let ((destination (string-append lib "/" directory
|
||||
"/" (basename file))))
|
||||
(mkdir-p (dirname destination))
|
||||
(copy-recursively file destination)))
|
||||
(append (find-files-non-recursive (string-append directory "/common"))
|
||||
(find-files-non-recursive (string-append directory "/x86")))))
|
||||
(list "os-probes" "os-probes/mounted" "os-probes/init"
|
||||
"linux-boot-probes" "linux-boot-probes/mounted"))
|
||||
#t))))))
|
||||
(home-page "https://joeyh.name/code/os-prober")
|
||||
(synopsis "Detect other operating systems")
|
||||
(description "os-prober probes disks on the system for other operating
|
||||
systems so that they can be added to the bootloader. It also works out how to
|
||||
boot existing GNU/Linux systems and detects what distribution is installed in
|
||||
order to add a suitable bootloader menu entry.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -70,7 +70,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
|
|||
(define-public meson
|
||||
(package
|
||||
(name "meson")
|
||||
(version "0.41.1")
|
||||
(version "0.42.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
|
@ -78,9 +78,10 @@ makes a few sacrifices to acquire fast full and incremental build times.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12ygjh1dxi8z06nl704rfb6zj0m2zjqp279nymfgzfgy5zq032d4"))))
|
||||
"0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("ninja", ninja)))
|
||||
(propagated-inputs `(("python" ,python)))
|
||||
(home-page "https://mesonbuild.com/")
|
||||
(synopsis "Build system designed to be fast and user-friendly")
|
||||
(description
|
||||
|
@ -92,6 +93,24 @@ files}, are written in a custom domain-specific language (DSL) that resembles
|
|||
Python.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public meson-for-build
|
||||
(package
|
||||
(inherit meson)
|
||||
(name "meson-for-build")
|
||||
(version "0.42.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vyp9rkymzzzilhnf04ryszslyp9a0y0wf4agyijd4w5lcnqlcbc"))
|
||||
(patches (search-patches "meson-for-build-rpath.patch"))))
|
||||
|
||||
;; People should probably install "meson", not "meson-for-build".
|
||||
(properties `((hidden? . #t)))))
|
||||
|
||||
(define-public premake4
|
||||
(package
|
||||
(name "premake")
|
||||
|
|
|
@ -147,14 +147,14 @@ libcdio.")
|
|||
(define-public xorriso
|
||||
(package
|
||||
(name "xorriso")
|
||||
(version "1.4.6")
|
||||
(version "1.4.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/xorriso/xorriso-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"112p0ghwzxrcjbsir1n2jxhq103ckrw93wzvd55qqvzfgs674vsj"))))
|
||||
"10c44yr3dpmwxa7rf23mwfsy1bahny3jpcg9ig0xjv090jg0d0pc"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("acl" ,acl)
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
(define-public nss-certs
|
||||
(package
|
||||
(name "nss-certs")
|
||||
(version "3.32")
|
||||
(version "3.33")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -85,7 +85,7 @@
|
|||
"nss-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0dfkgvah0ji8b8lpxyy2w0b3lyz5ldmryii4z7j2bfwnrj0z7iim"))))
|
||||
"1r44qa4j7sri50mxxbnrpm6fxprwrhv76whi7bfq73j06syxmw4q"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"))
|
||||
(native-inputs
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2017 ng0 <ng0@infotropique.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -269,3 +270,26 @@ normally do not detect. The goal is to detect only real errors in the code
|
|||
discovery, death tests, assertions, parameterized tests and XML test report
|
||||
generation.")
|
||||
(license bsd-3)))
|
||||
|
||||
(define-public cpputest
|
||||
(package
|
||||
(name "cpputest")
|
||||
(version "3.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/cpputest/cpputest/releases/download/v"
|
||||
version "/cpputest-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mk48xd3klyqi7wf3f4wn4zqxxzmvrhhl32r25jzrixzl72wq7f8"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("googletest" ,googletest)))
|
||||
(home-page "https://cpputest.github.io/")
|
||||
(synopsis "Unit testing and mocking framework for C/C++")
|
||||
(description
|
||||
"CppUTest is a C/C++ based unit xUnit test framework. It is written in
|
||||
C++ but is used in C and C++ projects and frequently used in embedded systems
|
||||
but it works for any C/C++ project.")
|
||||
(license bsd-3)))
|
||||
|
|
|
@ -187,8 +187,8 @@ their dependencies.")
|
|||
(license l:gpl3+))))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "6f85bc04f31ae5853ceaa0bb3e1dedfe8412a189")
|
||||
(revision "7"))
|
||||
(let ((commit "87ad259dba7de38b6e3ab954cd7b2f655358d877")
|
||||
(revision "8"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
|
@ -200,7 +200,7 @@ their dependencies.")
|
|||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dglsa23z21m1s70420ar73qmg39fvdvwlz9xjz6lfp5s9mgzx15"))))
|
||||
"127pvbxbh6b6ar43cdgia9qpzzpldq4wm3igsxb1ycxfsdqnjrnz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
|
@ -216,7 +216,12 @@ their dependencies.")
|
|||
(substitute* "Makefile.am"
|
||||
(("tests/repo.scm \\\\") "\\"))
|
||||
#t))
|
||||
(add-after 'disable-repo-tests 'bootstrap
|
||||
(add-after 'disable-repo-tests 'patch-/bin/sh
|
||||
(lambda _
|
||||
(substitute* "build-aux/git-version-gen"
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t))
|
||||
(add-after 'patch-/bin/sh 'bootstrap
|
||||
(lambda _ (zero? (system* "sh" "bootstrap"))))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
|
|
59
gnu/packages/cobol.scm
Normal file
59
gnu/packages/cobol.scm
Normal file
|
@ -0,0 +1,59 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages cobol)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages ncurses))
|
||||
|
||||
(define-public gnucobol
|
||||
(package
|
||||
(name "gnucobol")
|
||||
(version "2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/gnucobol/gnucobol-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1814s1n95xax2dz938cf4fkcp0q94nkj1gjbdblbzpk9q92zq66w"))))
|
||||
(arguments
|
||||
'(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib"))))
|
||||
(inputs
|
||||
`(("bdb" ,bdb)
|
||||
("gmp" ,gmp)
|
||||
("ncurses" ,ncurses)))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://savannah.gnu.org/projects/gnucobol/")
|
||||
(synopsis "A modern COBOL compiler")
|
||||
(description "GnuCOBOL is a free, modern COBOL compiler. GnuCOBOL
|
||||
implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014
|
||||
standards and X/Open COBOL, as well as many extensions included in other
|
||||
COBOL compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT and others).
|
||||
GnuCOBOL translates COBOL into C and compiles the translated code using
|
||||
a native C compiler.")
|
||||
(license gpl3+)))
|
|
@ -193,16 +193,16 @@ COCOMO model or user-provided parameters.")
|
|||
(define-public cloc
|
||||
(package
|
||||
(name "cloc")
|
||||
(version "1.72")
|
||||
(version "1.74")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/AlDanial/cloc/releases/download/v" version
|
||||
"https://github.com/AlDanial/cloc/releases/download/" version
|
||||
"/cloc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gl7bxb4bi6pms0zzl133pzpfypvz57hk2cw7yf6rvs8b48kilnz"))))
|
||||
"0rq5xfiln1wlv3yr9mg18ax4gskbss786iqaf0v45iv6awyl5b2m"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
|
@ -241,7 +241,7 @@ of source code in many programming languages. Given two versions of a code
|
|||
base, cloc can compute differences in blank, comment, and source lines.
|
||||
|
||||
cloc contains code from David Wheeler's SLOCCount. Compared to SLOCCount,
|
||||
cloc can handle a greater variety of programming langauges.")
|
||||
cloc can handle a greater variety of programming languages.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public the-silver-searcher
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -112,8 +113,7 @@
|
|||
|
||||
(define file-boot0
|
||||
(package-with-bootstrap-guile
|
||||
(package-with-explicit-inputs (package
|
||||
(inherit file)
|
||||
(package-with-explicit-inputs (package/inherit file
|
||||
(name "file-boot0"))
|
||||
`(("make" ,gnu-make-boot0)
|
||||
,@%bootstrap-inputs)
|
||||
|
@ -140,7 +140,7 @@
|
|||
|
||||
(define binutils-boot0
|
||||
(package-with-bootstrap-guile
|
||||
(package (inherit binutils)
|
||||
(package/inherit binutils
|
||||
(name "binutils-cross-boot0")
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
|
@ -668,7 +668,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
|||
|
||||
(define binutils-final
|
||||
(package-with-bootstrap-guile
|
||||
(package (inherit binutils)
|
||||
(package/inherit binutils
|
||||
(arguments
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
|
|
|
@ -1542,22 +1542,24 @@ manipulate, read, and write Zip archive files.")
|
|||
(define-public libzip
|
||||
(package
|
||||
(name "libzip")
|
||||
(version "1.2.0")
|
||||
(version "1.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://nih.at/libzip/libzip-" version ".tar.gz"))
|
||||
(patches (search-patches "libzip-CVE-2017-12858.patch"))
|
||||
"https://nih.at/libzip/libzip-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17vxj2ffsxwh8lkc6801ppmwj15jp8q58rin76znxfbx88789ybc"))))
|
||||
"0wykw0q9dwdzx0gssi2dpgckx9ggr2spzc1amjnff6wi6kz6x4xa"))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-perl
|
||||
(add-after 'build 'remove-failing-tests
|
||||
;; These tests are known to fail on 32-bit architectures.
|
||||
;; see thread: https://nih.at/listarchive/libzip-discuss/msg00713.html
|
||||
(lambda _
|
||||
(substitute* "regress/runtest.in"
|
||||
(("/usr/bin/env perl") (which "perl"))))))))
|
||||
(substitute* "regress/Makefile"
|
||||
(("encryption-nonrandom") "#encryption-nonrandom"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)))
|
||||
(inputs
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system r)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages machine-learning)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages statistics)
|
||||
|
@ -851,14 +852,14 @@ data). Weighted versions of MLE, MME and QME are available.")
|
|||
(define-public r-energy
|
||||
(package
|
||||
(name "r-energy")
|
||||
(version "1.7-0")
|
||||
(version "1.7-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "energy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g4hqi6mgsnd1w4q7dd2m40ljh2jdmvad91ksbq9fscnrqpvji1x"))))
|
||||
"19c7bgjnm4ggf7w5mk64c5shkma3sa9wc8x117iqv7pk1bvvyy3p"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-boot" ,r-boot)
|
||||
|
@ -928,3 +929,288 @@ sampling from populations, given the observed tie pattern. Except for Steel's
|
|||
test and the JT test it also combines these tests across several blocks of
|
||||
samples.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-cvst
|
||||
(package
|
||||
(name "r-cvst")
|
||||
(version "0.2-1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "CVST" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17xacyi8cf37rr2xswx96qy7pwkaqq394awdlswykz3qlyzx4zx2"))))
|
||||
(properties `((upstream-name . "CVST")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-kernlab" ,r-kernlab)
|
||||
("r-matrix" ,r-matrix)))
|
||||
(home-page "http://cran.r-project.org/web/packages/CVST")
|
||||
(synopsis "Fast cross-validation via sequential testing")
|
||||
(description
|
||||
"This package implements the fast cross-validation via sequential
|
||||
testing (CVST) procedure. CVST is an improved cross-validation procedure
|
||||
which uses non-parametric testing coupled with sequential analysis to
|
||||
determine the best parameter set on linearly increasing subsets of the data.
|
||||
Additionally to the CVST the package contains an implementation of the
|
||||
ordinary k-fold cross-validation with a flexible and powerful set of helper
|
||||
objects and methods to handle the overall model selection process. The
|
||||
implementations of the Cochran's Q test with permutations and the sequential
|
||||
testing framework of Wald are generic and can therefore also be used in other
|
||||
contexts.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-lava
|
||||
(package
|
||||
(name "r-lava")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lava" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0x6s7x111x87a4rh5nbk7vw6j4iq40i1c21w0j795h28rgyc7zc2"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-numderiv" ,r-numderiv)
|
||||
("r-survival" ,r-survival)))
|
||||
(home-page "https://github.com/kkholst/lava")
|
||||
(synopsis "Latent variable models")
|
||||
(description
|
||||
"This package provides tools for the estimation and simulation of latent
|
||||
variable models.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-drr
|
||||
(package
|
||||
(name "r-drr")
|
||||
(version "0.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "DRR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1scfwp6ry6apxzqjclsmn2frxp9qfw6zxsxn5w0j0q3sz42hz1h2"))))
|
||||
(properties `((upstream-name . "DRR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cvst" ,r-cvst)
|
||||
("r-kernlab" ,r-kernlab)
|
||||
("r-matrix" ,r-matrix)))
|
||||
(home-page "http://cran.r-project.org/web/packages/DRR")
|
||||
(synopsis "Dimensionality reduction via regression")
|
||||
(description
|
||||
"This package provides an implementation of dimensionality reduction via
|
||||
regression using Kernel Ridge Regression.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-prodlim
|
||||
(package
|
||||
(name "r-prodlim")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "prodlim" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0m51rkivx1zr6whdqwj66jpnkmp4385m06kkha3dp8qqf4jna9iz"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-kernsmooth" ,r-kernsmooth)
|
||||
("r-lava" ,r-lava)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-survival" ,r-survival)))
|
||||
(home-page "http://cran.r-project.org/web/packages/prodlim")
|
||||
(synopsis "Product-limit estimation for censored event history analysis")
|
||||
(description
|
||||
"This package provides a fast and user-friendly implementation of
|
||||
nonparametric estimators for censored event history (survival) analysis with
|
||||
the Kaplan-Meier and Aalen-Johansen methods.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-dimred
|
||||
(package
|
||||
(name "r-dimred")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dimRed" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fasca5fsbrxdwv30hch7vb9snb844l7l8p5fjf239dq45xfy37v"))))
|
||||
(properties `((upstream-name . "dimRed")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-drr" ,r-drr)))
|
||||
(home-page "https://github.com/gdkrmr/dimRed")
|
||||
(synopsis "Framework for dimensionality reduction")
|
||||
(description
|
||||
"This package provides a collection of dimensionality reduction
|
||||
techniques from R packages and provides a common interface for calling the
|
||||
methods.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-timedate
|
||||
(package
|
||||
(name "r-timedate")
|
||||
(version "3012.100")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "timeDate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cn4h23y2y2bbg62qgm79xx4cvfla5xbpmi9hbdvkvpmm5yfyqk2"))))
|
||||
(properties `((upstream-name . "timeDate")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://www.rmetrics.org")
|
||||
(synopsis "Chronological and calendar objects")
|
||||
(description
|
||||
"This package provides an environment for teaching \"Financial
|
||||
Engineering and Computational Finance\" and for managing chronological and
|
||||
calendar objects.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-ddalpha
|
||||
(package
|
||||
(name "r-ddalpha")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ddalpha" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nsd515x6bap1qpfyx141hyldmpmyasnhv0f8s9dj6zcklp89af4"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-bh" ,r-bh)
|
||||
("r-class" ,r-class)
|
||||
("r-mass" ,r-mass)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-robustbase" ,r-robustbase)))
|
||||
(home-page "http://cran.r-project.org/web/packages/ddalpha")
|
||||
(synopsis "Depth-Based classification and calculation of data depth")
|
||||
(description
|
||||
"This package contains procedures for depth-based supervised learning,
|
||||
which are entirely non-parametric, in particular the DDalpha-procedure (Lange,
|
||||
Mosler and Mozharovskyi, 2014). The training data sample is transformed by a
|
||||
statistical depth function to a compact low-dimensional space, where the final
|
||||
classification is done. It also offers an extension to functional data and
|
||||
routines for calculating certain notions of statistical depth functions. 50
|
||||
multivariate and 5 functional classification problems are included.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-gower
|
||||
(package
|
||||
(name "r-gower")
|
||||
(version "0.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gower" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mbrj1lam3jfbby2j32shmmj5cn09zx3rkxbamq7q8sdg39b54gb"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/markvanderloo/gower")
|
||||
(synopsis "Gower's distance")
|
||||
(description
|
||||
"This package provides tools to compute Gower's distance (or similarity)
|
||||
coefficient between records, and to compute the top-n matches between records.
|
||||
Core algorithms are executed in parallel on systems supporting OpenMP.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-rcpproll
|
||||
(package
|
||||
(name "r-rcpproll")
|
||||
(version "0.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppRoll" version))
|
||||
(sha256
|
||||
(base32
|
||||
"19xzvxym8zbighndygkq4imfwc0abh4hqyq3qrr8aakyd096iisi"))))
|
||||
(properties `((upstream-name . "RcppRoll")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)))
|
||||
(home-page "http://cran.r-project.org/web/packages/RcppRoll")
|
||||
(synopsis "Efficient rolling and windowed operations")
|
||||
(description
|
||||
"This package provides fast and efficient routines for common rolling /
|
||||
windowed operations. Routines for the efficient computation of windowed mean,
|
||||
median, sum, product, minimum, maximum, standard deviation and variance are
|
||||
provided.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-ipred
|
||||
(package
|
||||
(name "r-ipred")
|
||||
(version "0.9-6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ipred" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vrw1pqcpnc04x1r2h9grdfm6bivs358sww5gg90jwlvxcw69lxq"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-class" ,r-class)
|
||||
("r-mass" ,r-mass)
|
||||
("r-nnet" ,r-nnet)
|
||||
("r-prodlim" ,r-prodlim)
|
||||
("r-rpart" ,r-rpart)
|
||||
("r-survival" ,r-survival)))
|
||||
(home-page "http://cran.r-project.org/web/packages/ipred")
|
||||
(synopsis "Improved predictors")
|
||||
(description
|
||||
"This package provides improved predictive models by indirect
|
||||
classification and bagging for classification, regression and survival
|
||||
problems as well as resampling based estimators of prediction error.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-recipes
|
||||
(package
|
||||
(name "r-recipes")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "recipes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0rydk403qihxmcv3zz323r3ywk4g1v7ibvj452rxhm0z22sqk9kb"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ddalpha" ,r-ddalpha)
|
||||
("r-dimred" ,r-dimred)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-gower" ,r-gower)
|
||||
("r-ipred" ,r-ipred)
|
||||
("r-lubridate" ,r-lubridate)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rcpproll" ,r-rcpproll)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyselect" ,r-tidyselect)
|
||||
("r-timedate" ,r-timedate)))
|
||||
(home-page "https://github.com/topepo/recipes")
|
||||
(synopsis "Preprocessing tools to create design matrices")
|
||||
(description
|
||||
"Recipes is an extensible framework to create and preprocess design
|
||||
matrices. Recipes consist of one or more data manipulation and analysis
|
||||
\"steps\". Statistical parameters for the steps can be estimated from an
|
||||
initial data set and then applied to other data sets. The resulting design
|
||||
matrices can then be used as inputs into statistical or machine learning
|
||||
models.")
|
||||
(license license:gpl2)))
|
||||
|
|
|
@ -78,6 +78,37 @@ communication, encryption, decryption, signatures, etc.")
|
|||
(license license:isc)
|
||||
(home-page "http://libsodium.org")))
|
||||
|
||||
(define-public libmd
|
||||
(package
|
||||
(name "libmd")
|
||||
(version "0.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://archive.hadrons.org/software/libmd/libmd-"
|
||||
version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"121s73pgbqsnmy6xblbrkj9y44c5zzzpf2hcmh6zvcvg4dk26gzx"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Message Digest functions from BSD systems")
|
||||
(description
|
||||
"The currently provided message digest algorithms are:
|
||||
@itemize
|
||||
@item MD2
|
||||
@item MD4
|
||||
@item MD5
|
||||
@item RIPEMD-160
|
||||
@item SHA-1
|
||||
@item SHA-2 (SHA-256, SHA-384 and SHA-512)
|
||||
@end itemize")
|
||||
(license (list license:bsd-3
|
||||
license:bsd-2
|
||||
license:isc
|
||||
license:public-domain))
|
||||
(home-page "https://www.hadrons.org/software/libmd/")))
|
||||
|
||||
(define-public signify
|
||||
(package
|
||||
(name "signify")
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pretty-print)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages scanner)
|
||||
#:use-module (gnu packages image)
|
||||
|
@ -479,3 +483,119 @@ device-specific programs to convert and print many types of files.")
|
|||
;; TODO: Make hp-setup find python-dbus.
|
||||
("python-dbus" ,python-dbus)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))))
|
||||
|
||||
(define-public foomatic-filters
|
||||
(package
|
||||
(name "foomatic-filters")
|
||||
(version "4.0.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.openprinting.org/download/foomatic/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17w26r15094j4fqifa7f7i7jad4gsy9zdlq69kffrykcw31qx3q8"))
|
||||
(patches
|
||||
(search-patches "foomatic-filters-CVE-2015-8327.patch"
|
||||
"foomatic-filters-CVE-2015-8560.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page
|
||||
"https://wiki.linuxfoundation.org/openprinting/database/foomatic")
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("dbus" ,dbus)
|
||||
("a2ps" ,a2ps)))
|
||||
(arguments
|
||||
'( ;; Specify the installation directories.
|
||||
#:configure-flags (list (string-append "ac_cv_path_CUPS_BACKENDS="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/cups/backend")
|
||||
(string-append "ac_cv_path_CUPS_FILTERS="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/cups/filter")
|
||||
(string-append "ac_cv_path_PPR_INTERFACES="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/ppr/interfaces")
|
||||
(string-append "ac_cv_path_PPR_LIB="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/ppr/lib")
|
||||
|
||||
;; For some reason these are misdiagnosed.
|
||||
"ac_cv_func_malloc_0_nonnull=yes"
|
||||
"ac_cv_func_realloc_0_nonnull=yes")
|
||||
#:test-target "tests"))
|
||||
(synopsis "Convert PostScript to the printer's native format")
|
||||
(description
|
||||
"This package contains filter scripts used by the printer spoolers to
|
||||
convert the incoming PostScript data into the printer's native format using a
|
||||
printer/driver specific, but spooler-independent PPD file.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public foo2zjs
|
||||
(package
|
||||
;; The tarball is called "foo2zjs", but the web page talks about
|
||||
;; "foo2xqx". Go figure!
|
||||
(name "foo2zjs")
|
||||
(version "201709")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; XXX: This is an unversioned URL!
|
||||
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
|
||||
(sha256
|
||||
(base32
|
||||
"0amjj3jr6s6h7crzxyx11v31sj0blz7k5c2vycz4gn8cxlmk3c7w"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* (find-files "." "^Makefile$")
|
||||
;; Set the installation directory.
|
||||
(("^PREFIX[[:blank:]]*=.*$")
|
||||
(string-append "PREFIX = "
|
||||
(assoc-ref outputs "out")
|
||||
"\n"))
|
||||
(("^UDEVBIN[[:blank:]]*=.*$")
|
||||
"UDEVBIN = $(PREFIX)/bin\n")
|
||||
;; Don't try to chown/chgrp the installed files.
|
||||
(("-oroot")
|
||||
"")
|
||||
(("-glp")
|
||||
"")
|
||||
;; Placate the dependency checks.
|
||||
(("/usr/include/stdio.h")
|
||||
"/etc/passwd")
|
||||
(("/usr/")
|
||||
"$(PREFIX)/")
|
||||
;; Ensure fixed timestamps in man pages.
|
||||
(("^MODTIME[[:blank:]]*=.*$")
|
||||
"MODTIME = echo Thu Jan 01 01:00:00 1970\n"))
|
||||
#t))
|
||||
(add-after 'install 'remove-pdf
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Remove 'manual.pdf' which is (1) useless (it's a
|
||||
;; concatenation of man pages), and (2) not
|
||||
;; bit-reproducible due to <https://bugs.gnu.org/27593>.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(for-each delete-file
|
||||
(find-files out "^manual\\.pdf$"))
|
||||
#t))))
|
||||
#:parallel-build? #f ;broken makefile
|
||||
#:tests? #f ;no tests
|
||||
#:make-flags '("CC=gcc")))
|
||||
(inputs
|
||||
`(("ghostscript" ,ghostscript)
|
||||
("foomatic-filters" ,foomatic-filters))) ;for 'foomatic-rip'
|
||||
(native-inputs
|
||||
`(("bc" ,bc)
|
||||
("groff" ,groff)))
|
||||
(home-page "http://foo2xqx.rkkda.com/")
|
||||
(synopsis "Printer driver for XQX stream protocol")
|
||||
(description
|
||||
"This package provides a printer driver notably for the ZJS and XQX
|
||||
protocols, which cover printers made by Konica, HP (LaserJet), Oki, Samsung,
|
||||
and more. See @file{README} for details.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||
|
@ -18,6 +18,7 @@
|
|||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -52,6 +53,7 @@
|
|||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages language)
|
||||
#:use-module (gnu packages libevent)
|
||||
|
@ -1621,3 +1623,56 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.")
|
|||
|
||||
(define-public python2-lmdb
|
||||
(package-with-python2 python-lmdb))
|
||||
|
||||
(define-public python-orator
|
||||
(package
|
||||
(name "python-orator")
|
||||
(version "0.9.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "orator" version))
|
||||
(sha256
|
||||
(base32
|
||||
"14r58z64fdp76ixnvmi4lni762b405ynmsx6chr1qihs3yl9zn6c"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'loosen-dependencies
|
||||
;; Tests are not actually run since they are not included with the
|
||||
;; distributed package, but dependencies are checked.
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
((",<.*'") "'")
|
||||
(("flexmock==0.9.7") "flexmock")
|
||||
;; The pytest-mock package is out of date, so we remove minimum
|
||||
;; version requirement.
|
||||
(("pytest-mock.*'") "pytest-mock'"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-pytest-mock" ,python-pytest-mock)
|
||||
("python-pytest" ,python-pytest-3.0)
|
||||
("python-flexmock" ,python-flexmock)))
|
||||
(propagated-inputs
|
||||
`(("python-backpack" ,python-backpack)
|
||||
("python-blinker" ,python-blinker)
|
||||
("python-cleo" ,python-cleo)
|
||||
("python-faker" ,python-faker)
|
||||
("python-inflection" ,python-inflection)
|
||||
("python-lazy-object-proxy" ,python-lazy-object-proxy)
|
||||
("python-pendulum" ,python-pendulum)
|
||||
("python-pyaml" ,python-pyaml)
|
||||
("python-pygments" ,python-pygments)
|
||||
("python-simplejson" ,python-simplejson)
|
||||
("python-six" ,python-six)
|
||||
("python-wrapt" ,python-wrapt)))
|
||||
(home-page "https://orator-orm.com/")
|
||||
(synopsis "ActiveRecord ORM for Python")
|
||||
(description
|
||||
"Orator provides a simple ActiveRecord-like Object Relational Mapping
|
||||
implementation for Python.")
|
||||
(license license:expat)
|
||||
(properties `((python2-variant . ,(delay python2-orator))))))
|
||||
|
||||
(define-public python2-orator
|
||||
(package-with-python2 (strip-python2-variant python-orator)))
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,6 +31,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages docbook)
|
||||
|
@ -353,6 +355,25 @@ permit managing file systems not included in libparted.")
|
|||
;; The home page says GPLv2, but the source code says GPLv2+.
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public pydf
|
||||
(package
|
||||
(name "pydf")
|
||||
(version "12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pydf" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f8ly8xyp93i2hm9c0qjqd4y86nz73axw2f09z01mszwmg1sfivz"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "http://kassiopeia.juls.savba.sk/~garabik/software/pydf/")
|
||||
(synopsis "Colourised @command{df} clone")
|
||||
(description "All-singing, all-dancing, fully colourised @command{df} clone
|
||||
written in Python. It displays the amount of disk space available on the
|
||||
mounted filesystems, using different colours for different types of file
|
||||
systems. Output format is completely customizable.")
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public f3
|
||||
(package
|
||||
|
|
|
@ -31,13 +31,13 @@
|
|||
(define-public python-django
|
||||
(package
|
||||
(name "python-django")
|
||||
(version "1.10.7")
|
||||
(version "1.10.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Django" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f5hnn2dzfr5szk4yc47bs4kk2nmrayjcvgpqi2s4l13pjfpfgar"))))
|
||||
"1fwqqh2zbcy9dy0lnvk338s11llnnfz2k56bf84w0wv56ayq7vyl"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
(define-public calibre
|
||||
(package
|
||||
(name "calibre")
|
||||
(version "3.0.0")
|
||||
(version "3.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -81,21 +81,19 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zhk7bvgr973dd18x4wp48kzai29qqqi5qcy72sxc4wcbk2sbnkw"))
|
||||
"0vp2nds4b5xbchsh1rpc1q7093gd26dnw7mgbnax97dcchvlc4sc"))
|
||||
;; Remove non-free or doubtful code, see
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(delete-file-recursively "src/calibre/ebooks/markdown")
|
||||
(delete-file-recursively "src/unrar")
|
||||
(delete-file "src/odf/thumbnail.py")
|
||||
(delete-file-recursively "resources/fonts/liberation")
|
||||
(substitute* (find-files "." "\\.py")
|
||||
(("calibre\\.ebooks\\.markdown") "markdown"))
|
||||
#t))
|
||||
(patches (search-patches "calibre-drop-unrar.patch"
|
||||
"calibre-use-packaged-feedparser.patch"
|
||||
(patches (search-patches "calibre-use-packaged-feedparser.patch"
|
||||
"calibre-no-updates-dialog.patch"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
|
@ -129,6 +127,7 @@
|
|||
("python2-dbus" ,python2-dbus)
|
||||
("python2-dnspython" ,python2-dnspython)
|
||||
("python2-feedparser" ,python2-feedparser)
|
||||
("python2-html5-parser" ,python2-html5-parser)
|
||||
("python2-lxml" ,python2-lxml)
|
||||
("python2-markdown" ,python2-markdown)
|
||||
("python2-mechanize" ,python2-mechanize)
|
||||
|
@ -140,6 +139,9 @@
|
|||
("python2-pyqt" ,python2-pyqt)
|
||||
("python2-sip" ,python2-sip)
|
||||
("python2-regex" ,python2-regex)
|
||||
;; python2-unrardll is needed for decompressing RAR files.
|
||||
;; A program called 'pdf2html' is needed for reading PDF books
|
||||
;; in the web interface.
|
||||
("sqlite" ,sqlite)))
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages gtk)
|
||||
|
@ -112,7 +113,8 @@
|
|||
"1ykkq0xl28ljdg61bm6gzy04ww86ajms98gix72qg6cpr6a53dar"))
|
||||
(patches (search-patches "emacs-exec-path.patch"
|
||||
"emacs-fix-scheme-indent-function.patch"
|
||||
"emacs-source-date-epoch.patch"))
|
||||
"emacs-source-date-epoch.patch"
|
||||
"emacs-unsafe-enriched-mode-translations.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Delete the bundled byte-compiled elisp files and
|
||||
|
@ -840,6 +842,7 @@ provides an optional IDE-like error list.")
|
|||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(flac (assoc-ref inputs "flac"))
|
||||
(vorbis (assoc-ref inputs "vorbis-tools"))
|
||||
(alsa (assoc-ref inputs "alsa-utils"))
|
||||
(mpg321 (assoc-ref inputs "mpg321"))
|
||||
|
@ -862,6 +865,9 @@ provides an optional IDE-like error list.")
|
|||
(substitute* "emms-player-simple.el"
|
||||
(("\"ogg123\"")
|
||||
(string-append "\"" vorbis "/bin/ogg123\"")))
|
||||
(substitute* "emms-player-simple.el"
|
||||
(("\"mpg321\"")
|
||||
(string-append "\"" mpg321 "/bin/mpg321\"")))
|
||||
(emacs-substitute-variables "emms-info-ogginfo.el"
|
||||
("emms-info-ogginfo-program-name"
|
||||
(string-append vorbis "/bin/ogginfo")))
|
||||
|
@ -871,6 +877,11 @@ provides an optional IDE-like error list.")
|
|||
(emacs-substitute-variables "emms-info-mp3info.el"
|
||||
("emms-info-mp3info-program-name"
|
||||
(string-append mp3info "/bin/mp3info")))
|
||||
(emacs-substitute-variables "emms-info-metaflac.el"
|
||||
("emms-info-metaflac-program-name"
|
||||
(string-append flac "/bin/metaflac")))
|
||||
(emacs-substitute-variables "emms-source-file.el"
|
||||
("emms-source-file-gnu-find" (which "find")))
|
||||
(substitute* "emms-volume-amixer.el"
|
||||
(("\"amixer\"")
|
||||
(string-append "\"" alsa "/bin/amixer\"")))
|
||||
|
@ -896,6 +907,7 @@ provides an optional IDE-like error list.")
|
|||
(native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
|
||||
("texinfo" ,texinfo)))
|
||||
(inputs `(("alsa-utils" ,alsa-utils)
|
||||
("flac" ,flac) ;for metaflac
|
||||
("vorbis-tools" ,vorbis-tools)
|
||||
("mpg321" ,mpg321)
|
||||
("taglib" ,taglib)
|
||||
|
@ -1193,6 +1205,26 @@ Using emacs-direnv means that programs started from Emacs will use the
|
|||
environment set through Direnv.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-go-mode
|
||||
(package
|
||||
(name "emacs-go-mode")
|
||||
(version "1.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/dominikh/go-mode.el/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/dominikh/go-mode.el")
|
||||
(synopsis "Go mode for Emacs")
|
||||
(description
|
||||
"This package provides go-mode, an Emacs mode for working with software
|
||||
written in the Go programming language.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public emacs-google-maps
|
||||
(package
|
||||
(name "emacs-google-maps")
|
||||
|
@ -1629,6 +1661,36 @@ display and behaviour is easily customisable.")
|
|||
of files under Git version control from within Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-minitest
|
||||
(package
|
||||
(name "emacs-minitest")
|
||||
(version "0.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/arthurnn/minitest-emacs/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dsb7kzvs1x6g4sgqmq73jqacb7wzm0wfkiq5m9dqdzq8mppgiqs"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
'(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
|
||||
#:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-f" ,emacs-f)))
|
||||
(home-page "https://github.com/arthurnn/minitest-emacs")
|
||||
(synopsis "Emacs minitest mode")
|
||||
(description
|
||||
"The minitest mode provides commands to run the tests for the current
|
||||
file or line, as well as rerunning the previous tests, or all the tests for a
|
||||
project.
|
||||
|
||||
This package also includes relevant snippets for yasnippet.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public emacs-el-mock
|
||||
(package
|
||||
(name "emacs-el-mock")
|
||||
|
@ -1917,6 +1979,7 @@ serve files and directory listings.")
|
|||
(propagated-inputs
|
||||
`(("emacs-simple-httpd" ,emacs-simple-httpd)
|
||||
("emacs-js2-mode" ,emacs-js2-mode)))
|
||||
(arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
|
||||
(home-page "https://github.com/skeeto/skewer-mode")
|
||||
(synopsis "Live web development in Emacs")
|
||||
(description
|
||||
|
@ -1968,6 +2031,31 @@ tables.")
|
|||
mode-line.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-rspec
|
||||
(package
|
||||
(name "emacs-rspec")
|
||||
(version "1.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/pezra/rspec-mode/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/pezra/rspec-mode")
|
||||
(synopsis "Provides a rspec mode for working with RSpec")
|
||||
(description
|
||||
"The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
|
||||
verify the spec associated with the current buffer, or entire project, as well
|
||||
as moving between the spec files, and coresponding code files.
|
||||
|
||||
Also included are keybindings for spec files and Dired buffers, as well as
|
||||
snippets for yasnippet.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-smart-mode-line
|
||||
(package
|
||||
(name "emacs-smart-mode-line")
|
||||
|
@ -3159,22 +3247,25 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
|
|||
"0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; There is no test suite.
|
||||
#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "LISPDIR=" %output
|
||||
"/share/emacs/site-lisp/guix.d/ess"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'more-shebang-patching
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "Makeconf"
|
||||
(("SHELL = /bin/sh")
|
||||
(string-append "SHELL = " (which "sh"))))))
|
||||
;; FIXME: the texlive-union insists on regenerating fonts. It stores
|
||||
;; them in HOME, so it needs to be writeable.
|
||||
(add-before 'build 'set-HOME
|
||||
(lambda _ (setenv "HOME" "/tmp") #t)))))
|
||||
(let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
|
||||
`(#:tests? #f ; There is no test suite.
|
||||
#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "ETCDIR=" %output "/"
|
||||
,base-directory "/etc")
|
||||
(string-append "LISPDIR=" %output "/"
|
||||
,base-directory))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'more-shebang-patching
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "Makeconf"
|
||||
(("SHELL = /bin/sh")
|
||||
(string-append "SHELL = " (which "sh"))))))
|
||||
;; FIXME: the texlive-union insists on regenerating fonts. It stores
|
||||
;; them in HOME, so it needs to be writeable.
|
||||
(add-before 'build 'set-HOME
|
||||
(lambda _ (setenv "HOME" "/tmp") #t))))))
|
||||
(inputs
|
||||
`(("emacs" ,emacs-minimal)
|
||||
("r-minimal" ,r-minimal)))
|
||||
|
@ -3239,7 +3330,7 @@ strings, and code folding.")
|
|||
(define-public emacs-markdown-mode
|
||||
(package
|
||||
(name "emacs-markdown-mode")
|
||||
(version "2.2")
|
||||
(version "2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/jrblevin"
|
||||
|
@ -3248,7 +3339,7 @@ strings, and code folding.")
|
|||
(file-name (string-append "markdown-mode-" version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav"))))
|
||||
"152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://jblevins.org/projects/markdown-mode/")
|
||||
(synopsis "Emacs Major mode for Markdown files")
|
||||
|
@ -3490,6 +3581,27 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
|
|||
(home-page "http://web-mode.org/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-wgrep
|
||||
(package
|
||||
(name "emacs-wgrep")
|
||||
(version "2.1.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/mhayashi1120/Emacs-wgrep/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/mhayashi1120/Emacs-wgrep")
|
||||
(synopsis "Edit a grep buffer and apply those changes to the files")
|
||||
(description
|
||||
"Emacs wgrep allows you to edit a grep buffer and apply those changes to
|
||||
the file buffer.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-helm
|
||||
(package
|
||||
(name "emacs-helm")
|
||||
|
@ -3764,14 +3876,14 @@ passive voice.")
|
|||
(define-public emacs-org
|
||||
(package
|
||||
(name "emacs-org")
|
||||
(version "20170828")
|
||||
(version "20170917")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/org-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0frjwgjyy7rwb7si57h6nd1p35a4gcd1dc0aka19kn8r59hbi08p"))))
|
||||
"0qyis5ph3h99zn9kx7sgraddz41c1cf6yjkwi4im6ikwxk9x8cgc"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://orgmode.org/")
|
||||
(synopsis "Outline-based notes management and organizer")
|
||||
|
@ -5521,7 +5633,39 @@ It supports dired buffers and opens them in tree mode at destination.")
|
|||
(synopsis "Quickly generate linear ranges in Emacs")
|
||||
(description
|
||||
"The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
|
||||
It iss meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
|
||||
It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
|
||||
proficiency is an advantage, since you can transform your numeric range with
|
||||
an elisp expression.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-bash-completion
|
||||
(package
|
||||
(name "emacs-bash-completion")
|
||||
(version "2.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/szermatt/emacs-bash-completion/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
|
||||
(inputs `(("bash" ,bash)))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(emacs-substitute-variables "bash-completion.el"
|
||||
("bash-completion-prog" (string-append bash "/bin/bash"))))
|
||||
#t)))))
|
||||
(home-page "https://github.com/szermatt/emacs-bash-completion")
|
||||
(synopsis "BASH completion for the shell buffer")
|
||||
(description
|
||||
"@code{bash-completion} defines dynamic completion hooks for shell-mode
|
||||
and shell-command prompts that are based on bash completion.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
(define-public efl
|
||||
(package
|
||||
(name "efl")
|
||||
(version "1.20.3")
|
||||
(version "1.20.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -67,7 +67,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"148i8awjdrqzd0xqfc6q4qvhhs46jl15nx7n2nii7lrwzx502wqj"))))
|
||||
"1jxha61gsil6hs9zb72zsyh3gmdipvfnlc9v3palb2bm0b23aq9i"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -149,6 +149,16 @@
|
|||
"--enable-drm")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; If we don't hardcode the location of libcurl.so then we
|
||||
;; have to wrap the outputs of efl's dependencies in curl.
|
||||
(add-after 'unpack 'hardcode-libcurl-location
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((curl (assoc-ref inputs "curl"))
|
||||
(lib (string-append curl "/lib/")))
|
||||
(substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
|
||||
(("libcurl.so.?" libcurl) ; libcurl.so.[45]
|
||||
(string-append lib libcurl)))
|
||||
#t)))
|
||||
(add-after 'unpack 'set-home-directory
|
||||
;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
|
||||
(lambda _ (setenv "HOME" "/tmp") #t)))))
|
||||
|
@ -165,7 +175,7 @@ removable devices or support for multimedia.")
|
|||
(define-public terminology
|
||||
(package
|
||||
(name "terminology")
|
||||
(version "1.1.0")
|
||||
(version "1.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -173,7 +183,7 @@ removable devices or support for multimedia.")
|
|||
"terminology/terminology-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13rl1k22yf8qrpzdm5nh6ij641fibadr2ww1r7rnz7mbhzj3d4gb"))
|
||||
"05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns"))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove the bundled fonts.
|
||||
;; TODO: Remove bundled lz4.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,7 +27,8 @@
|
|||
|
||||
(define-public file
|
||||
(package
|
||||
(name "file")
|
||||
(replacement file/fixed)
|
||||
(name "file")
|
||||
(version "5.30")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -51,3 +52,9 @@ of the file.")
|
|||
(license bsd-2)
|
||||
(home-page "http://www.darwinsys.com/file/")))
|
||||
|
||||
(define file/fixed
|
||||
(package
|
||||
(inherit file)
|
||||
(source (origin
|
||||
(inherit (package-source file))
|
||||
(patches (search-patches "file-CVE-2017-1000249.patch"))))))
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,11 +30,16 @@
|
|||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libunwind)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -44,6 +50,8 @@
|
|||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages upnp)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages gnuzilla))
|
||||
|
||||
(define-public bitcoin-core
|
||||
|
@ -292,3 +300,181 @@ protocol. It supports Simple Payment Verification (SPV) and deterministic key
|
|||
generation from a seed. Your secret keys are encrypted and are never sent to
|
||||
other machines/servers. Electrum does not download the Bitcoin blockchain.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public monero
|
||||
;; This package bundles easylogging++ and lmdb.
|
||||
;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
|
||||
;; The devs deem the lmdb driver too critical a consenus component, to use
|
||||
;; the system's dynamically linked library.
|
||||
(package
|
||||
(name "monero")
|
||||
(version "0.11.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/monero-project/monero/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Delete bundled dependencies.
|
||||
(for-each
|
||||
delete-file-recursively
|
||||
'("external/miniupnpc" "external/rapidjson"
|
||||
"external/unbound"))
|
||||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"083w40a553c0r3i18020jcrv5s0b64vx3d8xrn9nwkb2237ighlk"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
("googletest" ,googletest)
|
||||
("graphviz" ,graphviz)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("bind" ,isc-bind)
|
||||
("boost" ,boost)
|
||||
("expat" ,expat)
|
||||
("libunwind" ,libunwind)
|
||||
("lmdb" ,lmdb)
|
||||
("miniupnpc" ,miniupnpc)
|
||||
("openssl" ,openssl)
|
||||
("rapidjson" ,rapidjson)
|
||||
("unbound" ,unbound)))
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:configure-flags '("-DBUILD_TESTS=ON"
|
||||
,@(if (string=? "aarch64-linux" (%current-system))
|
||||
'("-DARCH=armv8-a")
|
||||
'())
|
||||
"-DBUILD_GUI_DEPS=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; tests/core_tests need a valid HOME
|
||||
(add-before 'configure 'set-home
|
||||
(lambda _
|
||||
(setenv "HOME" (getcwd))
|
||||
#t))
|
||||
(add-after 'set-home 'fix-wallet-path-for-unit-tests
|
||||
(lambda _
|
||||
(substitute* "tests/unit_tests/serialization.cpp"
|
||||
(("\\.\\./\\.\\./\\.\\./\\.\\./") "../../"))
|
||||
#t))
|
||||
(add-after 'fix-wallet-path-for-unit-tests 'change-log-path
|
||||
(lambda _
|
||||
(substitute* "contrib/epee/src/mlog.cpp"
|
||||
(("epee::string_tools::get_current_module_folder\\(\\)")
|
||||
"\".bitmonero\""))
|
||||
(substitute* "contrib/epee/src/mlog.cpp"
|
||||
(("return \\(") "return ((std::string(getenv(\"HOME\"))) / "))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero?
|
||||
(system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
|
||||
"test"))))
|
||||
;; The excluded unit tests need network access
|
||||
(add-after 'check 'unit-tests
|
||||
(lambda _
|
||||
(let ((excluded-unit-tests
|
||||
(string-join
|
||||
'("AddressFromURL.Success"
|
||||
"AddressFromURL.Failure"
|
||||
"DNSResolver.IPv4Success"
|
||||
"DNSResolver.DNSSECSuccess"
|
||||
"DNSResolver.DNSSECFailure"
|
||||
"DNSResolver.GetTXTRecord")
|
||||
":")))
|
||||
(zero?
|
||||
(system* "tests/unit_tests/unit_tests"
|
||||
(string-append "--gtest_filter=-"
|
||||
excluded-unit-tests))))))
|
||||
(add-after 'install 'install-blockchain-import-export
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(install-file "bin/monero-blockchain-import" bin)
|
||||
(install-file "bin/monero-blockchain-export" bin)))))))
|
||||
(home-page "https://getmonero.org/")
|
||||
(synopsis "Command-line interface to the Monero currency")
|
||||
(description
|
||||
"Monero is a secure, private, untraceable currency. This package provides the
|
||||
Monero command line client and daemon.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public monero-core
|
||||
(package
|
||||
(name "monero-core")
|
||||
(version "0.11.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/monero-project/monero-core/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hnrkgwb1sva67pcjym2gvb4zifp2s849dfbnjzbxk3yczpcyqzg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
("graphviz" ,graphviz)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("libunwind" ,libunwind)
|
||||
("openssl" ,openssl)
|
||||
("qt" ,qt)
|
||||
("unbound" ,unbound)))
|
||||
(propagated-inputs
|
||||
`(("monero" ,monero)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'check)
|
||||
(add-before 'build 'fix-makefile-vars
|
||||
(lambda _
|
||||
(substitute* "src/zxcvbn-c/makefile"
|
||||
(("\\?=") "="))
|
||||
#t))
|
||||
(add-after 'fix-makefile-vars 'fix-library-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "monero-wallet-gui.pro"
|
||||
(("-L/usr/local/lib") "")
|
||||
(("-L/usr/local/opt/openssl/lib")
|
||||
(string-append "-L"
|
||||
(assoc-ref inputs "openssl")
|
||||
"/lib"))
|
||||
(("-L/usr/local/opt/boost/lib")
|
||||
(string-append "-L"
|
||||
(assoc-ref inputs "boost")
|
||||
"/lib")))
|
||||
#t))
|
||||
(add-after 'fix-library-paths 'fix-monerod-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/daemon/DaemonManager.cpp"
|
||||
(("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
|
||||
(string-append "\""(assoc-ref inputs "monero")
|
||||
"/bin/monerod")))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(zero? (system* "./build.sh"))))
|
||||
(add-after 'build 'fix-install-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "build/Makefile"
|
||||
(("/opt/monero-wallet-gui")
|
||||
(assoc-ref outputs "out")))
|
||||
#t))
|
||||
(add-before 'install 'change-dir
|
||||
(lambda _
|
||||
(chdir "build"))))))
|
||||
(home-page "https://getmonero.org/")
|
||||
(synopsis "Graphical user interface for the Monero currency")
|
||||
(description
|
||||
"Monero is a secure, private, untraceable currency. This package provides the
|
||||
Monero GUI client.")
|
||||
(license license:bsd-3)))
|
||||
|
|
|
@ -204,14 +204,14 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(define-public elogind
|
||||
(package
|
||||
(name "elogind")
|
||||
(version "219.14")
|
||||
(version "232.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wingolog.org/pub/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(uri (string-append "https://github.com/elogind/elogind/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
|
||||
"1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -222,25 +222,58 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-libcap="
|
||||
(assoc-ref %build-inputs "libcap"))
|
||||
(string-append "--with-udevrulesdir="
|
||||
`(#:tests? #f ;FIXME: "make check" in the "po" directory fails.
|
||||
#:configure-flags
|
||||
(list (string-append "--with-udevrulesdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/udev/rules.d"))
|
||||
"/lib/udev/rules.d")
|
||||
|
||||
;; Let elogind be its own cgroup controller, rather than relying
|
||||
;; on systemd or OpenRC. By default, 'configure' makes an
|
||||
;; incorrect guess.
|
||||
"--with-cgroup-controller=elogind"
|
||||
|
||||
(string-append "--with-rootprefix="
|
||||
(assoc-ref %outputs "out"))
|
||||
(string-append "--with-rootlibexecdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/libexec/elogind")
|
||||
;; These are needed to ensure that lto linking works.
|
||||
"RANLIB=gcc-ranlib"
|
||||
"AR=gcc-ar"
|
||||
"NM=gcc-nm")
|
||||
#:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'fix-service-file
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Fix the file name of the 'elogind' binary in the D-Bus
|
||||
;; '.service' file.
|
||||
(substitute* "src/login/org.freedesktop.login1.service"
|
||||
(("^Exec=.*")
|
||||
(string-append "Exec=" (assoc-ref %outputs "out")
|
||||
"/libexec/elogind/elogind\n"))))))))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'autogen
|
||||
(lambda _
|
||||
(and (zero? (system* "intltoolize" "--force" "--automake"))
|
||||
(zero? (system* "autoreconf" "-vif")))))
|
||||
(add-before 'build 'fix-service-file
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Fix the file name of the 'elogind' binary in the D-Bus
|
||||
;; '.service' file.
|
||||
(substitute* "src/login/org.freedesktop.login1.service"
|
||||
(("^Exec=.*")
|
||||
(string-append "Exec=" (assoc-ref %outputs "out")
|
||||
"/libexec/elogind/elogind\n")))))
|
||||
(add-after 'install 'add-libcap-to-search-path
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Add a missing '-L' for libcap in libelogind.la. See
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>.
|
||||
(let ((libcap (assoc-ref inputs "libcap"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append out "/lib/libelogind.la")
|
||||
(("-lcap")
|
||||
(string-append "-L" libcap "/lib -lcap")))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("intltool" ,intltool)
|
||||
("gettext" ,gettext-minimal)
|
||||
("python" ,python)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("docbook-xml" ,docbook-xml)
|
||||
("xsltproc" ,libxslt)
|
||||
|
@ -260,7 +293,7 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
("dbus" ,dbus)
|
||||
("eudev" ,eudev)
|
||||
("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
|
||||
(home-page "https://github.com/wingo/elogind")
|
||||
(home-page "https://github.com/elogind/elogind")
|
||||
(synopsis "User, seat, and session management service")
|
||||
(description "Elogind is the systemd project's \"logind\" service,
|
||||
extracted out as a separate project. Elogind integrates with PAM to provide
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
(define-public lftp
|
||||
(package
|
||||
(name "lftp")
|
||||
(version "4.7.8")
|
||||
(version "4.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; See https://lftp.tech/get.html for mirrors.
|
||||
|
@ -58,7 +58,7 @@
|
|||
"ftp/lftp/lftp-" version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"19ijsmbb5589vg5ga355ys3075z6s2x2h0bdbga343hfqmnid2pi"))))
|
||||
"09vvwn5w3n8ahx57b7n6qvg1abnw9w7mm4d8p381pliab6jxlw77"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2016, 2017 Julian Graham <joolean@gmail.com>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -73,7 +74,8 @@
|
|||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages xml))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages tls))
|
||||
|
||||
(define-public bullet
|
||||
(package
|
||||
|
@ -1019,3 +1021,107 @@ with its own editor, called OpenMW-CS which allows the user to edit or create
|
|||
their own original games.")
|
||||
(home-page "https://openmw.org")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public godot
|
||||
(package
|
||||
(name "godot")
|
||||
(version "2.1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://github.com/godotengine/godot/archive/"
|
||||
version "-stable.tar.gz"))
|
||||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; There are no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'scons-use-env
|
||||
(lambda _
|
||||
;; Scons does not use the environment variables by default,
|
||||
;; but this substitution makes it do so.
|
||||
(substitute* "SConstruct"
|
||||
(("env_base = Environment\\(tools=custom_tools\\)")
|
||||
(string-append
|
||||
"env_base = Environment(tools=custom_tools)\n"
|
||||
"env_base = Environment(ENV=os.environ)")))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(zero? (system*
|
||||
"scons"
|
||||
"platform=x11"
|
||||
;; Avoid using many of the bundled libs.
|
||||
;; Note: These options can be found in the SConstruct file.
|
||||
"builtin_freetype=no"
|
||||
"builtin_glew=no"
|
||||
"builtin_libmpdec=no"
|
||||
"builtin_libogg=no"
|
||||
"builtin_libpng=no"
|
||||
"builtin_libtheora=no"
|
||||
"builtin_libvorbis=no"
|
||||
"builtin_libwebp=no"
|
||||
"builtin_openssl=no"
|
||||
"builtin_opus=no"
|
||||
"builtin_zlib=no"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(with-directory-excursion "bin"
|
||||
(if (file-exists? "godot.x11.tools.64")
|
||||
(rename-file "godot.x11.tools.64" "godot")
|
||||
(rename-file "godot.x11.tools.32" "godot"))
|
||||
(install-file "godot" bin)))))
|
||||
(add-after 'install 'install-godot-desktop
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(desktop (string-append out "/share/applications"))
|
||||
(icon-dir (string-append out "/share/pixmaps")))
|
||||
(mkdir-p desktop)
|
||||
(mkdir-p icon-dir)
|
||||
(rename-file "icon.png" "godot.png")
|
||||
(install-file "godot.png" icon-dir)
|
||||
(with-output-to-file
|
||||
(string-append desktop "/godot.desktop")
|
||||
(lambda _
|
||||
(format #t
|
||||
"[Desktop Entry]~@
|
||||
Name=godot~@
|
||||
Comment=The godot game engine~@
|
||||
Exec=~a/bin/godot~@
|
||||
TryExec=~@*~a/bin/godot~@
|
||||
Icon=godot~@
|
||||
Type=Application~%"
|
||||
out)))
|
||||
#t))))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("scons" ,scons)))
|
||||
(inputs `(("alsa-lib" ,alsa-lib)
|
||||
("freetype" ,freetype)
|
||||
("glew" ,glew)
|
||||
("glu" ,glu)
|
||||
("libtheora" ,libtheora)
|
||||
("libvorbis" ,libvorbis)
|
||||
("libwebp" ,libwebp)
|
||||
("libx11" ,libx11)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxrandr" ,libxrandr)
|
||||
("mesa" ,mesa)
|
||||
("openssl" ,openssl)
|
||||
("opusfile" ,opusfile)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("python2" ,python-2)))
|
||||
(home-page "https://godotengine.org/")
|
||||
(synopsis "Advanced 2D and 3D game engine")
|
||||
(description
|
||||
"Godot is an advanced multi-platform game engine written in C++. If
|
||||
features design tools such as a visual editor, can import 3D models and
|
||||
provide high-quality 3D rendering, it contains an animation editor, and can be
|
||||
scripted in a Python-like language.")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -150,8 +150,6 @@ where the OS part is overloaded to denote a specific ABI---into GCC
|
|||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)
|
||||
("mpc" ,mpc)
|
||||
("isl" ,isl)
|
||||
("cloog" ,cloog)
|
||||
("libelf" ,libelf)
|
||||
("zlib" ,zlib)))
|
||||
|
||||
|
@ -354,10 +352,14 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
(base32
|
||||
"08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"))
|
||||
(patches (search-patches "gcc-arm-link-spec-fix.patch"))))
|
||||
(supported-systems %supported-systems)))
|
||||
(supported-systems %supported-systems)
|
||||
(inputs
|
||||
`(("isl" ,isl-0.11)
|
||||
("cloog" ,cloog)
|
||||
,@(package-inputs gcc-4.7)))))
|
||||
|
||||
(define-public gcc-4.9
|
||||
(package (inherit gcc-4.7)
|
||||
(package (inherit gcc-4.8)
|
||||
(version "4.9.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -368,8 +370,7 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
"14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"))
|
||||
(patches (search-patches "gcc-arm-bug-71399.patch"
|
||||
"gcc-libvtv-runpath.patch"))))
|
||||
(native-inputs `(("texinfo" ,texinfo)))
|
||||
(supported-systems %supported-systems)))
|
||||
(native-inputs `(("texinfo" ,texinfo)))))
|
||||
|
||||
(define-public gcc-5
|
||||
;; Note: GCC >= 5 ships with .info files but 'make install' fails to install
|
||||
|
@ -389,6 +390,10 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
"gcc-5.0-libvtv-runpath.patch"
|
||||
"gcc-5-source-date-epoch-1.patch"
|
||||
"gcc-5-source-date-epoch-2.patch"))))))
|
||||
;; TODO: gcc-5 doesn't need cloog.
|
||||
;;(inputs
|
||||
;; `(("isl" ,isl)
|
||||
;; ,@(package-inputs gcc-4.7)))))
|
||||
|
||||
(define-public gcc-6
|
||||
(package
|
||||
|
@ -402,7 +407,11 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
(base32
|
||||
"1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5"))
|
||||
(patches (search-patches "gcc-strmov-store-file-names.patch"
|
||||
"gcc-5.0-libvtv-runpath.patch"))))))
|
||||
"gcc-5.0-libvtv-runpath.patch"))))
|
||||
(inputs
|
||||
`(("isl" ,isl)
|
||||
,@(package-inputs gcc-4.7)))))
|
||||
|
||||
(define-public gcc-7
|
||||
(package
|
||||
(inherit gcc-6)
|
||||
|
@ -415,7 +424,11 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
(base32
|
||||
"16j7i0888j2f1yp9l0nhji6cq65dy6y4nwy8868a8njbzzwavxqw"))
|
||||
(patches (search-patches "gcc-strmov-store-file-names.patch"
|
||||
"gcc-5.0-libvtv-runpath.patch"))))))
|
||||
"gcc-5.0-libvtv-runpath.patch"))))
|
||||
(description
|
||||
"GCC is the GNU Compiler Collection. It provides compiler front-ends
|
||||
for several languages, including C, C++, Objective-C, Fortran, Ada, and Go.
|
||||
It also includes runtime support libraries for these languages.")))
|
||||
|
||||
;; Note: When changing the default gcc version, update
|
||||
;; the gcc-toolchain-* definitions and the gfortran definition
|
||||
|
@ -581,7 +594,34 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc gcc-objc-4.9)
|
||||
(define-public gcc-objc-5
|
||||
(custom-gcc gcc-5 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
(variable "OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc-6
|
||||
(custom-gcc gcc-6 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
(variable "OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc-7
|
||||
(custom-gcc gcc-7 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
(variable "OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc gcc-objc-5)
|
||||
|
||||
(define-public gcc-objc++-4.8
|
||||
(custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
|
||||
|
@ -601,7 +641,34 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++ gcc-objc++-4.9)
|
||||
(define-public gcc-objc++-5
|
||||
(custom-gcc gcc-5 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
(variable "OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++-6
|
||||
(custom-gcc gcc-6 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
(variable "OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++-7
|
||||
(custom-gcc gcc-7 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
(variable "OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++ gcc-objc++-5)
|
||||
|
||||
(define (make-libstdc++-doc gcc)
|
||||
"Return a package with the libstdc++ documentation for GCC."
|
||||
|
@ -661,7 +728,7 @@ as the 'native-search-paths' field."
|
|||
(define-public isl
|
||||
(package
|
||||
(name "isl")
|
||||
(version "0.11.1")
|
||||
(version "0.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
|
@ -672,8 +739,7 @@ as the 'native-search-paths' field."
|
|||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"))
|
||||
(patches (search-patches "isl-0.11.1-aarch64-support.patch"))))
|
||||
"06ybml6llhi4i56q90jnimbcgk1lpcdwhy9nxdxra2hxz3bhz2vb"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)))
|
||||
(home-page "http://isl.gforge.inria.fr/")
|
||||
|
@ -691,6 +757,24 @@ reduction, transitive closures on maps (which may encode infinite graphs),
|
|||
dependence analysis and bounds on piecewise step-polynomials.")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public isl-0.11
|
||||
(package
|
||||
(inherit isl)
|
||||
(name "isl")
|
||||
(version "0.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"http://isl.gforge.inria.fr/isl-"
|
||||
version
|
||||
".tar.bz2")
|
||||
(string-append %gcc-infrastructure
|
||||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"))
|
||||
(patches (search-patches "isl-0.11.1-aarch64-support.patch"))))))
|
||||
|
||||
(define-public cloog
|
||||
(package
|
||||
(name "cloog")
|
||||
|
@ -710,7 +794,7 @@ dependence analysis and bounds on piecewise step-polynomials.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("isl" ,isl)))
|
||||
("isl" ,isl-0.11)))
|
||||
(arguments '(#:configure-flags '("--with-isl=system")))
|
||||
(home-page "http://www.cloog.org/")
|
||||
(synopsis "Library to generate code for scanning Z-polyhedra")
|
||||
|
|
|
@ -37,14 +37,14 @@
|
|||
(define-public gdb
|
||||
(package
|
||||
(name "gdb")
|
||||
(version "8.0")
|
||||
(version "8.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdb/gdb-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vplyf8v70yn0rdqjx6awl9nmfbwaj5ynwwjxwa71rhp97z4z8pn"))))
|
||||
"1qwmcbaxf0jc7yjl0fimgcfj2yqcrl6h7azgs1d838kbwf9mzg9x"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; FIXME "make check" fails on single-processor systems.
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
|
@ -765,7 +765,7 @@ on the GNOME Desktop with a single simple application.")
|
|||
(define-public gsettings-desktop-schemas
|
||||
(package
|
||||
(name "gsettings-desktop-schemas")
|
||||
(version "3.24.0")
|
||||
(version "3.24.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -774,7 +774,7 @@ on the GNOME Desktop with a single simple application.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"145vpcljy4660cnk8zk91qf7ywa7hqfl5hhw025gy8hxcqzklmzn"))))
|
||||
"19zfqy58missq5cck13ip8j824hb9whqg2c4cr6hgrlxkwqgm8vn"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("glib" ,glib)))
|
||||
|
@ -932,7 +932,7 @@ database is translated at Transifex.")
|
|||
(define-public hicolor-icon-theme
|
||||
(package
|
||||
(name "hicolor-icon-theme")
|
||||
(version "0.15")
|
||||
(version "0.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -940,7 +940,7 @@ database is translated at Transifex.")
|
|||
"hicolor-icon-theme-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k1kf2c5zbqh31nglc3nxs9j6wr083k9kjyql8p22ccc671mmi4w"))))
|
||||
"1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; no check target
|
||||
|
@ -987,7 +987,7 @@ some form of information without getting in the user's way.")
|
|||
(define-public libpeas
|
||||
(package
|
||||
(name "libpeas")
|
||||
(version "1.20.0")
|
||||
(version "1.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -996,12 +996,11 @@ some form of information without getting in the user's way.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m6k6fcrx40n92nc1cy3z72vs1ja49sb58dj3fjp40605pzgz4pk"))))
|
||||
"0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("glade" ,glade3)
|
||||
("libxml2" ,libxml2) ; XXX: required by gladeui-2.0.pc
|
||||
("python" ,python)
|
||||
("python-pygobject" ,python-pygobject)))
|
||||
(native-inputs
|
||||
|
@ -2647,7 +2646,7 @@ floating in an ocean using only your brain and a little bit of luck.")
|
|||
(define-public gnome-sudoku
|
||||
(package
|
||||
(name "gnome-sudoku")
|
||||
(version "3.24.0")
|
||||
(version "3.26.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2656,7 +2655,7 @@ floating in an ocean using only your brain and a little bit of luck.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mw5ykk7wr0r9770jj5270f07rjws0pmpjs0b1fywj4li13r98h4"))))
|
||||
"186k2axryn3ic8blc9ddnvyrqqf88khg2hlisfa1n4wp784wfx47"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -2989,7 +2988,7 @@ services for numerous locations.")
|
|||
(define-public gnome-settings-daemon
|
||||
(package
|
||||
(name "gnome-settings-daemon")
|
||||
(version "3.24.2")
|
||||
(version "3.24.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2998,7 +2997,7 @@ services for numerous locations.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jnw920zn4cadhgmcv2q5ylzqhwm1rmrhf3a14q8mvp38hkdgaaa"))))
|
||||
"14w5jhpq02mbcxvn41qcj3cjfqdr3sgzl96c6glwpdrjphw61i38"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(;; Color management test can't reach the colord system service.
|
||||
|
@ -3331,7 +3330,7 @@ GL based interactive canvas library.")
|
|||
(define-public libchamplain
|
||||
(package
|
||||
(name "libchamplain")
|
||||
(version "0.12.15")
|
||||
(version "0.12.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -3339,7 +3338,7 @@ GL based interactive canvas library.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x5qa1aw1y59lzkmf4j4szspn49341a87vcja4ydgxny1chilwjl"))))
|
||||
"13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--enable-vala")))
|
||||
(native-inputs
|
||||
|
@ -3399,7 +3398,7 @@ queries upon that data.")
|
|||
(define-public libgnome-games-support
|
||||
(package
|
||||
(name "libgnome-games-support")
|
||||
(version "1.2.2")
|
||||
(version "1.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -3407,7 +3406,7 @@ queries upon that data.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04qbgcgmc01sinhbqdljiny8q868l01nkdawj8wrnqnd1i8czvsg"))))
|
||||
"1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -3435,7 +3434,7 @@ GNOME Games, but it may be used by others.")
|
|||
(define-public gnome-klotski
|
||||
(package
|
||||
(name "gnome-klotski")
|
||||
(version "3.22.1")
|
||||
(version "3.22.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -3443,7 +3442,7 @@ GNOME Games, but it may be used by others.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04ragvrz29sydi2kf1zk2aimi3b3hn34jrndfd2lx6h8l45anq3q"))))
|
||||
"16hd6yk01rhb4pj8m01fyn72wykf41d72gsms81q0n4zm5bm1a4h"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("desktop-file-utils" ,desktop-file-utils)
|
||||
|
@ -4087,7 +4086,7 @@ a secret password store, an adblocker, and a modern UI.")
|
|||
(define-public epiphany
|
||||
(package
|
||||
(name "epiphany")
|
||||
(version "3.24.3")
|
||||
(version "3.24.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -4095,7 +4094,7 @@ a secret password store, an adblocker, and a modern UI.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m51cclpnb7lxk8w526rriyb2bi3aj17fbcvikhkg7qd65v1dxgy"))))
|
||||
"1jg59s98aljf603w24r5a3cr4fw6z88gc0warqy1946iprjgdw0m"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
;; FIXME: tests run under Xvfb, but fail with:
|
||||
|
@ -4719,7 +4718,6 @@ to display dialog boxes from the commandline and shell scripts.")
|
|||
("cairo" ,cairo)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("glib" ,glib)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("json-glib" ,json-glib)
|
||||
("libinput" ,libinput)
|
||||
|
@ -4760,7 +4758,7 @@ window manager.")
|
|||
(define-public gnome-online-accounts
|
||||
(package
|
||||
(name "gnome-online-accounts")
|
||||
(version "3.24.2")
|
||||
(version "3.24.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -4768,7 +4766,7 @@ window manager.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fmgywfcvlb5sa0slxxlg80gafiaal8vnq6h5lcybqa12lnxa2mp"))))
|
||||
"0m1qf2ffxzmwxa157lrvh3507d5gr3lg4kvj653zhcihjpmmhbi5"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
||||
|
@ -4923,7 +4921,7 @@ users.")
|
|||
(define-public network-manager
|
||||
(package
|
||||
(name "network-manager")
|
||||
(version "1.8.0")
|
||||
(version "1.8.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
||||
|
@ -4931,7 +4929,7 @@ users.")
|
|||
"NetworkManager-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17pn7kzilyl0qk525gp9xnbz4x0ssrdmgk1lvw95pyfd6rm5qnps"))
|
||||
"1x0vzxvrck0snga2n3pc7g74m20zz74cr4r8gfspl8sckv6yz9bi"))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils))
|
||||
|
@ -5546,7 +5544,7 @@ easy, safe, and automatic.")
|
|||
(define-public tracker
|
||||
(package
|
||||
(name "tracker")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -5554,7 +5552,7 @@ easy, safe, and automatic.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zdzh8l5ahi906i40i4pqw2cs1hwrl6l9a7fp344a3idk3pl5szb"))))
|
||||
"1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("gnome-common" ,gnome-common)
|
||||
|
@ -6066,7 +6064,7 @@ GNOME Shell appearance and extension, etc.")
|
|||
(define-public gnome-shell-extensions
|
||||
(package
|
||||
(name "gnome-shell-extensions")
|
||||
(version "3.24.2")
|
||||
(version "3.24.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -6074,7 +6072,7 @@ GNOME Shell appearance and extension, etc.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10sg87wml5cmyk90pybnr6r942ba7173sl7yplhj2sfggp0wc74s"))))
|
||||
"0y8anpp9ymp0lxn15w63ra6zxxf8nvbl48xqkvqdjzida73fyz9w"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--enable-extensions=all")))
|
||||
|
@ -6422,7 +6420,7 @@ only know by its Unicode name or code point.")
|
|||
(define-public bluefish
|
||||
(package
|
||||
(name "bluefish")
|
||||
(version "2.2.9")
|
||||
(version "2.2.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -6430,7 +6428,7 @@ only know by its Unicode name or code point.")
|
|||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vnl6raxbvc4hacg3pr6sqyjh707d304dhk5nyhlp7m0m1y3j756"))))
|
||||
"1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("desktop-file-utils" ,desktop-file-utils)
|
||||
|
@ -6754,3 +6752,92 @@ Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
|
|||
from artists and tracks from the web. It also fetches cover artworks
|
||||
automatically and it can stream songs from online music services and charts.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public gnome-video-effects
|
||||
(package
|
||||
(name "gnome-video-effects")
|
||||
(version "0.4.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/" name "-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:out-of-source? #f))
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin")
|
||||
("intltool" ,intltool)
|
||||
("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
|
||||
(synopsis "Video effects for Cheese and other GNOME applications")
|
||||
(description
|
||||
"A collection of GStreamer video filters and effects to be used in
|
||||
photo-booth-like software, such as Cheese.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public cheese
|
||||
(package
|
||||
(name "cheese")
|
||||
(version "3.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/" name "-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wpks2lnr8va9wxgmj26dwmhlcb3vamhpxkqi8xaan6q25635l16"))))
|
||||
(arguments
|
||||
;; Tests require GDK.
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'skip-gtk-update-icon-cache
|
||||
(lambda _
|
||||
;; Don't create 'icon-theme.cache'
|
||||
(substitute* "Makefile"
|
||||
(("gtk-update-icon-cache") (which "true")))
|
||||
#t))
|
||||
(add-after 'install 'wrap-cheese
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
|
||||
(wrap-program (string-append out "/bin/cheese")
|
||||
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
|
||||
#t)))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin")
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("libxml2" ,libxml2)
|
||||
("pkg-config" ,pkg-config)
|
||||
("vala" ,vala)))
|
||||
(propagated-inputs
|
||||
`(("gnome-video-effects" ,gnome-video-effects)))
|
||||
(inputs
|
||||
`(("clutter" ,clutter)
|
||||
("clutter-gst" ,clutter-gst)
|
||||
("clutter-gtk" ,clutter-gtk)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("glib" ,glib)
|
||||
("gnome-desktop" ,gnome-desktop)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gstreamer" ,gstreamer)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
("gst-plugins-bad" ,gst-plugins-bad)
|
||||
("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libx11" ,libx11)
|
||||
("libxtst" ,libxtst)))
|
||||
(home-page "https://wiki.gnome.org/Apps/Cheese")
|
||||
(synopsis "Webcam photo booth software for GNOME")
|
||||
(description
|
||||
"Cheese uses your webcam to take photos and videos. Cheese can also
|
||||
apply fancy special effects and lets you share the fun with others.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -32,7 +32,10 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pth)
|
||||
|
@ -53,6 +56,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python))
|
||||
|
||||
(define-public libgpg-error
|
||||
|
@ -216,14 +220,14 @@ compatible to GNU Pth.")
|
|||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.2.0")
|
||||
(version "2.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rj538kp3wsdq7rhl8sy1wpwhlsbxcch0cwk64kgz8gpw05lllfl"))))
|
||||
"1yv2pwf3vhv9dpbf51fnm0wy03va1cg5r7qaz7rg75cwbgb0rmrl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -535,6 +539,43 @@ and signature functionality from Python programs.")
|
|||
(define-public python2-gnupg
|
||||
(package-with-python2 python-gnupg))
|
||||
|
||||
(define-public perl-gnupg-interface
|
||||
(package
|
||||
(name "perl-gnupg-interface")
|
||||
(version "0.52")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
'(;; Result: FAIL
|
||||
;; Failed 10/20 test programs. 21/52 subtests failed.
|
||||
#:tests? #f))
|
||||
(native-inputs
|
||||
`(("perl-module-install" ,perl-module-install)
|
||||
("which" ,which)))
|
||||
(inputs
|
||||
`(("gnupg" ,gnupg)))
|
||||
(propagated-inputs
|
||||
`(("perl-moo" ,perl-moo)
|
||||
("perl-moox-late" ,perl-moox-late)
|
||||
("perl-moox-handlesvia" ,perl-moox-handlesvia)))
|
||||
(home-page "http://search.cpan.org/~alexmv/GnuPG-Interface/")
|
||||
(synopsis "Perl interface to GnuPG")
|
||||
(description
|
||||
"@code{GnuPG::Interface} and its associated modules are designed to
|
||||
provide an object-oriented method for interacting with GnuPG, being able to
|
||||
perform functions such as but not limited to encrypting, signing, decryption,
|
||||
verification, and key-listing parsing.")
|
||||
(license license:perl-license)))
|
||||
|
||||
(define-public pius
|
||||
(package
|
||||
(name "pius")
|
||||
|
@ -579,38 +620,48 @@ PGP keysigning parties.")
|
|||
(define-public signing-party
|
||||
(package
|
||||
(name "signing-party")
|
||||
(version "1.1.4")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/s/signing-party/"
|
||||
"signing-party_" version ".orig.tar.gz"))
|
||||
(sha256 (base32
|
||||
"188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx"))))
|
||||
"1n5bpcfpl9vg1xp6r1jhbyahrgdyxp05b5pria1rh4m0qnv8sifr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,(autoconf-wrapper))
|
||||
("automake" ,automake)))
|
||||
(inputs `(("perl" ,perl)
|
||||
("perl-text-template" ,perl-text-template)
|
||||
("perl-mime-tools" ,perl-mime-tools)
|
||||
("perl-gnupg-interface" ,perl-gnupg-interface)
|
||||
("perl-net-idn-encode" ,perl-net-idn-encode)
|
||||
("libmd" ,libmd)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-spurious-links
|
||||
(lambda _ (delete-file "keyanalyze/pgpring/depcomp")))
|
||||
(add-before 'configure 'change-directory
|
||||
(lambda _
|
||||
;; The build system in the unpack phase changes to a less useful
|
||||
;; subdirectory, so move up one level
|
||||
(chdir (dirname (getcwd)))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "keyanalyze/Makefile"
|
||||
(("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS")))
|
||||
(substitute* "keyanalyze/Makefile"
|
||||
(("./configure") (string-append "./configure --prefix=" out)))
|
||||
(substitute* "keyanalyze/pgpring/configure"
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* "gpgwrap/Makefile"
|
||||
(("\\./configure") (string-append "./configure --prefix=" out)))
|
||||
(substitute* "gpgwrap/src/Makefile"
|
||||
(("\\} clean")
|
||||
(string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "
|
||||
out "/bin/gpgwrap\n")))
|
||||
(substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile"
|
||||
"keylookup/Makefile" "sig2dot/Makefile"
|
||||
"springgraph/Makefile")
|
||||
(("/usr") out)))))
|
||||
(("/usr") out))
|
||||
(setenv "CONFIG_SHELL" (which "sh")))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys #:rest args)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
|
@ -635,7 +686,13 @@ PGP keysigning parties.")
|
|||
'("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1"
|
||||
"gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1"
|
||||
"gpgparticipants.1" "gpgsigs.1" "gpgwrap.1"
|
||||
"process_keys.1" "pgpring.1" "keyanalyze.1"))))))))
|
||||
"process_keys.1" "pgpring.1" "keyanalyze.1")))))
|
||||
(add-after 'install 'wrap-programs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out")))
|
||||
(wrap-program
|
||||
(string-append out "/bin/caff")
|
||||
`("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))))))))
|
||||
(synopsis "Collection of scripts for simplifying gnupg key signing")
|
||||
(description
|
||||
"Signing-party is a collection for all kinds of PGP/GnuPG related things,
|
||||
|
|
|
@ -249,7 +249,7 @@ in C/C++.")
|
|||
(define-public nspr
|
||||
(package
|
||||
(name "nspr")
|
||||
(version "4.16")
|
||||
(version "4.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -257,7 +257,7 @@ in C/C++.")
|
|||
version "/src/nspr-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l9wlnb9y0bzicv448jjl9kssqn044dc2qrkwzp4ll35fvch4ccv"))))
|
||||
"158hdn285dsb5rys8wl1wi32dd1axwhqq0r8fwny4aj157m0l2jr"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl)))
|
||||
|
@ -281,7 +281,7 @@ in the Mozilla clients.")
|
|||
(define-public nss
|
||||
(package
|
||||
(name "nss")
|
||||
(version "3.32")
|
||||
(version "3.33")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -292,7 +292,7 @@ in the Mozilla clients.")
|
|||
"nss-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0dfkgvah0ji8b8lpxyy2w0b3lyz5ldmryii4z7j2bfwnrj0z7iim"))
|
||||
"1r44qa4j7sri50mxxbnrpm6fxprwrhv76whi7bfq73j06syxmw4q"))
|
||||
;; Create nss.pc and nss-config.
|
||||
(patches (search-patches "nss-pkgconfig.patch"
|
||||
"nss-increase-test-timeout.patch"))))
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -28,6 +29,7 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
|
@ -70,14 +72,14 @@
|
|||
(define-public blender
|
||||
(package
|
||||
(name "blender")
|
||||
(version "2.78a")
|
||||
(version "2.79")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.blender.org/source/"
|
||||
(uri (string-append "https://download.blender.org/source/"
|
||||
"blender-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1byf1klrvm8fdw2libx7wldz2i6lblp9nih6y58ydh00paqi8jh1"))))
|
||||
"16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(;; Test files are very large and not included in the release tarball.
|
||||
|
@ -134,7 +136,7 @@
|
|||
("openal" ,openal)
|
||||
("python" ,python-wrapper)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://blender.org/")
|
||||
(home-page "https://blender.org/")
|
||||
(synopsis "3D graphics creation suite")
|
||||
(description
|
||||
"Blender is a 3D graphics creation suite. It supports the entirety of
|
||||
|
@ -654,3 +656,33 @@ and understanding different BRDFs (and other component functions).")
|
|||
It supports sub-pixel resolutions and anti-aliasing. It is also library for
|
||||
rendering SVG graphics.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public python-pastel
|
||||
(package
|
||||
(name "python-pastel")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pastel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hqbm934n5yjwn31aq8h7shrr0rcy326wrqfc856vyn0gr0sy21i"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/sdispater/pastel")
|
||||
(synopsis "Library to colorize strings in your terminal")
|
||||
(description "Pastel is a simple library to help you colorize strings in
|
||||
your terminal. It comes bundled with predefined styles:
|
||||
@enumerate
|
||||
@item info: green
|
||||
@item comment: yellow
|
||||
@item question: black on cyan
|
||||
@item error: white on red
|
||||
@end enumerate
|
||||
")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pastel
|
||||
(package-with-python2 python-pastel))
|
||||
|
|
|
@ -98,7 +98,7 @@ arrays of data.")
|
|||
(define-public gstreamer
|
||||
(package
|
||||
(name "gstreamer")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -107,7 +107,7 @@ arrays of data.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fllz7n58lavyy4nh64xc7izd4ffhl12a2ff0yg4z67al8wkzplz"))))
|
||||
"0vi1g8rmmsnd630ds3jwv2iph46ll8y07fzf04mz15q88j9g926k"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
|
@ -146,7 +146,7 @@ This package provides the core library and elements.")
|
|||
(define-public gst-plugins-base
|
||||
(package
|
||||
(name "gst-plugins-base")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -154,7 +154,7 @@ This package provides the core library and elements.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x86a7aph0y6gyq178plvwvbbyhkfb3hf0gadx9sk5z1mzixqrsh"))))
|
||||
"19ffwdch7m777ragmwpy6prqmfb742ym1n3ki40s0zyki627plyk"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(propagated-inputs
|
||||
|
@ -201,7 +201,7 @@ for the GStreamer multimedia library.")
|
|||
(define-public gst-plugins-good
|
||||
(package
|
||||
(name "gst-plugins-good")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -210,7 +210,7 @@ for the GStreamer multimedia library.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15pfw54fsh9s9xwrnbap4z4njwgqdfvq52k562d2hc5b11rfx4am"))))
|
||||
"00sznj1sl97fqpn6j8ngps04clvxp8h8yhw6lvszx4b855wz9rqk"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("aalib" ,aalib)
|
||||
|
@ -260,14 +260,14 @@ developers consider to have good quality code and correct functionality.")
|
|||
(define-public gst-plugins-bad
|
||||
(package
|
||||
(name "gst-plugins-bad")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gstreamer.freedesktop.org/src/"
|
||||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dwyq03g2m0p16dwx8q5qvjn5x9ia72h21sf87mp97gmwkfpwb4w"))))
|
||||
"1v5z3i5ha20gmbb3r9dwsaaspv5fm1jfzlzwlzqx1gjj31v5kl1n"))))
|
||||
(outputs '("out" "doc"))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -345,7 +345,7 @@ par compared to the rest.")
|
|||
(define-public gst-plugins-ugly
|
||||
(package
|
||||
(name "gst-plugins-ugly")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -353,7 +353,7 @@ par compared to the rest.")
|
|||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rplyp1qk359c97ig9i2vc1v34g92khd8dslwfipva1ypwmr9hqw"))))
|
||||
"0lh00rg26iy5lr5al23lxsyncjqkgzph1bzkrgp8x9sfr62ab378"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gst-plugins-base" ,gst-plugins-base)
|
||||
|
@ -384,7 +384,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
|
|||
(define-public gst-libav
|
||||
(package
|
||||
(name "gst-libav")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -392,7 +392,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1crdahkjm23byg1awcrjkmgfbalfpvvac7h7whm6b2r1pfwkbdsv"))))
|
||||
"0l4nc6ikdx49l7bdrk3bd9p3pzry8a328r22zg48gyzpnv5ghph1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--with-system-libav")
|
||||
|
@ -422,7 +422,7 @@ compression formats through the use of the libav library.")
|
|||
(define-public python-gst
|
||||
(package
|
||||
(name "python-gst")
|
||||
(version "1.12.2")
|
||||
(version "1.12.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -430,7 +430,7 @@ compression formats through the use of the libav library.")
|
|||
"gst-python-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0iwy0v2k27wd3957ich6j5f0f04b0wb2mb175ypf2lx68snk5k7l"))))
|
||||
"19rb06x2m7103zwfm0plxx95gb8bp01ng04h4q9k6ii9q7g2kxf3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; XXX: Factorize python-sitedir with python-build-system.
|
||||
|
|
|
@ -379,7 +379,7 @@ printing and other features typical of a source code editor.")
|
|||
(define-public gtksourceview
|
||||
(package
|
||||
(name "gtksourceview")
|
||||
(version "3.24.2")
|
||||
(version "3.24.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -387,7 +387,7 @@ printing and other features typical of a source code editor.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17xqrnh2v9gba57ij2m9kngxwh19fzsqkx1rfasnv4zaqvqqhv69"))))
|
||||
"14x738xrz9q8qz13xd7dys748ryxyq2srbqyaa9r7n47h2av2zr0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -428,6 +428,7 @@ highlighting and other features typical of a source code editor.")
|
|||
(package
|
||||
(name "gdk-pixbuf")
|
||||
(version "2.36.9")
|
||||
(replacement gdk-pixbuf-2.36.10)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -482,6 +483,7 @@ in the GNOME project.")
|
|||
(define-public gdk-pixbuf+svg
|
||||
(package (inherit gdk-pixbuf)
|
||||
(name "gdk-pixbuf+svg")
|
||||
(replacement gdk-pixbuf+svg-2.36.10)
|
||||
(inputs
|
||||
`(("librsvg" ,librsvg)
|
||||
,@(package-inputs gdk-pixbuf)))
|
||||
|
@ -505,6 +507,26 @@ in the GNOME project.")
|
|||
(synopsis
|
||||
"GNOME image loading and manipulation library, with SVG support")))
|
||||
|
||||
;; Graft replacement packages to fix these vulnerabilities.
|
||||
;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2862
|
||||
;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2870
|
||||
;; https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6311
|
||||
(define-public gdk-pixbuf-2.36.10
|
||||
(package (inherit gdk-pixbuf)
|
||||
(version "2.36.A")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/gdk-pixbuf/2.36/"
|
||||
"gdk-pixbuf-2.36.10.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1klsjkdbashd8yb8xjsc9ff3bz32n2id5s79nrrmqiw9df4zmxpq"))))))
|
||||
|
||||
(define-public gdk-pixbuf+svg-2.36.10
|
||||
(package (inherit gdk-pixbuf+svg)
|
||||
(version "2.36.A")
|
||||
(source (origin (inherit (package-source gdk-pixbuf-2.36.10))))))
|
||||
|
||||
(define-public at-spi2-core
|
||||
(package
|
||||
(name "at-spi2-core")
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
(define-public feh
|
||||
(package
|
||||
(name "feh")
|
||||
(version "2.19.3")
|
||||
(version "2.20")
|
||||
(home-page "https://feh.finalrewind.org/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -62,7 +62,7 @@
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l3yvv0l0ggwlfyhk84p2g9mrqvzqrg1fgalf88kzppvb9jppjay"))))
|
||||
"02vhdv16nf4kjna4inpbfy4k3p40bhl7xpc4kh4xvily14146l2b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-delete 'configure %standard-phases)
|
||||
|
|
|
@ -522,7 +522,10 @@ work.")
|
|||
"0yvfghxwfm3dcqr9krkw63pcd76hzkknc3fh7bh11s8qlvjvrpbg"))
|
||||
(patches (search-patches "openjpeg-CVE-2017-12982.patch"
|
||||
"openjpeg-CVE-2017-14040.patch"
|
||||
"openjpeg-CVE-2017-14041.patch"))))
|
||||
"openjpeg-CVE-2017-14041.patch"
|
||||
"openjpeg-CVE-2017-14151.patch"
|
||||
"openjpeg-CVE-2017-14152.patch"
|
||||
"openjpeg-CVE-2017-14164.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
;; Trying to run `$ make check' results in a no rule fault.
|
||||
|
@ -931,7 +934,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
|
|||
(define-public jasper
|
||||
(package
|
||||
(name "jasper")
|
||||
(version "2.0.13")
|
||||
(version "2.0.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mdadams/jasper/archive/"
|
||||
|
@ -939,7 +942,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"090cyqcvqp4y12nc57gvcbrk3ap1rnnixd4qj90sx0pw3fs1615m"))))
|
||||
"0yx9y5y0g6jv142vnqp50j3k8k5yqznz3smrblv192wgfbm6w9l5"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs `(("libjpeg" ,libjpeg)))
|
||||
(synopsis "JPEG-2000 library")
|
||||
|
|
|
@ -46,14 +46,14 @@
|
|||
;; The 7 release series has an incompatible API, while the 6 series is still
|
||||
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
|
||||
;; users are ready for the 7-series API.
|
||||
(version "6.9.9-9")
|
||||
(version "6.9.9-12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p7jz55zry5r1lv34ymx536fqymvy3iwzwy0kvj53mlmsaad7vjr"))))
|
||||
"10k63nb1wi5fq1xg1wkjfw7ph46ysy8rndgp18knj2zr06zjjrc5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
|
||||
|
@ -178,11 +178,14 @@ script.")
|
|||
(base32
|
||||
"122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"))
|
||||
(patches
|
||||
(search-patches "graphicsmagick-CVE-2017-12935.patch"
|
||||
(search-patches "graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch"
|
||||
"graphicsmagick-CVE-2017-12935.patch"
|
||||
"graphicsmagick-CVE-2017-12936.patch"
|
||||
"graphicsmagick-CVE-2017-12937.patch"
|
||||
"graphicsmagick-CVE-2017-13775.patch"
|
||||
"graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch"))))
|
||||
"graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch"
|
||||
"graphicsmagick-CVE-2017-14042.patch"
|
||||
"graphicsmagick-CVE-2017-14165.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -1628,6 +1628,10 @@ IcedTea build harness.")
|
|||
(copy-recursively "openjdk.build/docs" doc)
|
||||
(copy-recursively "openjdk.build/images/j2re-image" jre)
|
||||
(copy-recursively "openjdk.build/images/j2sdk-image" jdk)
|
||||
;; Install the nss.cfg file to JRE to enable SSL/TLS
|
||||
;; support via NSS.
|
||||
(copy-file (string-append jdk "/jre/lib/security/nss.cfg")
|
||||
(string-append jre "/lib/security/nss.cfg"))
|
||||
#t)))))))
|
||||
(native-inputs
|
||||
`(("jdk" ,icedtea-7 "jdk")
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
(define-public libffcall
|
||||
(package
|
||||
(name "libffcall")
|
||||
(version "1.13")
|
||||
(version "2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -35,7 +35,7 @@
|
|||
"mirror://gnu/libffcall/libffcall-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rxwkfr0p7vdv6q6x8nmn13611nsq0lnk9cspqdpzxdvgmqcw1qp"))))
|
||||
"0v0rh3vawb8z5q40fs3kr2f9zp06n2fq4rr2ww4562nr96sd5aj1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:parallel-build? #f))
|
||||
(synopsis "Foreign function calls from interpreters")
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -55,6 +56,7 @@ Java libraries.")
|
|||
(package
|
||||
(name "libidn2")
|
||||
(version "2.0.2")
|
||||
(replacement libidn2-2.0.4)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libidn/" name "-" version
|
||||
|
@ -76,3 +78,16 @@ library.")
|
|||
;; The command-line tool 'idn2' is GPL3+, while the library is dual-licensed
|
||||
;; GPL2+ or LGPL3+.
|
||||
(license (list gpl2+ gpl3+ lgpl3+))))
|
||||
|
||||
(define-public libidn2-2.0.4
|
||||
(package
|
||||
(inherit libidn2)
|
||||
(name "libidn2")
|
||||
(version "2.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libidn/" name "-" version
|
||||
".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00f2fyw5kwr9is3cdn5h9arzxp0lnvg0z9bb9zyfs0dq81gaqim4"))))))
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,12 +25,14 @@
|
|||
|
||||
(define-module (gnu packages libreoffice)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2+ lgpl2.1+ lgpl3+ mpl1.1 mpl2.0
|
||||
non-copyleft x11-style))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -719,6 +722,9 @@ Zoner Draw version 4 and 5.")
|
|||
(add-after 'unpack 'bootstrap
|
||||
(lambda _
|
||||
(zero? (system* "autoreconf" "-vfi")))))))
|
||||
(native-search-paths (list (search-path-specification
|
||||
(variable "DICPATH")
|
||||
(files '("share/hunspell")))))
|
||||
(home-page "https://hunspell.github.io/")
|
||||
(synopsis "Spell checker")
|
||||
(description "Hunspell is a spell checker and morphological analyzer
|
||||
|
@ -727,6 +733,78 @@ word compounding or character encoding.")
|
|||
;; Triple license, including "mpl1.1 or later".
|
||||
(license (list mpl1.1 gpl2+ lgpl2.1+))))
|
||||
|
||||
(define (dicollecte-french-dictionary variant synopsis)
|
||||
;; Return a French dictionary package from dicollecte.org, for the given
|
||||
;; VARIANT.
|
||||
(package
|
||||
(name (match variant
|
||||
("classique" "hunspell-dict-fr")
|
||||
(_ (string-append "hunspell-dict-fr-" variant))))
|
||||
(version "6.1")
|
||||
(source (origin
|
||||
(uri (string-append
|
||||
"http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
|
||||
version ".zip"))
|
||||
(method url-fetch)
|
||||
(sha256
|
||||
(base32
|
||||
"0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs `(("unzip" ,unzip)))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder (begin
|
||||
(use-modules (guix build utils)
|
||||
(srfi srfi-26))
|
||||
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(hunspell (string-append out "/share/hunspell"))
|
||||
(myspell (string-append out "/share/myspell"))
|
||||
(doc (string-append out "/share/doc/"
|
||||
,name))
|
||||
(unzip (assoc-ref %build-inputs "unzip")))
|
||||
(system* (string-append unzip "/bin/unzip")
|
||||
(assoc-ref %build-inputs "source"))
|
||||
(for-each (cut install-file <> hunspell)
|
||||
(find-files "."
|
||||
,(string-append variant
|
||||
"\\.(dic|aff)$")))
|
||||
(mkdir-p myspell)
|
||||
(symlink hunspell (string-append myspell "/dicts"))
|
||||
(for-each (cut install-file <> doc)
|
||||
(find-files "." "\\.(txt|org|md)$"))
|
||||
#t))))
|
||||
(synopsis synopsis)
|
||||
(description
|
||||
"This package provides a dictionary for the Hunspell spell-checking
|
||||
library.")
|
||||
(home-page "https://www.dicollecte.org/home.php?prj=fr")
|
||||
(license mpl2.0)))
|
||||
|
||||
(define-syntax define-french-dictionary
|
||||
(syntax-rules (synopsis)
|
||||
((_ name variant (synopsis text))
|
||||
(define-public name
|
||||
(dicollecte-french-dictionary variant text)))))
|
||||
|
||||
(define-french-dictionary hunspell-dict-fr-classique
|
||||
"classique"
|
||||
;; TRANSLATORS: In French, this is "Français classique".
|
||||
(synopsis "Hunspell dictionary for ``classic'' French (recommended)"))
|
||||
|
||||
(define-french-dictionary hunspell-dict-fr-moderne
|
||||
"moderne"
|
||||
;; TRANSLATORS: In French, this is "Français moderne".
|
||||
(synopsis "Hunspell dictionary for ``modern'' French"))
|
||||
|
||||
(define-french-dictionary hunspell-dict-fr-réforme-1990
|
||||
"reforme1990"
|
||||
(synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French"))
|
||||
|
||||
(define-french-dictionary hunspell-dict-fr-toutes-variantes
|
||||
"toutesvariantes"
|
||||
(synopsis "Hunspell dictionary for all variants of French"))
|
||||
|
||||
(define-public hyphen
|
||||
(package
|
||||
(name "hyphen")
|
||||
|
|
|
@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
|
||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
||||
|
||||
(define %linux-libre-version "4.13")
|
||||
(define %linux-libre-hash "07mxcya7ml1v34pbg4mjh1sq80r3b4dsxbcs41fm50jnhq7p1w4v")
|
||||
(define %linux-libre-version "4.13.2")
|
||||
(define %linux-libre-hash "166yy7nah2h2ffxqgb92nfwrvihna3kvdx4ryppf34gmybmmfw36")
|
||||
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
|
@ -377,14 +377,14 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.47"
|
||||
"0gkmznb168m90zhyn9xg9420k64ba7bmyg70gazfr80y47w6jpdw"
|
||||
(make-linux-libre "4.9.50"
|
||||
"1igjb2qr4znvz9p5ix18lbiv8bkfgn7lprn92gdyff4g4r4kzh72"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.86"
|
||||
"0zm283262k63c5sa3l2lg8lqdjmgzym60qf3kvfva21xqswzcpas"
|
||||
(make-linux-libre "4.4.88"
|
||||
"0ds5jxh8p7f8yk55i1xbvz0xmgp4nc7g1xka23c4mcbal2v9v5b2"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
@ -392,7 +392,17 @@ It has been modified to remove all non-free binary blobs.")
|
|||
(make-linux-libre "4.1.43"
|
||||
"0ycqmvczj7lm7czilnwpyp14n2lzilyx7m43rsq1qdm2m5rp4q2w"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
#:configuration-file kernel-config
|
||||
#:patches
|
||||
(list %boot-logo-patch
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "\
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156")
|
||||
(file-name "linux-libre-4.4-CVE-2017-1000251.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3"))))))
|
||||
|
||||
(define-public linux-libre-arm-generic
|
||||
(make-linux-libre %linux-libre-version
|
||||
|
@ -861,14 +871,14 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
|
|||
(define-public strace
|
||||
(package
|
||||
(name "strace")
|
||||
(version "4.18")
|
||||
(version "4.19")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/strace/strace/" version
|
||||
"/strace-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"026agy9nq238nx3ynhmi8h3vx96yra4xacfsm2ybs9k23ry8ibc9"))))
|
||||
"10bjh2mrkvx41fk60b2iqv5b5k4r7a3qdsx04iyg904jqb3fp4vw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -1132,7 +1142,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
(define-public iproute
|
||||
(package
|
||||
(name "iproute2")
|
||||
(version "4.12.0")
|
||||
(version "4.13.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1140,7 +1150,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if"))))
|
||||
"0l2w84cwr54gaw3cbxijf614l76hx8mgcz57v81rwl68z3nq3yww"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
|
@ -1173,23 +1183,14 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
(synopsis
|
||||
"Utilities for controlling TCP/IP networking and traffic in Linux")
|
||||
(description
|
||||
"Iproute2 is a collection of utilities for controlling TCP/IP
|
||||
networking and traffic with the Linux kernel.
|
||||
"Iproute2 is a collection of utilities for controlling TCP/IP networking
|
||||
and traffic with the Linux kernel. The most important of these are
|
||||
@command{ip}, which configures IPv4 and IPv6, and @command{tc} for traffic
|
||||
control.
|
||||
|
||||
Most network configuration manuals still refer to ifconfig and route as the
|
||||
primary network configuration tools, but ifconfig is known to behave
|
||||
inadequately in modern network environments. They should be deprecated, but
|
||||
most distros still include them. Most network configuration systems make use
|
||||
of ifconfig and thus provide a limited feature set. The /etc/net project aims
|
||||
to support most modern network technologies, as it doesn't use ifconfig and
|
||||
allows a system administrator to make use of all iproute2 features, including
|
||||
traffic control.
|
||||
|
||||
iproute2 is usually shipped in a package called iproute or iproute2 and
|
||||
consists of several tools, of which the most important are @command{ip} and
|
||||
@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and
|
||||
@command{tc} stands for traffic control. Both tools print detailed usage
|
||||
messages and are accompanied by a set of manpages.")
|
||||
inadequately in modern network environments, and both should be deprecated.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; There are two packages for net-tools. The first, net-tools, is more recent
|
||||
|
@ -3022,6 +3023,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
|
|||
(package
|
||||
(name "bluez")
|
||||
(version "5.46")
|
||||
(replacement bluez/fixed)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -3083,6 +3085,20 @@ Bluetooth audio output devices like headphones or loudspeakers.")
|
|||
is flexible, efficient and uses a modular implementation.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define bluez/fixed
|
||||
(package
|
||||
(inherit bluez)
|
||||
(version "5.46")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://kernel.org/linux/bluetooth/bluez-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a4fj343bdqsfyv12hmj9nym0ilsf0bvm54a4apbiby16ww3vayx"))
|
||||
(patches (search-patches "bluez-CVE-2017-1000250.patch"))))))
|
||||
|
||||
(define-public fuse-exfat
|
||||
(package
|
||||
(name "fuse-exfat")
|
||||
|
@ -3155,7 +3171,7 @@ and copy/paste text in the console and in xterm.")
|
|||
(define-public btrfs-progs
|
||||
(package
|
||||
(name "btrfs-progs")
|
||||
(version "4.12")
|
||||
(version "4.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/kernel/"
|
||||
|
@ -3163,7 +3179,7 @@ and copy/paste text in the console and in xterm.")
|
|||
"btrfs-progs-v" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kif8xw2dbyc70ygkp0wyq4x96p1mkwdv4430f99qllx9b410xwi"))))
|
||||
"17m67jm29phfvkmd72lxb1z9nymn9a9pqnja8zfb1mvflsqwbz3m"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"static")) ; static versions of the binaries in "out"
|
||||
|
@ -3171,6 +3187,12 @@ and copy/paste text in the console and in xterm.")
|
|||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'build 'build-static
|
||||
(lambda _ (zero? (system* "make" "static"))))
|
||||
(add-after 'install 'install-bash-completion
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(install-file "btrfs-completion"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/etc/bash_completion.d"))
|
||||
#t))
|
||||
(add-after 'install 'install-static
|
||||
(let ((staticbin (string-append (assoc-ref %outputs "static")
|
||||
"/bin")))
|
||||
|
@ -3194,6 +3216,7 @@ and copy/paste text in the console and in xterm.")
|
|||
("libxml2" ,libxml2)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
;; For tests.
|
||||
("acl" ,acl)
|
||||
("which" ,which)))
|
||||
(home-page "https://btrfs.wiki.kernel.org/")
|
||||
(synopsis "Create and manage btrfs copy-on-write file systems")
|
||||
|
|
|
@ -265,7 +265,7 @@ operating systems.")
|
|||
(package
|
||||
(inherit mutt)
|
||||
(name "neomutt")
|
||||
(version "20170714")
|
||||
(version "20170912")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -273,7 +273,7 @@ operating systems.")
|
|||
"/archive/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10x3sxai773n0gfqpi904ci1qvngymcbc2didswrm92wz4h8km20"))))
|
||||
"0mv60kii933hq52mhwrcz29diaajbs5ryqibgsvdvfyvx27i43cz"))))
|
||||
(inputs
|
||||
`(("cyrus-sasl" ,cyrus-sasl)
|
||||
("gdbm" ,gdbm)
|
||||
|
@ -667,14 +667,14 @@ invoking @command{notifymuch} from the post-new hook.")
|
|||
(define-public notmuch
|
||||
(package
|
||||
(name "notmuch")
|
||||
(version "0.25")
|
||||
(version "0.25.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02z6d87ip1hkipz8d7w0sfklg8dd5fd5vlgp768640ixg0gqvlk5"))))
|
||||
"0c98hzwc60nb6kd15y0fl2ji3yfmr9k6v8ps0h3ihr3vkgn0kgxl"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags (list "V=1") ; Verbose test output.
|
||||
|
@ -727,45 +727,51 @@ ing, and tagging large collections of email messages.")
|
|||
(license gpl3+)))
|
||||
|
||||
(define-public notmuch-addrlookup-c
|
||||
(package
|
||||
(name "notmuch-addrlookup-c")
|
||||
(version "7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/aperezdc/" name "/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
;; Remove vim code completion config, it's not needed to
|
||||
;; build (or be patched).
|
||||
(add-before 'patch-source-shebangs 'delete-ycm-file
|
||||
(lambda _ (delete-file ".ycm_extra_conf.py")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append
|
||||
(assoc-ref outputs "out") "/bin")))
|
||||
(install-file "notmuch-addrlookup" bin)))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("notmuch" ,notmuch)))
|
||||
(home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
|
||||
(synopsis "Address lookup tool for Notmuch")
|
||||
(description "This is an address lookup tool using a Notmuch database,
|
||||
;; This commit includes a compatibility fix for notmuch-0.25, and is not
|
||||
;; currently part of any release. Please update this package when
|
||||
;; notmuch-addrlookup-c-9 is released.
|
||||
(let ((commit "88f156d04990a71c6ad6fc2757b537b44e3c4d00")
|
||||
(revision "1")) ;Guix package revision
|
||||
(package
|
||||
(name "notmuch-addrlookup-c")
|
||||
(version (string-append "8-" revision "."
|
||||
(string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/aperezdc/notmuch-addrlookup-c.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0v0wzs7qzy4n1hbql8s10qrwgalcxdzbxf8pj6cii1pv2jwmkxbm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
;; Remove vim code completion config, it's not needed to
|
||||
;; build (or be patched).
|
||||
(add-before 'patch-source-shebangs 'delete-ycm-file
|
||||
(lambda _ (delete-file ".ycm_extra_conf.py")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append
|
||||
(assoc-ref outputs "out") "/bin")))
|
||||
(install-file "notmuch-addrlookup" bin)))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("notmuch" ,notmuch)))
|
||||
(home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
|
||||
(synopsis "Address lookup tool for Notmuch")
|
||||
(description "This is an address lookup tool using a Notmuch database,
|
||||
useful for email address completion.")
|
||||
(license license:expat)))
|
||||
(license license:expat))))
|
||||
|
||||
(define-public python-notmuch
|
||||
(package
|
||||
|
|
|
@ -138,7 +138,7 @@ the traditional flat-text whatis databases.")
|
|||
(define-public man-pages
|
||||
(package
|
||||
(name "man-pages")
|
||||
(version "4.12")
|
||||
(version "4.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -151,7 +151,7 @@ the traditional flat-text whatis databases.")
|
|||
"man-pages-" version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"14z0zcwm0m98fk2m2b3pvr8rs2sb602mg8f7wwb4xl7yj7cpjvbg"))))
|
||||
"1gri0rm9i3a6w5dvsmwawhwzywl5x80dwq05d2v8l92knv2hbh6m"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-delete 'configure %standard-phases)
|
||||
|
|
|
@ -26,7 +26,9 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages web))
|
||||
|
@ -102,6 +104,92 @@ convert it to structurally valid XHTML (or HTML).")
|
|||
(license (non-copyleft "file://License.text"
|
||||
"See License.text in the distribution."))))
|
||||
|
||||
(define-public discount
|
||||
(package
|
||||
(name "discount")
|
||||
(version "2.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.pell.portland.or.us/~orc/Code/"
|
||||
name "/" name "-" version ".tar.bz2"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r4gjyk1ngx47zhb25q0gkjm3bz2m5x8ngrk6rim3y1y3rricygc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:make-flags (list
|
||||
(string-append "LFLAGS=-L. -Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-AC_PATH
|
||||
(lambda _
|
||||
;; The default value is not suitable, so override using an
|
||||
;; environment variable. This just affects the build, and not the
|
||||
;; resulting store item.
|
||||
(setenv "AC_PATH" (getenv "PATH"))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(setenv "CC" "gcc")
|
||||
(zero? (system*
|
||||
"./configure.sh"
|
||||
(string-append "--prefix=" (assoc-ref outputs "out"))
|
||||
"--shared")))))))
|
||||
(synopsis "Markdown processing library, written in C")
|
||||
(description
|
||||
"Discount is a markdown implementation, written in C. It provides a
|
||||
@command{markdown} command, and a library.")
|
||||
(home-page "http://www.pell.portland.or.us/~orc/Code/discount/")
|
||||
(license bsd-3)))
|
||||
|
||||
(define-public perl-text-markdown-discount
|
||||
(package
|
||||
(name "perl-text-markdown-discount")
|
||||
(version "0.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/S/SE/SEKIMURA/Text-Markdown-Discount-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xx7v3wnla7m6wa3h33whxw3vvincaicg4yra1b9wbzf2aix9rnw"))
|
||||
(patches
|
||||
(search-patches "perl-text-markdown-discount-use-system-markdown.patch"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-ldflags
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "Makefile"
|
||||
(("OTHERLDFLAGS = ")
|
||||
(string-append
|
||||
"OTHERLDFLAGS = -lmarkdown -Wl,-rpath="
|
||||
(assoc-ref inputs "discount")
|
||||
"/lib"))))))))
|
||||
(inputs
|
||||
`(("discount" ,discount)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Text-Markdown-Discount")
|
||||
(synopsis
|
||||
"Fast function for converting Markdown to HTML using Discount")
|
||||
(description
|
||||
"Text::Markdown::Discount is a Perl extension to the Discount markdown
|
||||
implementation.
|
||||
|
||||
@example
|
||||
use Text::Markdown::Discount;
|
||||
my $html = markdown($text)
|
||||
@end example")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public cmark
|
||||
(package
|
||||
(name "cmark")
|
||||
|
|
|
@ -24,15 +24,30 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages libcanberra)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages polkit)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages python))
|
||||
|
||||
(define-public mate-icon-theme
|
||||
|
@ -165,6 +180,183 @@ desktop and the mate-about program.")
|
|||
the MATE desktop environment.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public mate-terminal
|
||||
(package
|
||||
(name "mate-terminal")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zihm609d2d9cw53ry385whshjl1dnkifpk41g1ddm9f58hv4da1"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("libxml2" ,libxml2)
|
||||
("yelp-tools" ,yelp-tools)))
|
||||
(inputs
|
||||
`(("dconf" ,dconf)
|
||||
("gtk+" ,gtk+)
|
||||
("libice" ,libice)
|
||||
("libsm" ,libsm)
|
||||
("libx11" ,libx11)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("pango" ,pango)
|
||||
("vte" ,vte)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "MATE Terminal Emulator")
|
||||
(description
|
||||
"MATE Terminal is a terminal emulation application that you can
|
||||
use to access a shell. With it, you can run any application that
|
||||
is designed to run on VT102, VT220, and xterm terminals.
|
||||
MATE Terminal also has the ability to use multiple terminals
|
||||
in a single window (tabs) and supports management of different
|
||||
configurations (profiles).")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public mate-session-manager
|
||||
(package
|
||||
(name "mate-session-manager")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("xtrans" ,xtrans)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("libsm" ,libsm)
|
||||
("mate-desktop" ,mate-desktop)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Session manager for MATE")
|
||||
(description
|
||||
"Mate-session contains the MATE session manager, as well as a
|
||||
configuration program to choose applications starting on login.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public mate-settings-daemon
|
||||
(package
|
||||
(name "mate-settings-daemon")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07b2jkxqv07njdrgkdck93d872p6lch1lrvi7ydnpicspg3rfid6"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("dbus" ,dbus)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("dconf" ,dconf)
|
||||
("fontconfig" ,fontconfig)
|
||||
("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libmatekbd" ,libmatekbd)
|
||||
("libmatemixer" ,libmatemixer)
|
||||
("libnotify" ,libnotify)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxi" ,libxi)
|
||||
("libxklavier" ,libxklavier)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("nss" ,nss)
|
||||
("polkit" ,polkit)
|
||||
("startup-notification" ,startup-notification)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Settings Daemon for MATE")
|
||||
(description
|
||||
"Mate-settings-daemon is a fork of gnome-settings-daemon.")
|
||||
(license (list license:lgpl2.1 license:gpl2))))
|
||||
|
||||
(define-public libmatemixer
|
||||
(package
|
||||
(name "libmatemixer")
|
||||
(version "1.18.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09vyxnlnalws318gsafdfi5c6jwpp92pbafn1ddlqqds23ihk4mr"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("alsa-lib" ,alsa-lib)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Mixer library for the MATE desktop")
|
||||
(description
|
||||
"Libmatemixer is a mixer library for MATE desktop. It provides an abstract
|
||||
API allowing access to mixer functionality available in the PulseAudio and ALSA
|
||||
sound systems.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public libmatekbd
|
||||
(package
|
||||
(name "libmatekbd")
|
||||
(version "1.18.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"030bl18qbjm7l92bp1bhs7v82bp8j3mv7c1j1a4gd89iz4611pq3"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("gdk-pixbuf" ,gdk-pixbuf+svg)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("libx11" ,libx11)
|
||||
("libxklavier" ,libxklavier)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "MATE keyboard configuration library")
|
||||
(description
|
||||
"Libmatekbd is a keyboard configuration library for the
|
||||
MATE desktop environment.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public mate-menus
|
||||
(package
|
||||
(name "mate-menus")
|
||||
|
@ -205,3 +397,415 @@ the MATE desktop environment.")
|
|||
specification, the MATE menu layout configuration files, .directory files and
|
||||
assorted menu related utility programs.")
|
||||
(license (list license:gpl2+ license:lgpl2.0+))))
|
||||
|
||||
(define-public mate-applets
|
||||
(package
|
||||
(name "mate-applets")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nplr8i1mxbxd7pqhcy8j69v25nsp5dk9fq7ffrmjmp39lrf3fh5"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("libxslt" ,libxslt)
|
||||
("yelp-tools" ,yelp-tools)
|
||||
("scrollkeeper" ,scrollkeeper)
|
||||
("gettext" ,gettext-minimal)
|
||||
("docbook-xml" ,docbook-xml)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("atk" ,atk)
|
||||
("dbus" ,dbus)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("glib" ,glib)
|
||||
("gucharmap" ,gucharmap)
|
||||
("gtk+" ,gtk+)
|
||||
("gtksourceview" ,gtksourceview)
|
||||
("libgtop" ,libgtop)
|
||||
("libmateweather" ,libmateweather)
|
||||
("libnotify" ,libnotify)
|
||||
("libx11" ,libx11)
|
||||
("libxml2" ,libxml2)
|
||||
("libwnck" ,libwnck)
|
||||
("mate-panel" ,mate-panel)
|
||||
("pango" ,pango)
|
||||
("polkit" ,polkit) ; either polkit or setuid
|
||||
("python" ,python-2)
|
||||
("upower" ,upower)
|
||||
("wireless-tools" ,wireless-tools)))
|
||||
(propagated-inputs
|
||||
`(("python-pygobject" ,python-pygobject)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Various applets for the MATE Panel")
|
||||
(description
|
||||
"Mate-applets includes various small applications for Mate-panel:
|
||||
|
||||
@enumerate
|
||||
@item accessx-status: indicates keyboard accessibility settings,
|
||||
including the current state of the keyboard, if those features are in use.
|
||||
@item Battstat: monitors the power subsystem on a laptop.
|
||||
@item Character palette: provides a convenient way to access
|
||||
non-standard characters, such as accented characters,
|
||||
mathematical symbols, special symbols, and punctuation marks.
|
||||
@item MATE CPUFreq Applet: CPU frequency scaling monitor
|
||||
@item Drivemount: lets you mount and unmount drives and file systems.
|
||||
@item Geyes: pair of eyes which follow the mouse pointer around the screen.
|
||||
@item Keyboard layout switcher: lets you assign different keyboard
|
||||
layouts for different locales.
|
||||
@item Modem Monitor: monitors the modem.
|
||||
@item Invest: downloads current stock quotes from the Internet and
|
||||
displays the quotes in a scrolling display in the applet. The
|
||||
applet downloads the stock information from Yahoo! Finance.
|
||||
@item System monitor: CPU, memory, network, swap file and resource.
|
||||
@item Trash: lets you drag items to the trash folder.
|
||||
@item Weather report: downloads weather information from the
|
||||
U.S National Weather Service (NWS) servers, including the
|
||||
Interactive Weather Information Network (IWIN).
|
||||
@end enumerate\n")
|
||||
(license (list license:gpl2+ license:lgpl2.0+ license:gpl3+))))
|
||||
|
||||
(define-public mate-media
|
||||
(package
|
||||
(name "mate-media")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l0j71d07898wb6ily09sj1xczwrmcw13wyhxwns7sxw592nwi04"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("gettext" ,gettext-minimal)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libmatemixer" ,libmatemixer)
|
||||
("libxml2" ,libxml2)
|
||||
("mate-applets" ,mate-applets)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("mate-panel" ,mate-panel)
|
||||
("pango" ,pango)
|
||||
("startup-notification" ,startup-notification)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Multimedia related programs for the MATE desktop")
|
||||
(description
|
||||
"Mate-media includes the MATE media tools for MATE, including
|
||||
mate-volume-control, a MATE volume control application and applet.")
|
||||
(license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+))))
|
||||
|
||||
(define-public mate-panel
|
||||
(package
|
||||
(name "mate-panel")
|
||||
(version "1.18.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n565ff1n7jrfx223i3cl3m69wjda506nvbn8gra7m1jwdfzpbw1"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-zoneinfo-dir="
|
||||
(assoc-ref %build-inputs "tzdata")
|
||||
"/share/zoneinfo")
|
||||
"--with-in-process-applets=all")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'fix-timezone-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let* ((tzdata (assoc-ref inputs "tzdata")))
|
||||
(substitute* "applets/clock/system-timezone.h"
|
||||
(("/usr/share/lib/zoneinfo/tab")
|
||||
(string-append tzdata "/share/zoneinfo/zone.tab"))
|
||||
(("/usr/share/zoneinfo")
|
||||
(string-append tzdata "/share/zoneinfo"))))
|
||||
#t))
|
||||
(add-after 'unpack 'fix-introspection-install-dir
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* '("configure")
|
||||
(("`\\$PKG_CONFIG --variable=girdir gobject-introspection-1.0`")
|
||||
(string-append "\"" out "/share/gir-1.0/\""))
|
||||
(("\\$\\(\\$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0\\)")
|
||||
(string-append out "/lib/girepository-1.0/")))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("xtrans" ,xtrans)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("dconf" ,dconf)
|
||||
("cairo" ,cairo)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libice" ,libice)
|
||||
("libmateweather" ,libmateweather)
|
||||
("librsvg" ,librsvg)
|
||||
("libsm" ,libsm)
|
||||
("libx11" ,libx11)
|
||||
("libxau" ,libxau)
|
||||
("libxml2" ,libxml2)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libwnck" ,libwnck)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("mate-menus" ,mate-menus)
|
||||
("pango" ,pango)
|
||||
("tzdata" ,tzdata)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Panel for MATE")
|
||||
(description
|
||||
"Mate-panel contains the MATE panel, the libmate-panel-applet library and
|
||||
several applets. The applets supplied here include the Workspace Switcher,
|
||||
the Window List, the Window Selector, the Notification Area, the Clock and the
|
||||
infamous 'Wanda the Fish'.")
|
||||
(license (list license:gpl2+ license:lgpl2.0+))))
|
||||
|
||||
(define-public caja
|
||||
(package
|
||||
(name "caja")
|
||||
(version "1.18.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-update-mimedb")
|
||||
#:tests? #f ; tests fail even with display set
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; Tests require a running X server.
|
||||
(system "Xvfb :1 &")
|
||||
(setenv "DISPLAY" ":1")
|
||||
;; For the missing /etc/machine-id.
|
||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("glib:bin" ,glib "bin")
|
||||
("xorg-server" ,xorg-server)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("exempi" ,exempi)
|
||||
("gtk+" ,gtk+)
|
||||
("gvfs" ,gvfs)
|
||||
("libexif" ,libexif)
|
||||
("libnotify" ,libnotify)
|
||||
("libsm" ,libsm)
|
||||
("libxml2" ,libxml2)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("startup-notification" ,startup-notification)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "File manager for the MATE desktop")
|
||||
(description
|
||||
"Caja is the official file manager for the MATE desktop.
|
||||
It allows for browsing directories, as well as previewing files and launching
|
||||
applications associated with them. Caja is also responsible for handling the
|
||||
icons on the MATE desktop. It works on local and remote filesystems.")
|
||||
;; There is a note about a TRADEMARKS_NOTICE file in COPYING which
|
||||
;; does not exist. It is safe to assume that this is of no concern
|
||||
;; for us.
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public mate-control-center
|
||||
(package
|
||||
(name "mate-control-center")
|
||||
(version "1.18.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("yelp-tools" ,yelp-tools)
|
||||
("desktop-file-utils" ,desktop-file-utils)
|
||||
("kbproto" ,kbproto)
|
||||
("randrproto" ,randrproto)
|
||||
("renderproto" ,renderproto)
|
||||
("scrnsaverproto" ,scrnsaverproto)
|
||||
("xextpro" ,xextproto)
|
||||
("xproto" ,xproto)
|
||||
("xmodmap" ,xmodmap)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(inputs
|
||||
`(("atk" ,atk)
|
||||
("cairo" ,cairo)
|
||||
("caja" ,caja)
|
||||
("dconf" ,dconf)
|
||||
("dbus" ,dbus)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libmatekbd" ,libmatekbd)
|
||||
("libx11" ,libx11)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxext" ,libxext)
|
||||
("libxi" ,libxi)
|
||||
("libxklavier" ,libxklavier)
|
||||
("libxml2" ,libxml2)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
("libxscrnsaver" ,libxscrnsaver)
|
||||
("marco" ,marco)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("mate-menus" ,mate-menus)
|
||||
("mate-settings-daemon" ,mate-settings-daemon)
|
||||
("pango" ,pango)
|
||||
("startup-notification" ,startup-notification)))
|
||||
(propagated-inputs
|
||||
`(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc
|
||||
("librsvg" ,librsvg))) ; mate-slab.pc
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "MATE Desktop configuration tool")
|
||||
(description
|
||||
"MATE control center is MATE's main interface for configuration
|
||||
of various aspects of your desktop.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public marco
|
||||
(package
|
||||
(name "marco")
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pub.mate-desktop.org/releases/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lwbp9wyd66hl5d7g272l8g3k1pb9s4s2p9fb04750a58w87d8k5"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("glib" ,glib)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("libxft" ,libxft)
|
||||
("libxml2" ,libxml2)
|
||||
("zenity" ,zenity)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("libcanberra" ,libcanberra)
|
||||
("libgtop" ,libgtop)
|
||||
("libice" ,libice)
|
||||
("libsm" ,libsm)
|
||||
("libx11" ,libx11)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxdamage" ,libxdamage)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("pango" ,pango)
|
||||
("startup-notification" ,startup-notification)))
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(synopsis "Window manager for the MATE desktop")
|
||||
(description
|
||||
"Marco is a minimal X window manager that uses GTK+ for drawing
|
||||
window frames. It is aimed at non-technical users and is designed to integrate
|
||||
well with the MATE desktop. It lacks some features that may be expected by
|
||||
some users; these users may want to investigate other available window managers
|
||||
for use with MATE or as a standalone window manager.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public mate
|
||||
(package
|
||||
(name "mate")
|
||||
(version (package-version mate-desktop))
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build union))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (ice-9 match)
|
||||
(guix build union))
|
||||
(match %build-inputs
|
||||
(((names . directories) ...)
|
||||
(union-build (assoc-ref %outputs "out")
|
||||
directories))))))
|
||||
(inputs
|
||||
;; TODO: Add more packages
|
||||
`(("at-spi2-core" ,at-spi2-core)
|
||||
("caja" ,caja)
|
||||
("dbus" ,dbus)
|
||||
("dconf" ,dconf)
|
||||
("desktop-file-utils" ,desktop-file-utils)
|
||||
("font-cantarell" ,font-cantarell)
|
||||
("glib-networking" ,glib-networking)
|
||||
("gnome-keyring" ,gnome-keyring)
|
||||
("gvfs" ,gvfs)
|
||||
("libmatekbd" ,libmatekbd)
|
||||
("libmateweather" ,libmateweather)
|
||||
("libmatemixer" ,libmatemixer)
|
||||
("marco" ,marco)
|
||||
("mate-session-manager" ,mate-session-manager)
|
||||
("mate-settings-daemon" ,mate-settings-daemon)
|
||||
("mate-desktop" ,mate-desktop)
|
||||
("mate-terminal" ,mate-terminal)
|
||||
("mate-themes" ,mate-themes)
|
||||
("mate-icon-theme" ,mate-icon-theme)
|
||||
("mate-menu" ,mate-menus)
|
||||
("mate-panel" ,mate-panel)
|
||||
("mate-control-center" ,mate-control-center)
|
||||
("mate-media" ,mate-media)
|
||||
("mate-applets" ,mate-applets)
|
||||
("pinentry-gnome3" ,pinentry-gnome3)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("shared-mime-info" ,shared-mime-info)
|
||||
("yelp" ,yelp)
|
||||
("zenity" ,zenity)))
|
||||
(synopsis "The MATE desktop environment")
|
||||
(home-page "https://mate-desktop.org/")
|
||||
(description
|
||||
"The MATE Desktop Environment is the continuation of GNOME 2. It provides
|
||||
an intuitive and attractive desktop environment using traditional metaphors for
|
||||
GNU/Linux systems. MATE is under active development to add support for new
|
||||
technologies while preserving a traditional desktop experience.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -2516,6 +2516,92 @@ parts of it.")
|
|||
"OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define* (make-blis implementation #:optional substitutable?)
|
||||
"Return a BLIS package with the given IMPLEMENTATION (see config/ in the
|
||||
source tree for a list of implementations.)
|
||||
|
||||
SUBSTITUTABLE? determines whether the package is made available as a
|
||||
substitute.
|
||||
|
||||
Currently the specialization must be selected at configure-time, but work is
|
||||
underway to allow BLIS to select the right optimized kernels at run time:
|
||||
<https://github.com/flame/blis/issues/129>."
|
||||
(package
|
||||
(name (if (string=? implementation "reference")
|
||||
"blis"
|
||||
(string-append "blis-" implementation)))
|
||||
(version "0.2.2")
|
||||
(home-page "https://github.com/flame/blis")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url home-page) (commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh"))
|
||||
(file-name (git-file-name "blis" version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
||||
#:substitutable? ,substitutable?
|
||||
|
||||
#:phases (modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; This is a home-made 'configure' script.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (system* "./configure" "-p" out
|
||||
"-d" "opt"
|
||||
"--disable-static"
|
||||
"--enable-shared"
|
||||
"--enable-threading=openmp"
|
||||
|
||||
,implementation)))))
|
||||
(add-before 'check 'show-test-output
|
||||
(lambda _
|
||||
;; By default "make check" is silent. Make it verbose.
|
||||
(system "tail -F output.testsuite &")
|
||||
#t)))))
|
||||
(synopsis "High-performance basic linear algebra (BLAS) routines")
|
||||
(description
|
||||
"BLIS is a portable software framework for instantiating high-performance
|
||||
BLAS-like dense linear algebra libraries. The framework was designed to
|
||||
isolate essential kernels of computation that, when optimized, immediately
|
||||
enable optimized implementations of most of its commonly used and
|
||||
computationally intensive operations. While BLIS exports a new BLAS-like API,
|
||||
it also includes a BLAS compatibility layer which gives application developers
|
||||
access to BLIS implementations via traditional BLAS routine calls.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public blis
|
||||
;; This is the "reference" implementation, which is the non-optimized but
|
||||
;; portable variant (no assembly).
|
||||
(make-blis "reference" #t))
|
||||
|
||||
(define ignorance blis)
|
||||
|
||||
(define-syntax-rule (blis/x86_64 processor)
|
||||
"Expand to a package specialized for PROCESSOR."
|
||||
(package
|
||||
(inherit (make-blis processor))
|
||||
(supported-systems '("x86_64-linux"))))
|
||||
|
||||
(define-public blis-sandybridge
|
||||
;; BLIS specialized for Sandy Bridge processors (launched 2011):
|
||||
;; <http://ark.intel.com/products/codename/29900/Sandy-Bridge>.
|
||||
(blis/x86_64 "sandybridge"))
|
||||
|
||||
(define-public blis-haswell
|
||||
;; BLIS specialized for Haswell processors (launched 2013):
|
||||
;; <http://ark.intel.com/products/codename/42174/Haswell>.
|
||||
(blis/x86_64 "haswell"))
|
||||
|
||||
(define-public blis-knl
|
||||
;; BLIS specialized for Knights Landing processor (launched 2016):
|
||||
;; <http://ark.intel.com/products/series/92650/Intel-Xeon-Phi-x200-Product-Family>.
|
||||
(blis/x86_64 "knl"))
|
||||
|
||||
|
||||
(define-public openlibm
|
||||
(package
|
||||
(name "openlibm")
|
||||
|
|
|
@ -34,14 +34,15 @@
|
|||
(define-public nyacc
|
||||
(package
|
||||
(name "nyacc")
|
||||
(version "0.80.3")
|
||||
(version "0.82.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/nyacc/"
|
||||
name "-" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sdvkahnz6k9i4kf1i1ljl20220n3wk3gy6zmz0ggbbdgg4mfka0"))))
|
||||
"1ll0mjivhxpj3r81w4a8p4bclr3byzp38ig1j11jvwnbl6lawgj7"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
|
@ -57,7 +58,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
|||
(let ((triplet "i686-unknown-linux-gnu"))
|
||||
(package
|
||||
(name "mes")
|
||||
(version "0.9")
|
||||
(version "0.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gitlab.com/janneke/mes"
|
||||
|
@ -66,7 +67,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ph0fvabpb7zhbk4zpacbp7m4b142ds17dq5dzn00m7dz8farw9r"))))
|
||||
"0djmhnvha8phxgb4msysnjmy1nnllb08bnw4xhdayq8ppi4zdmcv"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(propagated-inputs
|
||||
|
|
|
@ -295,7 +295,7 @@ This package contains the binary.")
|
|||
(define-public mpg123
|
||||
(package
|
||||
(name "mpg123")
|
||||
(version "1.25.4")
|
||||
(version "1.25.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
|
||||
|
@ -305,7 +305,7 @@ This package contains the binary.")
|
|||
version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"1rxknrnl3ji5hi5rbckpzhbl1k5r8i53kcys4xdgg0xbi8765dfd"))))
|
||||
"13jsbh1gwypjksim2fxlblj5wc2driwm4igrkcnbr6bpp34mh10g"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--with-default-audio=pulse")))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
(define-public hwloc
|
||||
(package
|
||||
(name "hwloc")
|
||||
(version "1.11.7")
|
||||
(version "1.11.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.open-mpi.org/software/hwloc/v"
|
||||
|
@ -50,7 +50,7 @@
|
|||
"/downloads/hwloc-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0acph1mf7588hfx8ds26ncr6nw5fd9x92adm11fwin7f93i10sdb"))))
|
||||
"0karxv4r1r8sa7ki5aamlxdvyvz0bvzq4gdhq0yi5nc4a0k11vzc"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc.
|
||||
"lib" ;small closure
|
||||
|
@ -132,9 +132,7 @@ bind processes, and much more.")
|
|||
`(("pkg-config" ,pkg-config)
|
||||
("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:configure-flags `("--enable-builtin-atomics"
|
||||
|
||||
"--enable-mpi-ext=affinity" ;cr doesn't work
|
||||
`(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work
|
||||
"--enable-memchecker"
|
||||
"--with-sge"
|
||||
|
||||
|
@ -148,16 +146,21 @@ bind processes, and much more.")
|
|||
(assoc-ref %build-inputs "hwloc")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'remove-absolute
|
||||
;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
|
||||
;; etc.) to reduce the closure size. See
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html>
|
||||
;; and
|
||||
;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>.
|
||||
(lambda _
|
||||
;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
|
||||
;; etc.) to reduce the closure size. See
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-07/msg00388.html>
|
||||
;; and
|
||||
;; <https://www.mail-archive.com/users@lists.open-mpi.org//msg31397.html>.
|
||||
(substitute* '("orte/tools/orte-info/param.c"
|
||||
"oshmem/tools/oshmem_info/param.c"
|
||||
"ompi/tools/ompi_info/param.c")
|
||||
(("_ABSOLUTE") ""))
|
||||
;; Avoid valgrind (which pulls in gdb etc.).
|
||||
(substitute*
|
||||
'("./ompi/mca/io/romio/src/io_romio_component.c")
|
||||
(("MCA_io_romio_COMPLETE_CONFIGURE_FLAGS")
|
||||
"\"[elided to reduce closure]\""))
|
||||
#t))
|
||||
(add-before 'build 'scrub-timestamps ;reproducibility
|
||||
(lambda _
|
||||
|
|
|
@ -78,8 +78,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.13.0")
|
||||
(commit "228a3982df157847554abc9d0831d687264d8ebd")
|
||||
(revision 5))
|
||||
(commit "a9468b422b6df2349a3f4d1451c9302c3d77011b")
|
||||
(revision 6))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -95,7 +95,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1gnc1w9kby7db9jih4xwrhrv0j57zy09lmr85gbmcqna6bx3wypw"))
|
||||
"0bv323yp657x0a2aa2z5pp5541hjqmn908kh9jqlbdw5gpx9vg3d"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,10 +42,13 @@
|
|||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -480,3 +484,97 @@ use pass, the standard unix password manager, as the credential backend for
|
|||
your git repositories. This is achieved by explicitly defining mappings
|
||||
between hosts and entries in the password store.")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public john-the-ripper-jumbo
|
||||
(let ((official-version "1.8.0")
|
||||
(jumbo-version "1"))
|
||||
(package
|
||||
(name "john-the-ripper-jumbo")
|
||||
(version (string-append official-version "-" jumbo-version))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.openwall.com/john/j/john-"
|
||||
official-version "-jumbo-" jumbo-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08q92sfdvkz47rx6qjn7qv57cmlpy7i7rgddapq5384mb413vjds"))
|
||||
(patches
|
||||
(list (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/magnumripper/"
|
||||
"JohnTheRipper/commit/"
|
||||
"e2e868db3e153b3f959e119a51703d4afb99c624.patch"))
|
||||
(file-name "john-the-ripper-jumbo-gcc5-inline.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"1shvcf1y2097115mxhzdkm64dr106a8zr6pqjqyh171q5ng5vfra")))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/magnumripper/"
|
||||
"JohnTheRipper/commit/"
|
||||
"480e95b0e449863be3e1a5b0bc634a67df28b618.patch"))
|
||||
(file-name "john-the-ripper-jumbo-non-x86.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"1ffd9dvhk0sb6ss8dv5yalh01lz30i7rilqilf2xv68gax2hyjqx")))))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gmp" ,gmp)
|
||||
("krb5" ,mit-krb5)
|
||||
("libpcap" ,libpcap)
|
||||
("nss" ,nss)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append
|
||||
"CFLAGS=-O2 -g "
|
||||
"-DJOHN_SYSTEMWIDE=1 "
|
||||
"-DJOHN_SYSTEMWIDE_EXEC='\"" %output "/libexec/john\"' "
|
||||
"-DJOHN_SYSTEMWIDE_HOME='\"" %output "/share/john\"'")
|
||||
;; For now, do not test for instruction set in configure, and
|
||||
;; do not pass '-march=native' to gcc:
|
||||
"--disable-native-tests"
|
||||
"--disable-native-macro")
|
||||
#:tests? #f ;tests try to create '.john' in the build user's $HOME
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'chdir-src
|
||||
(lambda _ (chdir "src")))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bindir (string-append %output "/bin"))
|
||||
(docdir (string-append %output "/share/doc/john"))
|
||||
(execdir (string-append %output "/libexec/john"))
|
||||
(homedir (string-append %output "/share/john"))
|
||||
(install-file-to (lambda (dir)
|
||||
(lambda (f) (install-file f dir))))
|
||||
(symlink? (lambda (_ s) (eq? (stat:type s) 'symlink))))
|
||||
(with-directory-excursion "../run"
|
||||
(for-each (install-file-to execdir)
|
||||
(cons* "mailer" "benchmark-unify"
|
||||
(find-files "." ".*\\.(py|rb|pl)")))
|
||||
(for-each (install-file-to homedir)
|
||||
(append (find-files "." "(stats|dictionary.*)")
|
||||
(find-files "." "(.*\\.chr|.*\\.lst)")
|
||||
(find-files "." ".*\\.conf")))
|
||||
(for-each (install-file-to bindir)
|
||||
'("tgtsnarf" "genmkvpwd" "mkvcalcproba"
|
||||
"raw2dyna" "luks2john" "vncpcap2john"
|
||||
"uaf2john" "calc_stat" "wpapcap2john"
|
||||
"cprepair" "relbench" "SIPdump" "john"))
|
||||
(for-each (lambda (f) ;install symlinked aliases
|
||||
(symlink "john"
|
||||
(string-append bindir "/" (basename f))))
|
||||
(find-files "." symlink?)))
|
||||
(copy-recursively "../doc" docdir)
|
||||
#t))))))
|
||||
(home-page "http://www.openwall.com/john/")
|
||||
(synopsis "Password cracker")
|
||||
(description "John the Ripper is a fast password cracker. Its primary
|
||||
purpose is to detect weak Unix passwords. Besides several @code{crypt}
|
||||
password hash types most commonly found on various Unix systems, supported out
|
||||
of the box are Windows LM hashes, plus lots of other hashes and ciphers. This
|
||||
is the community-enhanced, \"jumbo\" version of John the Ripper.")
|
||||
(license license:gpl2+))))
|
||||
|
|
42
gnu/packages/patches/bluez-CVE-2017-1000250.patch
Normal file
42
gnu/packages/patches/bluez-CVE-2017-1000250.patch
Normal file
|
@ -0,0 +1,42 @@
|
|||
Description: CVE-2017-1000250: information disclosure vulnerability in service_search_attr_req
|
||||
Origin: vendor
|
||||
Bug-Debian: https://bugs.debian.org/875633
|
||||
Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1489446
|
||||
Bug-SuSE: https://bugzilla.suse.com/show_bug.cgi?id=1057342
|
||||
Forwarded: no
|
||||
Author: Armis Security <security@armis.com>
|
||||
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
|
||||
Last-Update: 2017-09-13
|
||||
|
||||
--- a/src/sdpd-request.c
|
||||
+++ b/src/sdpd-request.c
|
||||
@@ -918,15 +918,20 @@ static int service_search_attr_req(sdp_r
|
||||
/* continuation State exists -> get from cache */
|
||||
sdp_buf_t *pCache = sdp_get_cached_rsp(cstate);
|
||||
if (pCache) {
|
||||
- uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent);
|
||||
- pResponse = pCache->data;
|
||||
- memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent);
|
||||
- buf->data_size += sent;
|
||||
- cstate->cStateValue.maxBytesSent += sent;
|
||||
- if (cstate->cStateValue.maxBytesSent == pCache->data_size)
|
||||
- cstate_size = sdp_set_cstate_pdu(buf, NULL);
|
||||
- else
|
||||
- cstate_size = sdp_set_cstate_pdu(buf, cstate);
|
||||
+ if (cstate->cStateValue.maxBytesSent >= pCache->data_size) {
|
||||
+ status = SDP_INVALID_CSTATE;
|
||||
+ SDPDBG("Got bad cstate with invalid size");
|
||||
+ } else {
|
||||
+ uint16_t sent = MIN(max, pCache->data_size - cstate->cStateValue.maxBytesSent);
|
||||
+ pResponse = pCache->data;
|
||||
+ memcpy(buf->data, pResponse + cstate->cStateValue.maxBytesSent, sent);
|
||||
+ buf->data_size += sent;
|
||||
+ cstate->cStateValue.maxBytesSent += sent;
|
||||
+ if (cstate->cStateValue.maxBytesSent == pCache->data_size)
|
||||
+ cstate_size = sdp_set_cstate_pdu(buf, NULL);
|
||||
+ else
|
||||
+ cstate_size = sdp_set_cstate_pdu(buf, cstate);
|
||||
+ }
|
||||
} else {
|
||||
status = SDP_INVALID_CSTATE;
|
||||
SDPDBG("Non-null continuation state, but null cache buffer");
|
|
@ -1,49 +0,0 @@
|
|||
Recreated old debian patch on the latest calibre version
|
||||
|
||||
From 6764e4c211e50d4f4633dbabfba7cbc3089c51dc Mon Sep 17 00:00:00 2001
|
||||
From: Brendan Tildesley <brendan.tildesley@openmailbox.org>
|
||||
Date: Sat, 13 May 2017 21:12:12 +1000
|
||||
Subject: [PATCH] Remove unrar extension
|
||||
|
||||
---
|
||||
setup/extensions.json | 11 -----------
|
||||
src/calibre/ebooks/metadata/archive.py | 2 +-
|
||||
2 files changed, 1 insertion(+), 12 deletions(-)
|
||||
|
||||
diff --git a/setup/extensions.json b/setup/extensions.json
|
||||
index 1f6d1fb5fd..127390450f 100644
|
||||
--- a/setup/extensions.json
|
||||
+++ b/setup/extensions.json
|
||||
@@ -211,16 +211,5 @@
|
||||
"sources": "calibre/devices/mtp/unix/devices.c calibre/devices/mtp/unix/libmtp.c",
|
||||
"headers": "calibre/devices/mtp/unix/devices.h calibre/devices/mtp/unix/upstream/music-players.h calibre/devices/mtp/unix/upstream/device-flags.h",
|
||||
"libraries": "mtp"
|
||||
- },
|
||||
- {
|
||||
- "name": "unrar",
|
||||
- "sources": "unrar/rar.cpp unrar/strlist.cpp unrar/strfn.cpp unrar/pathfn.cpp unrar/savepos.cpp unrar/smallfn.cpp unrar/global.cpp unrar/file.cpp unrar/filefn.cpp unrar/filcreat.cpp unrar/archive.cpp unrar/arcread.cpp unrar/unicode.cpp unrar/system.cpp unrar/isnt.cpp unrar/crypt.cpp unrar/crc.cpp unrar/rawread.cpp unrar/encname.cpp unrar/resource.cpp unrar/match.cpp unrar/timefn.cpp unrar/rdwrfn.cpp unrar/consio.cpp unrar/options.cpp unrar/ulinks.cpp unrar/errhnd.cpp unrar/rarvm.cpp unrar/secpassword.cpp unrar/rijndael.cpp unrar/getbits.cpp unrar/sha1.cpp unrar/extinfo.cpp unrar/extract.cpp unrar/volume.cpp unrar/list.cpp unrar/find.cpp unrar/unpack.cpp unrar/cmddata.cpp unrar/filestr.cpp unrar/scantree.cpp calibre/utils/unrar.cpp",
|
||||
- "inc_dirs": "unrar",
|
||||
- "defines": "SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE",
|
||||
- "windows_defines": "SILENT RARDLL UNRAR",
|
||||
- "haiku_defines": "LITTLE_ENDIAN SILENT RARDLL UNRAR _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _BSD_SOURCE",
|
||||
- "haiku_libraries": "bsd",
|
||||
- "optimize_level": 2,
|
||||
- "windows_libraries": "User32 Advapi32 kernel32 Shell32"
|
||||
}
|
||||
]
|
||||
diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py
|
||||
index f5c0b7bed3..32257dcdae 100644
|
||||
--- a/src/calibre/ebooks/metadata/archive.py
|
||||
+++ b/src/calibre/ebooks/metadata/archive.py
|
||||
@@ -44,7 +44,7 @@ class ArchiveExtract(FileTypePlugin):
|
||||
description = _('Extract common e-book formats from archive files '
|
||||
'(ZIP/RAR). Also try to autodetect if they are actually '
|
||||
'CBZ/CBR files.')
|
||||
- file_types = set(['zip', 'rar'])
|
||||
+ file_types = set(['zip'])
|
||||
supported_platforms = ['windows', 'osx', 'linux']
|
||||
on_import = True
|
||||
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
Prevent compilation issues with boost-1.60.0.
|
||||
|
||||
Reported upstream at https://github.com/csound/csound/issues/570
|
||||
|
||||
--- Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-04-25 14:06:22.995646234 -0500
|
||||
+++ Csound6.05/Opcodes/chua/ChuaOscillator.cpp 2015-12-21 10:31:58.182362640 -0600
|
||||
@@ -117,11 +117,12 @@
|
||||
// d = sys_variables(12);
|
||||
// gnor = a*(x.^3) + b*(x.^2) + c*x + d;
|
||||
|
||||
-#include <OpcodeBase.hpp>
|
||||
#include <boost/numeric/ublas/vector.hpp>
|
||||
using namespace boost::numeric;
|
||||
#include <cmath>
|
||||
|
||||
+#include <OpcodeBase.hpp>
|
||||
+
|
||||
#undef CS_KSMPS
|
||||
#define CS_KSMPS (opds.insdshead->ksmps)
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
This patch fixes a remote code execution vulnerability reported here:
|
||||
|
||||
https://bugs.gnu.org/28350
|
||||
http://www.openwall.com/lists/oss-security/2017/09/11/1
|
||||
|
||||
From 9ad0fcc54442a9a01d41be19880250783426db70 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Ingebrigtsen <larsi@gnus.org>
|
||||
Date: Fri, 8 Sep 2017 20:23:31 -0700
|
||||
Subject: Remove unsafe enriched mode translations
|
||||
|
||||
* lisp/gnus/mm-view.el (mm-inline-text):
|
||||
Do not worry about enriched or richtext type.
|
||||
* lisp/textmodes/enriched.el (enriched-translations):
|
||||
Remove translations for FUNCTION, display (Bug#28350).
|
||||
(enriched-handle-display-prop, enriched-decode-display-prop): Remove.
|
||||
---
|
||||
lisp/gnus/mm-view.el | 4 ----
|
||||
lisp/textmodes/enriched.el | 32 --------------------------------
|
||||
2 files changed, 36 deletions(-)
|
||||
|
||||
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
|
||||
index e5859d0..77ad271 100644
|
||||
--- a/lisp/gnus/mm-view.el
|
||||
+++ b/lisp/gnus/mm-view.el
|
||||
@@ -383,10 +383,6 @@
|
||||
(goto-char (point-max))))
|
||||
(save-restriction
|
||||
(narrow-to-region b (point))
|
||||
- (when (member type '("enriched" "richtext"))
|
||||
- (set-text-properties (point-min) (point-max) nil)
|
||||
- (ignore-errors
|
||||
- (enriched-decode (point-min) (point-max))))
|
||||
(mm-handle-set-undisplayer
|
||||
handle
|
||||
`(lambda ()
|
||||
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
|
||||
index beb6c6d..a8f0d38 100644
|
||||
--- a/lisp/textmodes/enriched.el
|
||||
+++ b/lisp/textmodes/enriched.el
|
||||
@@ -117,12 +117,7 @@ expression, which is evaluated to get the string to insert.")
|
||||
(full "flushboth")
|
||||
(center "center"))
|
||||
(PARAMETER (t "param")) ; Argument of preceding annotation
|
||||
- ;; The following are not part of the standard:
|
||||
- (FUNCTION (enriched-decode-foreground "x-color")
|
||||
- (enriched-decode-background "x-bg-color")
|
||||
- (enriched-decode-display-prop "x-display"))
|
||||
(read-only (t "x-read-only"))
|
||||
- (display (nil enriched-handle-display-prop))
|
||||
(unknown (nil format-annotate-value))
|
||||
; (font-size (2 "bigger") ; unimplemented
|
||||
; (-2 "smaller"))
|
||||
@@ -477,32 +472,5 @@ Return value is \(begin end name positive-p), or nil if none was found."
|
||||
(message "Warning: no color specified for <x-bg-color>")
|
||||
nil))
|
||||
|
||||
-;;; Handling the `display' property.
|
||||
-
|
||||
-
|
||||
-(defun enriched-handle-display-prop (old new)
|
||||
- "Return a list of annotations for a change in the `display' property.
|
||||
-OLD is the old value of the property, NEW is the new value. Value
|
||||
-is a list `(CLOSE OPEN)', where CLOSE is a list of annotations to
|
||||
-close and OPEN a list of annotations to open. Each of these lists
|
||||
-has the form `(ANNOTATION PARAM ...)'."
|
||||
- (let ((annotation "x-display")
|
||||
- (param (prin1-to-string (or old new))))
|
||||
- (if (null old)
|
||||
- (cons nil (list (list annotation param)))
|
||||
- (cons (list (list annotation param)) nil))))
|
||||
-
|
||||
-(defun enriched-decode-display-prop (start end &optional param)
|
||||
- "Decode a `display' property for text between START and END.
|
||||
-PARAM is a `<param>' found for the property.
|
||||
-Value is a list `(START END SYMBOL VALUE)' with START and END denoting
|
||||
-the range of text to assign text property SYMBOL with value VALUE."
|
||||
- (let ((prop (when (stringp param)
|
||||
- (condition-case ()
|
||||
- (car (read-from-string param))
|
||||
- (error nil)))))
|
||||
- (unless prop
|
||||
- (message "Warning: invalid <x-display> parameter %s" param))
|
||||
- (list start end 'display prop)))
|
||||
|
||||
;;; enriched.el ends here
|
27
gnu/packages/patches/file-CVE-2017-1000249.patch
Normal file
27
gnu/packages/patches/file-CVE-2017-1000249.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
https://github.com/file/file/commit/35c94dc6acc418f1ad7f6241a6680e5327495793.patch
|
||||
http://openwall.com/lists/oss-security/2017/09/05/3
|
||||
|
||||
The patch is minorly modified to apply to file-5.30
|
||||
|
||||
From 35c94dc6acc418f1ad7f6241a6680e5327495793 Mon Sep 17 00:00:00 2001
|
||||
From: Christos Zoulas <christos@zoulas.com>
|
||||
Date: Sun, 27 Aug 2017 07:55:02 +0000
|
||||
Subject: [PATCH] Fix always true condition (Thomas Jarosch)
|
||||
|
||||
---
|
||||
src/readelf.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/readelf.c b/src/readelf.c
|
||||
index 81451827..5f425c97 100644
|
||||
--- a/src/readelf.c
|
||||
+++ b/src/readelf.c
|
||||
@@ -511,7 +511,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
|
||||
size_t noff, size_t doff, int *flags)
|
||||
{
|
||||
if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 &&
|
||||
- type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) {
|
||||
+ type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) {
|
||||
uint8_t desc[20];
|
||||
const char *btype;
|
||||
uint32_t i;
|
14
gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch
Normal file
14
gnu/packages/patches/foomatic-filters-CVE-2015-8327.patch
Normal file
|
@ -0,0 +1,14 @@
|
|||
Fix for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2015-8327>.
|
||||
|
||||
--- a/util.c 2014-06-20 19:26:18 +0000
|
||||
+++ b/util.c 2015-10-30 15:45:03 +0000
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
-const char* shellescapes = "|<>&!$\'\"#*?()[]{}";
|
||||
+const char* shellescapes = "|<>&!$\'\"`#*?()[]{}";
|
||||
|
||||
const char * temp_dir()
|
||||
{
|
||||
|
13
gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch
Normal file
13
gnu/packages/patches/foomatic-filters-CVE-2015-8560.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
Fix for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2015-8560>.
|
||||
|
||||
--- a/util.c 2015-10-30 15:45:03 +0000
|
||||
+++ b/util.c 2015-12-12 23:27:21 +0000
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
-const char* shellescapes = "|<>&!$\'\"`#*?()[]{}";
|
||||
+const char* shellescapes = "|;<>&!$\'\"`#*?()[]{}";
|
||||
|
||||
const char * temp_dir()
|
||||
{
|
|
@ -0,0 +1,137 @@
|
|||
http://www.openwall.com/lists/oss-security/2017/09/01/6
|
||||
|
||||
CVE-2017-11403:
|
||||
http://hg.code.sf.net/p/graphicsmagick/code/rev/d0a76868ca37
|
||||
|
||||
CVE-2017-14103:
|
||||
http://hg.code.sf.net/p/graphicsmagick/code/rev/98721124e51f
|
||||
|
||||
some changes were made to make the patch apply
|
||||
|
||||
# HG changeset patch
|
||||
# User Glenn Randers-Pehrson <glennrp+bmo@gmail.com>
|
||||
# Date 1503875721 14400
|
||||
# Node ID 98721124e51fd5ec0c6fba64bce2e218869632d2
|
||||
# Parent f0f2ea85a2930f3b6dcd72352719adb9660f2aad
|
||||
Attempt to fix Issue 440.
|
||||
|
||||
diff -ru a/coders/png.c b/coders/png.c
|
||||
--- a/coders/png.c 1969-12-31 19:00:00.000000000 -0500
|
||||
+++ b/coders/png.c 2017-09-10 11:31:56.543194173 -0400
|
||||
@@ -3106,7 +3106,9 @@
|
||||
if (length > PNG_MAX_UINT || count == 0)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(CorruptImageError,CorruptImage,image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ "chunk length (%lu) > PNG_MAX_UINT",length);
|
||||
+ return ((Image*)NULL);
|
||||
}
|
||||
|
||||
chunk=(unsigned char *) NULL;
|
||||
@@ -3117,13 +3119,16 @@
|
||||
if (chunk == (unsigned char *) NULL)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,
|
||||
- image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " Could not allocate chunk memory");
|
||||
+ return ((Image*)NULL);
|
||||
}
|
||||
if (ReadBlob(image,length,chunk) < length)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(CorruptImageError,CorruptImage,image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " chunk reading was incomplete");
|
||||
+ return ((Image*)NULL);
|
||||
}
|
||||
p=chunk;
|
||||
}
|
||||
@@ -3198,7 +3203,7 @@
|
||||
jng_width, jng_height);
|
||||
MagickFreeMemory(chunk);
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
|
||||
/* Temporarily set width and height resources to match JHDR */
|
||||
@@ -3233,8 +3238,9 @@
|
||||
if (color_image == (Image *) NULL)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,
|
||||
- image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " could not open color_image blob");
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
if (logging)
|
||||
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
@@ -3245,7 +3251,9 @@
|
||||
if (status == MagickFalse)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(CoderError,UnableToOpenBlob,color_image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " could not open color_image blob");
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
|
||||
if (!image_info->ping && jng_color_type >= 12)
|
||||
@@ -3255,17 +3263,18 @@
|
||||
if (alpha_image_info == (ImageInfo *) NULL)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(ResourceLimitError,
|
||||
- MemoryAllocationFailed, image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " could not allocate alpha_image_info",length);
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
GetImageInfo(alpha_image_info);
|
||||
alpha_image=AllocateImage(alpha_image_info);
|
||||
if (alpha_image == (Image *) NULL)
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
- ThrowReaderException(ResourceLimitError,
|
||||
- MemoryAllocationFailed,
|
||||
- alpha_image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " could not allocate alpha_image");
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
if (logging)
|
||||
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
@@ -3277,7 +3286,9 @@
|
||||
{
|
||||
DestroyJNGInfo(color_image_info,alpha_image_info);
|
||||
DestroyImage(alpha_image);
|
||||
- ThrowReaderException(CoderError,UnableToOpenBlob,image);
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " could not allocate alpha_image blob");
|
||||
+ return ((Image *)NULL);
|
||||
}
|
||||
if (jng_alpha_compression_method == 0)
|
||||
{
|
||||
@@ -3613,6 +3624,8 @@
|
||||
alpha_image = (Image *)NULL;
|
||||
DestroyImageInfo(alpha_image_info);
|
||||
alpha_image_info = (ImageInfo *)NULL;
|
||||
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
|
||||
+ " Destroy the JNG image");
|
||||
DestroyImage(jng_image);
|
||||
jng_image = (Image *)NULL;
|
||||
}
|
||||
@@ -5146,8 +5159,8 @@
|
||||
|
||||
if (image == (Image *) NULL)
|
||||
{
|
||||
- DestroyImageList(previous);
|
||||
CloseBlob(previous);
|
||||
+ DestroyImageList(previous);
|
||||
MngInfoFreeStruct(mng_info,&have_mng_structure);
|
||||
return((Image *) NULL);
|
||||
}
|
80
gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch
Normal file
80
gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch
Normal file
|
@ -0,0 +1,80 @@
|
|||
http://openwall.com/lists/oss-security/2017/08/28/5
|
||||
http://hg.code.sf.net/p/graphicsmagick/code/rev/3bbf7a13643d
|
||||
|
||||
some changes were made to make the patch apply
|
||||
|
||||
# HG changeset patch
|
||||
# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
|
||||
# Date 1503268616 18000
|
||||
# Node ID 3bbf7a13643df3be76b0e19088a6cc632eea2072
|
||||
# Parent 83a5b946180835f260bcb91e3d06327a8e2577e3
|
||||
PNM: For binary formats, verify sufficient backing file data before memory request.
|
||||
|
||||
diff -r 83a5b9461808 -r 3bbf7a13643d coders/pnm.c
|
||||
--- a/coders/pnm.c Sun Aug 20 17:31:35 2017 -0500
|
||||
+++ b/coders/pnm.c Sun Aug 20 17:36:56 2017 -0500
|
||||
@@ -569,7 +569,7 @@
|
||||
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"Colors: %u",
|
||||
image->colors);
|
||||
}
|
||||
- number_pixels=image->columns*image->rows;
|
||||
+ number_pixels=MagickArraySize(image->columns,image->rows);
|
||||
if (number_pixels == 0)
|
||||
ThrowReaderException(CorruptImageError,NegativeOrZeroImageSize,image);
|
||||
if (image->storage_class == PseudoClass)
|
||||
@@ -858,14 +858,14 @@
|
||||
if (1 == bits_per_sample)
|
||||
{
|
||||
/* PBM */
|
||||
- bytes_per_row=((image->columns+7) >> 3);
|
||||
+ bytes_per_row=((image->columns+7U) >> 3);
|
||||
import_options.grayscale_miniswhite=MagickTrue;
|
||||
quantum_type=GrayQuantum;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* PGM & XV_332 */
|
||||
- bytes_per_row=((bits_per_sample+7)/8)*image->columns;
|
||||
+ bytes_per_row=MagickArraySize(((bits_per_sample+7U)/8U),image->columns);
|
||||
if (XV_332_Format == format)
|
||||
{
|
||||
quantum_type=IndexQuantum;
|
||||
@@ -878,7 +878,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- bytes_per_row=(((bits_per_sample+7)/8)*samples_per_pixel)*image->columns;
|
||||
+ bytes_per_row=MagickArraySize((((bits_per_sample+7)/8)*samples_per_pixel),
|
||||
+ image->columns);
|
||||
if (3 == samples_per_pixel)
|
||||
{
|
||||
/* PPM */
|
||||
@@ -915,6 +916,28 @@
|
||||
is_monochrome=MagickFalse;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ /* Validate file size before allocating memory */
|
||||
+ if (BlobIsSeekable(image))
|
||||
+ {
|
||||
+ const magick_off_t file_size = GetBlobSize(image);
|
||||
+ const magick_off_t current_offset = TellBlob(image);
|
||||
+ if ((file_size > 0) &&
|
||||
+ (current_offset > 0) &&
|
||||
+ (file_size > current_offset))
|
||||
+ {
|
||||
+ const magick_off_t remaining = file_size-current_offset;
|
||||
+ const magick_off_t needed = (magick_off_t) image->rows *
|
||||
+ (magick_off_t) bytes_per_row;
|
||||
+ if ((remaining < (magick_off_t) bytes_per_row) ||
|
||||
+ (remaining < needed))
|
||||
+ {
|
||||
+ ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,
|
||||
+ image->filename);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
scanline_set=AllocateThreadViewDataArray(image,exception,bytes_per_row,1);
|
||||
if (scanline_set == (ThreadViewDataSet *) NULL)
|
72
gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch
Normal file
72
gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch
Normal file
|
@ -0,0 +1,72 @@
|
|||
http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/493da54370aa
|
||||
http://openwall.com/lists/oss-security/2017/09/06/4
|
||||
|
||||
some changes were made to make the patch apply
|
||||
|
||||
# HG changeset patch
|
||||
# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
|
||||
# Date 1503257388 18000
|
||||
# Node ID 493da54370aa42cb430c52a69eb75db0001a5589
|
||||
# Parent f8724674907902b7bc37c04f252fe30fbdd88e6f
|
||||
SUN: Verify that file header data length, and file length are sufficient for claimed image dimensions.
|
||||
|
||||
diff -r f87246749079 -r 493da54370aa coders/sun.c
|
||||
--- a/coders/sun.c Sun Aug 20 12:21:03 2017 +0200
|
||||
+++ b/coders/sun.c Sun Aug 20 14:29:48 2017 -0500
|
||||
@@ -498,6 +498,12 @@
|
||||
if (sun_info.depth < 8)
|
||||
image->depth=sun_info.depth;
|
||||
|
||||
+ if (image_info->ping)
|
||||
+ {
|
||||
+ CloseBlob(image);
|
||||
+ return(image);
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
Compute bytes per line and bytes per image for an unencoded
|
||||
image.
|
||||
@@ -522,15 +528,37 @@
|
||||
if (bytes_per_image > sun_info.length)
|
||||
ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
|
||||
|
||||
- if (image_info->ping)
|
||||
- {
|
||||
- CloseBlob(image);
|
||||
- return(image);
|
||||
- }
|
||||
if (sun_info.type == RT_ENCODED)
|
||||
sun_data_length=(size_t) sun_info.length;
|
||||
else
|
||||
sun_data_length=bytes_per_image;
|
||||
+
|
||||
+ /*
|
||||
+ Verify that data length claimed by header is supported by file size
|
||||
+ */
|
||||
+ if (sun_info.type == RT_ENCODED)
|
||||
+ {
|
||||
+ if (sun_data_length < bytes_per_image/255U)
|
||||
+ {
|
||||
+ ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
|
||||
+ }
|
||||
+ }
|
||||
+ if (BlobIsSeekable(image))
|
||||
+ {
|
||||
+ const magick_off_t file_size = GetBlobSize(image);
|
||||
+ const magick_off_t current_offset = TellBlob(image);
|
||||
+ if ((file_size > 0) &&
|
||||
+ (current_offset > 0) &&
|
||||
+ (file_size > current_offset))
|
||||
+ {
|
||||
+ const magick_off_t remaining = file_size-current_offset;
|
||||
+ if (remaining < (magick_off_t) sun_data_length)
|
||||
+ {
|
||||
+ ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
sun_data=MagickAllocateMemory(unsigned char *,sun_data_length);
|
||||
if (sun_data == (unsigned char *) NULL)
|
||||
ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);
|
||||
|
22
gnu/packages/patches/httpd-CVE-2017-9798.patch
Normal file
22
gnu/packages/patches/httpd-CVE-2017-9798.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
Fixes "options bleed", aka. CVE-2017-9798:
|
||||
|
||||
https://nvd.nist.gov/vuln/detail/CVE-2017-9798
|
||||
https://blog.fuzzing-project.org/60-Optionsbleed-HTTP-OPTIONS-method-can-leak-Apaches-server-memory.html
|
||||
|
||||
From <https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/server/core.c?r1=1805223&r2=1807754&pathrev=1807754&view=patch>.
|
||||
|
||||
--- a/server/core.c 2017/08/16 16:50:29 1805223
|
||||
+++ b/server/core.c 2017/09/08 13:13:11 1807754
|
||||
@@ -2266,6 +2266,12 @@
|
||||
/* method has not been registered yet, but resource restriction
|
||||
* is always checked before method handling, so register it.
|
||||
*/
|
||||
+ if (cmd->pool == cmd->temp_pool) {
|
||||
+ /* In .htaccess, we can't globally register new methods. */
|
||||
+ return apr_psprintf(cmd->pool, "Could not register method '%s' "
|
||||
+ "for %s from .htaccess configuration",
|
||||
+ method, cmd->cmd->name);
|
||||
+ }
|
||||
methnum = ap_method_register(cmd->pool,
|
||||
apr_pstrdup(cmd->pool, method));
|
||||
}
|
45
gnu/packages/patches/libarchive-CVE-2017-14166.patch
Normal file
45
gnu/packages/patches/libarchive-CVE-2017-14166.patch
Normal file
|
@ -0,0 +1,45 @@
|
|||
Fix CVE-2017-14166:
|
||||
|
||||
https://github.com/libarchive/libarchive/issues/935
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14166
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
|
||||
https://github.com/libarchive/libarchive/commit/fa7438a0ff4033e4741c807394a9af6207940d71
|
||||
|
||||
From fa7438a0ff4033e4741c807394a9af6207940d71 Mon Sep 17 00:00:00 2001
|
||||
From: Joerg Sonnenberger <joerg@bec.de>
|
||||
Date: Tue, 5 Sep 2017 18:12:19 +0200
|
||||
Subject: [PATCH] Do something sensible for empty strings to make fuzzers
|
||||
happy.
|
||||
|
||||
---
|
||||
libarchive/archive_read_support_format_xar.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libarchive/archive_read_support_format_xar.c b/libarchive/archive_read_support_format_xar.c
|
||||
index 7a22beb9d..93eeacc5e 100644
|
||||
--- a/libarchive/archive_read_support_format_xar.c
|
||||
+++ b/libarchive/archive_read_support_format_xar.c
|
||||
@@ -1040,6 +1040,9 @@ atol10(const char *p, size_t char_cnt)
|
||||
uint64_t l;
|
||||
int digit;
|
||||
|
||||
+ if (char_cnt == 0)
|
||||
+ return (0);
|
||||
+
|
||||
l = 0;
|
||||
digit = *p - '0';
|
||||
while (digit >= 0 && digit < 10 && char_cnt-- > 0) {
|
||||
@@ -1054,7 +1057,10 @@ atol8(const char *p, size_t char_cnt)
|
||||
{
|
||||
int64_t l;
|
||||
int digit;
|
||||
-
|
||||
+
|
||||
+ if (char_cnt == 0)
|
||||
+ return (0);
|
||||
+
|
||||
l = 0;
|
||||
while (char_cnt-- > 0) {
|
||||
if (*p >= '0' && *p <= '7')
|
|
@ -1,45 +0,0 @@
|
|||
Fix CVE-2017-12858:
|
||||
|
||||
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12858
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
|
||||
https://github.com/nih-at/libzip/commit/2217022b7d1142738656d891e00b3d2d9179b796
|
||||
|
||||
From 2217022b7d1142738656d891e00b3d2d9179b796 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Klausner <tk@giga.or.at>
|
||||
Date: Mon, 14 Aug 2017 10:55:44 +0200
|
||||
Subject: [PATCH] Fix double free().
|
||||
|
||||
Found by Brian 'geeknik' Carpenter using AFL.
|
||||
---
|
||||
THANKS | 1 +
|
||||
lib/zip_dirent.c | 3 ---
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/THANKS b/THANKS
|
||||
index be0cca9..a80ee1d 100644
|
||||
--- a/THANKS
|
||||
+++ b/THANKS
|
||||
@@ -12,6 +12,7 @@ BALATON Zoltan <balaton@eik.bme.hu>
|
||||
Benjamin Gilbert <bgilbert@backtick.net>
|
||||
Boaz Stolk <bstolk@aweta.nl>
|
||||
Bogdan <bogiebog@gmail.com>
|
||||
+Brian 'geeknik' Carpenter <geeknik@protonmail.ch>
|
||||
Chris Nehren <cnehren+libzip@pobox.com>
|
||||
Coverity <info@coverity.com>
|
||||
Dane Springmeyer <dane.springmeyer@gmail.com>
|
||||
diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c
|
||||
index a369900..e5a7cc9 100644
|
||||
--- a/lib/zip_dirent.c
|
||||
+++ b/lib/zip_dirent.c
|
||||
@@ -579,9 +579,6 @@ _zip_dirent_read(zip_dirent_t *zde, zip_source_t *src, zip_buffer_t *buffer, boo
|
||||
}
|
||||
|
||||
if (!_zip_dirent_process_winzip_aes(zde, error)) {
|
||||
- if (!from_buffer) {
|
||||
- _zip_buffer_free(buffer);
|
||||
- }
|
||||
return -1;
|
||||
}
|
||||
|
24
gnu/packages/patches/meson-for-build-rpath.patch
Normal file
24
gnu/packages/patches/meson-for-build-rpath.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
This patch removes a part of meson that clears the rpath upon installation.
|
||||
This will only be applied to a special version of meson, used for the
|
||||
meson-build-system.
|
||||
|
||||
Patch by Peter Mikkelsen <petermikkelsen10@gmail.com>
|
||||
|
||||
--- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200
|
||||
+++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200
|
||||
@@ -345,15 +345,6 @@
|
||||
print("Symlink creation does not work on this platform. "
|
||||
"Skipping all symlinking.")
|
||||
printed_symlink_error = True
|
||||
- if is_elf_platform() and os.path.isfile(outname):
|
||||
- try:
|
||||
- e = depfixer.Elf(outname, False)
|
||||
- e.fix_rpath(install_rpath)
|
||||
- except SystemExit as e:
|
||||
- if isinstance(e.code, int) and e.code == 0:
|
||||
- pass
|
||||
- else:
|
||||
- raise
|
||||
|
||||
def run(args):
|
||||
global install_log_file
|
43
gnu/packages/patches/newsbeuter-CVE-2017-14500.patch
Normal file
43
gnu/packages/patches/newsbeuter-CVE-2017-14500.patch
Normal file
|
@ -0,0 +1,43 @@
|
|||
https://github.com/akrennmair/newsbeuter/commit/26f5a4350f3ab5507bb8727051c87bb04660f333.patch
|
||||
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14500
|
||||
|
||||
From 26f5a4350f3ab5507bb8727051c87bb04660f333 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Batischev <eual.jp@gmail.com>
|
||||
Date: Sat, 16 Sep 2017 19:31:43 +0300
|
||||
Subject: [PATCH] Work around shell code in podcast names (#598)
|
||||
|
||||
---
|
||||
src/pb_controller.cpp | 6 +++---
|
||||
src/queueloader.cpp | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/pb_controller.cpp b/src/pb_controller.cpp
|
||||
index 09b5e897..213216cd 100644
|
||||
--- a/src/pb_controller.cpp
|
||||
+++ b/src/pb_controller.cpp
|
||||
@@ -306,9 +306,9 @@ void pb_controller::play_file(const std::string& file) {
|
||||
if (player == "")
|
||||
return;
|
||||
cmdline.append(player);
|
||||
- cmdline.append(" \"");
|
||||
- cmdline.append(utils::replace_all(file,"\"", "\\\""));
|
||||
- cmdline.append("\"");
|
||||
+ cmdline.append(" \'");
|
||||
+ cmdline.append(utils::replace_all(file,"'", "%27"));
|
||||
+ cmdline.append("\'");
|
||||
stfl::reset();
|
||||
LOG(LOG_DEBUG, "pb_controller::play_file: running `%s'", cmdline.c_str());
|
||||
::system(cmdline.c_str());
|
||||
diff --git a/src/queueloader.cpp b/src/queueloader.cpp
|
||||
index c1dabdd8..ae725e04 100644
|
||||
--- a/src/queueloader.cpp
|
||||
+++ b/src/queueloader.cpp
|
||||
@@ -130,7 +130,7 @@ std::string queueloader::get_filename(const std::string& str) {
|
||||
strftime(lbuf, sizeof(lbuf), "%Y-%b-%d-%H%M%S.unknown", localtime(&t));
|
||||
fn.append(lbuf);
|
||||
} else {
|
||||
- fn.append(base);
|
||||
+ fn.append(utils::replace_all(base, "'", "%27"));
|
||||
}
|
||||
return fn;
|
||||
}
|
243
gnu/packages/patches/openfoam-4.1-cleanup.patch
Normal file
243
gnu/packages/patches/openfoam-4.1-cleanup.patch
Normal file
|
@ -0,0 +1,243 @@
|
|||
# This patch removes all need for the ThirdParty files of OpenFOAM.
|
||||
|
||||
# Derived from EasyBuild patch by Ward Poelmans <wpoely86@gmail.com>.
|
||||
# Modified for GNU Guix by Paul Garlick <pgarlick@tourbillion-technology.com>.
|
||||
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake
|
||||
--- OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake
|
||||
+++ OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake
|
||||
@@ -9,7 +9,7 @@
|
||||
#
|
||||
# use readline if available
|
||||
#
|
||||
-if [ -f /usr/include/readline/readline.h ]
|
||||
+if true
|
||||
then
|
||||
echo "Found <readline/readline.h> -- enabling readline support."
|
||||
export COMP_FLAGS="-DHAS_READLINE"
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/bashrc OpenFOAM-4.x-version-4.1/etc/bashrc
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/bashrc
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/bashrc
|
||||
@@ -43,8 +43,10 @@
|
||||
# Please set to the appropriate path if the default is not correct.
|
||||
#
|
||||
[ $BASH_SOURCE ] && \
|
||||
-export FOAM_INST_DIR=$(cd ${BASH_SOURCE%/*/*/*} && pwd -P) || \
|
||||
+export FOAM_INST_DIR=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P) || \
|
||||
export FOAM_INST_DIR=$HOME/$WM_PROJECT
|
||||
+# For GNU Guix: set initially for build then re-set at runtime
|
||||
+#
|
||||
# export FOAM_INST_DIR=~$WM_PROJECT
|
||||
# export FOAM_INST_DIR=/opt/$WM_PROJECT
|
||||
# export FOAM_INST_DIR=/usr/local/$WM_PROJECT
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL
|
||||
@@ -36,37 +36,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
-boost_version=boost-system
|
||||
-cgal_version=cgal-system
|
||||
-#cgal_version=CGAL-4.8
|
||||
-
|
||||
-if [ -z "$SOURCE_CGAL_VERSIONS_ONLY" ]
|
||||
-then
|
||||
-
|
||||
- common_path=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||
-
|
||||
- export BOOST_ARCH_PATH=$common_path/$boost_version
|
||||
- export CGAL_ARCH_PATH=$common_path/$cgal_version
|
||||
-
|
||||
- if [ "$FOAM_VERBOSE" -a "$PS1" ]
|
||||
- then
|
||||
- echo "Using CGAL and boost" 1>&2
|
||||
- echo " $cgal_version at $CGAL_ARCH_PATH" 1>&2
|
||||
- echo " $boost_version at $BOOST_ARCH_PATH" 1>&2
|
||||
- fi
|
||||
-
|
||||
- if [ -d "$CGAL_ARCH_PATH" -a "$cgal_version" != "cgal-system" ]
|
||||
- then
|
||||
- _foamAddLib $CGAL_ARCH_PATH/lib
|
||||
- fi
|
||||
-
|
||||
- if [ -d "$BOOST_ARCH_PATH" -a "$boost_version" != "boost-system" ]
|
||||
- then
|
||||
- _foamAddLib $BOOST_ARCH_PATH/lib
|
||||
- fi
|
||||
-
|
||||
- unset boost_version cgal_version common_path
|
||||
-
|
||||
-fi
|
||||
+export CGAL_ARCH_PATH=$CGAL_ROOT
|
||||
+export BOOST_ARCH_PATH=$BOOST_ROOT
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools
|
||||
@@ -29,13 +29,5 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
-version=svn
|
||||
-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
|
||||
-
|
||||
-GPERFTOOLS_VERSION=gperftools-$version
|
||||
-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION
|
||||
-
|
||||
-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH
|
||||
-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis OpenFOAM-4.x-version-4.1/etc/config.sh/metis
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/config.sh/metis
|
||||
@@ -34,7 +34,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
-export METIS_VERSION=metis-5.1.0
|
||||
-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION
|
||||
+export METIS_VERSION=metis-$METISVERSION
|
||||
+export METIS_ARCH_PATH=$METIS_ROOT
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch OpenFOAM-4.x-version-4.1/etc/config.sh/scotch
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/config.sh/scotch
|
||||
@@ -37,7 +37,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
-export SCOTCH_VERSION=scotch_6.0.3
|
||||
-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION
|
||||
+export SCOTCH_VERSION=scotch_$SCOTCHVERSION
|
||||
+export SCOTCH_ARCH_PATH=$SCOTCH_ROOT
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings OpenFOAM-4.x-version-4.1/etc/config.sh/settings
|
||||
--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings
|
||||
+++ OpenFOAM-4.x-version-4.1/etc/config.sh/settings
|
||||
@@ -279,6 +279,9 @@
|
||||
;;
|
||||
system)
|
||||
# Use system compiler
|
||||
+ # Use system GMP and MPFR packages
|
||||
+ export GMP_ARCH_PATH=$GMP_ROOT
|
||||
+ export MPFR_ARCH_PATH=$MPFR_ROOT
|
||||
;;
|
||||
*)
|
||||
echo "Warn: WM_COMPILER_TYPE='$WM_COMPILER_TYPE' is unsupported" 1>&2
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options
|
||||
--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options
|
||||
+++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options
|
||||
@@ -5,8 +5,7 @@
|
||||
$(PFLAGS) $(PINC) \
|
||||
-I$(SCOTCH_ROOT)/include \
|
||||
-I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \
|
||||
- -I/usr/include/scotch \
|
||||
-I../decompositionMethods/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
|
||||
+ -L$(SCOTCH_ROOT)/lib -L$(MPI_ARCH_PATH)/lib -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options
|
||||
--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options
|
||||
+++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options
|
||||
@@ -9,8 +9,7 @@
|
||||
$(PFLAGS) $(PINC) \
|
||||
-I$(SCOTCH_ROOT)/include \
|
||||
-I$(SCOTCH_ARCH_PATH)/include \
|
||||
- -I/usr/include/scotch \
|
||||
-I../decompositionMethods/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt
|
||||
+ -L$(SCOTCH_ROOT)/lib -lscotch -lscotcherrexit -lrt
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general OpenFOAM-4.x-version-4.1/wmake/makefiles/general
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/makefiles/general
|
||||
@@ -33,7 +33,6 @@
|
||||
# The Makefile uses a POSIX shell
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
-SHELL = /bin/sh
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmake OpenFOAM-4.x-version-4.1/wmake/wmake
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/wmake
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/wmake
|
||||
@@ -163,7 +163,7 @@
|
||||
then
|
||||
if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ]
|
||||
then
|
||||
- lockDir=$HOME/.$WM_PROJECT/.wmake
|
||||
+ lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake
|
||||
|
||||
if [ -d $lockDir ]
|
||||
then
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler
|
||||
@@ -53,7 +53,7 @@
|
||||
# csh sets HOST, bash sets HOSTNAME
|
||||
: ${HOST:=$HOSTNAME}
|
||||
|
||||
-lockDir=$HOME/.$WM_PROJECT/.wmake
|
||||
+lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake
|
||||
|
||||
# Fallback - 1 core on current host
|
||||
: ${WM_HOSTS:=$HOST:1}
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime
|
||||
@@ -53,7 +53,7 @@
|
||||
# csh sets HOST, bash sets HOSTNAME
|
||||
: ${HOST:=$HOSTNAME}
|
||||
|
||||
-lockDir=$HOME/.$WM_PROJECT/.wmake
|
||||
+lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake
|
||||
# Fallback - 1 core on current host
|
||||
: ${WM_HOSTS:=$HOST:1}
|
||||
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C
|
||||
--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C
|
||||
+++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
// Processor weights initialised with no size, only used if specified in
|
||||
// a file
|
||||
- Field<scalar> processorWeights;
|
||||
+ Field<floatScalar> processorWeights;
|
||||
|
||||
// Cell weights (so on the vertices of the dual)
|
||||
List<label> cellWeights;
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL
|
||||
@@ -6,9 +6,10 @@
|
||||
-I/usr/include
|
||||
|
||||
CGAL_LIBS = \
|
||||
- -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
|
||||
- -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
|
||||
+ -L$(MPFR_ARCH_PATH)/lib \
|
||||
+ -L$(GMP_ARCH_PATH)/lib \
|
||||
-L$(BOOST_ARCH_PATH)/lib \
|
||||
-L$(CGAL_ARCH_PATH)/lib \
|
||||
-lCGAL \
|
||||
+ -lgmp \
|
||||
-lmpfr
|
||||
diff -ur OpenFOAM-4.x-version-4.1.org/wmake/rules/linux64Gcc/c++ OpenFOAM-4.x-version-4.1/wmake/rules/linux64Gcc/c++
|
||||
--- OpenFOAM-4.x-version-4.1.org/wmake/rules/linux64Gcc/c++
|
||||
+++ OpenFOAM-4.x-version-4.1/wmake/rules/linux64Gcc/c++
|
||||
@@ -20,5 +20,5 @@
|
||||
|
||||
LINK_LIBS = $(c++DBUG)
|
||||
|
||||
-LINKLIBSO = $(CC) $(c++FLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
|
||||
-LINKEXE = $(CC) $(c++FLAGS) -Xlinker --add-needed -Xlinker --no-as-needed
|
||||
+LINKLIBSO = $(CC) $(c++FLAGS) $(LDFLAGS) -shared -Xlinker --add-needed -Xlinker --no-as-needed
|
||||
+LINKEXE = $(CC) $(c++FLAGS) $(LDFLAGS) -Xlinker --add-needed -Xlinker --no-as-needed
|
46
gnu/packages/patches/openjpeg-CVE-2017-14151.patch
Normal file
46
gnu/packages/patches/openjpeg-CVE-2017-14151.patch
Normal file
|
@ -0,0 +1,46 @@
|
|||
https://github.com/uclouvain/openjpeg/commit/afb308b9ccbe129608c9205cf3bb39bbefad90b9.patch
|
||||
http://openwall.com/lists/oss-security/2017/09/06/1
|
||||
|
||||
From afb308b9ccbe129608c9205cf3bb39bbefad90b9 Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Mon, 14 Aug 2017 17:20:37 +0200
|
||||
Subject: [PATCH] Encoder: grow buffer size in
|
||||
opj_tcd_code_block_enc_allocate_data() to avoid write heap buffer overflow in
|
||||
opj_mqc_flush (#982)
|
||||
|
||||
---
|
||||
src/lib/openjp2/tcd.c | 7 +++++--
|
||||
tests/nonregression/test_suite.ctest.in | 2 ++
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c
|
||||
index 301c7213e..53cdcf64d 100644
|
||||
--- a/src/lib/openjp2/tcd.c
|
||||
+++ b/src/lib/openjp2/tcd.c
|
||||
@@ -1187,8 +1187,11 @@ static OPJ_BOOL opj_tcd_code_block_enc_allocate_data(opj_tcd_cblk_enc_t *
|
||||
{
|
||||
OPJ_UINT32 l_data_size;
|
||||
|
||||
- /* The +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */
|
||||
- l_data_size = 1 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) *
|
||||
+ /* +1 is needed for https://github.com/uclouvain/openjpeg/issues/835 */
|
||||
+ /* and actually +2 required for https://github.com/uclouvain/openjpeg/issues/982 */
|
||||
+ /* TODO: is there a theoretical upper-bound for the compressed code */
|
||||
+ /* block size ? */
|
||||
+ l_data_size = 2 + (OPJ_UINT32)((p_code_block->x1 - p_code_block->x0) *
|
||||
(p_code_block->y1 - p_code_block->y0) * (OPJ_INT32)sizeof(OPJ_UINT32));
|
||||
|
||||
if (l_data_size > p_code_block->data_size) {
|
||||
diff --git a/tests/nonregression/test_suite.ctest.in b/tests/nonregression/test_suite.ctest.in
|
||||
index aaf40d7d0..ffd964c2a 100644
|
||||
--- a/tests/nonregression/test_suite.ctest.in
|
||||
+++ b/tests/nonregression/test_suite.ctest.in
|
||||
@@ -169,6 +169,8 @@ opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_ban
|
||||
# Same rate as Bretagne2_4.j2k
|
||||
opj_compress -i @INPUT_NR_PATH@/Bretagne2.ppm -o @TEMP_PATH@/Bretagne2_empty_band_r800.j2k -t 2591,1943 -n 2 -r 800
|
||||
|
||||
+opj_compress -i @INPUT_NR_PATH@/issue982.bmp -o @TEMP_PATH@/issue982.j2k -n 1
|
||||
+
|
||||
# DECODER TEST SUITE
|
||||
opj_decompress -i @INPUT_NR_PATH@/Bretagne2.j2k -o @TEMP_PATH@/Bretagne2.j2k.pgx
|
||||
opj_decompress -i @INPUT_NR_PATH@/_00042.j2k -o @TEMP_PATH@/_00042.j2k.pgx
|
38
gnu/packages/patches/openjpeg-CVE-2017-14152.patch
Normal file
38
gnu/packages/patches/openjpeg-CVE-2017-14152.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
https://github.com/uclouvain/openjpeg/commit/4241ae6fbbf1de9658764a80944dc8108f2b4154.patch
|
||||
http://openwall.com/lists/oss-security/2017/09/06/2
|
||||
|
||||
From 4241ae6fbbf1de9658764a80944dc8108f2b4154 Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Tue, 15 Aug 2017 11:55:58 +0200
|
||||
Subject: [PATCH] Fix assertion in debug mode / heap-based buffer overflow in
|
||||
opj_write_bytes_LE for Cinema profiles with numresolutions = 1 (#985)
|
||||
|
||||
---
|
||||
src/lib/openjp2/j2k.c | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
|
||||
index a2521ebbc..54b490a8c 100644
|
||||
--- a/src/lib/openjp2/j2k.c
|
||||
+++ b/src/lib/openjp2/j2k.c
|
||||
@@ -6573,10 +6573,16 @@ static void opj_j2k_set_cinema_parameters(opj_cparameters_t *parameters,
|
||||
|
||||
/* Precincts */
|
||||
parameters->csty |= 0x01;
|
||||
- parameters->res_spec = parameters->numresolution - 1;
|
||||
- for (i = 0; i < parameters->res_spec; i++) {
|
||||
- parameters->prcw_init[i] = 256;
|
||||
- parameters->prch_init[i] = 256;
|
||||
+ if (parameters->numresolution == 1) {
|
||||
+ parameters->res_spec = 1;
|
||||
+ parameters->prcw_init[0] = 128;
|
||||
+ parameters->prch_init[0] = 128;
|
||||
+ } else {
|
||||
+ parameters->res_spec = parameters->numresolution - 1;
|
||||
+ for (i = 0; i < parameters->res_spec; i++) {
|
||||
+ parameters->prcw_init[i] = 256;
|
||||
+ parameters->prch_init[i] = 256;
|
||||
+ }
|
||||
}
|
||||
|
||||
/* The progression order shall be CPRL */
|
89
gnu/packages/patches/openjpeg-CVE-2017-14164.patch
Normal file
89
gnu/packages/patches/openjpeg-CVE-2017-14164.patch
Normal file
|
@ -0,0 +1,89 @@
|
|||
https://github.com/uclouvain/openjpeg/commit/dcac91b8c72f743bda7dbfa9032356bc8110098a.patch
|
||||
http://openwall.com/lists/oss-security/2017/09/06/3
|
||||
|
||||
From dcac91b8c72f743bda7dbfa9032356bc8110098a Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Wed, 16 Aug 2017 17:09:10 +0200
|
||||
Subject: [PATCH] opj_j2k_write_sot(): fix potential write heap buffer overflow
|
||||
(#991)
|
||||
|
||||
---
|
||||
src/lib/openjp2/j2k.c | 25 ++++++++++++++++++++-----
|
||||
1 file changed, 20 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
|
||||
index 54b490a8c..16915452e 100644
|
||||
--- a/src/lib/openjp2/j2k.c
|
||||
+++ b/src/lib/openjp2/j2k.c
|
||||
@@ -832,13 +832,15 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k,
|
||||
* Writes the SOT marker (Start of tile-part)
|
||||
*
|
||||
* @param p_j2k J2K codec.
|
||||
- * @param p_data FIXME DOC
|
||||
- * @param p_data_written FIXME DOC
|
||||
+ * @param p_data Output buffer
|
||||
+ * @param p_total_data_size Output buffer size
|
||||
+ * @param p_data_written Number of bytes written into stream
|
||||
* @param p_stream the stream to write data to.
|
||||
* @param p_manager the user event manager.
|
||||
*/
|
||||
static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k,
|
||||
OPJ_BYTE * p_data,
|
||||
+ OPJ_UINT32 p_total_data_size,
|
||||
OPJ_UINT32 * p_data_written,
|
||||
const opj_stream_private_t *p_stream,
|
||||
opj_event_mgr_t * p_manager);
|
||||
@@ -4201,6 +4203,7 @@ static OPJ_BOOL opj_j2k_write_tlm(opj_j2k_t *p_j2k,
|
||||
|
||||
static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k,
|
||||
OPJ_BYTE * p_data,
|
||||
+ OPJ_UINT32 p_total_data_size,
|
||||
OPJ_UINT32 * p_data_written,
|
||||
const opj_stream_private_t *p_stream,
|
||||
opj_event_mgr_t * p_manager
|
||||
@@ -4214,6 +4217,12 @@ static OPJ_BOOL opj_j2k_write_sot(opj_j2k_t *p_j2k,
|
||||
OPJ_UNUSED(p_stream);
|
||||
OPJ_UNUSED(p_manager);
|
||||
|
||||
+ if (p_total_data_size < 12) {
|
||||
+ opj_event_msg(p_manager, EVT_ERROR,
|
||||
+ "Not enough bytes in output buffer to write SOT marker\n");
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
+
|
||||
opj_write_bytes(p_data, J2K_MS_SOT,
|
||||
2); /* SOT */
|
||||
p_data += 2;
|
||||
@@ -11480,7 +11489,8 @@ static OPJ_BOOL opj_j2k_write_first_tile_part(opj_j2k_t *p_j2k,
|
||||
|
||||
l_current_nb_bytes_written = 0;
|
||||
l_begin_data = p_data;
|
||||
- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream,
|
||||
+ if (! opj_j2k_write_sot(p_j2k, p_data, p_total_data_size,
|
||||
+ &l_current_nb_bytes_written, p_stream,
|
||||
p_manager)) {
|
||||
return OPJ_FALSE;
|
||||
}
|
||||
@@ -11572,7 +11582,10 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k,
|
||||
l_part_tile_size = 0;
|
||||
l_begin_data = p_data;
|
||||
|
||||
- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream,
|
||||
+ if (! opj_j2k_write_sot(p_j2k, p_data,
|
||||
+ p_total_data_size,
|
||||
+ &l_current_nb_bytes_written,
|
||||
+ p_stream,
|
||||
p_manager)) {
|
||||
return OPJ_FALSE;
|
||||
}
|
||||
@@ -11615,7 +11628,9 @@ static OPJ_BOOL opj_j2k_write_all_tile_parts(opj_j2k_t *p_j2k,
|
||||
l_part_tile_size = 0;
|
||||
l_begin_data = p_data;
|
||||
|
||||
- if (! opj_j2k_write_sot(p_j2k, p_data, &l_current_nb_bytes_written, p_stream,
|
||||
+ if (! opj_j2k_write_sot(p_j2k, p_data,
|
||||
+ p_total_data_size,
|
||||
+ &l_current_nb_bytes_written, p_stream,
|
||||
p_manager)) {
|
||||
return OPJ_FALSE;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
Description: Use the markdown library provided by the libmarkdown2 package.
|
||||
Author: Alessandro Ghedini <al3xbio@gmail.com>
|
||||
Origin: vendor
|
||||
Forwarded: not-needed
|
||||
Last-Update: 2012-01-01
|
||||
|
||||
--- a/Makefile.PL
|
||||
+++ b/Makefile.PL
|
||||
@@ -57,12 +57,6 @@
|
||||
|
||||
|
||||
|
||||
-sub MY::postamble {
|
||||
- return sprintf('
|
||||
-$(MYEXTLIB):
|
||||
- %s
|
||||
-', qq{( cd $extdir; CC='cc -fPIC' sh configure.sh; make )\n});
|
||||
-}
|
||||
|
||||
WriteMakefile(
|
||||
NAME => 'Text::Markdown::Discount',
|
||||
@@ -71,8 +65,6 @@
|
||||
($] >= 5.005 ?
|
||||
(ABSTRACT_FROM => 'lib/Text/Markdown/Discount.pm',
|
||||
AUTHOR => 'Masayoshi Sekimura <sekimura@cpan.org>') : ()),
|
||||
- LIBS => '-L' . $extdir,
|
||||
- INC => '-I. -I' . $extdir,
|
||||
- MYEXTLIB => $myextlib,
|
||||
- clean => { FILES => $clean_files },
|
||||
+ LIBS => '-lmarkdown',
|
||||
+ INC => '-I.',
|
||||
);
|
28
gnu/packages/patches/python-acme-dont-use-openssl-rand.patch
Normal file
28
gnu/packages/patches/python-acme-dont-use-openssl-rand.patch
Normal file
|
@ -0,0 +1,28 @@
|
|||
Fix build with PyOpenSSL > 17.2.0.
|
||||
|
||||
See <https://github.com/certbot/certbot/issues/5111>.
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
https://github.com/certbot/certbot/commit/f6be07da74c664b57ac8c053585f919c79f9af44
|
||||
|
||||
diff --git a/acme/crypto_util.py b/acme/crypto_util.py
|
||||
index de15284c03..b8fba03488 100644
|
||||
--- a/acme/crypto_util.py
|
||||
+++ b/acme/crypto_util.py
|
||||
@@ -2,6 +2,7 @@
|
||||
import binascii
|
||||
import contextlib
|
||||
import logging
|
||||
+import os
|
||||
import re
|
||||
import socket
|
||||
import sys
|
||||
@@ -243,7 +244,7 @@ def gen_ss_cert(key, domains, not_before=None,
|
||||
"""
|
||||
assert domains, "Must provide one or more hostnames for the cert."
|
||||
cert = OpenSSL.crypto.X509()
|
||||
- cert.set_serial_number(int(binascii.hexlify(OpenSSL.rand.bytes(16)), 16))
|
||||
+ cert.set_serial_number(int(binascii.hexlify(os.urandom(16)), 16))
|
||||
cert.set_version(2)
|
||||
|
||||
extensions = [
|
89
gnu/packages/patches/qemu-CVE-2017-13711.patch
Normal file
89
gnu/packages/patches/qemu-CVE-2017-13711.patch
Normal file
|
@ -0,0 +1,89 @@
|
|||
Fix CVE-2017-13711:
|
||||
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13711
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
|
||||
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1201d308519f1e915866d7583d5136d03cc1d384
|
||||
|
||||
From 1201d308519f1e915866d7583d5136d03cc1d384 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
Date: Fri, 25 Aug 2017 01:35:53 +0200
|
||||
Subject: [PATCH] slirp: fix clearing ifq_so from pending packets
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The if_fastq and if_batchq contain not only packets, but queues of packets
|
||||
for the same socket. When sofree frees a socket, it thus has to clear ifq_so
|
||||
from all the packets from the queues, not only the first.
|
||||
|
||||
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||||
---
|
||||
slirp/socket.c | 39 +++++++++++++++++++++++----------------
|
||||
1 file changed, 23 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/slirp/socket.c b/slirp/socket.c
|
||||
index ecec0295a9..cb7b5b608d 100644
|
||||
--- a/slirp/socket.c
|
||||
+++ b/slirp/socket.c
|
||||
@@ -59,6 +59,27 @@ socreate(Slirp *slirp)
|
||||
return(so);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Remove references to so from the given message queue.
|
||||
+ */
|
||||
+static void
|
||||
+soqfree(struct socket *so, struct quehead *qh)
|
||||
+{
|
||||
+ struct mbuf *ifq;
|
||||
+
|
||||
+ for (ifq = (struct mbuf *) qh->qh_link;
|
||||
+ (struct quehead *) ifq != qh;
|
||||
+ ifq = ifq->ifq_next) {
|
||||
+ if (ifq->ifq_so == so) {
|
||||
+ struct mbuf *ifm;
|
||||
+ ifq->ifq_so = NULL;
|
||||
+ for (ifm = ifq->ifs_next; ifm != ifq; ifm = ifm->ifs_next) {
|
||||
+ ifm->ifq_so = NULL;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* remque and free a socket, clobber cache
|
||||
*/
|
||||
@@ -66,23 +87,9 @@ void
|
||||
sofree(struct socket *so)
|
||||
{
|
||||
Slirp *slirp = so->slirp;
|
||||
- struct mbuf *ifm;
|
||||
|
||||
- for (ifm = (struct mbuf *) slirp->if_fastq.qh_link;
|
||||
- (struct quehead *) ifm != &slirp->if_fastq;
|
||||
- ifm = ifm->ifq_next) {
|
||||
- if (ifm->ifq_so == so) {
|
||||
- ifm->ifq_so = NULL;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- for (ifm = (struct mbuf *) slirp->if_batchq.qh_link;
|
||||
- (struct quehead *) ifm != &slirp->if_batchq;
|
||||
- ifm = ifm->ifq_next) {
|
||||
- if (ifm->ifq_so == so) {
|
||||
- ifm->ifq_so = NULL;
|
||||
- }
|
||||
- }
|
||||
+ soqfree(so, &slirp->if_fastq);
|
||||
+ soqfree(so, &slirp->if_batchq);
|
||||
|
||||
if (so->so_emu==EMU_RSH && so->extra) {
|
||||
sofree(so->extra);
|
||||
--
|
||||
2.14.1
|
||||
|
69
gnu/packages/patches/qemu-CVE-2017-14167.patch
Normal file
69
gnu/packages/patches/qemu-CVE-2017-14167.patch
Normal file
|
@ -0,0 +1,69 @@
|
|||
Fix CVE-2017-14167:
|
||||
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14167
|
||||
http://seclists.org/oss-sec/2017/q3/407
|
||||
|
||||
Patch copied from upstream development mailing list:
|
||||
|
||||
https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg01483.html
|
||||
|
||||
From: Prasad J Pandit <address@hidden>
|
||||
|
||||
While loading kernel via multiboot-v1 image, (flags & 0x00010000)
|
||||
indicates that multiboot header contains valid addresses to load
|
||||
the kernel image. These addresses are used to compute kernel
|
||||
size and kernel text offset in the OS image. Validate these
|
||||
address values to avoid an OOB access issue.
|
||||
|
||||
This is CVE-2017-14167.
|
||||
|
||||
Reported-by: Thomas Garnier <address@hidden>
|
||||
Signed-off-by: Prasad J Pandit <address@hidden>
|
||||
---
|
||||
hw/i386/multiboot.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
Update: add CVE-ID to the commit message.
|
||||
|
||||
diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
|
||||
index 6001f4caa2..c7b70c91d5 100644
|
||||
--- a/hw/i386/multiboot.c
|
||||
+++ b/hw/i386/multiboot.c
|
||||
@@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg,
|
||||
uint32_t mh_header_addr = ldl_p(header+i+12);
|
||||
uint32_t mh_load_end_addr = ldl_p(header+i+20);
|
||||
uint32_t mh_bss_end_addr = ldl_p(header+i+24);
|
||||
+
|
||||
mh_load_addr = ldl_p(header+i+16);
|
||||
+ if (mh_header_addr < mh_load_addr) {
|
||||
+ fprintf(stderr, "invalid mh_load_addr address\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr);
|
||||
uint32_t mb_load_size = 0;
|
||||
mh_entry_addr = ldl_p(header+i+28);
|
||||
|
||||
if (mh_load_end_addr) {
|
||||
+ if (mh_bss_end_addr < mh_load_addr) {
|
||||
+ fprintf(stderr, "invalid mh_bss_end_addr address\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
mb_kernel_size = mh_bss_end_addr - mh_load_addr;
|
||||
+
|
||||
+ if (mh_load_end_addr < mh_load_addr) {
|
||||
+ fprintf(stderr, "invalid mh_load_end_addr address\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
mb_load_size = mh_load_end_addr - mh_load_addr;
|
||||
} else {
|
||||
+ if (kernel_file_size < mb_kernel_text_offset) {
|
||||
+ fprintf(stderr, "invalid kernel_file_size\n");
|
||||
+ exit(1);
|
||||
+ }
|
||||
mb_kernel_size = kernel_file_size - mb_kernel_text_offset;
|
||||
mb_load_size = mb_kernel_size;
|
||||
}
|
||||
--
|
||||
2.13.5
|
||||
|
|
@ -1,355 +0,0 @@
|
|||
diff --git lib/rubygems.rb lib/rubygems.rb
|
||||
index f48496aa31..0e1855b148 100644
|
||||
--- ruby-2.2.7/lib/rubygems.rb
|
||||
+++ ruby-2.2.7/lib/rubygems.rb
|
||||
@@ -9,7 +9,7 @@ require 'rbconfig'
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = '2.4.5.2'
|
||||
+ VERSION = '2.4.5.3'
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
diff --git lib/rubygems/commands/query_command.rb lib/rubygems/commands/query_command.rb
|
||||
index 432250e033..44364cfab2 100644
|
||||
--- ruby-2.2.7/lib/rubygems/commands/query_command.rb
|
||||
+++ ruby-2.2.7/lib/rubygems/commands/query_command.rb
|
||||
@@ -218,7 +218,7 @@ is too hard to use.
|
||||
end
|
||||
end
|
||||
|
||||
- output << make_entry(matching_tuples, platforms)
|
||||
+ output << clean_text(make_entry(matching_tuples, platforms))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -336,7 +336,8 @@ is too hard to use.
|
||||
end
|
||||
|
||||
def spec_summary entry, spec
|
||||
- entry << "\n\n" << format_text(spec.summary, 68, 4)
|
||||
+ summary = truncate_text(spec.summary, "the summary for #{spec.full_name}")
|
||||
+ entry << "\n\n" << format_text(summary, 68, 4)
|
||||
end
|
||||
|
||||
end
|
||||
diff --git lib/rubygems/installer.rb lib/rubygems/installer.rb
|
||||
index 10fc1a34a5..a27569fe2e 100644
|
||||
--- ruby-2.2.7/lib/rubygems/installer.rb
|
||||
+++ ruby-2.2.7/lib/rubygems/installer.rb
|
||||
@@ -646,6 +646,11 @@ class Gem::Installer
|
||||
unpack or File.writable?(gem_home)
|
||||
end
|
||||
|
||||
+ def verify_spec_name
|
||||
+ return if spec.name =~ Gem::Specification::VALID_NAME_PATTERN
|
||||
+ raise Gem::InstallError, "#{spec} has an invalid name"
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Return the text for an application file.
|
||||
|
||||
@@ -771,6 +776,8 @@ TEXT
|
||||
|
||||
ensure_loadable_spec
|
||||
|
||||
+ verify_spec_name
|
||||
+
|
||||
if options[:install_as_default]
|
||||
Gem.ensure_default_gem_subdirectories gem_home
|
||||
else
|
||||
diff --git lib/rubygems/remote_fetcher.rb lib/rubygems/remote_fetcher.rb
|
||||
index b1f6dd17fc..2b9d61c0a1 100644
|
||||
--- ruby-2.2.7/lib/rubygems/remote_fetcher.rb
|
||||
+++ ruby-2.2.7/lib/rubygems/remote_fetcher.rb
|
||||
@@ -96,7 +96,7 @@ class Gem::RemoteFetcher
|
||||
else
|
||||
target = res.target.to_s.strip
|
||||
|
||||
- if /\.#{Regexp.quote(host)}\z/ =~ target
|
||||
+ if URI("http://" + target).host.end_with?(".#{host}")
|
||||
return URI.parse "#{uri.scheme}://#{target}#{uri.path}"
|
||||
end
|
||||
|
||||
diff --git lib/rubygems/specification.rb lib/rubygems/specification.rb
|
||||
index ab1cd92270..faca837128 100644
|
||||
--- ruby-2.2.7/lib/rubygems/specification.rb
|
||||
+++ ruby-2.2.7/lib/rubygems/specification.rb
|
||||
@@ -106,6 +106,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||
|
||||
private_constant :LOAD_CACHE if defined? private_constant
|
||||
|
||||
+ VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:
|
||||
+
|
||||
# :startdoc:
|
||||
|
||||
##
|
||||
@@ -2477,9 +2479,15 @@ class Gem::Specification < Gem::BasicSpecification
|
||||
end
|
||||
end
|
||||
|
||||
- unless String === name then
|
||||
+ if !name.is_a?(String) then
|
||||
raise Gem::InvalidSpecificationException,
|
||||
- "invalid value for attribute name: \"#{name.inspect}\""
|
||||
+ "invalid value for attribute name: \"#{name.inspect}\" must be a string"
|
||||
+ elsif name !~ /[a-zA-Z]/ then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} must include at least one letter"
|
||||
+ elsif name !~ VALID_NAME_PATTERN then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} can only include letters, numbers, dashes, and underscores"
|
||||
end
|
||||
|
||||
if raw_require_paths.empty? then
|
||||
diff --git lib/rubygems/text.rb lib/rubygems/text.rb
|
||||
index 5c9287ad2e..86a722ffc0 100644
|
||||
--- ruby-2.2.7/lib/rubygems/text.rb
|
||||
+++ ruby-2.2.7/lib/rubygems/text.rb
|
||||
@@ -5,13 +5,26 @@ require 'rubygems'
|
||||
|
||||
module Gem::Text
|
||||
|
||||
+ ##
|
||||
+ # Remove any non-printable characters and make the text suitable for
|
||||
+ # printing.
|
||||
+ def clean_text(text)
|
||||
+ text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
|
||||
+ end
|
||||
+
|
||||
+ def truncate_text(text, description, max_length = 100_000)
|
||||
+ raise ArgumentError, "max_length must be positive" unless max_length > 0
|
||||
+ return text if text.size <= max_length
|
||||
+ "Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Wraps +text+ to +wrap+ characters and optionally indents by +indent+
|
||||
# characters
|
||||
|
||||
def format_text(text, wrap, indent=0)
|
||||
result = []
|
||||
- work = text.dup
|
||||
+ work = clean_text(text)
|
||||
|
||||
while work.length > wrap do
|
||||
if work =~ /^(.{0,#{wrap}})[ \n]/ then
|
||||
diff --git test/rubygems/test_gem_commands_query_command.rb test/rubygems/test_gem_commands_query_command.rb
|
||||
index 43fa82571d..ccd2621874 100644
|
||||
--- ruby-2.2.7/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ ruby-2.2.7/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -147,6 +147,86 @@ a (2)
|
||||
This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
This is a lot of text.
|
||||
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_cleans_text
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 4
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
+ This is a lot of text.
|
||||
+
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_truncates_summary
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 10_000
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ Truncating the summary for a-2 to 100,000 characters:
|
||||
+#{" This is a lot of text. This is a lot of text. This is a lot of text.\n" * 1449} This is a lot of te
|
||||
+
|
||||
pl (1)
|
||||
Platform: i386-linux
|
||||
Author: A User
|
||||
diff --git test/rubygems/test_gem_installer.rb test/rubygems/test_gem_installer.rb
|
||||
index 6f8012feb8..aba73af181 100644
|
||||
--- ruby-2.2.7/test/rubygems/test_gem_installer.rb
|
||||
+++ ruby-2.2.7/test/rubygems/test_gem_installer.rb
|
||||
@@ -1214,6 +1214,26 @@ gem 'other', version
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_pre_install_checks_malicious_name
|
||||
+ spec = util_spec '../malicious', '1'
|
||||
+ def spec.full_name # so the spec is buildable
|
||||
+ "malicious-1"
|
||||
+ end
|
||||
+ def spec.validate; end
|
||||
+
|
||||
+ util_build_gem spec
|
||||
+
|
||||
+ gem = File.join(@gemhome, 'cache', spec.file_name)
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @installer = Gem::Installer.at gem
|
||||
+ e = assert_raises Gem::InstallError do
|
||||
+ @installer.pre_install_checks
|
||||
+ end
|
||||
+ assert_equal '#<Gem::Specification name=../malicious version=1> has an invalid name', e.message
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_shebang
|
||||
util_make_exec @spec, "#!/usr/bin/ruby"
|
||||
|
||||
diff --git test/rubygems/test_gem_remote_fetcher.rb test/rubygems/test_gem_remote_fetcher.rb
|
||||
index 63dd8feb38..ca4627810b 100644
|
||||
--- ruby-2.2.7/test/rubygems/test_gem_remote_fetcher.rb
|
||||
+++ ruby-2.2.7/test/rubygems/test_gem_remote_fetcher.rb
|
||||
@@ -181,6 +181,21 @@ gems:
|
||||
dns.verify
|
||||
end
|
||||
|
||||
+ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original_in_path
|
||||
+ uri = URI.parse "http://example.com/foo"
|
||||
+ target = MiniTest::Mock.new
|
||||
+ target.expect :target, "evil.com/a.example.com"
|
||||
+
|
||||
+ dns = MiniTest::Mock.new
|
||||
+ dns.expect :getresource, target, [String, Object]
|
||||
+
|
||||
+ fetch = Gem::RemoteFetcher.new nil, dns
|
||||
+ assert_equal URI.parse("http://example.com/foo"), fetch.api_endpoint(uri)
|
||||
+
|
||||
+ target.verify
|
||||
+ dns.verify
|
||||
+ end
|
||||
+
|
||||
def test_api_endpoint_ignores_trans_domain_values
|
||||
uri = URI.parse "http://gems.example.com/foo"
|
||||
target = MiniTest::Mock.new
|
||||
diff --git test/rubygems/test_gem_specification.rb test/rubygems/test_gem_specification.rb
|
||||
index 3cadc55d5d..4f7076a03a 100644
|
||||
--- ruby-2.2.7/test/rubygems/test_gem_specification.rb
|
||||
+++ ruby-2.2.7/test/rubygems/test_gem_specification.rb
|
||||
@@ -2610,7 +2610,37 @@ http://opensource.org/licenses/alphabetical
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
- assert_equal 'invalid value for attribute name: ":json"', e.message
|
||||
+ assert_equal 'invalid value for attribute name: ":json" must be a string', e.message
|
||||
+
|
||||
+ @a1.name = []
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"[]\" must be a string", e.message
|
||||
+
|
||||
+ @a1.name = ""
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "12345"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"12345\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "../malicious"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"../malicious\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
+
|
||||
+ @a1.name = "\ba\t"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\\ba\\t\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
end
|
||||
|
||||
def test_validate_non_nil
|
||||
diff --git test/rubygems/test_gem_text.rb test/rubygems/test_gem_text.rb
|
||||
index e5cfc41e61..9b270b481b 100644
|
||||
--- ruby-2.2.7/test/rubygems/test_gem_text.rb
|
||||
+++ ruby-2.2.7/test/rubygems/test_gem_text.rb
|
||||
@@ -35,6 +35,10 @@ Without the wrapping, the text might not look good in the RSS feed.
|
||||
assert_equal expected, format_text(text, 78)
|
||||
end
|
||||
|
||||
+ def test_format_removes_nonprintable_characters
|
||||
+ assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
|
||||
+ end
|
||||
+
|
||||
def test_min3
|
||||
assert_equal 1, min3(1, 1, 1)
|
||||
assert_equal 1, min3(1, 1, 2)
|
||||
@@ -71,4 +75,11 @@ Without the wrapping, the text might not look good in the RSS feed.
|
||||
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
|
||||
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
|
||||
end
|
||||
+
|
||||
+ def test_truncate_text
|
||||
+ assert_equal "abc", truncate_text("abc", "desc")
|
||||
+ assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
|
||||
+ s = "ab" * 500_001
|
||||
+ assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
||||
+ end
|
||||
end
|
|
@ -1,355 +0,0 @@
|
|||
diff --git lib/rubygems.rb lib/rubygems.rb
|
||||
index 04031c765c..9c0219ce06 100644
|
||||
--- ruby-2.3.4/lib/rubygems.rb
|
||||
+++ ruby-2.3.4/lib/rubygems.rb
|
||||
@@ -10,7 +10,7 @@
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = '2.5.2'
|
||||
+ VERSION = '2.5.2.1'
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
diff --git lib/rubygems/commands/query_command.rb lib/rubygems/commands/query_command.rb
|
||||
index d6196b44ed..61e9808860 100644
|
||||
--- ruby-2.3.4/lib/rubygems/commands/query_command.rb
|
||||
+++ ruby-2.3.4/lib/rubygems/commands/query_command.rb
|
||||
@@ -226,7 +226,7 @@ def output_versions output, versions
|
||||
end
|
||||
end
|
||||
|
||||
- output << make_entry(matching_tuples, platforms)
|
||||
+ output << clean_text(make_entry(matching_tuples, platforms))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -344,7 +344,8 @@ def spec_platforms entry, platforms
|
||||
end
|
||||
|
||||
def spec_summary entry, spec
|
||||
- entry << "\n\n" << format_text(spec.summary, 68, 4)
|
||||
+ summary = truncate_text(spec.summary, "the summary for #{spec.full_name}")
|
||||
+ entry << "\n\n" << format_text(summary, 68, 4)
|
||||
end
|
||||
|
||||
end
|
||||
diff --git lib/rubygems/installer.rb lib/rubygems/installer.rb
|
||||
index 85358e0d1a..709b77d126 100644
|
||||
--- ruby-2.3.4/lib/rubygems/installer.rb
|
||||
+++ ruby-2.3.4/lib/rubygems/installer.rb
|
||||
@@ -693,6 +693,11 @@ def verify_gem_home(unpack = false) # :nodoc:
|
||||
unpack or File.writable?(gem_home)
|
||||
end
|
||||
|
||||
+ def verify_spec_name
|
||||
+ return if spec.name =~ Gem::Specification::VALID_NAME_PATTERN
|
||||
+ raise Gem::InstallError, "#{spec} has an invalid name"
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Return the text for an application file.
|
||||
|
||||
@@ -812,6 +817,8 @@ def pre_install_checks
|
||||
|
||||
ensure_loadable_spec
|
||||
|
||||
+ verify_spec_name
|
||||
+
|
||||
if options[:install_as_default]
|
||||
Gem.ensure_default_gem_subdirectories gem_home
|
||||
else
|
||||
diff --git lib/rubygems/remote_fetcher.rb lib/rubygems/remote_fetcher.rb
|
||||
index fda1e067ef..254bebfadf 100644
|
||||
--- ruby-2.3.4/lib/rubygems/remote_fetcher.rb
|
||||
+++ ruby-2.3.4/lib/rubygems/remote_fetcher.rb
|
||||
@@ -104,7 +104,7 @@ def api_endpoint(uri)
|
||||
else
|
||||
target = res.target.to_s.strip
|
||||
|
||||
- if /\.#{Regexp.quote(host)}\z/ =~ target
|
||||
+ if URI("http://" + target).host.end_with?(".#{host}")
|
||||
return URI.parse "#{uri.scheme}://#{target}#{uri.path}"
|
||||
end
|
||||
|
||||
diff --git lib/rubygems/specification.rb lib/rubygems/specification.rb
|
||||
index 8e2557cdb2..dd4fde1776 100644
|
||||
--- ruby-2.3.4/lib/rubygems/specification.rb
|
||||
+++ ruby-2.3.4/lib/rubygems/specification.rb
|
||||
@@ -108,6 +108,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||
|
||||
private_constant :LOAD_CACHE if defined? private_constant
|
||||
|
||||
+ VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:
|
||||
+
|
||||
# :startdoc:
|
||||
|
||||
##
|
||||
@@ -2665,9 +2667,15 @@ def validate packaging = true
|
||||
end
|
||||
end
|
||||
|
||||
- unless String === name then
|
||||
+ if !name.is_a?(String) then
|
||||
raise Gem::InvalidSpecificationException,
|
||||
- "invalid value for attribute name: \"#{name.inspect}\""
|
||||
+ "invalid value for attribute name: \"#{name.inspect}\" must be a string"
|
||||
+ elsif name !~ /[a-zA-Z]/ then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} must include at least one letter"
|
||||
+ elsif name !~ VALID_NAME_PATTERN then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} can only include letters, numbers, dashes, and underscores"
|
||||
end
|
||||
|
||||
if raw_require_paths.empty? then
|
||||
diff --git lib/rubygems/text.rb lib/rubygems/text.rb
|
||||
index 732f1b99f2..b944b62c27 100644
|
||||
--- ruby-2.3.4/lib/rubygems/text.rb
|
||||
+++ ruby-2.3.4/lib/rubygems/text.rb
|
||||
@@ -6,13 +6,26 @@
|
||||
|
||||
module Gem::Text
|
||||
|
||||
+ ##
|
||||
+ # Remove any non-printable characters and make the text suitable for
|
||||
+ # printing.
|
||||
+ def clean_text(text)
|
||||
+ text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
|
||||
+ end
|
||||
+
|
||||
+ def truncate_text(text, description, max_length = 100_000)
|
||||
+ raise ArgumentError, "max_length must be positive" unless max_length > 0
|
||||
+ return text if text.size <= max_length
|
||||
+ "Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Wraps +text+ to +wrap+ characters and optionally indents by +indent+
|
||||
# characters
|
||||
|
||||
def format_text(text, wrap, indent=0)
|
||||
result = []
|
||||
- work = text.dup
|
||||
+ work = clean_text(text)
|
||||
|
||||
while work.length > wrap do
|
||||
if work =~ /^(.{0,#{wrap}})[ \n]/ then
|
||||
diff --git test/rubygems/test_gem_commands_query_command.rb test/rubygems/test_gem_commands_query_command.rb
|
||||
index 78c15a1770..9ec715492f 100644
|
||||
--- ruby-2.3.4/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ ruby-2.3.4/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -116,6 +116,86 @@ def test_execute_details
|
||||
This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
This is a lot of text.
|
||||
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_cleans_text
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 4
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
+ This is a lot of text.
|
||||
+
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_truncates_summary
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 10_000
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ Truncating the summary for a-2 to 100,000 characters:
|
||||
+#{" This is a lot of text. This is a lot of text. This is a lot of text.\n" * 1449} This is a lot of te
|
||||
+
|
||||
pl (1)
|
||||
Platform: i386-linux
|
||||
Author: A User
|
||||
diff --git test/rubygems/test_gem_installer.rb test/rubygems/test_gem_installer.rb
|
||||
index 5ec71d0a01..1092a0c68f 100644
|
||||
--- ruby-2.3.4/test/rubygems/test_gem_installer.rb
|
||||
+++ ruby-2.3.4/test/rubygems/test_gem_installer.rb
|
||||
@@ -1227,6 +1227,26 @@ def test_pre_install_checks_wrong_rubygems_version
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_pre_install_checks_malicious_name
|
||||
+ spec = util_spec '../malicious', '1'
|
||||
+ def spec.full_name # so the spec is buildable
|
||||
+ "malicious-1"
|
||||
+ end
|
||||
+ def spec.validate; end
|
||||
+
|
||||
+ util_build_gem spec
|
||||
+
|
||||
+ gem = File.join(@gemhome, 'cache', spec.file_name)
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @installer = Gem::Installer.at gem
|
||||
+ e = assert_raises Gem::InstallError do
|
||||
+ @installer.pre_install_checks
|
||||
+ end
|
||||
+ assert_equal '#<Gem::Specification name=../malicious version=1> has an invalid name', e.message
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_shebang
|
||||
util_make_exec @spec, "#!/usr/bin/ruby"
|
||||
|
||||
diff --git test/rubygems/test_gem_remote_fetcher.rb test/rubygems/test_gem_remote_fetcher.rb
|
||||
index 49b6b6656c..a3919c8ef2 100644
|
||||
--- ruby-2.3.4/test/rubygems/test_gem_remote_fetcher.rb
|
||||
+++ ruby-2.3.4/test/rubygems/test_gem_remote_fetcher.rb
|
||||
@@ -253,6 +253,21 @@ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original
|
||||
dns.verify
|
||||
end
|
||||
|
||||
+ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original_in_path
|
||||
+ uri = URI.parse "http://example.com/foo"
|
||||
+ target = MiniTest::Mock.new
|
||||
+ target.expect :target, "evil.com/a.example.com"
|
||||
+
|
||||
+ dns = MiniTest::Mock.new
|
||||
+ dns.expect :getresource, target, [String, Object]
|
||||
+
|
||||
+ fetch = Gem::RemoteFetcher.new nil, dns
|
||||
+ assert_equal URI.parse("http://example.com/foo"), fetch.api_endpoint(uri)
|
||||
+
|
||||
+ target.verify
|
||||
+ dns.verify
|
||||
+ end
|
||||
+
|
||||
def test_api_endpoint_timeout_warning
|
||||
uri = URI.parse "http://gems.example.com/foo"
|
||||
|
||||
diff --git test/rubygems/test_gem_specification.rb test/rubygems/test_gem_specification.rb
|
||||
index bc1c8d2ca7..9a49bbbf59 100644
|
||||
--- ruby-2.3.4/test/rubygems/test_gem_specification.rb
|
||||
+++ ruby-2.3.4/test/rubygems/test_gem_specification.rb
|
||||
@@ -2974,7 +2974,37 @@ def test_validate_name
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
- assert_equal 'invalid value for attribute name: ":json"', e.message
|
||||
+ assert_equal 'invalid value for attribute name: ":json" must be a string', e.message
|
||||
+
|
||||
+ @a1.name = []
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"[]\" must be a string", e.message
|
||||
+
|
||||
+ @a1.name = ""
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "12345"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"12345\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "../malicious"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"../malicious\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
+
|
||||
+ @a1.name = "\ba\t"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\\ba\\t\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
end
|
||||
|
||||
def test_validate_non_nil
|
||||
diff --git test/rubygems/test_gem_text.rb test/rubygems/test_gem_text.rb
|
||||
index a6e22e04da..04f3f605e8 100644
|
||||
--- ruby-2.3.4/test/rubygems/test_gem_text.rb
|
||||
+++ ruby-2.3.4/test/rubygems/test_gem_text.rb
|
||||
@@ -36,6 +36,10 @@ def test_format_text_trailing # for two spaces after .
|
||||
assert_equal expected, format_text(text, 78)
|
||||
end
|
||||
|
||||
+ def test_format_removes_nonprintable_characters
|
||||
+ assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
|
||||
+ end
|
||||
+
|
||||
def test_min3
|
||||
assert_equal 1, min3(1, 1, 1)
|
||||
assert_equal 1, min3(1, 1, 2)
|
||||
@@ -74,4 +78,11 @@ def test_levenshtein_distance_replace
|
||||
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
|
||||
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
|
||||
end
|
||||
+
|
||||
+ def test_truncate_text
|
||||
+ assert_equal "abc", truncate_text("abc", "desc")
|
||||
+ assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
|
||||
+ s = "ab" * 500_001
|
||||
+ assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
||||
+ end
|
||||
end
|
|
@ -1,437 +0,0 @@
|
|||
diff --git lib/rubygems.rb lib/rubygems.rb
|
||||
index 5cd1a4c47a..bc5bf9b4c2 100644
|
||||
--- ruby-2.4.1/lib/rubygems.rb
|
||||
+++ ruby-2.4.1/lib/rubygems.rb
|
||||
@@ -10,7 +10,7 @@
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = "2.6.11"
|
||||
+ VERSION = "2.6.12"
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
@@ -234,6 +234,7 @@ def self.needs
|
||||
|
||||
def self.finish_resolve(request_set=Gem::RequestSet.new)
|
||||
request_set.import Gem::Specification.unresolved_deps.values
|
||||
+ request_set.import Gem.loaded_specs.values.map {|s| Gem::Dependency.new(s.name, s.version) }
|
||||
|
||||
request_set.resolve_current.each do |s|
|
||||
s.full_spec.activate
|
||||
diff --git lib/rubygems/commands/open_command.rb lib/rubygems/commands/open_command.rb
|
||||
index a89b7421e3..059635e835 100644
|
||||
--- ruby-2.4.1/lib/rubygems/commands/open_command.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/commands/open_command.rb
|
||||
@@ -72,7 +72,7 @@ def open_editor path
|
||||
end
|
||||
|
||||
def spec_for name
|
||||
- spec = Gem::Specification.find_all_by_name(name, @version).last
|
||||
+ spec = Gem::Specification.find_all_by_name(name, @version).first
|
||||
|
||||
return spec if spec
|
||||
|
||||
diff --git lib/rubygems/commands/query_command.rb lib/rubygems/commands/query_command.rb
|
||||
index f25d120b88..70f8127292 100644
|
||||
--- ruby-2.4.1/lib/rubygems/commands/query_command.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/commands/query_command.rb
|
||||
@@ -86,7 +86,7 @@ def execute
|
||||
name = Array(options[:name])
|
||||
else
|
||||
args = options[:args].to_a
|
||||
- name = options[:exact] ? args : args.map{|arg| /#{arg}/i }
|
||||
+ name = options[:exact] ? args.map{|arg| /\A#{Regexp.escape(arg)}\Z/ } : args.map{|arg| /#{arg}/i }
|
||||
end
|
||||
|
||||
prerelease = options[:prerelease]
|
||||
diff --git lib/rubygems/commands/sources_command.rb lib/rubygems/commands/sources_command.rb
|
||||
index 9832afd214..7e46963a4c 100644
|
||||
--- ruby-2.4.1/lib/rubygems/commands/sources_command.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/commands/sources_command.rb
|
||||
@@ -44,7 +44,7 @@ def add_source source_uri # :nodoc:
|
||||
source = Gem::Source.new source_uri
|
||||
|
||||
begin
|
||||
- if Gem.sources.include? source_uri then
|
||||
+ if Gem.sources.include? source then
|
||||
say "source #{source_uri} already present in the cache"
|
||||
else
|
||||
source.load_specs :released
|
||||
diff --git lib/rubygems/dependency_list.rb lib/rubygems/dependency_list.rb
|
||||
index 35fe7c4c1a..d8314eaf60 100644
|
||||
--- ruby-2.4.1/lib/rubygems/dependency_list.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/dependency_list.rb
|
||||
@@ -104,7 +104,7 @@ def find_name(full_name)
|
||||
end
|
||||
|
||||
def inspect # :nodoc:
|
||||
- "#<%s:0x%x %p>" % [self.class, object_id, map { |s| s.full_name }]
|
||||
+ "%s %p>" % [super[0..-2], map { |s| s.full_name }]
|
||||
end
|
||||
|
||||
##
|
||||
diff --git lib/rubygems/installer.rb lib/rubygems/installer.rb
|
||||
index f4d3e728de..967543c2d1 100644
|
||||
--- ruby-2.4.1/lib/rubygems/installer.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/installer.rb
|
||||
@@ -214,7 +214,7 @@ def check_executable_overwrite filename # :nodoc:
|
||||
|
||||
ruby_executable = true
|
||||
existing = io.read.slice(%r{
|
||||
- ^(
|
||||
+ ^\s*(
|
||||
gem \s |
|
||||
load \s Gem\.bin_path\( |
|
||||
load \s Gem\.activate_bin_path\(
|
||||
@@ -701,6 +701,8 @@ def verify_gem_home(unpack = false) # :nodoc:
|
||||
# Return the text for an application file.
|
||||
|
||||
def app_script_text(bin_file_name)
|
||||
+ # note that the `load` lines cannot be indented, as old RG versions match
|
||||
+ # against the beginning of the line
|
||||
return <<-TEXT
|
||||
#{shebang bin_file_name}
|
||||
#
|
||||
@@ -723,7 +725,12 @@ def app_script_text(bin_file_name)
|
||||
end
|
||||
end
|
||||
|
||||
+if Gem.respond_to?(:activate_bin_path)
|
||||
load Gem.activate_bin_path('#{spec.name}', '#{bin_file_name}', version)
|
||||
+else
|
||||
+gem #{spec.name.dump}, version
|
||||
+load Gem.bin_path(#{spec.name.dump}, #{bin_file_name.dump}, version)
|
||||
+end
|
||||
TEXT
|
||||
end
|
||||
|
||||
diff --git lib/rubygems/platform.rb lib/rubygems/platform.rb
|
||||
index d22d91ae54..2dd9ed5782 100644
|
||||
--- ruby-2.4.1/lib/rubygems/platform.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/platform.rb
|
||||
@@ -112,7 +112,7 @@ def initialize(arch)
|
||||
end
|
||||
|
||||
def inspect
|
||||
- "#<%s:0x%x @cpu=%p, @os=%p, @version=%p>" % [self.class, object_id, *to_a]
|
||||
+ "%s @cpu=%p, @os=%p, @version=%p>" % [super[0..-2], *to_a]
|
||||
end
|
||||
|
||||
def to_a
|
||||
diff --git lib/rubygems/security.rb lib/rubygems/security.rb
|
||||
index 119d6d56f7..6963ca156f 100644
|
||||
--- ruby-2.4.1/lib/rubygems/security.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/security.rb
|
||||
@@ -455,7 +455,7 @@ def self.create_cert_self_signed subject, key, age = ONE_YEAR,
|
||||
|
||||
##
|
||||
# Creates a new key pair of the specified +length+ and +algorithm+. The
|
||||
- # default is a 2048 bit RSA key.
|
||||
+ # default is a 3072 bit RSA key.
|
||||
|
||||
def self.create_key length = KEY_LENGTH, algorithm = KEY_ALGORITHM
|
||||
algorithm.new length
|
||||
diff --git lib/rubygems/server.rb lib/rubygems/server.rb
|
||||
index 81df0e608e..df4eb566d3 100644
|
||||
--- ruby-2.4.1/lib/rubygems/server.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/server.rb
|
||||
@@ -657,7 +657,7 @@ def root(req, res)
|
||||
"only_one_executable" => true,
|
||||
"full_name" => "rubygems-#{Gem::VERSION}",
|
||||
"has_deps" => false,
|
||||
- "homepage" => "http://docs.rubygems.org/",
|
||||
+ "homepage" => "http://guides.rubygems.org/",
|
||||
"name" => 'rubygems',
|
||||
"ri_installed" => true,
|
||||
"summary" => "RubyGems itself",
|
||||
diff --git lib/rubygems/specification.rb lib/rubygems/specification.rb
|
||||
index a2f289d162..500f0af768 100644
|
||||
--- ruby-2.4.1/lib/rubygems/specification.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/specification.rb
|
||||
@@ -2105,7 +2105,7 @@ def inspect # :nodoc:
|
||||
if $DEBUG
|
||||
super
|
||||
else
|
||||
- "#<#{self.class}:0x#{__id__.to_s(16)} #{full_name}>"
|
||||
+ "#{super[0..-2]} #{full_name}>"
|
||||
end
|
||||
end
|
||||
|
||||
diff --git lib/rubygems/test_case.rb lib/rubygems/test_case.rb
|
||||
index 86b68e1efb..4e48f1eb4c 100644
|
||||
--- ruby-2.4.1/lib/rubygems/test_case.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/test_case.rb
|
||||
@@ -484,7 +484,7 @@ def git_gem name = 'a', version = 1
|
||||
|
||||
system @git, 'add', gemspec
|
||||
system @git, 'commit', '-a', '-m', 'a non-empty commit message', '--quiet'
|
||||
- head = Gem::Util.popen('git', 'rev-parse', 'master').strip
|
||||
+ head = Gem::Util.popen(@git, 'rev-parse', 'master').strip
|
||||
end
|
||||
|
||||
return name, git_spec.version, directory, head
|
||||
@@ -1498,6 +1498,8 @@ def self.key_path key_name
|
||||
begin
|
||||
gem 'rdoc'
|
||||
require 'rdoc'
|
||||
+
|
||||
+ require 'rubygems/rdoc'
|
||||
rescue LoadError, Gem::LoadError
|
||||
end
|
||||
|
||||
@@ -1514,3 +1516,4 @@ def self.key_path key_name
|
||||
pid = $$
|
||||
END {tmpdirs.each {|dir| Dir.rmdir(dir)} if $$ == pid}
|
||||
Gem.clear_paths
|
||||
+Gem.loaded_specs.clear
|
||||
diff --git test/rubygems/test_gem.rb test/rubygems/test_gem.rb
|
||||
index a605f9cdfe..62b36dfd41 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem.rb
|
||||
@@ -75,6 +75,29 @@ def test_self_finish_resolve_wtf
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_self_finish_resolve_respects_loaded_specs
|
||||
+ save_loaded_features do
|
||||
+ a1 = new_spec "a", "1", "b" => "> 0"
|
||||
+ b1 = new_spec "b", "1", "c" => ">= 1"
|
||||
+ b2 = new_spec "b", "2", "c" => ">= 2"
|
||||
+ c1 = new_spec "c", "1"
|
||||
+ c2 = new_spec "c", "2"
|
||||
+
|
||||
+ install_specs c1, c2, b1, b2, a1
|
||||
+
|
||||
+ a1.activate
|
||||
+ c1.activate
|
||||
+
|
||||
+ assert_equal %w(a-1 c-1), loaded_spec_names
|
||||
+ assert_equal ["b (> 0)"], unresolved_names
|
||||
+
|
||||
+ Gem.finish_resolve
|
||||
+
|
||||
+ assert_equal %w(a-1 b-1 c-1), loaded_spec_names
|
||||
+ assert_equal [], unresolved_names
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_self_install
|
||||
spec_fetcher do |f|
|
||||
f.gem 'a', 1
|
||||
@@ -492,7 +515,7 @@ def test_self_find_files_with_gemfile
|
||||
skip if RUBY_VERSION <= "1.8.7"
|
||||
|
||||
cwd = File.expand_path("test/rubygems", @@project_dir)
|
||||
- $LOAD_PATH.unshift cwd
|
||||
+ actual_load_path = $LOAD_PATH.unshift(cwd).dup
|
||||
|
||||
discover_path = File.join 'lib', 'sff', 'discover.rb'
|
||||
|
||||
@@ -518,12 +541,12 @@ def test_self_find_files_with_gemfile
|
||||
expected = [
|
||||
File.expand_path('test/rubygems/sff/discover.rb', @@project_dir),
|
||||
File.join(foo1.full_gem_path, discover_path)
|
||||
- ]
|
||||
+ ].sort
|
||||
|
||||
- assert_equal expected, Gem.find_files('sff/discover')
|
||||
- assert_equal expected, Gem.find_files('sff/**.rb'), '[ruby-core:31730]'
|
||||
+ assert_equal expected, Gem.find_files('sff/discover').sort
|
||||
+ assert_equal expected, Gem.find_files('sff/**.rb').sort, '[ruby-core:31730]'
|
||||
ensure
|
||||
- assert_equal cwd, $LOAD_PATH.shift unless RUBY_VERSION <= "1.8.7"
|
||||
+ assert_equal cwd, actual_load_path.shift unless RUBY_VERSION <= "1.8.7"
|
||||
end
|
||||
|
||||
def test_self_find_latest_files
|
||||
diff --git test/rubygems/test_gem_commands_open_command.rb test/rubygems/test_gem_commands_open_command.rb
|
||||
index 3ec38972e6..a96fa6ea23 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_commands_open_command.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_commands_open_command.rb
|
||||
@@ -24,7 +24,8 @@ def test_execute
|
||||
@cmd.options[:args] = %w[foo]
|
||||
@cmd.options[:editor] = "#{Gem.ruby} -e0 --"
|
||||
|
||||
- spec = gem 'foo'
|
||||
+ gem 'foo', '1.0.0'
|
||||
+ spec = gem 'foo', '1.0.1'
|
||||
mock = MiniTest::Mock.new
|
||||
mock.expect(:call, true, [spec.full_gem_path])
|
||||
|
||||
diff --git test/rubygems/test_gem_commands_query_command.rb test/rubygems/test_gem_commands_query_command.rb
|
||||
index 223f205b2d..d8d682b136 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -642,7 +642,7 @@ def test_execute_local_details
|
||||
assert_equal expected, @ui.output
|
||||
end
|
||||
|
||||
- def test_execute_exact
|
||||
+ def test_execute_exact_remote
|
||||
spec_fetcher do |fetcher|
|
||||
fetcher.spec 'coolgem-omg', 3
|
||||
fetcher.spec 'coolgem', '4.2.1'
|
||||
@@ -665,6 +665,60 @@ def test_execute_exact
|
||||
assert_equal expected, @ui.output
|
||||
end
|
||||
|
||||
+ def test_execute_exact_local
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'coolgem-omg', 3
|
||||
+ fetcher.spec 'coolgem', '4.2.1'
|
||||
+ fetcher.spec 'wow_coolgem', 1
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[--exact coolgem]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+coolgem (4.2.1)
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_exact_multiple
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'coolgem-omg', 3
|
||||
+ fetcher.spec 'coolgem', '4.2.1'
|
||||
+ fetcher.spec 'wow_coolgem', 1
|
||||
+
|
||||
+ fetcher.spec 'othergem-omg', 3
|
||||
+ fetcher.spec 'othergem', '1.2.3'
|
||||
+ fetcher.spec 'wow_othergem', 1
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[--exact coolgem othergem]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+coolgem (4.2.1)
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+othergem (1.2.3)
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ end
|
||||
+
|
||||
private
|
||||
|
||||
def add_gems_to_fetcher
|
||||
diff --git test/rubygems/test_gem_commands_sources_command.rb test/rubygems/test_gem_commands_sources_command.rb
|
||||
index 014b4b4c12..d5b6d99419 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_commands_sources_command.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_commands_sources_command.rb
|
||||
@@ -108,6 +108,58 @@ def test_execute_add_redundant_source
|
||||
assert_equal '', @ui.error
|
||||
end
|
||||
|
||||
+ def test_execute_add_redundant_source_trailing_slash
|
||||
+ # Remove pre-existing gem source (w/ slash)
|
||||
+ repo_with_slash = "http://gems.example.com/"
|
||||
+ @cmd.handle_options %W[--remove #{repo_with_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_with_slash
|
||||
+ assert_equal false, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+#{repo_with_slash} removed from sources
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+
|
||||
+ # Re-add pre-existing gem source (w/o slash)
|
||||
+ repo_without_slash = "http://gems.example.com"
|
||||
+ @cmd.handle_options %W[--add #{repo_without_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_without_slash
|
||||
+ assert_equal true, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+http://gems.example.com/ removed from sources
|
||||
+http://gems.example.com added to sources
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+
|
||||
+ # Re-add original gem source (w/ slash)
|
||||
+ @cmd.handle_options %W[--add #{repo_with_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_with_slash
|
||||
+ assert_equal true, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+http://gems.example.com/ removed from sources
|
||||
+http://gems.example.com added to sources
|
||||
+source http://gems.example.com/ already present in the cache
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
def test_execute_add_http_rubygems_org
|
||||
http_rubygems_org = 'http://rubygems.org'
|
||||
|
||||
diff --git test/rubygems/test_gem_installer.rb test/rubygems/test_gem_installer.rb
|
||||
index 6ceb2c6dfc..882981d344 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_installer.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_installer.rb
|
||||
@@ -62,7 +62,12 @@ def test_app_script_text
|
||||
end
|
||||
end
|
||||
|
||||
+if Gem.respond_to?(:activate_bin_path)
|
||||
load Gem.activate_bin_path('a', 'executable', version)
|
||||
+else
|
||||
+gem "a", version
|
||||
+load Gem.bin_path("a", "executable", version)
|
||||
+end
|
||||
EOF
|
||||
|
||||
wrapper = @installer.app_script_text 'executable'
|
||||
diff --git test/rubygems/test_require.rb test/rubygems/test_require.rb
|
||||
index dd606e44d4..936f78fb2a 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_require.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_require.rb
|
||||
@@ -301,6 +301,17 @@ def test_default_gem_only
|
||||
assert_equal %w(default-2.0.0.0), loaded_spec_names
|
||||
end
|
||||
|
||||
+ def test_realworld_default_gem
|
||||
+ skip "no default gems on ruby < 2.0" unless RUBY_VERSION >= "2"
|
||||
+ cmd = <<-RUBY
|
||||
+ $stderr = $stdout
|
||||
+ require "json"
|
||||
+ puts Gem.loaded_specs["json"].default_gem?
|
||||
+ RUBY
|
||||
+ output = Gem::Util.popen(Gem.ruby, "-e", cmd).strip
|
||||
+ assert_equal "true", output
|
||||
+ end
|
||||
+
|
||||
def test_default_gem_and_normal_gem
|
||||
default_gem_spec = new_default_spec("default", "2.0.0.0",
|
||||
nil, "default/gem.rb")
|
|
@ -1,355 +0,0 @@
|
|||
diff --git lib/rubygems.rb lib/rubygems.rb
|
||||
index bc5bf9b4c2..55aa85b8b2 100644
|
||||
--- ruby-2.4.1/lib/rubygems.rb
|
||||
+++ ruby-2.4.1/lib/rubygems.rb
|
||||
@@ -10,7 +10,7 @@
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = "2.6.12"
|
||||
+ VERSION = "2.6.13"
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
diff --git lib/rubygems/commands/query_command.rb lib/rubygems/commands/query_command.rb
|
||||
index 70f8127292..44144203e0 100644
|
||||
--- ruby-2.4.1/lib/rubygems/commands/query_command.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/commands/query_command.rb
|
||||
@@ -226,7 +226,7 @@ def output_versions output, versions
|
||||
end
|
||||
end
|
||||
|
||||
- output << make_entry(matching_tuples, platforms)
|
||||
+ output << clean_text(make_entry(matching_tuples, platforms))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -353,7 +353,8 @@ def spec_platforms entry, platforms
|
||||
end
|
||||
|
||||
def spec_summary entry, spec
|
||||
- entry << "\n\n" << format_text(spec.summary, 68, 4)
|
||||
+ summary = truncate_text(spec.summary, "the summary for #{spec.full_name}")
|
||||
+ entry << "\n\n" << format_text(summary, 68, 4)
|
||||
end
|
||||
|
||||
end
|
||||
diff --git lib/rubygems/installer.rb lib/rubygems/installer.rb
|
||||
index 967543c2d1..6fd3399dd4 100644
|
||||
--- ruby-2.4.1/lib/rubygems/installer.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/installer.rb
|
||||
@@ -697,6 +697,11 @@ def verify_gem_home(unpack = false) # :nodoc:
|
||||
unpack or File.writable?(gem_home)
|
||||
end
|
||||
|
||||
+ def verify_spec_name
|
||||
+ return if spec.name =~ Gem::Specification::VALID_NAME_PATTERN
|
||||
+ raise Gem::InstallError, "#{spec} has an invalid name"
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Return the text for an application file.
|
||||
|
||||
@@ -823,6 +828,8 @@ def pre_install_checks
|
||||
|
||||
ensure_loadable_spec
|
||||
|
||||
+ verify_spec_name
|
||||
+
|
||||
if options[:install_as_default]
|
||||
Gem.ensure_default_gem_subdirectories gem_home
|
||||
else
|
||||
diff --git lib/rubygems/remote_fetcher.rb lib/rubygems/remote_fetcher.rb
|
||||
index e6a13d4b8c..8f0cf0b402 100644
|
||||
--- ruby-2.4.1/lib/rubygems/remote_fetcher.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/remote_fetcher.rb
|
||||
@@ -110,7 +110,7 @@ def api_endpoint(uri)
|
||||
else
|
||||
target = res.target.to_s.strip
|
||||
|
||||
- if /\.#{Regexp.quote(host)}\z/ =~ target
|
||||
+ if URI("http://" + target).host.end_with?(".#{host}")
|
||||
return URI.parse "#{uri.scheme}://#{target}#{uri.path}"
|
||||
end
|
||||
|
||||
diff --git lib/rubygems/specification.rb lib/rubygems/specification.rb
|
||||
index 500f0af768..88e320c05a 100644
|
||||
--- ruby-2.4.1/lib/rubygems/specification.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/specification.rb
|
||||
@@ -108,6 +108,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||
|
||||
private_constant :LOAD_CACHE if defined? private_constant
|
||||
|
||||
+ VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:
|
||||
+
|
||||
# :startdoc:
|
||||
|
||||
##
|
||||
@@ -2671,9 +2673,15 @@ def validate packaging = true
|
||||
end
|
||||
end
|
||||
|
||||
- unless String === name then
|
||||
+ if !name.is_a?(String) then
|
||||
raise Gem::InvalidSpecificationException,
|
||||
- "invalid value for attribute name: \"#{name.inspect}\""
|
||||
+ "invalid value for attribute name: \"#{name.inspect}\" must be a string"
|
||||
+ elsif name !~ /[a-zA-Z]/ then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} must include at least one letter"
|
||||
+ elsif name !~ VALID_NAME_PATTERN then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} can only include letters, numbers, dashes, and underscores"
|
||||
end
|
||||
|
||||
if raw_require_paths.empty? then
|
||||
diff --git lib/rubygems/text.rb lib/rubygems/text.rb
|
||||
index 732f1b99f2..b944b62c27 100644
|
||||
--- ruby-2.4.1/lib/rubygems/text.rb
|
||||
+++ ruby-2.4.1/lib/rubygems/text.rb
|
||||
@@ -6,13 +6,26 @@
|
||||
|
||||
module Gem::Text
|
||||
|
||||
+ ##
|
||||
+ # Remove any non-printable characters and make the text suitable for
|
||||
+ # printing.
|
||||
+ def clean_text(text)
|
||||
+ text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
|
||||
+ end
|
||||
+
|
||||
+ def truncate_text(text, description, max_length = 100_000)
|
||||
+ raise ArgumentError, "max_length must be positive" unless max_length > 0
|
||||
+ return text if text.size <= max_length
|
||||
+ "Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Wraps +text+ to +wrap+ characters and optionally indents by +indent+
|
||||
# characters
|
||||
|
||||
def format_text(text, wrap, indent=0)
|
||||
result = []
|
||||
- work = text.dup
|
||||
+ work = clean_text(text)
|
||||
|
||||
while work.length > wrap do
|
||||
if work =~ /^(.{0,#{wrap}})[ \n]/ then
|
||||
diff --git test/rubygems/test_gem_commands_query_command.rb test/rubygems/test_gem_commands_query_command.rb
|
||||
index d8d682b136..469223c6c0 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -116,6 +116,86 @@ def test_execute_details
|
||||
This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
This is a lot of text.
|
||||
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_cleans_text
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 4
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
+ This is a lot of text.
|
||||
+
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_truncates_summary
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 10_000
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ Truncating the summary for a-2 to 100,000 characters:
|
||||
+#{" This is a lot of text. This is a lot of text. This is a lot of text.\n" * 1449} This is a lot of te
|
||||
+
|
||||
pl (1)
|
||||
Platform: i386-linux
|
||||
Author: A User
|
||||
diff --git test/rubygems/test_gem_installer.rb test/rubygems/test_gem_installer.rb
|
||||
index 882981d344..dd049214fb 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_installer.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_installer.rb
|
||||
@@ -1448,6 +1448,26 @@ def test_pre_install_checks_wrong_rubygems_version
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_pre_install_checks_malicious_name
|
||||
+ spec = util_spec '../malicious', '1'
|
||||
+ def spec.full_name # so the spec is buildable
|
||||
+ "malicious-1"
|
||||
+ end
|
||||
+ def spec.validate; end
|
||||
+
|
||||
+ util_build_gem spec
|
||||
+
|
||||
+ gem = File.join(@gemhome, 'cache', spec.file_name)
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @installer = Gem::Installer.at gem
|
||||
+ e = assert_raises Gem::InstallError do
|
||||
+ @installer.pre_install_checks
|
||||
+ end
|
||||
+ assert_equal '#<Gem::Specification name=../malicious version=1> has an invalid name', e.message
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_shebang
|
||||
util_make_exec @spec, "#!/usr/bin/ruby"
|
||||
|
||||
diff --git test/rubygems/test_gem_remote_fetcher.rb test/rubygems/test_gem_remote_fetcher.rb
|
||||
index cb994462cd..fbb7d89019 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_remote_fetcher.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_remote_fetcher.rb
|
||||
@@ -241,6 +241,21 @@ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original
|
||||
dns.verify
|
||||
end
|
||||
|
||||
+ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original_in_path
|
||||
+ uri = URI.parse "http://example.com/foo"
|
||||
+ target = MiniTest::Mock.new
|
||||
+ target.expect :target, "evil.com/a.example.com"
|
||||
+
|
||||
+ dns = MiniTest::Mock.new
|
||||
+ dns.expect :getresource, target, [String, Object]
|
||||
+
|
||||
+ fetch = Gem::RemoteFetcher.new nil, dns
|
||||
+ assert_equal URI.parse("http://example.com/foo"), fetch.api_endpoint(uri)
|
||||
+
|
||||
+ target.verify
|
||||
+ dns.verify
|
||||
+ end
|
||||
+
|
||||
def test_api_endpoint_timeout_warning
|
||||
uri = URI.parse "http://gems.example.com/foo"
|
||||
|
||||
diff --git test/rubygems/test_gem_specification.rb test/rubygems/test_gem_specification.rb
|
||||
index d43289d745..0fcc11e78f 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_specification.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_specification.rb
|
||||
@@ -2985,7 +2985,37 @@ def test_validate_name
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
- assert_equal 'invalid value for attribute name: ":json"', e.message
|
||||
+ assert_equal 'invalid value for attribute name: ":json" must be a string', e.message
|
||||
+
|
||||
+ @a1.name = []
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"[]\" must be a string", e.message
|
||||
+
|
||||
+ @a1.name = ""
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "12345"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"12345\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "../malicious"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"../malicious\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
+
|
||||
+ @a1.name = "\ba\t"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\\ba\\t\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
end
|
||||
|
||||
def test_validate_non_nil
|
||||
diff --git test/rubygems/test_gem_text.rb test/rubygems/test_gem_text.rb
|
||||
index a6e22e04da..04f3f605e8 100644
|
||||
--- ruby-2.4.1/test/rubygems/test_gem_text.rb
|
||||
+++ ruby-2.4.1/test/rubygems/test_gem_text.rb
|
||||
@@ -36,6 +36,10 @@ def test_format_text_trailing # for two spaces after .
|
||||
assert_equal expected, format_text(text, 78)
|
||||
end
|
||||
|
||||
+ def test_format_removes_nonprintable_characters
|
||||
+ assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
|
||||
+ end
|
||||
+
|
||||
def test_min3
|
||||
assert_equal 1, min3(1, 1, 1)
|
||||
assert_equal 1, min3(1, 1, 2)
|
||||
@@ -74,4 +78,11 @@ def test_levenshtein_distance_replace
|
||||
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
|
||||
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
|
||||
end
|
||||
+
|
||||
+ def test_truncate_text
|
||||
+ assert_equal "abc", truncate_text("abc", "desc")
|
||||
+ assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
|
||||
+ s = "ab" * 500_001
|
||||
+ assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
||||
+ end
|
||||
end
|
|
@ -1311,6 +1311,34 @@ the context the subroutine would have seen if it were the last statement in
|
|||
the caller.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-convert-binhex
|
||||
(package
|
||||
(name "perl-convert-binhex")
|
||||
(version "1.125")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/S/ST/STEPHEN/Convert-BinHex-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15v3489k179cx0fz3lix79ssjid0nhhpf6c33swpxga6pss92dai"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-file-slurp" ,perl-file-slurp)
|
||||
("perl-test-most" ,perl-test-most)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Convert-BinHex")
|
||||
(synopsis "Extract data from Macintosh BinHex files")
|
||||
(description
|
||||
"BinHex is a format for transporting files safely through electronic
|
||||
mail, as short-lined, 7-bit, semi-compressed data streams. Ths module
|
||||
provides a means of converting those data streams back into into binary
|
||||
data.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-cpan-meta-check
|
||||
(package
|
||||
(name "perl-cpan-meta-check")
|
||||
|
@ -1588,6 +1616,49 @@ on one page. This results in wanting to page through various pages of data.
|
|||
The maths behind this is unfortunately fiddly, hence this module.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-data-perl
|
||||
(package
|
||||
(name "perl-data-perl")
|
||||
(version "0.002009")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/M/MA/MATTP/Data-Perl-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-test-deep" ,perl-test-deep)
|
||||
("perl-test-fatal" ,perl-test-fatal)
|
||||
("perl-test-output" ,perl-test-output)))
|
||||
(inputs
|
||||
`(("perl-class-method-modifiers"
|
||||
,perl-class-method-modifiers)
|
||||
("perl-module-runtime" ,perl-module-runtime)
|
||||
("perl-role-tiny" ,perl-role-tiny)
|
||||
("perl-strictures" ,perl-strictures)))
|
||||
(propagated-inputs
|
||||
`(("perl-list-moreutils" ,perl-list-moreutils)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Data-Perl")
|
||||
(synopsis "Base classes wrapping fundamental Perl data types")
|
||||
(description
|
||||
"@code{Data::Perl} is a container class for the following classes:
|
||||
@itemize
|
||||
@item @code{Data::Perl::Collection::Hash}
|
||||
@item @code{Data::Perl::Collection::Array}
|
||||
@item @code{Data::Perl::String}
|
||||
@item @code{Data::Perl::Number}
|
||||
@item @code{Data::Perl::Counter}
|
||||
@item @code{Data::Perl::Bool}
|
||||
@item @code{Data::Perl::Code}
|
||||
@end itemize")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-data-stag
|
||||
(package
|
||||
(name "perl-data-stag")
|
||||
|
@ -2260,6 +2331,30 @@ whether a compiler is available. It can test for a C99 compiler, or
|
|||
you can tell it to compile a C source file with optional linker flags.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-devel-cycle
|
||||
(package
|
||||
(name "perl-devel-cycle")
|
||||
(version "1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hhb77kz3dys8yaik452j22cm3510zald2mpvfyv5clqv326aczx"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Devel-Cycle")
|
||||
(synopsis "Find memory cycles in objects")
|
||||
(description
|
||||
"@code{Devel::Cycle} This is a tool for finding circular references in
|
||||
objects and other types of references. Because of Perl's reference-count
|
||||
based memory management, circular references will cause memory leaks.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-devel-globaldestruction
|
||||
(package
|
||||
(name "perl-devel-globaldestruction")
|
||||
|
@ -4134,6 +4229,51 @@ implementation of these functions only serves as a fallback in case the C
|
|||
portions of this module couldn't be compiled on this machine.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-mailtools
|
||||
(package
|
||||
(name "perl-mailtools")
|
||||
(version "2.19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/M/MA/MARKOV/MailTools-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06jykkv8mp484vzkmwd6dkicx029rl3ir5ljzrbap3paxw1dfzn1"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-timedate" ,perl-timedate)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/MailTools")
|
||||
(synopsis "Bundle of ancient email modules")
|
||||
(description "MailTools contains the following modules:
|
||||
@table @asis
|
||||
@item Mail::Address
|
||||
Parse email address from a header line.
|
||||
@item Mail::Cap
|
||||
Interpret mailcap files: mappings of file-types to applications as used by
|
||||
many command-line email programs.
|
||||
@item Mail::Field
|
||||
Simplifies access to (some) email header fields. Used by Mail::Header.
|
||||
@item Mail::Filter
|
||||
Process Mail::Internet messages.
|
||||
@item Mail::Header
|
||||
Collection of Mail::Field objects, representing the header of a Mail::Internet
|
||||
object.
|
||||
@item Mail::Internet
|
||||
Represents a single email message, with header and body.
|
||||
@item Mail::Mailer
|
||||
Send Mail::Internet emails via direct smtp or local MTA's.
|
||||
@item Mail::Send
|
||||
Build a Mail::Internet object, and then send it out using Mail::Mailer.
|
||||
@item Mail::Util
|
||||
\"Smart functions\" you should not depend on.
|
||||
@end table")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-memoize-expirelru
|
||||
(package
|
||||
(name "perl-memoize-expirelru")
|
||||
|
@ -4173,6 +4313,36 @@ the argument to the CACHESIZE parameter, will be cached.")
|
|||
MIME messages on Internet.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-mime-tools
|
||||
(package
|
||||
(name "perl-mime-tools")
|
||||
(version "5.509")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wv9rzx5j1wjm01c3dg48qk9wlbm6iyf91j536idk09xj869ymv4"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-test-deep" ,perl-test-deep)))
|
||||
(inputs
|
||||
`(("perl-convert-binhex" ,perl-convert-binhex)))
|
||||
(propagated-inputs
|
||||
`(("perl-mailtools" ,perl-mailtools)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/MIME-tools")
|
||||
(synopsis "Tools to manipulate MIME messages")
|
||||
(description
|
||||
"MIME-tools is a collection of Perl5 MIME:: modules for parsing,
|
||||
decoding, and generating single- or multipart (even nested multipart) MIME
|
||||
messages.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-mime-types
|
||||
(package
|
||||
(name "perl-mime-types")
|
||||
|
@ -5073,6 +5243,109 @@ all coercions and constraints are inherited.")
|
|||
constraint with coercion to load the class.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-moox
|
||||
(package
|
||||
(name "perl-moox")
|
||||
(version "0.101")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/G/GE/GETTY/MooX-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1m9jvrqcidiabdih211byadwnnkygafq54r2ljnf1akqdrjimy9g"))))
|
||||
(build-system perl-build-system)
|
||||
(inputs
|
||||
`(("perl-data-optlist" ,perl-data-optlist)
|
||||
("perl-import-into" ,perl-import-into)
|
||||
("perl-module-runtime" ,perl-module-runtime)
|
||||
("perl-moo" ,perl-moo)))
|
||||
(home-page "http://search.cpan.org/dist/MooX")
|
||||
(synopsis
|
||||
"Using Moo and MooX:: packages the most lazy way")
|
||||
(description "Contains the MooX and MooX::Role packages.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-moox-handlesvia
|
||||
(package
|
||||
(name "perl-moox-handlesvia")
|
||||
(version "0.001008")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/M/MA/MATTP/MooX-HandlesVia-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-moox-types-mooselike"
|
||||
,perl-moox-types-mooselike)
|
||||
("perl-test-exception" ,perl-test-exception)
|
||||
("perl-test-fatal" ,perl-test-fatal)))
|
||||
(inputs
|
||||
`(("perl-class-method-modifiers"
|
||||
,perl-class-method-modifiers)
|
||||
("perl-module-runtime" ,perl-module-runtime)
|
||||
("perl-moo" ,perl-moo)
|
||||
("perl-role-tiny" ,perl-role-tiny)))
|
||||
(propagated-inputs
|
||||
`(("perl-data-perl" ,perl-data-perl)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/MooX-HandlesVia")
|
||||
(synopsis "NativeTrait-like behavior for Moo")
|
||||
(description
|
||||
"@code{MooX::HandlesVia} is an extension of Moo's @code{handles}
|
||||
attribute functionality. It provides a means of proxying functionality from
|
||||
an external class to the given atttribute.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-moox-late
|
||||
(package
|
||||
(name "perl-moox-late")
|
||||
(version "0.015")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gzvd9zws3v09sh0xx6srmw4jwi22fnrya4zcsc8dykn62pjclqp"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-test-fatal" ,perl-test-fatal)
|
||||
("perl-test-requires" ,perl-test-requires)))
|
||||
(inputs
|
||||
`(("perl-moo" ,perl-moo)
|
||||
("perl-moox" ,perl-moox)
|
||||
("perl-moox-handlesvia" ,perl-moox-handlesvia)))
|
||||
(propagated-inputs
|
||||
`(("perl-type-tiny" ,perl-type-tiny)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/MooX-late")
|
||||
(synopsis "Easily translate Moose code to Moo")
|
||||
(description
|
||||
"MooX::late does the following:
|
||||
@enumerate
|
||||
@item Supports isa => $stringytype
|
||||
@item Supports does => $rolename
|
||||
@item Supports lazy_build => 1
|
||||
@item Exports blessed and confess functions to your namespace.
|
||||
@item Handles certain attribute traits
|
||||
Currently Hash, Array and Code are supported. This feature requires
|
||||
MooX::HandlesVia.
|
||||
@end enumerate")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-moox-types-mooselike
|
||||
(package
|
||||
(name "perl-moox-types-mooselike")
|
||||
|
@ -5252,6 +5525,38 @@ cycle. Functions called in the package itself will still be bound by their
|
|||
name, but they won't show up as methods on your class or instances.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-net-idn-encode
|
||||
(package
|
||||
(name "perl-net-idn-encode")
|
||||
(version "2.400")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a9knav5f9kjldrkxx1k47ivd3p23zkmi8aqgyhnxidhgasz1dlq"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-module-build" ,perl-module-build)
|
||||
("perl-test-nowarnings" ,perl-test-nowarnings)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Net-IDN-Encode")
|
||||
(synopsis
|
||||
"Internationalizing Domain Names in Applications (IDNA)")
|
||||
(description
|
||||
"Internationalized Domain Names (IDNs) use characters drawn from a large
|
||||
repertoire (Unicode), but IDNA allows the non-ASCII characters to be
|
||||
represented using only the ASCII characters already allowed in so-called host
|
||||
names today (letter-digit-hyphen, /[A-Z0-9-]/i).
|
||||
|
||||
Use this module if you just want to convert domain names (or email addresses),
|
||||
using whatever IDNA standard is the best choice at the moment.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-net-statsd
|
||||
(package
|
||||
(name "perl-net-statsd")
|
||||
|
@ -6775,6 +7080,61 @@ namespace::autoclean or namespace::clean and are therefore available to be
|
|||
called as methods, which usually isn't want you want.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-test-cpan-meta
|
||||
(package
|
||||
(name "perl-test-cpan-meta")
|
||||
(version "0.25")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json)
|
||||
("perl-test-pod" ,perl-test-pod)
|
||||
("perl-test-pod-coverage" ,perl-test-pod-coverage)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Test-CPAN-Meta")
|
||||
(synopsis "Validate your CPAN META.yml files")
|
||||
(description
|
||||
"This module was written to ensure that a META.yml file meets the
|
||||
specification.")
|
||||
(license artistic2.0)))
|
||||
|
||||
(define-public perl-test-cpan-meta-json
|
||||
(package
|
||||
(name "perl-test-cpan-meta-json")
|
||||
(version "0.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-test-pod" ,perl-test-pod)
|
||||
("perl-test-pod-coverage" ,perl-test-pod-coverage)))
|
||||
(inputs
|
||||
`(("perl-json" ,perl-json)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Test-CPAN-Meta-JSON")
|
||||
(synopsis "Validate your CPAN META.json files")
|
||||
(description
|
||||
"This module was written to ensure that a META.json file meets the
|
||||
specification.")
|
||||
(license artistic2.0)))
|
||||
|
||||
(define-public perl-test-deep
|
||||
(package
|
||||
(name "perl-test-deep")
|
||||
|
@ -6848,6 +7208,30 @@ modified or tested with this API, making it simple to test both individual
|
|||
files, as well as to verify that there are no missing or unknown files.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-test-eol
|
||||
(package
|
||||
(name "perl-test-eol")
|
||||
(version "2.00")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Test-EOL")
|
||||
(synopsis
|
||||
"Check the correct line endings in your project")
|
||||
(description
|
||||
"@code{Test::EOL} lets you check for the presence of trailing whitespace
|
||||
and/or windows line endings in your perl code.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-test-exception
|
||||
(package
|
||||
(name "perl-test-exception")
|
||||
|
@ -7037,6 +7421,42 @@ file to find out which tests you want to run and the order in which you want to
|
|||
It constructs the right value for the build system to do the right thing.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-test-memory-cycle
|
||||
(package
|
||||
(name "perl-test-memory-cycle")
|
||||
(version "1.06")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx"))))
|
||||
(build-system perl-build-system)
|
||||
(inputs
|
||||
`(("perl-padwalker" ,perl-padwalker)))
|
||||
(propagated-inputs
|
||||
`(("perl-devel-cycle" ,perl-devel-cycle)))
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Test-Memory-Cycle")
|
||||
(synopsis
|
||||
"Verifies code hasn't left circular references")
|
||||
(description
|
||||
"@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to
|
||||
give you an easy way to check for these circular references.
|
||||
|
||||
@example
|
||||
use Test::Memory::Cycle;
|
||||
|
||||
my $object = new MyObject;
|
||||
# Do stuff with the object.
|
||||
memory_cycle_ok( $object );
|
||||
@end example")
|
||||
(license artistic2.0)))
|
||||
|
||||
(define-public perl-test-mockobject
|
||||
(package
|
||||
(name "perl-test-mockobject")
|
||||
|
@ -7142,6 +7562,30 @@ with an error rather than skip.
|
|||
If used in a subtest, the remainder of the subtest will be skipped.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-test-notabs
|
||||
(package
|
||||
(name "perl-test-notabs")
|
||||
(version "2.00")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"127kpl1va267qar2ia4c22xb96jby2jqnda3sj5pjgmxg8si26cg"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Test-NoTabs")
|
||||
(synopsis
|
||||
"Check the presence of tabs in your project")
|
||||
(description
|
||||
"@code{Test::NoTabs} lets you check the presence of tabs in your perl
|
||||
code.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-test-nowarnings
|
||||
(package
|
||||
(name "perl-test-nowarnings")
|
||||
|
@ -7732,6 +8176,32 @@ algorism to indicate multiplication by 1000.")
|
|||
(description "Text::Table renders plaintext tables.")
|
||||
(license x11)))
|
||||
|
||||
(define-public perl-text-template
|
||||
(package
|
||||
(name "perl-text-template")
|
||||
(version "1.47")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z781cgz7wbn80lf3kqr2ad0pg6g1wlnim0822h8liw28k3l5msh"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/Text-Template")
|
||||
(synopsis
|
||||
"Expand template text with embedded Perl")
|
||||
(description
|
||||
"This is a library for generating letters, building HTML pages, or
|
||||
filling in templates generally. A template is a piece of text that has little
|
||||
Perl programs embedded in it here and there. When you fill in a template, you
|
||||
evaluate the little programs and replace them with their values.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-text-unidecode
|
||||
(package
|
||||
(name "perl-text-unidecode")
|
||||
|
@ -8366,6 +8836,30 @@ neither visible nor modifiable from Perl space).")
|
|||
on the YAML 1.0 specification.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-yaml-libyaml
|
||||
(package
|
||||
(name "perl-yaml-libyaml")
|
||||
(version "0.65")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0izhvz8f29x1f50hhwfgm0iq1lz7apjjvg77lmky949jr07hnwfv"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page
|
||||
"http://search.cpan.org/dist/YAML-LibYAML")
|
||||
(synopsis
|
||||
"Perl YAML Serialization using XS and libyaml")
|
||||
(description
|
||||
"@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the
|
||||
best YAML support to date.")
|
||||
(license perl-license)))
|
||||
|
||||
(define-public perl-yaml-tiny
|
||||
(package
|
||||
(name "perl-yaml-tiny")
|
||||
|
|
|
@ -65,14 +65,14 @@
|
|||
(define-public libraw
|
||||
(package
|
||||
(name "libraw")
|
||||
(version "0.18.2")
|
||||
(version "0.18.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.libraw.org/data/LibRaw-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1imby9x88pjx4ad1frdi3bfb8dw90ccyj5pb6w3i6i0iijrnndnf"))))
|
||||
"15qc7g5y1m6yi6w9ia79cd6yk0836z7lqw5yigl62n768qdr7x7a"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.libraw.org")
|
||||
(synopsis "Raw image decoder")
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
|
||||
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
|
||||
|
@ -80,6 +80,7 @@
|
|||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages icu4c)
|
||||
|
@ -1249,6 +1250,33 @@ datetime module, available in Python 2.3+.")
|
|||
(define-public python2-parsedatetime
|
||||
(package-with-python2 python-parsedatetime))
|
||||
|
||||
(define-public python-schedule
|
||||
(package
|
||||
(name "python-schedule")
|
||||
(version "0.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "schedule" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0vplyjcbfrq50sphlwya749z8p2pcyi2nycw3518i0qpd9a6189i"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-mock" ,python-mock)))
|
||||
(home-page "https://github.com/dbader/schedule")
|
||||
(synopsis "Schedule periodic function calls in Python")
|
||||
(description
|
||||
"Schedule is an in-process scheduler for periodic jobs that uses the
|
||||
builder pattern for configuration. Schedule lets you run Python functions (or
|
||||
any other callable) periodically at pre-determined intervals using a simple,
|
||||
human-friendly syntax.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-schedule
|
||||
(package-with-python2 python-schedule))
|
||||
|
||||
(define-public python-pandas
|
||||
(package
|
||||
(name "python-pandas")
|
||||
|
@ -2836,14 +2864,14 @@ somewhat intelligeble.")
|
|||
(define-public python-pyjwt
|
||||
(package
|
||||
(name "python-pyjwt")
|
||||
(version "1.5.2")
|
||||
(version "1.5.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyJWT" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pvr3iymab7v2qz74ann760z7qahqgqszxz5iqqbaqv4z2zz0y8i"))
|
||||
"1rxsg14i33vm2i6lz0my628108c81k43v10n4h3p0gx62xdyf2sh"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -3188,14 +3216,14 @@ reStructuredText.")
|
|||
(define-public python-pygments
|
||||
(package
|
||||
(name "python-pygments")
|
||||
(version "2.1.3")
|
||||
(version "2.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Pygments" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10axnp2wpjnq9g8wg53fx0c70dfxqrz498jyz8mrdx9a3flwir48"))))
|
||||
"1k78qdvir1yb1c634nkv6rbga8wv4289xarghmsbbvzhvr311bnv"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: Tests require sphinx, which depends on this.
|
||||
|
@ -5976,6 +6004,37 @@ and written in Python.")
|
|||
(define-public python2-html5lib-0.9
|
||||
(package-with-python2 python-html5lib-0.9))
|
||||
|
||||
(define-public python-html5-parser
|
||||
(package
|
||||
(name "python-html5-parser")
|
||||
(version "0.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "html5-parser" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d8sxhl41ffh7qlk7wlsy17xw6slzx5v1yna9s72wx5qrpaa3wxr"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libxml2" ,libxml2)))
|
||||
(propagated-inputs
|
||||
`(("python-lxml" ,python-lxml)
|
||||
("python-beautifulsoup4" ,python-beautifulsoup4)))
|
||||
(home-page "https://html5-parser.readthedocs.io")
|
||||
(synopsis "Fast C-based HTML5 parsing for Python")
|
||||
(description "This package provides a fast implementation of the HTML5
|
||||
parsing spec for Python. Parsing is done in C using a variant of the gumbo
|
||||
parser. The gumbo parse tree is then transformed into an lxml tree, also in
|
||||
C, yielding parse times that can be a thirtieth of the html5lib parse times.")
|
||||
;; src/as-python-tree.[c|h] are licensed GPL3. The other files
|
||||
;; indicate ASL2.0, including the LICENSE file for the whole project.
|
||||
(license (list license:asl2.0 license:gpl3))))
|
||||
|
||||
(define-public python2-html5-parser
|
||||
(package-with-python2 python-html5-parser))
|
||||
|
||||
(define-public python-webencodings
|
||||
(package
|
||||
(name "python-webencodings")
|
||||
|
@ -6206,6 +6265,16 @@ implementation of D-Bus.")
|
|||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(zero?
|
||||
(system* "python" "setup.py" "build" "--enable-all-extensions"))))
|
||||
(add-after 'build 'build-test-helper
|
||||
(lambda _
|
||||
(zero?
|
||||
(system
|
||||
(string-append "gcc -fPIC -shared -o ./testextension.sqlext "
|
||||
"-I. -Isqlite3 src/testextension.c") ))))
|
||||
(delete 'check)
|
||||
(add-after 'install 'check
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
|
@ -6225,14 +6294,14 @@ translate the complete SQLite API into Python.")
|
|||
(define-public python-lxml
|
||||
(package
|
||||
(name "python-lxml")
|
||||
(version "3.6.0")
|
||||
(version "3.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "lxml" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pvbmiy2m7jwv493kilbghhj2pkh8wy1na3ji350vhzhlwlclx4w"))))
|
||||
"15nvf6n285n282682qyw3wihsncb0x5amdhyi4b83bfa2nz74vvk"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("libxml2" ,libxml2)
|
||||
|
@ -7911,14 +7980,14 @@ message digests and key derivation functions.")
|
|||
(define-public python-pyopenssl
|
||||
(package
|
||||
(name "python-pyopenssl")
|
||||
(version "17.2.0")
|
||||
(version "17.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyOpenSSL" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0d283g4zi0hr9papd24mjl70mi15gyzq6fx618rizi87dgipqqax"))))
|
||||
"0xkc1wfnpg6abzllivg3ylhc63npjdy1v81f4kc08bm8cj80nqr9"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -9855,14 +9924,14 @@ Pytest but stripped of Pytest specific details.")
|
|||
(define-public python-tox
|
||||
(package
|
||||
(name "python-tox")
|
||||
(version "2.3.1")
|
||||
(version "2.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "tox" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz"))))
|
||||
"00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: Tests require pytest-timeout, which itself requires
|
||||
|
@ -9874,7 +9943,8 @@ Pytest but stripped of Pytest specific details.")
|
|||
("python-virtualenv" ,python-virtualenv)))
|
||||
(native-inputs
|
||||
`(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout)
|
||||
("python-pytest" ,python-pytest))) ; >= 2.3.5
|
||||
("python-pytest" ,python-pytest) ; >= 2.3.5
|
||||
("python-setuptools-scm" ,python-setuptools-scm)))
|
||||
(home-page "http://tox.testrun.org/")
|
||||
(synopsis "Virtualenv-based automation of test activities")
|
||||
(description "Tox is a generic virtualenv management and test command line
|
||||
|
@ -9914,14 +9984,14 @@ document.")
|
|||
(define-public python-botocore
|
||||
(package
|
||||
(name "python-botocore")
|
||||
(version "1.5.26")
|
||||
(version "1.7.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "botocore" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b7l48hr88galrrc5q6k21z3sdadzxc87ppzs7k9fz4p1w8bfnvb"))))
|
||||
"02b1bw25r1wdjs5yppb1h9igf11wj092biriv2yg8hzp5r0wrkmg"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: Many tests are failing.
|
||||
|
@ -9948,14 +10018,14 @@ interface to the Amazon Web Services (AWS) API.")
|
|||
(define-public awscli
|
||||
(package
|
||||
(name "awscli")
|
||||
(version "1.11.63")
|
||||
(version "1.11.151")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r8aqv8w27k76lcsfk83w6qw9lz8gk2ibzwacp5wjhpp2gik911m"))))
|
||||
"0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-colorama" ,python-colorama)
|
||||
|
@ -11914,20 +11984,22 @@ Wikipedia code samples at
|
|||
(define-public python-cleo
|
||||
(package
|
||||
(name "python-cleo")
|
||||
(version "0.4.1")
|
||||
(version "0.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cleo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva"))))
|
||||
"0q1cf0szr0d54am4pypzwdnm74zpladdsinad94c2fz5i06fdpf7"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(;; For testing
|
||||
("python-mock" ,python-mock)
|
||||
("python-pytest-mock" ,python-pytest-mock)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(propagated-inputs
|
||||
`(("python-psutil" ,python-psutil)
|
||||
`(("python-backpack" ,python-backpack)
|
||||
("python-pastel" ,python-pastel)
|
||||
("python-pylev" ,python-pylev)))
|
||||
(home-page "https://github.com/sdispater/cleo")
|
||||
(synopsis "Command-line arguments library for Python")
|
||||
|
@ -12088,13 +12160,13 @@ addresses, and phone numbers.")
|
|||
(define-public python-pyaml
|
||||
(package
|
||||
(name "python-pyaml")
|
||||
(version "15.8.2")
|
||||
(version "17.7.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyaml" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w"))))
|
||||
"132grrw0ajq4nrappi3ldbkb952k7yn9b6c7csi2rmvzm1g6ppp2"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-unidecode" ,python-unidecode)))
|
||||
|
@ -12110,6 +12182,32 @@ YAML-serialized data.")
|
|||
(define-public python2-pyaml
|
||||
(package-with-python2 python-pyaml))
|
||||
|
||||
(define-public python-backpack
|
||||
(package
|
||||
(name "python-backpack")
|
||||
(version "0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "backpack" version))
|
||||
(sha256
|
||||
(base32
|
||||
"14rq1mvm0jda90lcx9gyyby9dvq4x3js2cmxvd6vl4686ixwyqh1"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-nose" ,python-nose)))
|
||||
(propagated-inputs
|
||||
`(("python-simplejson" ,python-simplejson)))
|
||||
(home-page "https://github.com/sdispater/backpack")
|
||||
(synopsis "Utilities for working with Python collections")
|
||||
(description "Backpack provides some useful utilities for working with
|
||||
collections of data.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-backpack
|
||||
(package-with-python2 python-backpack))
|
||||
|
||||
(define-public python-flexmock
|
||||
(package
|
||||
(name "python-flexmock")
|
||||
|
@ -12131,44 +12229,6 @@ mocks, stubs and fakes.")
|
|||
(define-public python2-flexmock
|
||||
(package-with-python2 python-flexmock))
|
||||
|
||||
(define-public python-orator
|
||||
(package
|
||||
(name "python-orator")
|
||||
(version "0.8.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "orator" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569"))))
|
||||
(build-system python-build-system)
|
||||
(arguments '(#:tests? #f)) ; no tests
|
||||
(propagated-inputs
|
||||
`(("python-arrow" ,python-arrow)
|
||||
("python-blinker" ,python-blinker)
|
||||
("python-cleo" ,python-cleo)
|
||||
("python-faker" ,python-faker)
|
||||
("python-inflection" ,python-inflection)
|
||||
("python-lazy-object-proxy" ,python-lazy-object-proxy)
|
||||
("python-pyaml" ,python-pyaml)
|
||||
("python-simplejson" ,python-simplejson)
|
||||
("python-wrapt" ,python-wrapt)))
|
||||
(home-page "https://orator-orm.com/")
|
||||
(synopsis "ActiveRecord ORM for Python")
|
||||
(description
|
||||
"Orator provides a simple ActiveRecord-like Object Relational Mapping
|
||||
implementation for Python.")
|
||||
(license license:expat)
|
||||
(properties `((python2-variant . ,(delay python2-orator))))))
|
||||
|
||||
(define-public python2-orator
|
||||
(let ((base (package-with-python2 (strip-python2-variant python-orator))))
|
||||
(package
|
||||
(inherit base)
|
||||
(propagated-inputs
|
||||
`(("python2-ipaddress" ,python2-ipaddress)
|
||||
,@(package-propagated-inputs base))))))
|
||||
|
||||
(define-public python-prompt-toolkit
|
||||
(package
|
||||
(name "python-prompt-toolkit")
|
||||
|
@ -13169,16 +13229,40 @@ replay them during future tests. It is designed to work with python-requests.")
|
|||
(define-public python2-betamax
|
||||
(package-with-python2 python-betamax))
|
||||
|
||||
(define-public python-betamax-matchers
|
||||
(package
|
||||
(name "python-betamax-matchers")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "betamax-matchers" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-betamax" ,python-betamax)
|
||||
("python-requests-toolbelt" ,python-requests-toolbelt)))
|
||||
(home-page "https://github.com/sigmavirus24/betamax_matchers")
|
||||
(synopsis "VCR imitation for python-requests")
|
||||
(description "@code{betamax-matchers} provides a set of Matchers for
|
||||
Betamax.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python2-betamax-matchers
|
||||
(package-with-python2 python-betamax-matchers))
|
||||
|
||||
(define-public python-s3transfer
|
||||
(package
|
||||
(name "python-s3transfer")
|
||||
(version "0.1.10")
|
||||
(version "0.1.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "s3transfer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1h8g9bknvxflxkpbnxyfxmk8pvgykbbk9ljdvhqh6z4vjc2926ms"))))
|
||||
"0yfrfnf404cxzn3iswibqjxklsl0b1lwgqiml6pwiqj79a7zbwbn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -16195,3 +16279,24 @@ ECB and OFB).")
|
|||
|
||||
(define-public python2-pyaes
|
||||
(package-with-python2 python-pyaes))
|
||||
|
||||
(define-public python-uritemplate
|
||||
(package
|
||||
(name "python-uritemplate")
|
||||
(version "3.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "uritemplate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0781gm9g34wa0asc19dx81ng0nqq07igzv3bbvdqmz13pv7469n0"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://uritemplate.readthedocs.org")
|
||||
(synopsis "Library to deal with URI Templates")
|
||||
(description "@code{uritemplate} provides Python library to deal with URI
|
||||
Templates.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python2-uritemplate
|
||||
(package-with-python2 python-uritemplate))
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
(define-public ruby
|
||||
(package
|
||||
(name "ruby")
|
||||
(replacement ruby-2.4.1)
|
||||
(replacement ruby-2.4.2)
|
||||
(version "2.4.0")
|
||||
(source
|
||||
(origin
|
||||
|
@ -103,11 +103,11 @@ a focus on simplicity and productivity.")
|
|||
(home-page "https://ruby-lang.org")
|
||||
(license license:ruby)))
|
||||
|
||||
(define-public ruby-2.4.1
|
||||
(define-public ruby-2.4.2
|
||||
(package
|
||||
(inherit ruby)
|
||||
(name "ruby")
|
||||
(version "2.4.1")
|
||||
(version "2.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -116,20 +116,17 @@ a focus on simplicity and productivity.")
|
|||
"/ruby-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m763zf2v0jhrha3cx21g4dif6vc9gm714invs8h3sg35ncskj2g"))
|
||||
"0dgp4ypk3smrsbh2c249n5pl6nqhpd2igq9484dbsh81sf08k2kl"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet `(begin
|
||||
;; Remove bundled libffi
|
||||
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
||||
#t))
|
||||
(patches
|
||||
(search-patches "ruby-rubygems-2612-ruby24.patch"
|
||||
"ruby-rubygems-2613-ruby24.patch"))))))
|
||||
#t))))))
|
||||
|
||||
(define-public ruby-2.3
|
||||
(package
|
||||
(inherit ruby)
|
||||
(version "2.3.4")
|
||||
(version "2.3.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -138,9 +135,8 @@ a focus on simplicity and productivity.")
|
|||
"/ruby-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"132p5kc1sx97svbx04g40pz5pr7p8f6jlmnq5r2prlcz5q1xj71l"))
|
||||
"1npzcnq5kh0f9y88w5gj4v6ln8csr91361k3r43dmhlhn6mpsfkx"))
|
||||
(modules '((guix build utils)))
|
||||
(patches (search-patches "ruby-2.3.4-rubygems-2613-ruby23.patch"))
|
||||
(snippet `(begin
|
||||
;; Remove bundled libffi
|
||||
(delete-file-recursively "ext/fiddle/libffi-3.2.1")
|
||||
|
@ -148,17 +144,16 @@ a focus on simplicity and productivity.")
|
|||
|
||||
(define-public ruby-2.2
|
||||
(package (inherit ruby)
|
||||
(version "2.2.7")
|
||||
(version "2.2.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
|
||||
(version-major+minor version)
|
||||
"/ruby-" version ".tar.xz"))
|
||||
(patches (search-patches "ruby-2.2.7-rubygems-2613-ruby22.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lyb7gnbbhs3a3v9grsjgbaixm20wxz6x3h0czyrxnj3cpp8lk13"))))))
|
||||
"1c31slidv2bdnnir3qfmdjs193b5s2ycb9pnf1lc55kk0cazrsip"))))))
|
||||
|
||||
(define-public ruby-2.1
|
||||
(package (inherit ruby)
|
||||
|
@ -2023,14 +2018,14 @@ extract comments.")
|
|||
(define-public ruby-coderay
|
||||
(package
|
||||
(name "ruby-coderay")
|
||||
(version "1.1.1")
|
||||
(version "1.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "coderay" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r"))))
|
||||
"15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; missing test files
|
||||
|
@ -2570,14 +2565,14 @@ you about the changes.")
|
|||
(define-public ruby-activesupport
|
||||
(package
|
||||
(name "ruby-activesupport")
|
||||
(version "5.1.3")
|
||||
(version "5.1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "activesupport" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16r18n6b1nlky0xx2lw8c1f15gr2vm34xz5g4byjcxf88m1s07xh"))))
|
||||
"0sgf4rsfr7jcaqsx0wwzx4l4k9xsjlwv0mzl08pxiyp1qzyx8scr"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -149,14 +149,14 @@ anywhere.")
|
|||
(define-public samba
|
||||
(package
|
||||
(name "samba")
|
||||
(version "4.6.7")
|
||||
(version "4.6.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.samba.org/pub/samba/stable/"
|
||||
"samba-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ynxndfk45zkkylz3jsrx42a7kmm42jddk5bdhihyf88vs9l7wly"))))
|
||||
"0pap686cl0j5c9v1v09krpqdk416x3851fbcap5ysp1zajrfw7aq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
212
gnu/packages/simulation.scm
Normal file
212
gnu/packages/simulation.scm
Normal file
|
@ -0,0 +1,212 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages simulation)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public openfoam
|
||||
(package
|
||||
(name "openfoam")
|
||||
(version "4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://dl.openfoam.org/source/"
|
||||
(string-map (lambda (x) (if (eq? x #\.) #\- x)) version)))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0cgxh4h2hf50qbvvdg5miwc2nympb0nrv3md96vb3gbs9vk8vq9d"))
|
||||
(patches (search-patches "openfoam-4.1-cleanup.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("cgal" ,cgal)
|
||||
("flex" ,flex)
|
||||
("git" ,git)
|
||||
("gmp" ,gmp)
|
||||
("libxt" ,libxt)
|
||||
("metis" ,metis)
|
||||
("mpfr" ,mpfr)
|
||||
("ncurses" ,ncurses)
|
||||
("readline" ,readline)
|
||||
("scotch" ,pt-scotch32)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)))
|
||||
(propagated-inputs
|
||||
`(("gzip" ,gzip)
|
||||
("gnuplot" ,gnuplot)
|
||||
("openmpi" ,openmpi)))
|
||||
(arguments
|
||||
`( ;; Executable files and shared libraries are located in the 'platforms'
|
||||
;; subdirectory.
|
||||
#:strip-directories (list (string-append
|
||||
"lib/OpenFOAM-" ,version
|
||||
"/platforms/linux64GccDPInt32Opt/bin")
|
||||
(string-append
|
||||
"lib/OpenFOAM-" ,version
|
||||
"/platforms/linux64GccDPInt32Opt/lib"))
|
||||
#:tests? #f ; no tests to run
|
||||
|
||||
#:modules ((ice-9 ftw)
|
||||
(ice-9 regex)
|
||||
(guix build gnu-build-system)
|
||||
(guix build utils))
|
||||
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'rename-build-directory
|
||||
(lambda _
|
||||
(chdir "..")
|
||||
;; Use 'OpenFOAM-version' convention to match the file
|
||||
;; name expectations in the build phase.
|
||||
(let ((unpack-dir (string-append
|
||||
(getcwd) "/"
|
||||
(list-ref (scandir (getcwd) (lambda (name)
|
||||
(string-match "^OpenFOAM" name))) 0)))
|
||||
(build-dir (string-append
|
||||
(getcwd) "/OpenFOAM-" ,version)))
|
||||
(rename-file unpack-dir build-dir) ; rename build directory
|
||||
(chdir (basename build-dir))) ; move to build directory
|
||||
#t))
|
||||
(delete 'configure) ; no configure phase
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(let ((libraries '("boost" "cgal" "gmp" "metis" "mpfr" "scotch")))
|
||||
;; set variables to define store paths
|
||||
(for-each (lambda (library)
|
||||
(setenv (string-append
|
||||
(string-upcase library) "_ROOT")
|
||||
(assoc-ref %build-inputs library))) libraries))
|
||||
;; set variables to define package versions
|
||||
(setenv "SCOTCHVERSION" ,(package-version scotch))
|
||||
(setenv "METISVERSION" ,(package-version metis))
|
||||
;; set variable to pass extra 'rpath' arguments to linker
|
||||
(setenv "LDFLAGS"
|
||||
(string-append
|
||||
"-Wl,"
|
||||
"-rpath=" %output "/lib/OpenFOAM-" ,version
|
||||
"/platforms/linux64GccDPInt32Opt/lib,"
|
||||
"-rpath=" %output "/lib/OpenFOAM-" ,version
|
||||
"/platforms/linux64GccDPInt32Opt/lib/dummy"))
|
||||
;; compile OpenFOAM libraries and applications
|
||||
(zero? (system (format #f
|
||||
"source ./etc/bashrc && ./Allwmake -j~a"
|
||||
(parallel-job-count))))))
|
||||
(add-after 'build 'update-configuration-files
|
||||
(lambda _
|
||||
;; record store paths and package versions in
|
||||
;; configuration files
|
||||
(substitute* "etc/config.sh/CGAL"
|
||||
(("$BOOST_ROOT") (getenv "BOOST_ROOT")))
|
||||
(substitute* "etc/config.sh/CGAL"
|
||||
(("$CGAL_ROOT") (getenv "CGAL_ROOT")))
|
||||
(substitute* "etc/config.sh/metis"
|
||||
(("$METIS_ROOT") (getenv "METIS_ROOT")))
|
||||
(substitute* "etc/config.sh/metis"
|
||||
(("$METISVERSION") (getenv "METISVERSION")))
|
||||
(substitute* "etc/config.sh/scotch"
|
||||
(("$SCOTCH_ROOT") (getenv "SCOTCH_ROOT")))
|
||||
(substitute* "etc/config.sh/scotch"
|
||||
(("$SCOTCHVERSION") (getenv "SCOTCHVERSION")))
|
||||
(substitute* "etc/config.sh/settings"
|
||||
(("$GMP_ROOT") (getenv "GMP_ROOT")))
|
||||
(substitute* "etc/config.sh/settings"
|
||||
(("$MPFR_ROOT") (getenv "MPFR_ROOT")))
|
||||
;; reset lockDir variable to refer to write-enabled
|
||||
;; directory
|
||||
(substitute* "wmake/wmake"
|
||||
((" lockDir=.*$")
|
||||
" lockDir=$HOME/.$WM_PROJECT/.wmake\n"))
|
||||
(substitute* "wmake/wmakeScheduler"
|
||||
(("lockDir=.*$")
|
||||
"lockDir=$HOME/.$WM_PROJECT/.wmake\n"))
|
||||
(substitute* "wmake/wmakeSchedulerUptime"
|
||||
(("lockDir=.*$")
|
||||
"lockDir=$HOME/.$WM_PROJECT/.wmake\n"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
;; use 'OpenFOAM-version' convention
|
||||
(let ((install-dir (string-append
|
||||
%output "/lib/OpenFOAM-" ,version)))
|
||||
(mkdir-p install-dir) ; create install directory
|
||||
;; move contents of build directory to install directory
|
||||
(copy-recursively "." install-dir))))
|
||||
(add-after 'install 'add-symbolic-link
|
||||
(lambda _
|
||||
;; add symbolic link for standard 'bin' directory
|
||||
(symlink
|
||||
(string-append "./lib/OpenFOAM-" ,version
|
||||
"/platforms/linux64GccDPInt32Opt/bin")
|
||||
(string-append %output "/bin"))
|
||||
#t)))))
|
||||
;; Note:
|
||||
;; Tutorial files are installed read-only in /gnu/store.
|
||||
;; To allow write permissions on files copied from the store a
|
||||
;; 'chmod' step is needed before running the applications. For
|
||||
;; example, from a user's login:
|
||||
;; $ source $GUIX_PROFILE/lib/OpenFOAM-4.1/etc/bashrc
|
||||
;; $ mkdir -p $FOAM_RUN
|
||||
;; $ cd $FOAM_RUN
|
||||
;; $ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzdaily .
|
||||
;; $ cd pitzdaily
|
||||
;; $ chmod -R u+w .
|
||||
;; $ blockMesh
|
||||
(synopsis "Framework for numerical simulation of fluid flow")
|
||||
(description "OpenFOAM provides a set of solvers and methods for tackling
|
||||
problems in the field of Computational Fluid Dynamics (CFD). It is written in
|
||||
C++. Governing equations such as the Navier-Stokes equations can be solved in
|
||||
integral form. Physical processes such as phase change, droplet transport and
|
||||
chemical reaction can be modelled. Numerical methods are included to deal with
|
||||
sharp gradients, such as those encountered in flows with shock waves and flows
|
||||
with gas/liquid interfaces. Large problems may be split into smaller, connected
|
||||
problems for efficient solution on parallel systems.")
|
||||
(license license:gpl3+)
|
||||
(home-page "https://openfoam.org")))
|
|
@ -500,14 +500,14 @@ nonlinear mixed-effects models.")
|
|||
(define-public r-mgcv
|
||||
(package
|
||||
(name "r-mgcv")
|
||||
(version "1.8-19")
|
||||
(version "1.8-21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "mgcv" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18zpnqilc2586764j7smwbixxz5gzpkpz2gq8nwgidfkyqwrkc45"))))
|
||||
"1vgjz4ihms9kch6fadh0hkzgwv34wzbdmdzm6392cql1mx06x0mi"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-matrix" ,r-matrix)
|
||||
|
@ -1060,14 +1060,14 @@ aesthetic attributes.")
|
|||
(define-public r-gdtools
|
||||
(package
|
||||
(name "r-gdtools")
|
||||
(version "0.1.5")
|
||||
(version "0.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gdtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09y9x09gri33ghhrvjjnj5k5rk0kdpsk3wq02cln8gmywd6728vk"))))
|
||||
"103wnc8sq0iwcnj4j14hd420d2dqdyf13s3f25icsznrlyzdkhf5"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-rcpp" ,r-rcpp)
|
||||
|
@ -1086,14 +1086,14 @@ and to generate base64 encoded string from raster matrix.")
|
|||
(define-public r-svglite
|
||||
(package
|
||||
(name "r-svglite")
|
||||
(version "1.2.0")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "svglite" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1s1gvmlmmna5y4jsn9h6438pg5b86fl4nwfvkgm6n4h6ljfgqyx3"))))
|
||||
"1bws3lc4hlhln11zd7lalhiyc43yk6c6vrzy41fkxk1dkjazfx51"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs `(("r-rcpp" ,r-rcpp)))
|
||||
(propagated-inputs
|
||||
|
@ -1424,13 +1424,13 @@ you call it again with the same arguments it returns the pre-computed value.")
|
|||
(define-public r-crayon
|
||||
(package
|
||||
(name "r-crayon")
|
||||
(version "1.3.2")
|
||||
(version "1.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "crayon" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0s2yam18slph7xsw4pyc9f92gdyf609r5w92yax69zh57kb7asws"))))
|
||||
"0s7s6vc3ww8pzanpjisym4jjvwcc5pi2qg8srx7jqlz9j3wrnvpw"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-memoise" ,r-memoise)))
|
||||
|
@ -1552,13 +1552,13 @@ and printing capabilities than traditional data frames.")
|
|||
(define-public r-dplyr
|
||||
(package
|
||||
(name "r-dplyr")
|
||||
(version "0.7.2")
|
||||
(version "0.7.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dplyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jpb32ca1c0mr660igna4yw4fmzydzfhxshd0g8wgmggkynx2qi2"))))
|
||||
"0wz5vrcsxzmxpxvs1raz9kyfc7mq3591nadq4rb4hx4sc97ysrxf"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
|
@ -2208,17 +2208,17 @@ collation, and NAMESPACE files.")
|
|||
(define-public r-openssl
|
||||
(package
|
||||
(name "r-openssl")
|
||||
(version "0.9.6")
|
||||
(version "0.9.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "openssl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ffwllii8xl6sa2v66134g0fwaw1y3zn3mvaa4nrc120vv5d3mkd"))))
|
||||
"178fcp9f245i0k9s2w45kbw0ml0r9pfc73ak8hvicw4jz639wzb9"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("openssl" ,openssl)))
|
||||
`(("libressl" ,libressl)))
|
||||
(home-page "https://github.com/jeroenooms/openssl")
|
||||
(synopsis "Toolkit for encryption, signatures and certificates")
|
||||
(description
|
||||
|
@ -2289,13 +2289,13 @@ pure C implementation of the Git core methods.")
|
|||
(define-public r-rstudioapi
|
||||
(package
|
||||
(name "r-rstudioapi")
|
||||
(version "0.6")
|
||||
(version "0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstudioapi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zkvz72z6nw0xc8bhb21y5x1nk6avijs0w8n4vsbvw9sn76wc96s"))))
|
||||
"133s75q2hr6jg28m1wvs96qrbc9c4vw87migwhkjqb88xxvbqhd5"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/rstudioapi")
|
||||
(synopsis "Safely access the RStudio API")
|
||||
|
@ -2595,13 +2595,13 @@ variety of formats.")
|
|||
(define-public r-gridextra
|
||||
(package
|
||||
(name "r-gridextra")
|
||||
(version "2.2.1")
|
||||
(version "2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gridExtra" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0638ihwl00j76ivaxxhxvi8z573lwy1jym3srr78mx6dbdd4bzj4"))))
|
||||
"0fwfk3cdwxxim7nd55pn7m31bcaqj48y06j7an2k1v1pybk0rdl1"))))
|
||||
(properties `((upstream-name . "gridExtra")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -2769,13 +2769,13 @@ plotted and compared with the asymptotic curve.")
|
|||
(define-public r-lambda-r
|
||||
(package
|
||||
(name "r-lambda-r")
|
||||
(version "1.1.9")
|
||||
(version "1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lambda.r" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j6287iqvs3ill6r5g6ksf5809qp0l0nf20ib8266m1r09lc9j14"))))
|
||||
"0vql32np716dpd0kjn7s7wgawd02ysgp2a5il4kb19nlw661ii3x"))))
|
||||
(properties `((upstream-name . "lambda.r")))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/lambda.r")
|
||||
|
@ -3086,14 +3086,14 @@ analysis of large sparse or dense matrices.")
|
|||
(define-public r-glmnet
|
||||
(package
|
||||
(name "r-glmnet")
|
||||
(version "2.0-10")
|
||||
(version "2.0-12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "glmnet" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07n2hz4fvjyv0siai8z8wqwfj8d58i8n1vzf1ckdfzp4kxa3z08d"))))
|
||||
"1f8j440xi3xq37gvddiq2v610cvpzpg34n43116kixw1zvikm5ra"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
|
@ -3586,14 +3586,14 @@ selection.")
|
|||
(define-public r-tidyr
|
||||
(package
|
||||
(name "r-tidyr")
|
||||
(version "0.7.0")
|
||||
(version "0.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "tidyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lg0amx5hs37ajwjxz7ya50q4s28jcdj51kzl10s1x4l1akp7xls"))))
|
||||
"18fii18f967xaw6swn0w744sncx37rfq6gd8d9dccrpyf8647hmr"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dplyr" ,r-dplyr)
|
||||
|
@ -5141,24 +5141,25 @@ to Applied regression, Second Edition, Sage, 2011.")
|
|||
(define-public r-caret
|
||||
(package
|
||||
(name "r-caret")
|
||||
(version "6.0-76")
|
||||
(version "6.0-77")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "caret" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1w31xzpmj8p6r6s7s1vwnjxainq54bbh4cqm177ba0myv69hh8cc"))))
|
||||
"05c504567s2nppzfgi36mhszbym2pr80nf50dgxcxfx030721v5y"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-car" ,r-car)
|
||||
("r-foreach" ,r-foreach)
|
||||
`(("r-foreach" ,r-foreach)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-lattice" ,r-lattice)
|
||||
("r-modelmetrics" ,r-modelmetrics)
|
||||
("r-nlme" ,r-nlme)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-reshape2" ,r-reshape2)))
|
||||
("r-recipes" ,r-recipes)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-withr" ,r-withr)))
|
||||
(home-page "https://github.com/topepo/caret")
|
||||
(synopsis "Classification and regression training")
|
||||
(description
|
||||
|
|
|
@ -35,14 +35,14 @@
|
|||
(define-public owncloud-client
|
||||
(package
|
||||
(name "owncloud-client")
|
||||
(version "2.3.1")
|
||||
(version "2.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.owncloud.com/desktop/stable/"
|
||||
"owncloudclient-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "051rky4rpm73flxxkhfdxqq23ncnk4ixhscbg74w82sa4d93f54k"))
|
||||
(base32 "1r5ddln1wc9iyjizgqb104i0r6qhzsmm2wdnxfaif119cv0vphda"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue