Merge branch 'master' into core-updates-frozen
commit
1052ae5f03
|
@ -449,6 +449,7 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
|
|||
("rarr" "→")
|
||||
("hellip" "…")
|
||||
("rsquo" "’")
|
||||
("nbsp" " ")
|
||||
(e (pk 'unknown-entity e) (primitive-exit 2))))
|
||||
|
||||
(define (concatenate-snippets pieces)
|
||||
|
|
506
doc/guix.texi
506
doc/guix.texi
|
@ -346,7 +346,8 @@ Services
|
|||
* Base Services:: Essential system services.
|
||||
* Scheduled Job Execution:: The mcron service.
|
||||
* Log Rotation:: The rottlog service.
|
||||
* Networking Services:: Network setup, SSH daemon, etc.
|
||||
* Networking Setup:: Setting up network interfaces.
|
||||
* Networking Services:: Firewall, SSH daemon, etc.
|
||||
* Unattended Upgrades:: Automated system upgrades.
|
||||
* X Window:: Graphical display.
|
||||
* Printing Services:: Local and remote printer support.
|
||||
|
@ -15816,7 +15817,8 @@ declaration.
|
|||
* Base Services:: Essential system services.
|
||||
* Scheduled Job Execution:: The mcron service.
|
||||
* Log Rotation:: The rottlog service.
|
||||
* Networking Services:: Network setup, SSH daemon, etc.
|
||||
* Networking Setup:: Setting up network interfaces.
|
||||
* Networking Services:: Firewall, SSH daemon, etc.
|
||||
* Unattended Upgrades:: Automated system upgrades.
|
||||
* X Window:: Graphical display.
|
||||
* Printing Services:: Local and remote printer support.
|
||||
|
@ -17038,11 +17040,202 @@ The list of syslog-controlled files to be rotated. By default it is:
|
|||
"/var/log/maillog")}.
|
||||
@end defvr
|
||||
|
||||
@node Networking Services
|
||||
@subsection Networking Services
|
||||
@node Networking Setup
|
||||
@subsection Networking Setup
|
||||
|
||||
The @code{(gnu services networking)} module provides services to configure
|
||||
the network interface.
|
||||
The @code{(gnu services networking)} module provides services to
|
||||
configure network interfaces and set up networking on your machine.
|
||||
Those services provide different ways for you to set up your machine: by
|
||||
declaring a static network configuration, by running a Dynamic Host
|
||||
Configuration Protocol (DHCP) client, or by running daemons such as
|
||||
NetworkManager and Connman that automate the whole process,
|
||||
automatically adapt to connectivity changes, and provide a high-level
|
||||
user interface.
|
||||
|
||||
On a laptop, NetworkManager and Connman are by far the most convenient
|
||||
options, which is why the default desktop services include
|
||||
NetworkManager (@pxref{Desktop Services, @code{%desktop-services}}).
|
||||
For a server, or for a virtual machine or a container, static network
|
||||
configuration or a simple DHCP client are often more appropriate.
|
||||
|
||||
This section describes the various network setup services available,
|
||||
starting with static network configuration.
|
||||
|
||||
@defvr {Scheme Variable} static-networking-service-type
|
||||
This is the type for statically-configured network interfaces. Its
|
||||
value must be a list of @code{static-networking} records. Each of them
|
||||
declares a set of @dfn{addresses}, @dfn{routes}, and @dfn{links}, as
|
||||
show below.
|
||||
|
||||
@cindex network interface controller (NIC)
|
||||
@cindex NIC, networking interface controller
|
||||
Here is the simplest configuration, with only one network interface
|
||||
controller (NIC) and only IPv4 connectivity:
|
||||
|
||||
@example
|
||||
;; Static networking for one NIC, IPv4-only.
|
||||
(service static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses
|
||||
(list (network-address
|
||||
(device "eno1")
|
||||
(value "10.0.2.15/24"))))
|
||||
(routes
|
||||
(list (network-route
|
||||
(destination "default")
|
||||
(gateway "10.0.2.2"))))
|
||||
(name-servers '("10.0.2.3")))))
|
||||
@end example
|
||||
|
||||
The snippet above can be added to the @code{services} field of your
|
||||
operating system configuration (@pxref{Using the Configuration System}).
|
||||
It will configure your machine to have 10.0.2.15 as its IP address, with
|
||||
a 24-bit netmask for the local network---meaning that any 10.0.2.@var{x}
|
||||
address is on the local area network (LAN). Traffic to addresses
|
||||
outside the local network is routed @i{via} 10.0.2.2. Host names are
|
||||
resolved by sending domain name system (DNS) queries to 10.0.2.3.
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} static-networking
|
||||
This is the data type representing a static network configuration.
|
||||
|
||||
As an example, here is how you would declare the configuration of a
|
||||
machine with a single network interface controller (NIC) available as
|
||||
@code{eno1}, and with one IPv4 and one IPv6 address:
|
||||
|
||||
@lisp
|
||||
;; Network configuration for one NIC, IPv4 + IPv6.
|
||||
(static-networking
|
||||
(addresses (list (network-address
|
||||
(device "eno1")
|
||||
(value "10.0.2.15/24"))
|
||||
(network-address
|
||||
(device "eno1")
|
||||
(value "2001:123:4567:101::1/64"))))
|
||||
(routes (list (network-route
|
||||
(destination "default")
|
||||
(gateway "10.0.2.2"))
|
||||
(network-route
|
||||
(destination "default")
|
||||
(gateway "2020:321:4567:42::1"))))
|
||||
(name-servers '("10.0.2.3")))
|
||||
@end lisp
|
||||
|
||||
If you are familiar with the @command{ip} command of the
|
||||
@uref{https://wiki.linuxfoundation.org/networking/iproute2,
|
||||
@code{iproute2} package} found on Linux-based systems, the declaration
|
||||
above is equivalent to typing:
|
||||
|
||||
@example
|
||||
ip address add 10.0.2.15/24 dev eno1
|
||||
ip address add 2001:123:4567:101::1/64 dev eno1
|
||||
ip route add default via inet 10.0.2.2
|
||||
ip route add default via inet6 2020:321:4567:42::1
|
||||
@end example
|
||||
|
||||
Run @command{man 8 ip} for more info. Venerable GNU/Linux users will
|
||||
certainly know how to do it with @command{ifconfig} and @command{route},
|
||||
but we'll spare you that.
|
||||
|
||||
The available fields of this data type are as follows:
|
||||
|
||||
@table @asis
|
||||
@item @code{addresses}
|
||||
@itemx @code{links} (default: @code{'()})
|
||||
@itemx @code{routes} (default: @code{'()})
|
||||
The list of @code{network-address}, @code{network-link}, and
|
||||
@code{network-route} records for this network (see below).
|
||||
|
||||
@item @code{name-servers} (default: @code{'()})
|
||||
The list of IP addresses (strings) of domain name servers. These IP
|
||||
addresses go to @file{/etc/resolv.conf}.
|
||||
|
||||
@item @code{provision} (default: @code{'(networking)})
|
||||
If true, this should be a list of symbols for the Shepherd service
|
||||
corresponding to this network configuration.
|
||||
|
||||
@item @code{requirement} (default @code{'()})
|
||||
The list of Shepherd services depended on.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@deftp {Data Type} network-address
|
||||
This is the data type representing the IP address of a network
|
||||
interface.
|
||||
|
||||
@table @code
|
||||
@item device
|
||||
The name of the network interface for this address---e.g.,
|
||||
@code{"eno1"}.
|
||||
|
||||
@item value
|
||||
The actual IP address and network mask, in
|
||||
@uref{https://en.wikipedia.org/wiki/CIDR#CIDR_notation, @acronym{CIDR,
|
||||
Classless Inter-Domain Routing} notation}, as a string.
|
||||
|
||||
For example, @code{"10.0.2.15/24"} denotes IPv4 address 10.0.2.15 on a
|
||||
24-bit sub-network---all 10.0.2.@var{x} addresses are on the same local
|
||||
network.
|
||||
|
||||
@item ipv6?
|
||||
Whether @code{value} denotes an IPv6 address. By default this is
|
||||
automatically determined.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@deftp {Data Type} network-route
|
||||
This is the data type representing a network route.
|
||||
|
||||
@table @asis
|
||||
@item @code{destination}
|
||||
The route destination (a string), either an IP address or
|
||||
@code{"default"} to denote the default route.
|
||||
|
||||
@item @code{source} (default: @code{#f})
|
||||
The route source.
|
||||
|
||||
@item @code{device} (default: @code{#f})
|
||||
The device used for this route---e.g., @code{"eno2"}.
|
||||
|
||||
@item @code{ipv6?} (default: auto)
|
||||
Whether this is an IPv6 route. By default this is automatically
|
||||
determined based on @code{destination} or @code{gateway}.
|
||||
|
||||
@item @code{gateway} (default: @code{#f})
|
||||
IP address (a string) through which traffic is routed.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@deftp {Data Type} network-link
|
||||
Data type for a network link (@pxref{Link,,, guile-netlink,
|
||||
Guile-Netlink Manual}).
|
||||
|
||||
@table @code
|
||||
@item name
|
||||
The name of the link---e.g., @code{"v0p0"}.
|
||||
|
||||
@item type
|
||||
A symbol denoting the type of the link---e.g., @code{'veth}.
|
||||
|
||||
@item arguments
|
||||
List of arguments for this type of link.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex loopback device
|
||||
@defvr {Scheme Variable} %loopback-static-networking
|
||||
This is the @code{static-networking} record representing the ``loopback
|
||||
device'', @code{lo}, for IP addresses 127.0.0.1 and ::1, and providing
|
||||
the @code{loopback} Shepherd service.
|
||||
@end defvr
|
||||
|
||||
@cindex networking, with QEMU
|
||||
@cindex QEMU, networking
|
||||
@defvr {Scheme Variable} %qemu-static-networking
|
||||
This is the @code{static-networking} record representing network setup
|
||||
when using QEMU's user-mode network stack on @code{eth0} (@pxref{Using
|
||||
the user mode network stack,,, QEMU, QEMU Documentation}).
|
||||
@end defvr
|
||||
|
||||
@cindex DHCP, networking service
|
||||
@defvr {Scheme Variable} dhcp-client-service-type
|
||||
|
@ -17051,154 +17244,6 @@ Protocol (DHCP) client, on all the non-loopback network interfaces. Its value
|
|||
is the DHCP client package to use, @code{isc-dhcp} by default.
|
||||
@end defvr
|
||||
|
||||
@deffn {Scheme Procedure} dhcpd-service-type
|
||||
This type defines a service that runs a DHCP daemon. To create a
|
||||
service of this type, you must supply a @code{<dhcpd-configuration>}.
|
||||
For example:
|
||||
|
||||
@lisp
|
||||
(service dhcpd-service-type
|
||||
(dhcpd-configuration
|
||||
(config-file (local-file "my-dhcpd.conf"))
|
||||
(interfaces '("enp0s25"))))
|
||||
@end lisp
|
||||
@end deffn
|
||||
|
||||
@deftp {Data Type} dhcpd-configuration
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{isc-dhcp})
|
||||
The package that provides the DHCP daemon. This package is expected to
|
||||
provide the daemon at @file{sbin/dhcpd} relative to its output
|
||||
directory. The default package is the
|
||||
@uref{https://www.isc.org/products/DHCP, ISC's DHCP server}.
|
||||
@item @code{config-file} (default: @code{#f})
|
||||
The configuration file to use. This is required. It will be passed to
|
||||
@code{dhcpd} via its @code{-cf} option. This may be any ``file-like''
|
||||
object (@pxref{G-Expressions, file-like objects}). See @code{man
|
||||
dhcpd.conf} for details on the configuration file syntax.
|
||||
@item @code{version} (default: @code{"4"})
|
||||
The DHCP version to use. The ISC DHCP server supports the values ``4'',
|
||||
``6'', and ``4o6''. These correspond to the @code{dhcpd} program
|
||||
options @code{-4}, @code{-6}, and @code{-4o6}. See @code{man dhcpd} for
|
||||
details.
|
||||
@item @code{run-directory} (default: @code{"/run/dhcpd"})
|
||||
The run directory to use. At service activation time, this directory
|
||||
will be created if it does not exist.
|
||||
@item @code{pid-file} (default: @code{"/run/dhcpd/dhcpd.pid"})
|
||||
The PID file to use. This corresponds to the @code{-pf} option of
|
||||
@code{dhcpd}. See @code{man dhcpd} for details.
|
||||
@item @code{interfaces} (default: @code{'()})
|
||||
The names of the network interfaces on which dhcpd should listen for
|
||||
broadcasts. If this list is not empty, then its elements (which must be
|
||||
strings) will be appended to the @code{dhcpd} invocation when starting
|
||||
the daemon. It may not be necessary to explicitly specify any
|
||||
interfaces here; see @code{man dhcpd} for details.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@defvr {Scheme Variable} static-networking-service-type
|
||||
This is the type for statically-configured network interfaces.
|
||||
@c TODO Document <static-networking> data structures.
|
||||
@end defvr
|
||||
|
||||
@deffn {Scheme Procedure} static-networking-service @var{interface} @var{ip} @
|
||||
[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @
|
||||
[#:requirement @code{'(udev)}]
|
||||
Return a service that starts @var{interface} with address @var{ip}. If
|
||||
@var{netmask} is true, use it as the network mask. If @var{gateway} is true,
|
||||
it must be a string specifying the default network gateway. @var{requirement}
|
||||
can be used to declare a dependency on another service before configuring the
|
||||
interface.
|
||||
|
||||
This procedure can be called several times, one for each network
|
||||
interface of interest. Behind the scenes what it does is extend
|
||||
@code{static-networking-service-type} with additional network interfaces
|
||||
to handle.
|
||||
|
||||
For example:
|
||||
|
||||
@lisp
|
||||
(static-networking-service "eno1" "192.168.1.82"
|
||||
#:gateway "192.168.1.2"
|
||||
#:name-servers '("192.168.1.2"))
|
||||
@end lisp
|
||||
@end deffn
|
||||
|
||||
@cindex wicd
|
||||
@cindex wireless
|
||||
@cindex WiFi
|
||||
@cindex network management
|
||||
@deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
|
||||
Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
|
||||
management daemon that aims to simplify wired and wireless networking.
|
||||
|
||||
This service adds the @var{wicd} package to the global profile, providing
|
||||
several commands to interact with the daemon and configure networking:
|
||||
@command{wicd-client}, a graphical user interface, and the @command{wicd-cli}
|
||||
and @command{wicd-curses} user interfaces.
|
||||
@end deffn
|
||||
|
||||
@cindex ModemManager
|
||||
|
||||
@defvr {Scheme Variable} modem-manager-service-type
|
||||
This is the service type for the
|
||||
@uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager}
|
||||
service. The value for this service type is a
|
||||
@code{modem-manager-configuration} record.
|
||||
|
||||
This service is part of @code{%desktop-services} (@pxref{Desktop
|
||||
Services}).
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} modem-manager-configuration
|
||||
Data type representing the configuration of ModemManager.
|
||||
|
||||
@table @asis
|
||||
@item @code{modem-manager} (default: @code{modem-manager})
|
||||
The ModemManager package to use.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex USB_ModeSwitch
|
||||
@cindex Modeswitching
|
||||
|
||||
@defvr {Scheme Variable} usb-modeswitch-service-type
|
||||
This is the service type for the
|
||||
@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch}
|
||||
service. The value for this service type is
|
||||
a @code{usb-modeswitch-configuration} record.
|
||||
|
||||
When plugged in, some USB modems (and other USB devices) initially present
|
||||
themselves as a read-only storage medium and not as a modem. They need to be
|
||||
@dfn{modeswitched} before they are usable. The USB_ModeSwitch service type
|
||||
installs udev rules to automatically modeswitch these devices when they are
|
||||
plugged in.
|
||||
|
||||
This service is part of @code{%desktop-services} (@pxref{Desktop
|
||||
Services}).
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} usb-modeswitch-configuration
|
||||
Data type representing the configuration of USB_ModeSwitch.
|
||||
|
||||
@table @asis
|
||||
@item @code{usb-modeswitch} (default: @code{usb-modeswitch})
|
||||
The USB_ModeSwitch package providing the binaries for modeswitching.
|
||||
|
||||
@item @code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})
|
||||
The package providing the device data and udev rules file used by
|
||||
USB_ModeSwitch.
|
||||
|
||||
@item @code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")})
|
||||
Which config file to use for the USB_ModeSwitch dispatcher. By default the
|
||||
config file shipped with USB_ModeSwitch is used which disables logging to
|
||||
@file{/var/log} among other default settings. If set to @code{#f}, no config
|
||||
file is used.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex NetworkManager
|
||||
|
||||
@defvr {Scheme Variable} network-manager-service-type
|
||||
|
@ -17335,6 +17380,139 @@ List of additional command-line arguments to pass to the daemon.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex wicd
|
||||
@cindex wireless
|
||||
@cindex WiFi
|
||||
@cindex network management
|
||||
@deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
|
||||
Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
|
||||
management daemon that aims to simplify wired and wireless networking.
|
||||
|
||||
This service adds the @var{wicd} package to the global profile, providing
|
||||
several commands to interact with the daemon and configure networking:
|
||||
@command{wicd-client}, a graphical user interface, and the @command{wicd-cli}
|
||||
and @command{wicd-curses} user interfaces.
|
||||
@end deffn
|
||||
|
||||
@cindex ModemManager
|
||||
Some networking devices such as modems require special care, and this is
|
||||
what the services below focus on.
|
||||
|
||||
@defvr {Scheme Variable} modem-manager-service-type
|
||||
This is the service type for the
|
||||
@uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager}
|
||||
service. The value for this service type is a
|
||||
@code{modem-manager-configuration} record.
|
||||
|
||||
This service is part of @code{%desktop-services} (@pxref{Desktop
|
||||
Services}).
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} modem-manager-configuration
|
||||
Data type representing the configuration of ModemManager.
|
||||
|
||||
@table @asis
|
||||
@item @code{modem-manager} (default: @code{modem-manager})
|
||||
The ModemManager package to use.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex USB_ModeSwitch
|
||||
@cindex Modeswitching
|
||||
|
||||
@defvr {Scheme Variable} usb-modeswitch-service-type
|
||||
This is the service type for the
|
||||
@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch}
|
||||
service. The value for this service type is
|
||||
a @code{usb-modeswitch-configuration} record.
|
||||
|
||||
When plugged in, some USB modems (and other USB devices) initially present
|
||||
themselves as a read-only storage medium and not as a modem. They need to be
|
||||
@dfn{modeswitched} before they are usable. The USB_ModeSwitch service type
|
||||
installs udev rules to automatically modeswitch these devices when they are
|
||||
plugged in.
|
||||
|
||||
This service is part of @code{%desktop-services} (@pxref{Desktop
|
||||
Services}).
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} usb-modeswitch-configuration
|
||||
Data type representing the configuration of USB_ModeSwitch.
|
||||
|
||||
@table @asis
|
||||
@item @code{usb-modeswitch} (default: @code{usb-modeswitch})
|
||||
The USB_ModeSwitch package providing the binaries for modeswitching.
|
||||
|
||||
@item @code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})
|
||||
The package providing the device data and udev rules file used by
|
||||
USB_ModeSwitch.
|
||||
|
||||
@item @code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")})
|
||||
Which config file to use for the USB_ModeSwitch dispatcher. By default the
|
||||
config file shipped with USB_ModeSwitch is used which disables logging to
|
||||
@file{/var/log} among other default settings. If set to @code{#f}, no config
|
||||
file is used.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
|
||||
@node Networking Services
|
||||
@subsection Networking Services
|
||||
|
||||
The @code{(gnu services networking)} module discussed in the previous
|
||||
section provides services for more advanced setups: providing a DHCP
|
||||
service for others to use, filtering packets with iptables or nftables,
|
||||
running a WiFi access point with @command{hostapd}, running the
|
||||
@command{inetd} ``superdaemon'', and more. This section describes
|
||||
those.
|
||||
|
||||
@deffn {Scheme Procedure} dhcpd-service-type
|
||||
This type defines a service that runs a DHCP daemon. To create a
|
||||
service of this type, you must supply a @code{<dhcpd-configuration>}.
|
||||
For example:
|
||||
|
||||
@lisp
|
||||
(service dhcpd-service-type
|
||||
(dhcpd-configuration
|
||||
(config-file (local-file "my-dhcpd.conf"))
|
||||
(interfaces '("enp0s25"))))
|
||||
@end lisp
|
||||
@end deffn
|
||||
|
||||
@deftp {Data Type} dhcpd-configuration
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{isc-dhcp})
|
||||
The package that provides the DHCP daemon. This package is expected to
|
||||
provide the daemon at @file{sbin/dhcpd} relative to its output
|
||||
directory. The default package is the
|
||||
@uref{https://www.isc.org/products/DHCP, ISC's DHCP server}.
|
||||
@item @code{config-file} (default: @code{#f})
|
||||
The configuration file to use. This is required. It will be passed to
|
||||
@code{dhcpd} via its @code{-cf} option. This may be any ``file-like''
|
||||
object (@pxref{G-Expressions, file-like objects}). See @code{man
|
||||
dhcpd.conf} for details on the configuration file syntax.
|
||||
@item @code{version} (default: @code{"4"})
|
||||
The DHCP version to use. The ISC DHCP server supports the values ``4'',
|
||||
``6'', and ``4o6''. These correspond to the @code{dhcpd} program
|
||||
options @code{-4}, @code{-6}, and @code{-4o6}. See @code{man dhcpd} for
|
||||
details.
|
||||
@item @code{run-directory} (default: @code{"/run/dhcpd"})
|
||||
The run directory to use. At service activation time, this directory
|
||||
will be created if it does not exist.
|
||||
@item @code{pid-file} (default: @code{"/run/dhcpd/dhcpd.pid"})
|
||||
The PID file to use. This corresponds to the @code{-pf} option of
|
||||
@code{dhcpd}. See @code{man dhcpd} for details.
|
||||
@item @code{interfaces} (default: @code{'()})
|
||||
The names of the network interfaces on which dhcpd should listen for
|
||||
broadcasts. If this list is not empty, then its elements (which must be
|
||||
strings) will be appended to the @code{dhcpd} invocation when starting
|
||||
the daemon. It may not be necessary to explicitly specify any
|
||||
interfaces here; see @code{man dhcpd} for details.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@cindex hostapd service, for Wi-Fi access points
|
||||
@cindex Wi-Fi access points, hostapd service
|
||||
@defvr {Scheme Variable} hostapd-service-type
|
||||
|
@ -17397,6 +17575,7 @@ network that can be seen on @code{wlan0}, by default.
|
|||
The service's value is a @code{hostapd-configuration} record.
|
||||
@end defvr
|
||||
|
||||
|
||||
@cindex iptables
|
||||
@defvr {Scheme Variable} iptables-service-type
|
||||
This is the service type to set up an iptables configuration. iptables is a
|
||||
|
@ -20530,7 +20709,7 @@ a system which relies on @code{%desktop-services}, you may use
|
|||
|
||||
(operating-system
|
||||
@dots{}
|
||||
(services %my-desktop-services)
|
||||
(services %my-desktop-services))
|
||||
@end lisp
|
||||
@end defvr
|
||||
|
||||
|
@ -30642,11 +30821,18 @@ cluster node that supports multiple storage backends, and installs the
|
|||
"ganeti-instance-guix" "ganeti-instance-debootstrap"))
|
||||
%base-packages))
|
||||
(services
|
||||
(append (list (static-networking-service "eth0" "192.168.1.201"
|
||||
#:netmask "255.255.255.0"
|
||||
#:gateway "192.168.1.254"
|
||||
#:name-servers '("192.168.1.252"
|
||||
"192.168.1.253"))
|
||||
(append (list (service static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses
|
||||
(list (network-address
|
||||
(device "eth0")
|
||||
(value "192.168.1.201/24"))))
|
||||
(routes
|
||||
(list (network-route
|
||||
(destination "default")
|
||||
(gateway "192.168.1.254"))))
|
||||
(name-servers '("192.168.1.252"
|
||||
"192.168.1.253")))))
|
||||
|
||||
;; Ganeti uses SSH to communicate between nodes.
|
||||
(service openssh-service-type
|
||||
|
|
53
etc/news.scm
53
etc/news.scm
|
@ -25,6 +25,59 @@
|
|||
(channel-news
|
||||
(version 0)
|
||||
|
||||
(entry (commit "223f1b1eb3707f1d3ef91200dd616ee6c8b77db0")
|
||||
(title
|
||||
(en "Improved static networking support on Guix System")
|
||||
(fr "Meilleure prise en charge de réseaux statiques sur Guix System"))
|
||||
(body
|
||||
(en "Support for declarative static networking setup on Guix System
|
||||
has been improved. It now allows you to list IPv4 and IPv6 addresses in
|
||||
routes in a flexible way, similar to what you would do with the @command{ip}
|
||||
command, but in a declarative fashion, as in this example:
|
||||
|
||||
@lisp
|
||||
;; Static networking for one NIC, IPv4-only.
|
||||
(service static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses
|
||||
(list (network-address
|
||||
(device \"eno1\")
|
||||
(value \"10.0.2.15/24\"))))
|
||||
(routes
|
||||
(list (network-route
|
||||
(destination \"default\")
|
||||
(gateway \"10.0.2.2\"))))
|
||||
(name-servers '(\"10.0.2.3\")))))
|
||||
@end lisp
|
||||
|
||||
The @code{static-networking-service} procedure remains available but is
|
||||
deprecated. Run @command{info \"(guix) Networking Setup\"} for more
|
||||
information.")
|
||||
(fr "La configuration déclarative et statique du réseau est mieux
|
||||
prise en charge sur Guix System. Il est maintenant possible d'énumérer des
|
||||
adresses IPv6 et IPv4 et les chemins avec plus de flexibilité, un peu comme ce
|
||||
qu'on peut faire avec la commande @command{ip} mais de manière déclarative,
|
||||
comme dans cet exemple :
|
||||
|
||||
@lisp
|
||||
;; Réseau statique à une seule interface, IPv4 seulement.
|
||||
(service static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses
|
||||
(list (network-address
|
||||
(device \"eno1\")
|
||||
(value \"10.0.2.15/24\"))))
|
||||
(routes
|
||||
(list (network-route
|
||||
(destination \"default\")
|
||||
(gateway \"10.0.2.2\"))))
|
||||
(name-servers '(\"10.0.2.3\")))))
|
||||
@end lisp
|
||||
|
||||
La procédure @code{static-networking-service} reste disponible mais elle est
|
||||
obsolète. Lancer @command{info \"(guix) Networking Setup\"} pour plus
|
||||
d'informations.")))
|
||||
|
||||
(entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3")
|
||||
(title
|
||||
(en "Icedove 91: profile folder moved to @file{~/.thunderbird}")
|
||||
|
|
|
@ -185,13 +185,9 @@ set."
|
|||
("servers/crash-suspend" ("/hurd/crash" "--suspend"))
|
||||
("servers/password" ("/hurd/password"))
|
||||
("servers/socket/1" ("/hurd/pflocal"))
|
||||
("servers/socket/2" ("/hurd/pfinet"
|
||||
"--interface" "eth0"
|
||||
"--address"
|
||||
"10.0.2.15" ;the default QEMU guest IP
|
||||
"--netmask" "255.255.255.0"
|
||||
"--gateway" "10.0.2.2"
|
||||
"--ipv6" "/servers/socket/26"))
|
||||
;; /servers/socket/2 and /26 are created by 'static-networking-service'.
|
||||
;; XXX: Spawn pfinet without arguments on these nodes so that a DHCP
|
||||
;; client has someone to talk to?
|
||||
("proc" ("/hurd/procfs" "--stat-mode=444"))))
|
||||
|
||||
(define devices
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -111,6 +111,15 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
|
|||
(close-port sock)
|
||||
#f))))
|
||||
|
||||
(define (delete-file* file)
|
||||
"Ensure FILE does not exist."
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(delete-file file))
|
||||
(lambda args
|
||||
(unless (= ENOENT (system-error-errno args))
|
||||
(apply throw args)))))
|
||||
|
||||
(define (secret-service-receive-secrets port)
|
||||
"Listen to local PORT and wait for a secret service client to send secrets.
|
||||
Write them to the file system. Return the list of files installed on success,
|
||||
|
@ -170,6 +179,12 @@ and #f otherwise."
|
|||
(log "installing file '~a' (~a bytes)...~%"
|
||||
file size)
|
||||
(mkdir-p (dirname file))
|
||||
|
||||
;; It could be that FILE already exists, for instance
|
||||
;; because it has been created by a service's activation
|
||||
;; snippet (e.g., SSH host keys). Delete it.
|
||||
(delete-file* file)
|
||||
|
||||
(call-with-output-file file
|
||||
(lambda (output)
|
||||
(dump port output size)
|
||||
|
|
|
@ -1747,6 +1747,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/rustc-1.39.0-src.patch \
|
||||
%D%/packages/patches/rust-adblock-ignore-live-tests.patch \
|
||||
%D%/packages/patches/rust-coresimd-doctest.patch \
|
||||
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
|
||||
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
|
||||
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
|
||||
%D%/packages/patches/rust-nettle-disable-vendor.patch \
|
||||
|
@ -1754,6 +1755,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
|
||||
%D%/packages/patches/rust-shell2batch-lint-fix.patch \
|
||||
%D%/packages/patches/sbc-fix-build-non-x86.patch \
|
||||
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
|
||||
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
|
||||
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
|
||||
%D%/packages/patches/sbcl-clml-fix-types.patch \
|
||||
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1099,6 +1100,68 @@ more.")
|
|||
license:lgpl2.0+
|
||||
license:lgpl2.1+))))
|
||||
|
||||
(define-public sunclock
|
||||
(let ((commit "f4106eb0a81f7594726d6b2859efd8fc64cc1225")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sunclock")
|
||||
(version (git-version "3.57" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nongiach/Sunclock")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1rczdpmhvfw57b9r793vq8vqlbdhlkgj52fxwrdfl6cwj95a9kv2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list (string-append "DESTDIR=" %output)
|
||||
;; Fix incorrect argument given to gcc. Error message:
|
||||
;; "gcc: error: DefaultGcc2AMD64Opt: No such file or directory"
|
||||
"CDEBUGFLAGS=")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(chdir "sunclock-3.57")
|
||||
(substitute* "Imakefile"
|
||||
(("^MANDIR=/X11R6/man/man1")
|
||||
"MANDIR=/share/man/man1")
|
||||
(("^BINDIR=/X11R6/bin")
|
||||
"BINDIR=/bin")
|
||||
;; Disable ZLIB support for vmf files because zlib implements
|
||||
;; `gzgetc` as a macro instead of a function, which results in
|
||||
;; a compilation error.
|
||||
((" -DZLIB") "")
|
||||
((" -lz") "")
|
||||
(("cd \\$\\(DESTDIR\\)\\$\\(SHAREDIR\\)/earthmaps/vmf ; \
|
||||
gzip -f \\*.vmf")
|
||||
""))
|
||||
;; Generate Makefile.
|
||||
(invoke "xmkmf"))))
|
||||
#:tests? #f)) ; No check target.
|
||||
(inputs
|
||||
`(("libjpeg-turbo" ,libjpeg-turbo)
|
||||
("libpng" ,libpng)
|
||||
("libx11" ,libx11)
|
||||
("libxpm" ,libxpm)))
|
||||
(native-inputs
|
||||
`(("imake" ,imake)))
|
||||
(home-page "https://github.com/nongiach/Sunclock")
|
||||
(synopsis
|
||||
"Map of the Earth that shows which portion is illuminated by the Sun")
|
||||
(description
|
||||
"Sunclock displays a map of the Earth and shows which portion is
|
||||
illuminated by the Sun. It can commute between two states, the \"clock window\"
|
||||
and the \"map window\". The clock window displays a small map of the Earth and
|
||||
therefore occupies little space on the screen, while the \"map window\" displays
|
||||
a large map and offers more advanced functions: local time of cities, Sun and
|
||||
Moon position, etc.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public python-jplephem
|
||||
(package
|
||||
(name "python-jplephem")
|
||||
|
|
|
@ -4948,7 +4948,7 @@ as is the case with audio plugins.")
|
|||
(define-public carla
|
||||
(package
|
||||
(name "carla")
|
||||
(version "2.1.1")
|
||||
(version "2.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -4958,8 +4958,7 @@ as is the case with audio plugins.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g"))))
|
||||
(base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
|
|
|
@ -1518,6 +1518,36 @@ data. In addition, provides numerous plotting functions for commonly
|
|||
used visualizations.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-dearseq
|
||||
(package
|
||||
(name "r-dearseq")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "dearseq" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07vr27rv3z86ajd62c0ilvfgz9z35qsiwwi5pv4sygbhnnjwh3rc"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-kernsmooth" ,r-kernsmooth)
|
||||
("r-matrixstats" ,r-matrixstats)
|
||||
("r-patchwork" ,r-patchwork)
|
||||
("r-pbapply" ,r-pbapply)
|
||||
("r-statmod" ,r-statmod)
|
||||
("r-survey" ,r-survey)
|
||||
("r-viridislite" ,r-kernsmooth)))
|
||||
(home-page "https://github.com/borishejblum/dearseq")
|
||||
(synopsis "DEA for RNA-seq data through a robust variance component test")
|
||||
(description
|
||||
"This is a package for Differential Expression Analysis of RNA-seq data.
|
||||
It features a variance component score test accounting for data
|
||||
heteroscedasticity through precision weights. Perform both gene-wise and gene
|
||||
set analyses, and can deal with repeated or longitudinal data.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-decipher
|
||||
(package
|
||||
(name "r-decipher")
|
||||
|
@ -1638,6 +1668,41 @@ spent loading the full derfinder package when running the F-statistics
|
|||
calculation in parallel.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-drimseq
|
||||
(package
|
||||
(name "r-drimseq")
|
||||
(version "1.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DRIMSeq" version))
|
||||
(sha256
|
||||
(base32 "0y2jb0hb633id038zmwnfny6h4ai77fdyy02f77vha1z8xg5nl02"))))
|
||||
(properties `((upstream-name . "DRIMSeq")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-biocparallel" ,r-biocparallel)
|
||||
("r-edger" ,r-edger)
|
||||
("r-genomicranges" ,r-genomicranges)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-iranges" ,r-iranges)
|
||||
("r-limma" ,r-limma)
|
||||
("r-mass" ,r-mass)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-s4vectors" ,r-s4vectors)))
|
||||
(native-inputs `(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://bioconductor.org/packages/DRIMSeq")
|
||||
(synopsis "Differential transcript usage and tuQTL analyses with Dirichlet-multinomial model in RNA-seq")
|
||||
(description
|
||||
"The package provides two frameworks. One for the differential
|
||||
transcript usage analysis between different conditions and one for the tuQTL
|
||||
analysis. Both are based on modeling the counts of genomic features (i.e.,
|
||||
transcripts) with the Dirichlet-multinomial distribution. The package also
|
||||
makes available functions for visualization and exploration of the data and
|
||||
results.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-bluster
|
||||
(package
|
||||
(name "r-bluster")
|
||||
|
@ -1721,6 +1786,59 @@ naming and share the same rich and consistent \"Vector API\" as much as
|
|||
possible.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-isoformswitchanalyzer
|
||||
(package
|
||||
(name "r-isoformswitchanalyzer")
|
||||
(version "1.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "IsoformSwitchAnalyzeR" version))
|
||||
(sha256
|
||||
(base32 "14bqf39gw5ab5r9sr3afkig1jbzdvds1bmcvc6bpb45kschx7fwf"))))
|
||||
(properties `((upstream-name . "IsoformSwitchAnalyzeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biobase" ,r-biobase)
|
||||
("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-biostrings" ,r-biostrings)
|
||||
("r-bsgenome" ,r-bsgenome)
|
||||
("r-dbi" ,r-dbi)
|
||||
("r-dexseq" ,r-dexseq)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-drimseq" ,r-drimseq)
|
||||
("r-edger" ,r-edger)
|
||||
("r-futile-logger" ,r-futile-logger)
|
||||
("r-genomeinfodb" ,r-genomeinfodb)
|
||||
("r-genomicranges" ,r-genomicranges)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-gridextra" ,r-gridextra)
|
||||
("r-iranges" ,r-iranges)
|
||||
("r-limma" ,r-limma)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rcurl" ,r-rcurl)
|
||||
("r-readr" ,r-readr)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tximeta" ,r-tximeta)
|
||||
("r-tximport" ,r-tximport)
|
||||
("r-venndiagram" ,r-venndiagram)
|
||||
("r-xvector" ,r-xvector)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
(home-page "https://bioconductor.org/packages/IsoformSwitchAnalyzeR/")
|
||||
(synopsis "Analyze alternative splicing in RNA-seq data")
|
||||
(description
|
||||
"This is a package for the analysis of alternative splicing and isoform
|
||||
switches with predicted functional consequences (e.g. gain/loss of protein
|
||||
domains etc.) from quantification of all types of RNASeq by tools such as
|
||||
Kallisto, Salmon, StringTie, Cufflinks/Cuffdiff etc.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; This is a CRAN package, but it depends on r-biobase and r-limma from Bioconductor.
|
||||
(define-public r-absfiltergsea
|
||||
(package
|
||||
|
@ -6734,6 +6852,37 @@ required source code files from the official Leidenalg distribution and
|
|||
several functions from the R igraph package.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public r-sanssouci
|
||||
;; sansscouci doesn't have a (versioned) release yet.
|
||||
;; This is the latest commit as of packaging for Guix.
|
||||
(let ((commit "5fe20a9aaf4ac637fa83d9cc73ff1c22de97ca6f")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "r-sanssouci")
|
||||
(version (git-version "0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pneuvial/sanssouci.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"13ycdd790qw64qy2zdvcrpj3fc8as628rsly32438d3rifnlc5sk"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-generics" ,r-generics)
|
||||
("r-matrix" ,r-matrix)
|
||||
("r-matrixstats" ,r-matrixstats)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcpparmadillo" ,r-rcpparmadillo)))
|
||||
(home-page "https://pneuvial.github.io/sanssouci")
|
||||
(synopsis "Post Hoc multiple testing inference")
|
||||
(description
|
||||
"The goal of sansSouci is to perform post hoc inference: in a multiple
|
||||
testing context, sansSouci provides statistical guarantees on possibly
|
||||
user-defined and/or data-driven sets of hypotheses.")
|
||||
(license license:gpl3))))
|
||||
|
||||
(define-public r-monocle3
|
||||
(package
|
||||
(name "r-monocle3")
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
(define-public dunst
|
||||
(package
|
||||
(name "dunst")
|
||||
(version "1.7.1")
|
||||
(version "1.7.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -48,7 +48,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0v15fhwzcg7zfn092sry0f4qb6dccz9bb312y9dadg745wf3n9qw"))))
|
||||
"1ra0ii805w3rrs0qqbjxzl6i79ksz42lnvbglw18h4igkza21kzj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
|
|
|
@ -13863,6 +13863,39 @@ commands are bound to keys reachable with the left hand and movement keys are
|
|||
reached with the right hand.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-cc-mode
|
||||
(package
|
||||
(name "emacs-cc-mode")
|
||||
(version "5.35")
|
||||
(source
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
(url "http://hg.code.sf.net/p/cc-mode/cc-mode")
|
||||
(changeset
|
||||
(string-append "Release_"
|
||||
(string-replace-substring version "." "_")))))
|
||||
(file-name (hg-file-name name version))
|
||||
(sha256
|
||||
(base32 "03cvl61baccx57zd62nz2wy4hvij5hl2syg7byaxgrs4c7grr414"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
'(#:tests? #t
|
||||
#:test-command '("make" "test")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'make-info
|
||||
(lambda _
|
||||
(invoke "make" "info"))))))
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)))
|
||||
(home-page "http://cc-mode.sourceforge.net/")
|
||||
(synopsis "Framework for creating major modes for C-style languages")
|
||||
(description
|
||||
"CC Mode is an Emacs and XEmacs mode for editing C and other languages with
|
||||
similar syntax; currently C++, Objective-C, Java, CORBA's IDL, Pike, and AWK.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-csharp-mode
|
||||
(package
|
||||
(name "emacs-csharp-mode")
|
||||
|
@ -21400,21 +21433,18 @@ package recipes.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-dpd
|
||||
;; XXX: Upstream does not use tag yet. Version is extracted from "dpd.el".
|
||||
(let ((commit "f53f251a58859f375617ce4f257fecc83c8ca5da")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-dpd")
|
||||
(version (git-version "0.1.0" revision commit))
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/lilyp/emacs-dpd")
|
||||
(commit commit)))
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1nislvaxjb53x2ah330szcca4d595npx6zxrrwa5xximj6365wk0"))))
|
||||
(base32 "0wrqmpfcqp87dr5blpskf9kvm9slvffldqfxx77n15gcw516zzc8"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-packed" ,emacs-packed)))
|
||||
|
@ -21423,7 +21453,7 @@ package recipes.")
|
|||
(description
|
||||
"This package provides tools for generating package-desc structures and
|
||||
feeding them to package.el library.")
|
||||
(license license:gpl3+))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-picpocket
|
||||
(let ((version "41")
|
||||
|
@ -27135,17 +27165,19 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-telega-server
|
||||
(let ((commit "b4a5e206bd259f3d7f7633a725b2990704d6a1e8")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-telega-server")
|
||||
(version "0.7.031")
|
||||
(version (git-version "0.7.15" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/zevlg/telega.el")
|
||||
(commit (string-append "v" version))))
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32 "05j82796s4k3yr0igl6hir3p8qj0cw66vvhbpbcy28d6q9v9vjjz"))
|
||||
(base32 "0gr4nmpk175hxmj357bpzaqywbjc6dmmvfxnyzkh884vyzbwdxlc"))
|
||||
(file-name (git-file-name "emacs-telega" version))
|
||||
(patches
|
||||
(search-patches "emacs-telega-path-placeholder.patch"
|
||||
|
@ -27159,7 +27191,7 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
|
|||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'enter-subdirectory
|
||||
(lambda _ (chdir "server") #t))
|
||||
(lambda _ (chdir "server")))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
|
@ -27171,7 +27203,7 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
|
|||
(add-after 'install 'check
|
||||
(assoc-ref %standard-phases 'check))
|
||||
(add-before 'install-license-files 'leave-subdirectory
|
||||
(lambda _ (chdir "..") #t)))
|
||||
(lambda _ (chdir ".."))))
|
||||
#:test-target "test"))
|
||||
(inputs
|
||||
`(("tdlib" ,tdlib)
|
||||
|
@ -27183,7 +27215,7 @@ other @code{helm-type-file} sources such as @code{helm-locate}.")
|
|||
(synopsis "Server process of Telega")
|
||||
(description "Telega-server is helper program to interact with Telegram
|
||||
service, and connect it with Emacs via inter-process communication.")
|
||||
(license license:gpl3+)))
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-telega
|
||||
(package
|
||||
|
@ -27217,7 +27249,7 @@ service, and connect it with Emacs via inter-process communication.")
|
|||
"\"" ffmpeg-bin "\")"))))))
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* "telega-server.el"
|
||||
(substitute* "telega-customize.el"
|
||||
(("@TELEGA_SERVER_BIN@")
|
||||
(search-input-file inputs "/bin/telega-server")))
|
||||
(substitute* "telega-util.el"
|
||||
|
@ -29737,7 +29769,7 @@ released, and track their progress in watching a series.")
|
|||
(define-public emacs-webpaste
|
||||
(package
|
||||
(name "emacs-webpaste")
|
||||
(version "3.2.1")
|
||||
(version "3.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -29746,8 +29778,7 @@ released, and track their progress in watching a series.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"))))
|
||||
(base32 "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
|
|
|
@ -92,7 +92,9 @@
|
|||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
|
@ -106,6 +108,7 @@
|
|||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages tex)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages time)
|
||||
|
@ -1839,6 +1842,37 @@ local, single-user UI, or as a multi-user UI for viewing, adding, and
|
|||
editing on the Web.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public optionmatrix
|
||||
(package
|
||||
(name "optionmatrix")
|
||||
(version "1.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/optionmatrix/optionmatrix-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1zd0pfiphnijh1l94swb3mjrpmjsn37z11mklamd7zw6h2d4zh4d"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gsl" ,gsl)
|
||||
("gtk3" ,gtk+)
|
||||
("ncurses" ,ncurses)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("texinfo" ,texinfo)
|
||||
("texlive" ,(texlive-union (list texlive-epsf
|
||||
texlive-tex-texinfo)))))
|
||||
(home-page "https://anthonybradford.github.io/optionmatrix/")
|
||||
(synopsis "Financial derivative calculator")
|
||||
(description
|
||||
"The OptionMatrix programs are financial derivative calculators. These
|
||||
calculators are real-time multi-model option chain pricers with analytics and
|
||||
interactive controls. This package provides a GTK+ graphical user interface
|
||||
(@code{optionmatrix}) and a curses interface (@code{optionmatrix_console}).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python-ta-lib
|
||||
(package
|
||||
(name "python-ta-lib")
|
||||
|
|
|
@ -1335,11 +1335,11 @@ standards of the IceCat project.")
|
|||
(cpe-version . ,(first (string-split version #\-)))))))
|
||||
|
||||
;; Update this together with icecat!
|
||||
(define %icedove-build-id "20211119000000") ;must be of the form YYYYMMDDhhmmss
|
||||
(define %icedove-build-id "20211207000000") ;must be of the form YYYYMMDDhhmmss
|
||||
(define-public icedove
|
||||
(package
|
||||
(name "icedove")
|
||||
(version "91.3.2")
|
||||
(version "91.4.0")
|
||||
(source icecat-source)
|
||||
(properties
|
||||
`((cpe-name . "thunderbird_esr")))
|
||||
|
@ -1620,7 +1620,7 @@ standards of the IceCat project.")
|
|||
;; in the Thunderbird release tarball. We don't use the release
|
||||
;; tarball because it duplicates the Icecat sources and only adds the
|
||||
;; "comm" directory, which is provided by this repository.
|
||||
,(let ((changeset "c35def313c0c2bd0341e3e058f862f02390269c4"))
|
||||
,(let ((changeset "ab6dfcf3a37bf53aac1a9d632d45ee51047050bb"))
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
|
@ -1629,7 +1629,7 @@ standards of the IceCat project.")
|
|||
(file-name (string-append "thunderbird-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rp4i353dskx065a6hskvfpf0l2qywqnivks9qc6a85h4yah4rvq")))))
|
||||
"00zj1k3c8p66ylf9n7xp42y6kiv3h6hf8ba7bk6f8wj3hh0r2hrd")))))
|
||||
("cargo" ,rust "cargo")
|
||||
("clang" ,clang)
|
||||
("llvm" ,llvm)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
|
||||
;;; Copyright © 2021 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -442,3 +443,45 @@ This approach allows:
|
|||
@item Using backend specific styles to customize the output
|
||||
@end itemize")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public gprof2dot
|
||||
(package
|
||||
(name "gprof2dot")
|
||||
(version "2021.02.21")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jrfonseca/gprof2dot")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1jjhsjf5fdi1fkn7mvhnzkh6cynl8gcjrygd3cya5mmda3akhzic"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "python" "tests/test.py")))))))
|
||||
(native-inputs
|
||||
`(("graphviz" ,graphviz)))
|
||||
(home-page "https://github.com/jrfonseca/gprof2dot")
|
||||
(synopsis "Generate a dot graph from the output of several profilers")
|
||||
(description "This package provides a Python script to convert the output
|
||||
from many profilers into a dot graph.
|
||||
|
||||
It can:
|
||||
|
||||
@itemize
|
||||
|
||||
@item prune nodes and edges below a certain threshold;
|
||||
@item use an heuristic to propagate time inside mutually recursive functions;
|
||||
@item use color efficiently to draw attention to hot-spots;
|
||||
@item work on any platform where Python and Graphviz is available.
|
||||
|
||||
@end itemize")
|
||||
(license license:lgpl3+)))
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
("java-asm-util" ,java-asm-util-8)
|
||||
("java-classpathx-servletapi" ,java-classpathx-servletapi)
|
||||
("java-commons-cli" ,java-commons-cli)
|
||||
("java-jansi" ,java-jansi)
|
||||
("java-jansi" ,java-jansi-1)
|
||||
("java-jline-2" ,java-jline-2)
|
||||
("java-picocli" ,java-picocli)
|
||||
("java-xstream" ,java-xstream)))
|
||||
|
|
|
@ -556,7 +556,7 @@ you send to a FIFO file.")
|
|||
(define-public guile-dsv
|
||||
(package
|
||||
(name "guile-dsv")
|
||||
(version "0.4.0")
|
||||
(version "0.5.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -565,7 +565,7 @@ you send to a FIFO file.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mvyc8i38j56frjh3p6vwziv8lrzlyqndz30663h5nwcp0044sdn"))))
|
||||
"0s9zan08ala7432pn44z3vmb3sc19rf18zfr9mskydnam5xn6qlw"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
|
@ -581,21 +581,6 @@ you send to a FIFO file.")
|
|||
#:imported-modules ((guix build guile-build-system)
|
||||
,@%gnu-build-system-modules)
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'configure 'set-guilesitedir
|
||||
(lambda _
|
||||
(substitute* "Makefile.in"
|
||||
(("^guilesitedir =.*$")
|
||||
"guilesitedir = \
|
||||
$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
|
||||
(substitute* "modules/Makefile.in"
|
||||
(("^guilesitedir =.*$")
|
||||
"guilesitedir = \
|
||||
$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
|
||||
(substitute* "modules/dsv/Makefile.in"
|
||||
(("^guilesitedir =.*$")
|
||||
"guilesitedir = \
|
||||
$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
|
||||
#t))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
@ -4783,14 +4768,13 @@ locations.")
|
|||
(base32
|
||||
"0jcl6mzqy04if5drflmygmggbgzsxa42mlmskqb3cfqmksq0zj0y"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)); no tests
|
||||
(inputs
|
||||
`(("guile" ,guile-3.0)))
|
||||
(native-inputs
|
||||
`(("automake" ,automake)
|
||||
("autoconf" ,autoconf)
|
||||
("pkg-config" ,pkg-config)
|
||||
("guile" ,guile-3.0) ;for 'guild compile' + guile.m4
|
||||
("texinfo" ,texinfo)))
|
||||
(home-page "https://git.lepiller.eu/guile-netlink")
|
||||
(synopsis "Netlink protocol implementation for Guile")
|
||||
|
|
|
@ -7901,14 +7901,14 @@ JavaMail API.")
|
|||
(define-public java-log4j-api
|
||||
(package
|
||||
(name "java-log4j-api")
|
||||
(version "2.4.1")
|
||||
(version "2.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/logging/log4j/" version
|
||||
"/apache-log4j-" version "-src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j5p9gik0jysh37nlrckqbky12isy95cpwg2gv5fas1rcdqbraxd"))))
|
||||
"0h4ndw096h9cql0kyi1zd0ymp8hqxc1jdgdxkn0kxf8vd9b4dx14"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; tests require unpackaged software
|
||||
|
@ -7929,6 +7929,7 @@ JavaMail API.")
|
|||
`(("java-osgi-core" ,java-osgi-core)
|
||||
("java-hamcrest-core" ,java-hamcrest-core)
|
||||
("java-junit" ,java-junit)))
|
||||
(properties '((cpe-name . "log4j")))
|
||||
(home-page "https://logging.apache.org/log4j/2.x/")
|
||||
(synopsis "API module of the Log4j logging framework for Java")
|
||||
(description
|
||||
|
@ -7946,7 +7947,11 @@ Java.")
|
|||
("java-log4j-api" ,java-log4j-api)
|
||||
("java-mail" ,java-mail)
|
||||
("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
|
||||
("java-conversant-disruptor" ,java-conversant-disruptor)
|
||||
("java-lmax-disruptor" ,java-lmax-disruptor)
|
||||
("java-jctools-core" ,java-jctools-core-1)
|
||||
("java-stax2-api" ,java-stax2-api)
|
||||
("java-jansi" ,java-jansi)
|
||||
("java-kafka" ,java-kafka-clients)
|
||||
("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
|
||||
("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
|
||||
|
@ -7993,6 +7998,7 @@ logging framework for Java.")))
|
|||
(inputs
|
||||
`(("log4j-api" ,java-log4j-api)
|
||||
("log4j-core" ,java-log4j-core)
|
||||
("java-jboss-jms-api-spec" ,java-jboss-jms-api-spec)
|
||||
("osgi-core" ,java-osgi-core)
|
||||
("eclipse-osgi" ,java-eclipse-osgi)
|
||||
("java-lmax-disruptor" ,java-lmax-disruptor)))))
|
||||
|
@ -11377,15 +11383,16 @@ programming language.")
|
|||
(define-public java-lmax-disruptor
|
||||
(package
|
||||
(name "java-lmax-disruptor")
|
||||
(version "3.3.7")
|
||||
(version "3.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/LMAX-Exchange/disruptor/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/LMAX-Exchange/disruptor")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17da2gwj5abnlsfgn2xqjk5lgzbg4vkb0hdv2dvc8r2fx4bi7w3g"))))
|
||||
"02c5kp3n8a73dq9ay7ar53s1k3x61z9yzc5ikqb03m6snr1wpfqn"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:jar-name "java-lmax-disruptor.jar"
|
||||
|
@ -11409,6 +11416,68 @@ for high performance inter-thread communication that avoids the need for
|
|||
message queues or resource locking.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public java-conversant-disruptor
|
||||
(package
|
||||
(name "java-conversant-disruptor")
|
||||
(version "1.2.19")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/conversant/disruptor")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gx1dm7sfg7pa05cs4qby10gfcplai5b5lf1f7ik1a76dh3vhl0g"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:jar-name "java-conversant-disruptor.jar"
|
||||
#:source-dir "src/main/java"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources" "build/classes")))
|
||||
(add-before 'build 'remove-module
|
||||
(lambda _
|
||||
(delete-file "src/main/java/module-info.java"))))))
|
||||
(native-inputs
|
||||
`(("java-junit" ,java-junit)))
|
||||
(home-page "https://github.com/conversant/disruptor")
|
||||
(synopsis "High performance intra-thread communication")
|
||||
(description "Conversant Disruptor is the highest performing intra-thread
|
||||
transfer mechanism available in Java. Conversant Disruptor is an implementation
|
||||
of this type of ring buffer that has almost no overhead and that exploits a
|
||||
particularly simple design.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public java-jctools-core-1
|
||||
(package
|
||||
(name "java-jctools-core")
|
||||
(version "1.2.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/JCTools/JCTools")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"105my29nwd4djvdllmq8s3jdzbyplbkxzwmddxiiilb4yqr1pghb"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:jar-name "java-jctools-core.jar"
|
||||
#:source-dir "jctools-core/src/main/java"
|
||||
#:test-dir "jctools-core/src/test"))
|
||||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("java-hamcrest-all" ,java-hamcrest-all)))
|
||||
(home-page "https://github.com/JCTools/JCTools")
|
||||
(synopsis "Concurrency tools for Java")
|
||||
(description "This library implements concurrent data structures that are
|
||||
not natively available in Java.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public java-commons-bcel
|
||||
(package
|
||||
(name "java-commons-bcel")
|
||||
|
@ -12193,15 +12262,79 @@ console output.")
|
|||
(define-public java-jansi
|
||||
(package
|
||||
(name "java-jansi")
|
||||
(version "1.16")
|
||||
(version "2.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/fusesource/jansi/archive/"
|
||||
"jansi-project-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fusesource/jansi")
|
||||
(commit (string-append "jansi-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11kh3144i3fzp21dpy8zg52mjmsr214k7km9p8ly0rqk2px0qq2z"))))
|
||||
"1s6fva06990798b5fyxqzr30zwyj1byq5wrm54j2larcydaryggf"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; contains pre-compiled libraries
|
||||
'(delete-file-recursively
|
||||
"src/main/resources/org/fusesource/jansi/internal"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:jar-name "jansi.jar"
|
||||
#:source-dir "src/main/java"
|
||||
#:test-dir "src/test"
|
||||
#:tests? #f; require junit 3
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'build-native
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(with-directory-excursion "src/main/native"
|
||||
(for-each
|
||||
(lambda (cfile)
|
||||
(let ((cfile (basename cfile))
|
||||
(ofile (string-append (basename cfile ".c") ".o")))
|
||||
(invoke ,(cc-for-target) "-c" cfile "-o" ofile
|
||||
(string-append "-I" (assoc-ref inputs "jdk")
|
||||
"/include/linux")
|
||||
"-fPIC" "-O2")))
|
||||
(find-files "." "\\.c$"))
|
||||
(apply invoke ,(cc-for-target) "-o" "libjansi.so" "-shared"
|
||||
(find-files "." "\\.o$")))))
|
||||
(add-before 'build 'install-native
|
||||
(lambda _
|
||||
(let ((dir (string-append "build/classes/org/fusesource/"
|
||||
"jansi/internal/native/"
|
||||
,(match (or (%current-target-system) (%current-system))
|
||||
("i686-linux" "Linux/x86")
|
||||
("x86_64-linux" "Linux/x86_64")
|
||||
("armhf-linux" "Linux/armv7")
|
||||
("aarch64-linux" "Linux/arm64")
|
||||
("mips64el-linux" "Linux/mips64")
|
||||
(_ "unknown-kernel")))))
|
||||
(install-file "src/main/native/libjansi.so" dir))))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources" "build/classes")))
|
||||
(replace 'install
|
||||
(install-from-pom "pom.xml")))))
|
||||
(home-page "https://fusesource.github.io/jansi/")
|
||||
(synopsis "Portable ANSI escape sequences")
|
||||
(description "Jansi is a Java library that allows you to use ANSI escape
|
||||
sequences to format your console output which works on every platform.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public java-jansi-1
|
||||
(package
|
||||
(inherit java-jansi)
|
||||
(version "1.16")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fusesource/jansi")
|
||||
(commit (string-append "jansi-project-" version))))
|
||||
(file-name (git-file-name "jansi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ikk0x352gh30b42qn1jd89xwsjj0mavrc5kms7fss15bd8vsayx"))))
|
||||
(arguments
|
||||
`(#:jar-name "jansi.jar"
|
||||
#:source-dir "jansi/src/main/java"
|
||||
|
@ -12232,12 +12365,7 @@ console output.")
|
|||
`(("java-jansi-native" ,java-jansi-native)))
|
||||
(native-inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||
(home-page "https://fusesource.github.io/jansi/")
|
||||
(synopsis "Portable ANSI escape sequences")
|
||||
(description "Jansi is a Java library that allows you to use ANSI escape
|
||||
sequences to format your console output which works on every platform.")
|
||||
(license license:asl2.0)))
|
||||
("java-hamcrest-core" ,java-hamcrest-core)))))
|
||||
|
||||
(define-public java-jboss-el-api-spec
|
||||
(package
|
||||
|
@ -12600,7 +12728,7 @@ features that bring it on par with the Z shell line editor.")
|
|||
`(#:jdk ,icedtea-8
|
||||
,@(package-arguments java-jline)))
|
||||
(inputs
|
||||
`(("java-jansi" ,java-jansi)
|
||||
`(("java-jansi" ,java-jansi-1)
|
||||
("java-jansi-native" ,java-jansi-native)))
|
||||
(native-inputs
|
||||
`(("java-powermock-modules-junit4" ,java-powermock-modules-junit4)
|
||||
|
|
|
@ -355,7 +355,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
|
||||
;; The current "stable" kernels. That is, the most recently released major
|
||||
;; versions that are still supported upstream.
|
||||
(define-public linux-libre-5.15-version "5.15.6")
|
||||
(define-public linux-libre-5.15-version "5.15.7")
|
||||
(define-public linux-libre-5.15-gnu-revision "gnu")
|
||||
(define deblob-scripts-5.15
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -365,7 +365,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "04fj1x3zmi310cr3m9hxpi26gdcmwfsqciv5yb6q6rrnqjqs1pc0")))
|
||||
(define-public linux-libre-5.15-pristine-source
|
||||
(let ((version linux-libre-5.15-version)
|
||||
(hash (base32 "1w0plw9rzk2c0g8yxzwj7c6wkq538sy56mx1skmf58wrl83bmsdk")))
|
||||
(hash (base32 "1caxpqmik6gkhk3437pcgfq6vvlbs962hylgbh64iizd76l5142x")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.15)))
|
||||
|
@ -373,7 +373,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
;; The "longterm" kernels — the older releases with long-term upstream support.
|
||||
;; Here are the support timelines:
|
||||
;; <https://www.kernel.org/category/releases.html>
|
||||
(define-public linux-libre-5.10-version "5.10.83")
|
||||
(define-public linux-libre-5.10-version "5.10.84")
|
||||
(define-public linux-libre-5.10-gnu-revision "gnu1")
|
||||
(define deblob-scripts-5.10
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -383,12 +383,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7")))
|
||||
(define-public linux-libre-5.10-pristine-source
|
||||
(let ((version linux-libre-5.10-version)
|
||||
(hash (base32 "0w4vq8wby3m9f5ryssh6z948m6zj1bjz9x432805dnrxyd1rl9gg")))
|
||||
(hash (base32 "0g935v0khv0i2qlrwr656hxl28m6zlbclc9rv15nq46xf8fjg5kf")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.10)))
|
||||
|
||||
(define-public linux-libre-5.4-version "5.4.163")
|
||||
(define-public linux-libre-5.4-version "5.4.164")
|
||||
(define-public linux-libre-5.4-gnu-revision "gnu1")
|
||||
(define deblob-scripts-5.4
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -398,12 +398,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
|
||||
(define-public linux-libre-5.4-pristine-source
|
||||
(let ((version linux-libre-5.4-version)
|
||||
(hash (base32 "1glh0azkrqdwydvbz9rp3czc5ppb72gq7svl3zbkjc6qfqbzwik2")))
|
||||
(hash (base32 "0142nic300xjdz9s6w1cp6cyhk2c2wpks9wxzqca6jz4da7k0l9r")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.4)))
|
||||
|
||||
(define-public linux-libre-4.19-version "4.19.219")
|
||||
(define-public linux-libre-4.19-version "4.19.220")
|
||||
(define-public linux-libre-4.19-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.19
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -413,12 +413,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
|
||||
(define-public linux-libre-4.19-pristine-source
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "1nq9228zm24d8azvv6d6r5iw8lfkb7z5lblyhk137mydzdqwsklg")))
|
||||
(hash (base32 "0q5hrh6q2f2r97nff136db7367p3hn0la2gl7q4knms3g8fis1jq")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
||||
(define-public linux-libre-4.14-version "4.14.256")
|
||||
(define-public linux-libre-4.14-version "4.14.257")
|
||||
(define-public linux-libre-4.14-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.14
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -428,12 +428,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
|
||||
(define-public linux-libre-4.14-pristine-source
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "180s2zmkfxk7af9nnkmfi2cs56af6vwyd21hjcfdxiygjm7j114p")))
|
||||
(hash (base32 "0jnw02jphvm9zcviwwymxyhq8kd0bk0v1827ninnv6bdy3140izv")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.14)))
|
||||
|
||||
(define-public linux-libre-4.9-version "4.9.291")
|
||||
(define-public linux-libre-4.9-version "4.9.292")
|
||||
(define-public linux-libre-4.9-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.9
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -443,12 +443,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
|
||||
(define-public linux-libre-4.9-pristine-source
|
||||
(let ((version linux-libre-4.9-version)
|
||||
(hash (base32 "0lwb9mb4s6qnwklygvfsr5ap85k83w1apkbbfdzzacfn9rvpfpdm")))
|
||||
(hash (base32 "0y3b6qqv6vrh2p5wwv5bicvbqrvxf1y5xm4myy5pk6yp2igws3kd")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.9)))
|
||||
|
||||
(define-public linux-libre-4.4-version "4.4.293")
|
||||
(define-public linux-libre-4.4-version "4.4.294")
|
||||
(define-public linux-libre-4.4-gnu-revision "gnu1")
|
||||
(define deblob-scripts-4.4
|
||||
(linux-libre-deblob-scripts
|
||||
|
@ -458,7 +458,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
(base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
|
||||
(define-public linux-libre-4.4-pristine-source
|
||||
(let ((version linux-libre-4.4-version)
|
||||
(hash (base32 "1z9hc68v8fvph29l2w3md4734hhgp36sy8mzdlkmdrlkjihq6bvd")))
|
||||
(hash (base32 "0k0h5m1ng2049d5ggrq4q81vgsfmdpkqla73vg2a3bf2v6ycjmc7")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.4)))
|
||||
|
|
|
@ -93,6 +93,7 @@
|
|||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages statistics)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
|
@ -2112,7 +2113,7 @@ writing code that contains string literals that contain code themselves.")
|
|||
(define-public sbcl-slime-swank
|
||||
(package
|
||||
(name "sbcl-slime-swank")
|
||||
(version "2.26")
|
||||
(version "2.26.1")
|
||||
(source
|
||||
(origin
|
||||
(file-name (git-file-name "slime-swank" version))
|
||||
|
@ -2122,7 +2123,7 @@ writing code that contains string literals that contain code themselves.")
|
|||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
|
||||
"1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
'(#:asd-systems '("swank")))
|
||||
|
@ -2185,7 +2186,7 @@ With the simplistic tools provided, one may accomplish similar effects as with
|
|||
Literate Programming, but documentation is generated from code, not vice versa
|
||||
and there is no support for chunking yet. Code is first, code must look
|
||||
pretty, documentation is code.")
|
||||
(home-page "http://quotenil.com/")
|
||||
(home-page "https://melisgl.github.io/mgl-pax/")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-mgl-pax
|
||||
|
@ -12638,25 +12639,28 @@ XML to Lisp structures or s-expressions and back.")
|
|||
((#:tests? _ #f) #f))))))
|
||||
|
||||
(define-public sbcl-geco
|
||||
(let ((commit "db13c9384491092975f46f6a837ccdc04681a93a")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-geco")
|
||||
(version "2.1.1")
|
||||
(version (git-version "2.1.2" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/gpwwjr/GECO")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "geco" version))
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-geco" version))
|
||||
(sha256
|
||||
(base32 "1rc8a4mk40hjx5qy980hjylv6xxqdbq38hg8c4w30y93abfd519s"))))
|
||||
(base32 "1ncaf9ab7jz59zmga0p97blsjjb1m6db0qih57wipfhqdb5ylz17"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "http://hiwaay.net/~gpw/geco/geco.html")
|
||||
(home-page "https://github.com/gpwwjr/GECO")
|
||||
(synopsis "Genetic algorithm toolkit for Common Lisp")
|
||||
(description
|
||||
"GECO (Genetic Evolution through Combination of Objects) is an extensible,
|
||||
object-oriented framework for prototyping genetic algorithms in Common Lisp.")
|
||||
(license license:lgpl2.1+)))
|
||||
"GECO (Genetic Evolution through Combination of Objects) is an
|
||||
extensible, object-oriented framework for prototyping genetic algorithms in
|
||||
Common Lisp.")
|
||||
(license license:lgpl2.0+))))
|
||||
|
||||
(define-public cl-geco
|
||||
(sbcl-package->cl-source-package sbcl-geco))
|
||||
|
@ -17890,10 +17894,11 @@ functions allow Lisp programs to explore the web.")
|
|||
|
||||
(define-public sbcl-aserve
|
||||
;; There does not seem to be proper releases.
|
||||
(let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5"))
|
||||
(let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "sbcl-aserve")
|
||||
(version (git-version "1.2.50" "1" commit))
|
||||
(version (git-version "1.2.50" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -17904,7 +17909,14 @@ functions allow Lisp programs to explore the web.")
|
|||
(commit commit)))
|
||||
(file-name (git-file-name "aserve" version))
|
||||
(sha256
|
||||
(base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))))
|
||||
(base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))
|
||||
(patches (search-patches
|
||||
;; Add HTML5 elements to htmlgen.
|
||||
;; Adapted from https://github.com/franzinc/aserve/ commits:
|
||||
;; * e47bd763: "rfe12668: add HTML 5 elements to htmlgen"
|
||||
;; * 7371ce59: "fix bugs in rfe12668 implementation"
|
||||
"sbcl-aserve-add-HTML-5-elements.patch"
|
||||
"sbcl-aserve-fix-rfe12668.patch"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -17925,7 +17937,8 @@ functions allow Lisp programs to explore the web.")
|
|||
#t)))))
|
||||
(inputs
|
||||
`(("acl-compat" ,sbcl-acl-compat)))
|
||||
(home-page "https://franz.com/support/documentation/current/doc/aserve/aserve.html")
|
||||
(home-page
|
||||
"https://franz.com/support/documentation/current/doc/aserve/aserve.html")
|
||||
(synopsis "AllegroServe, a web server written in Common Lisp")
|
||||
(description
|
||||
"The server part of AllegroServe can be used either as a standalone web
|
||||
|
@ -19349,6 +19362,225 @@ command in Common Lisp.")
|
|||
(define-public ecl-which
|
||||
(sbcl-package->ecl-package sbcl-which))
|
||||
|
||||
(define-public sbcl-cl-num-utils
|
||||
(let ((commit "97a88cd34540acf52e872a82ebfef3da0a34fa12")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-cl-num-utils")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tpapp/cl-num-utils")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-num-utils" version))
|
||||
(sha256
|
||||
(base32 "15ihsxxs76xnldmqfsbxybckqjwrxwcpphgghiwzr2mnbqjpdqkh"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("anaphora" ,sbcl-anaphora)
|
||||
("alexandria" ,sbcl-alexandria)
|
||||
("array-operations" ,sbcl-array-operations)
|
||||
("cl-slice" ,sbcl-cl-slice)
|
||||
("let-plus" ,sbcl-let-plus)))
|
||||
(native-inputs
|
||||
`(("clunit" ,sbcl-clunit)))
|
||||
(home-page "https://github.com/tpapp/cl-num-utils")
|
||||
(synopsis "Numerical utilities for Common Lisp")
|
||||
(description
|
||||
"@code{cl-num-utils} implements simple numerical functions for Common
|
||||
Lisp, including:
|
||||
@itemize
|
||||
@item @code{num=}, a comparison operator for floats
|
||||
@item simple arithmeric functions, like @code{sum} and @code{l2norm}
|
||||
@item elementwise operations for arrays
|
||||
@item intervals
|
||||
@item special matrices and shorthand for their input
|
||||
@item sample statistics
|
||||
@item Chebyshev polynomials
|
||||
@item univariate rootfinding
|
||||
@end itemize")
|
||||
(license license:boost1.0))))
|
||||
|
||||
(define-public cl-num-utils
|
||||
(sbcl-package->cl-source-package sbcl-cl-num-utils))
|
||||
|
||||
(define-public ecl-cl-num-utils
|
||||
(sbcl-package->ecl-package sbcl-cl-num-utils))
|
||||
|
||||
(define-public sbcl-lla
|
||||
(let ((commit "ded805d1e9b1493e17b601116ba9bd8a3de3024f")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-lla")
|
||||
(version (git-version "0.2" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tpapp/lla")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-lla" version))
|
||||
(sha256
|
||||
(base32 "0n9vc7dnyjbbsv1n7rd8sylwda5fsdf8f890g4nachanyx0xps9k"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/configuration.lisp"
|
||||
(("\"libblas.so.3gf\"")
|
||||
(string-append "\"" (assoc-ref inputs "lapack")
|
||||
"/lib/libblas.so\""))
|
||||
(("\"liblapack.so.3gf\"")
|
||||
(string-append "\"" (assoc-ref inputs "lapack")
|
||||
"/lib/liblapack.so\""))))))))
|
||||
(inputs
|
||||
`(("anaphora" ,sbcl-anaphora)
|
||||
("alexandria" ,sbcl-alexandria)
|
||||
("cffi" ,sbcl-cffi)
|
||||
("cl-num-utils" ,sbcl-cl-num-utils)
|
||||
("cl-slice" ,sbcl-cl-slice)
|
||||
("lapack" ,lapack)
|
||||
("let-plus" ,sbcl-let-plus)))
|
||||
(native-inputs
|
||||
`(("clunit" ,sbcl-clunit)))
|
||||
(home-page "https://github.com/tpapp/lla")
|
||||
(synopsis "Linear algebra library for Common Lisp")
|
||||
(description
|
||||
"LLA is a high-level Common Lisp library built on BLAS and LAPACK, but
|
||||
providing a much more abstract interface with the purpose of freeing the user
|
||||
from low-level concerns and reducing the number of bugs in numerical code.")
|
||||
(license license:boost1.0))))
|
||||
|
||||
(define-public cl-lla
|
||||
(sbcl-package->cl-source-package sbcl-lla))
|
||||
|
||||
(define-public ecl-lla
|
||||
(sbcl-package->ecl-package sbcl-lla))
|
||||
|
||||
(define-public sbcl-cl-rmath
|
||||
(let ((commit "f6add1edda31547691d08e36ccf6c17305161aca")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-cl-rmath")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tpapp/cl-rmath")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-rmath" version))
|
||||
(sha256
|
||||
(base32 "1ld8vbpy10paymx2hn0mcgd21i7cjhdrayln1jx0kayqxm12mmk4"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "cl-rmath.lisp"
|
||||
(("\\(cffi:define-foreign-library librmath" all)
|
||||
(string-append all "\n"
|
||||
" (:unix \""
|
||||
(assoc-ref inputs "librmath")
|
||||
"/lib/libRmath.so\")"))))))))
|
||||
(inputs
|
||||
`(("cffi" ,sbcl-cffi)
|
||||
("librmath" ,rmath-standalone)))
|
||||
(home-page "https://github.com/tpapp/cl-rmath")
|
||||
(synopsis "Common Lisp wrapper for libRmath")
|
||||
(description
|
||||
"@code{cl-rmath} is a simple, autogenerated foreign interface for the
|
||||
standalone R API @code{libRmath}. There has been no effort to provide a
|
||||
high-level interface for the original library, instead, this library is meant
|
||||
to serve as a building block for such an interface.")
|
||||
(license license:boost1.0))))
|
||||
|
||||
(define-public cl-rmath
|
||||
(sbcl-package->cl-source-package sbcl-cl-rmath))
|
||||
|
||||
(define-public ecl-cl-rmath
|
||||
(sbcl-package->ecl-package sbcl-cl-rmath))
|
||||
|
||||
(define-public sbcl-cl-random
|
||||
(let ((commit "5bb65911037f95a4260bd29a594a09df3849f4ea")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-cl-random")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tpapp/cl-random")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-random" version))
|
||||
(sha256
|
||||
(base32 "0jn80xphyvyp2v72acr6b8a2f6dw06myr5vrjfl14brsvks7wr89"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("alexandria" ,sbcl-alexandria)
|
||||
("anaphora" ,sbcl-anaphora)
|
||||
("array-operations" ,sbcl-array-operations)
|
||||
("cl-num-utils" ,sbcl-cl-num-utils)
|
||||
("cl-rmath" ,sbcl-cl-rmath)
|
||||
("cl-slice" ,sbcl-cl-slice)
|
||||
("gsll" ,sbcl-gsll)
|
||||
("let-plus" ,sbcl-let-plus)
|
||||
("lla" ,sbcl-lla)))
|
||||
(native-inputs
|
||||
`(("clunit" ,sbcl-clunit)))
|
||||
(home-page "https://github.com/tpapp/cl-random")
|
||||
(synopsis "Random variates for Common Lisp")
|
||||
(description
|
||||
"@code{cl-random} is a library for generating random draws from various
|
||||
commonly used distributions, and for calculating statistical functions, such as
|
||||
density, distribution and quantiles for these distributions.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-random
|
||||
(sbcl-package->cl-source-package sbcl-cl-random))
|
||||
|
||||
(define-public ecl-cl-random
|
||||
(sbcl-package->ecl-package sbcl-cl-random))
|
||||
|
||||
(define-public sbcl-mgl-gpr
|
||||
(let ((commit "cb6ce51e2f87bf1d589f3703c13eea6e25780afe")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-mgl-gpr")
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/melisgl/mgl-gpr")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-mgl-gpr" version))
|
||||
(sha256
|
||||
(base32 "0w51dqixh277k6sl8bqvvp1400y6kd1l5h3d9q2f40l9bpxy8gjx"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("cl-random" ,sbcl-cl-random)
|
||||
("mgl-pax" ,sbcl-mgl-pax)))
|
||||
(home-page "https://melisgl.github.io/mgl-gpr/")
|
||||
(synopsis "Common Lisp library of evolutionary algorithms")
|
||||
(description
|
||||
"@code{MGL-GPR} is a library of evolutionary algorithms such as
|
||||
Genetic Programming (evolving typed expressions from a set of operators and
|
||||
constants) and Differential Evolution.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-mgl-gpr
|
||||
(sbcl-package->cl-source-package sbcl-mgl-gpr))
|
||||
|
||||
(define-public ecl-mgl-gpr
|
||||
(sbcl-package->ecl-package sbcl-mgl-gpr))
|
||||
|
||||
(define-public sbcl-cl-tld
|
||||
;; No release.
|
||||
(let ((commit "f5014da8d831fa9481d4181d4450f10a52850c75"))
|
||||
|
@ -19768,6 +20000,36 @@ score. When evaluated, the musical score is rendered to an image.")
|
|||
(define-public ecl-cmn
|
||||
(sbcl-package->ecl-package sbcl-cmn))
|
||||
|
||||
(define-public sbcl-core-gp
|
||||
(let ((commit "90ec1c4599a19c5a911be1f703f78d5108aee160")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-core-gp")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jorgetavares/core-gp")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-core-gp" version))
|
||||
(sha256
|
||||
(base32 "0nzlb2gwqisa1amlpl4zc5xxph2g3qwhfyaxchci67d31rzws6l3"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(home-page "https://github.com/jorgetavares/core-gp")
|
||||
(synopsis "Common Lisp library for genetic programming")
|
||||
(description
|
||||
"@code{core-gp} is a Common Lisp library for genetic programming (GP)
|
||||
algorithms. It allows standard GP, strongly-typed GP, grammatical evolution as
|
||||
well as standard genetic algorithms.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-core-gp
|
||||
(sbcl-package->cl-source-package sbcl-core-gp))
|
||||
|
||||
(define-public ecl-core-gp
|
||||
(sbcl-package->ecl-package sbcl-core-gp))
|
||||
|
||||
(define-public sbcl-data-sift
|
||||
(let ((commit "fd617d8200cdcc1b87ecf45ab59bb38e8b16ef7e")
|
||||
(revision "1"))
|
||||
|
@ -19854,6 +20116,40 @@ library inspired by @code{cl-data-format-validation} and WTForms validators.")
|
|||
(define-public ecl-restas
|
||||
(sbcl-package->ecl-package sbcl-restas))
|
||||
|
||||
(define-public sbcl-zsort
|
||||
(let ((commit "f6724a6fff7662a942195cedb0d7f00da59c74ed")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-zsort")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jorgetavares/zsort")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "cl-zsort" version))
|
||||
(sha256
|
||||
(base32 "1vyklyh99712zsll4qi0m4mm8yb1nz04403vl8i57bjv5p5max49"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("alexandria" ,sbcl-alexandria)))
|
||||
(home-page "https://github.com/jorgetavares/zsort")
|
||||
(synopsis "Collection of portable sorting algorithms in Common Lisp")
|
||||
(description
|
||||
"@code{zsort} is a collection of portable sorting algorithms. Common
|
||||
Lisp provides the @code{sort} and @code{stable-sort} functions but these can
|
||||
have different algorithms implemented according to each implementation. Also,
|
||||
the standard sorting functions might not be the best for a certain situations.
|
||||
This library aims to provide developers with more options.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-zsort
|
||||
(sbcl-package->cl-source-package sbcl-zsort))
|
||||
|
||||
(define-public ecl-zsort
|
||||
(sbcl-package->ecl-package sbcl-zsort))
|
||||
|
||||
(define-public sbcl-cl-https-everywhere
|
||||
;; No release.
|
||||
;; Don't forget to update the https-everywhere input.
|
||||
|
|
|
@ -2656,17 +2656,18 @@ replacement.")
|
|||
(license license:gpl2+)))
|
||||
|
||||
(define-public tdlib
|
||||
(let ((commit "34ba9b21f365b8d3bdc36808c2d665ca5cd128f6"))
|
||||
(package
|
||||
(name "tdlib")
|
||||
(version "1.7.0")
|
||||
(source (origin
|
||||
(version "1.7.10")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tdlib/td")
|
||||
(commit (string-append "v" version))))
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0dfir57ljcn98mkg061c5642qb93wh2lm1n4nngpl3na9vvfk75i"))
|
||||
(base32 "06fbdh1jypz0p1rf6xbpias4kx7xplq9xjd9vz177vwj9icq3wki"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
@ -2697,7 +2698,7 @@ Telegram clients following the official Telegram API. It can be easily used
|
|||
from almost any programming language with a C-FFI and features first-class
|
||||
support for high performance Telegram Bot creation.")
|
||||
(home-page "https://core.telegram.org/tdlib")
|
||||
(license license:boost1.0)))
|
||||
(license license:boost1.0))))
|
||||
|
||||
(define-public purple-mm-sms
|
||||
(package
|
||||
|
|
|
@ -1,36 +1,31 @@
|
|||
From 865b8c553722a971c68742c2e849e41eb0e2360c Mon Sep 17 00:00:00 2001
|
||||
From: Zhu Zihao <all_but_last@163.com>
|
||||
Date: Thu, 24 Jun 2021 23:43:50 +0800
|
||||
Subject: [PATCH] Replace code that search path with placeholder for
|
||||
configuration.
|
||||
From bf95de21faa623e48bca00d6a2c9b33ab2c5d812 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Tropin <andrew@trop.in>
|
||||
Date: Wed, 8 Dec 2021 11:01:31 +0300
|
||||
Subject: [PATCH] Use absolute path for telega-server-command.
|
||||
|
||||
---
|
||||
telega-server.el | 6 +-----
|
||||
telega-customize.el | 2 +-
|
||||
telega-util.el | 2 +-
|
||||
2 files changed, 2 insertions(+), 6 deletions(-)
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/telega-server.el b/telega-server.el
|
||||
index 999125d..0fa0817 100644
|
||||
--- a/telega-server.el
|
||||
+++ b/telega-server.el
|
||||
@@ -142,11 +142,7 @@ Otherwise query user about building flags."
|
||||
(defun telega-server--find-bin ()
|
||||
"Find telega-server executable.
|
||||
Raise error if not found."
|
||||
- (let ((exec-path (cons telega-directory exec-path)))
|
||||
- (or (executable-find "telega-server")
|
||||
- (progn (telega-server-build)
|
||||
- (executable-find "telega-server"))
|
||||
- (error "`telega-server' not found in exec-path"))))
|
||||
+ "@TELEGA_SERVER_BIN@")
|
||||
diff --git a/telega-customize.el b/telega-customize.el
|
||||
index 0af343f..cc2938c 100644
|
||||
--- a/telega-customize.el
|
||||
+++ b/telega-customize.el
|
||||
@@ -591,7 +591,7 @@ In range [1..3]. Use 1."
|
||||
:prefix "telega-server-"
|
||||
:group 'telega)
|
||||
|
||||
(defun telega-server-version ()
|
||||
"Return telega-server version."
|
||||
-(defcustom telega-server-command "telega-server"
|
||||
+(defcustom telega-server-command "@TELEGA_SERVER_BIN@"
|
||||
"Command to run as telega server.
|
||||
It should be absolute path or binary file searchable in `exec-path'."
|
||||
:type 'string
|
||||
diff --git a/telega-util.el b/telega-util.el
|
||||
index 73a46b1..f53e20a 100644
|
||||
index 6340c27..01e3cb7 100644
|
||||
--- a/telega-util.el
|
||||
+++ b/telega-util.el
|
||||
@@ -464,7 +464,7 @@ N can't be 0."
|
||||
@@ -587,7 +587,7 @@ N can't be 0."
|
||||
|
||||
(defun telega-etc-file (filename)
|
||||
"Return absolute path to FILENAME from etc/ directory in telega."
|
||||
|
@ -40,5 +35,5 @@ index 73a46b1..f53e20a 100644
|
|||
(defun telega-link-props (link-type link-to &optional face)
|
||||
"Generate props for link button openable with `telega-link--button-action'."
|
||||
--
|
||||
2.32.0
|
||||
2.34.0
|
||||
|
||||
|
|
|
@ -1,14 +1,24 @@
|
|||
Test Emacs environment on startup.
|
||||
From 237ea2471bb6521390bbac174ac2a8a5e9683e4d Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Tropin <andrew@trop.in>
|
||||
Date: Tue, 7 Dec 2021 16:20:38 +0300
|
||||
Subject: [PATCH] Test Emacs environment on startup.
|
||||
|
||||
Patch by Diego N. Barbato
|
||||
---
|
||||
telega.el | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/telega.el 2020-02-07 17:07:18.549970090 +0100
|
||||
+++ b/telega.el 2020-02-07 17:10:08.383499765 +0100
|
||||
@@ -82,6 +82,7 @@
|
||||
"Start telegramming.
|
||||
If prefix ARG is given, then will not pop to telega root buffer."
|
||||
diff --git a/telega.el b/telega.el
|
||||
index d6b28b5..40854ec 100644
|
||||
--- a/telega.el
|
||||
+++ b/telega.el
|
||||
@@ -181,7 +181,7 @@ can't write to `telega-server-logfile'" logfile-dir)))
|
||||
Pop to root buffer.
|
||||
If `\\[universal-argument]' is specified, then do not pop to root buffer."
|
||||
(interactive "P")
|
||||
-
|
||||
+ (telega-test-env t)
|
||||
(telega--create-hier)
|
||||
|
||||
(unless (telega-server-live-p)
|
||||
;; For multiple accounts setup possibly select (if there is no
|
||||
;; default account declared) an account to use
|
||||
(if (and telega-accounts (not (telega-account-current)))
|
||||
--
|
||||
2.34.0
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
From 940679fb75073a59186099e3dd7fb381e727db6b Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Layer <layer@franz.com>
|
||||
Date: Thu, 31 Oct 2013 04:27:29 -0700
|
||||
Subject: [PATCH 1/2] rfe12668: add HTML 5 elements to htmlgen
|
||||
|
||||
Add the new elements listed here:
|
||||
http://www.w3.org/TR/html5-diff/#new-elements
|
||||
|
||||
Change-Id: I7f64363751130644caf90ecdd65c13175d77ae97
|
||||
---
|
||||
aserve/htmlgen/htmlgen.cl | 38 ++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 36 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
|
||||
index 59248ef..0c0d6e8 100644
|
||||
--- a/aserve/htmlgen/htmlgen.cl
|
||||
+++ b/aserve/htmlgen/htmlgen.cl
|
||||
@@ -747,6 +747,40 @@
|
||||
|
||||
(def-std-html :var t nil)
|
||||
|
||||
-(def-std-html :wbr nil nil)
|
||||
-
|
||||
(def-std-html :xmp t nil)
|
||||
+
|
||||
+;; html 5
|
||||
+
|
||||
+(def-std-html :section t nil)
|
||||
+(def-std-html :article t nil)
|
||||
+(def-std-html :main t nil)
|
||||
+(def-std-html :aside t nil)
|
||||
+(def-std-html :hgroup t nil)
|
||||
+(def-std-html :header t nil)
|
||||
+(def-std-html :footer t nil)
|
||||
+(def-std-html :nav t nil)
|
||||
+(def-std-html :figure t nil)
|
||||
+(def-std-html :figcaption t nil)
|
||||
+
|
||||
+(def-std-html :video t nil)
|
||||
+(def-std-html :audio t nil)
|
||||
+(def-std-html :source t nil)
|
||||
+(def-std-html :track t nil)
|
||||
+(def-std-html :embed t nil)
|
||||
+(def-std-html :mark t nil)
|
||||
+(def-std-html :progress t nil)
|
||||
+(def-std-html :meter t nil)
|
||||
+(def-std-html :time t nil)
|
||||
+(def-std-html :data t nil)
|
||||
+(def-std-html :dialog t nil)
|
||||
+(def-std-html :ruby t nil)
|
||||
+(def-std-html :rt t nil)
|
||||
+(def-std-html :rp t nil)
|
||||
+(def-std-html :bdi t nil)
|
||||
+(def-std-html :wbr nil nil)
|
||||
+(def-std-html :canvas t nil)
|
||||
+(def-std-html :menuitem t nil)
|
||||
+(def-std-html :details t nil)
|
||||
+(def-std-html :datalist t nil)
|
||||
+(def-std-html :keygen t nil)
|
||||
+(def-std-html :output t nil)
|
||||
--
|
||||
2.25.1
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From 8110ebd55d5bf659cd40dab2df59d80dafdb367a Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Layer <layer@franz.com>
|
||||
Date: Mon, 10 Feb 2014 11:10:42 -0800
|
||||
Subject: [PATCH 2/2] fix bugs in rfe12668 implementation
|
||||
|
||||
The previous commit added :embed and :keygen but they were already
|
||||
there. Resolve this issue.
|
||||
|
||||
Change-Id: Ieb962a12880394e67d973835945005446833fab7
|
||||
---
|
||||
aserve/htmlgen/htmlgen.cl | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
|
||||
index 0c0d6e8..f77d6de 100644
|
||||
--- a/aserve/htmlgen/htmlgen.cl
|
||||
+++ b/aserve/htmlgen/htmlgen.cl
|
||||
@@ -658,7 +658,6 @@
|
||||
(def-std-html :dt t nil)
|
||||
|
||||
(def-std-html :em t nil)
|
||||
-(def-std-html :embed t nil)
|
||||
|
||||
(def-std-html :fieldset t nil)
|
||||
(def-std-html :font t nil)
|
||||
@@ -685,7 +684,6 @@
|
||||
(def-std-html :isindex nil nil)
|
||||
|
||||
(def-std-html :kbd t nil)
|
||||
-(def-std-html :keygen nil nil)
|
||||
|
||||
(def-std-html :label t nil)
|
||||
(def-std-html :layer t nil)
|
||||
@@ -782,5 +780,5 @@
|
||||
(def-std-html :menuitem t nil)
|
||||
(def-std-html :details t nil)
|
||||
(def-std-html :datalist t nil)
|
||||
-(def-std-html :keygen t nil)
|
||||
+(def-std-html :keygen nil nil)
|
||||
(def-std-html :output t nil)
|
||||
--
|
||||
2.25.1
|
||||
|
|
@ -1278,7 +1278,7 @@ python-pypdf2 instead.")
|
|||
(define-public pdfarranger
|
||||
(package
|
||||
(name "pdfarranger")
|
||||
(version "1.8.0")
|
||||
(version "1.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1287,7 +1287,7 @@ python-pypdf2 instead.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0xfxcwb24rp0kni2b4wdk6fvhqnhd6fh559ag6wdr4sspzkqwdjf"))))
|
||||
(base32 "1lcmlr7x4143f7wcn0m1ijlvch07nww2qfp3jfnacgy889ijvbfx"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ;no tests
|
||||
|
|
|
@ -228,25 +228,44 @@ result documents that can be read by tools such as Jenkins or Bamboo.")
|
|||
(define-public python-vcrpy
|
||||
(package
|
||||
(name "python-vcrpy")
|
||||
(version "2.0.1")
|
||||
(version "4.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "vcrpy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kws7l3hci1dvjv01nxw3805q9v2mwldw58bgl8s90wqism69gjp"))))
|
||||
(base32 "16gmzxs3lzbgf1828n0q61vbmwyhpvzdlk37x6gdk8n05zr5n2ap"))))
|
||||
(build-system python-build-system)
|
||||
(arguments `(#:tests? #f)) ; tests require more packages for python-pytest-httpbin
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? outputs #:allow-other-keys)
|
||||
(when tests?
|
||||
(substitute* "tox.ini"
|
||||
(("AWS_ACCESS_KEY_ID") "PYTHONPATH"))
|
||||
(setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
|
||||
;; These tests require network access.
|
||||
(delete-file "tests/unit/test_stubs.py")
|
||||
(invoke "pytest" "tests/unit")))))))
|
||||
(propagated-inputs
|
||||
`(("python-pyyaml" ,python-pyyaml)
|
||||
("python-six" ,python-six)
|
||||
("python-wrapt" ,python-wrapt)
|
||||
("python-yarl" ,python-yarl)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python-mock)
|
||||
`(("python-black" ,python-black)
|
||||
("python-coverage" ,python-coverage)
|
||||
("python-flake8" ,python-flake8)
|
||||
("python-flask" ,python-flask)
|
||||
("python-httplib2" ,python-httplib2)
|
||||
("python-ipaddress" ,python-ipaddress)
|
||||
("python-mock" ,python-mock)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-pytest-httpbin" ,python-pytest-httpbin)))
|
||||
("python-pytest-cov" ,python-pytest-cov)
|
||||
("python-pytest-httpbin" ,python-pytest-httpbin)
|
||||
("python-tox" ,python-tox)
|
||||
("python-urllib3" ,python-urllib3)))
|
||||
(home-page "https://github.com/kevin1024/vcrpy")
|
||||
(synopsis "Automatically mock your HTTP interactions")
|
||||
(description
|
||||
|
|
|
@ -396,13 +396,13 @@ WSGI. This package includes libraries for implementing ASGI servers.")
|
|||
(define-public python-aws-sam-translator
|
||||
(package
|
||||
(name "python-aws-sam-translator")
|
||||
(version "1.38.0")
|
||||
(version "1.40.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "aws-sam-translator" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1djwlsjpbh13m4biglimrm9lq7hmla0k29giay7k3cjsrylxvjhf"))))
|
||||
"1hq5ggbzcq4k3ks439hki493w4sasgaxns6j5x57xsj822acalmf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; XXX: Tests are not distributed with the PyPI archive, and would
|
||||
|
@ -415,13 +415,12 @@ WSGI. This package includes libraries for implementing ASGI servers.")
|
|||
;; of dependencies, when it works fine with others.
|
||||
(substitute* "requirements/base.txt"
|
||||
(("(.*)(~=[0-9\\.]+)" all package version)
|
||||
package))
|
||||
#t)))))
|
||||
package)))))))
|
||||
(propagated-inputs
|
||||
`(("python-boto3" ,python-boto3)
|
||||
("python-jsonschema" ,python-jsonschema)
|
||||
("python-six" ,python-six)))
|
||||
(home-page "https://github.com/awslabs/serverless-application-model")
|
||||
(home-page "https://github.com/aws/serverless-application-model")
|
||||
(synopsis "Transform AWS SAM templates into AWS CloudFormation templates")
|
||||
(description
|
||||
"AWS SAM Translator is a library that transform @dfn{Serverless Application
|
||||
|
@ -496,8 +495,8 @@ emit information from within their applications to the AWS X-Ray service.")
|
|||
(define-public python-cfn-lint
|
||||
(package
|
||||
(name "python-cfn-lint")
|
||||
(version "0.54.1")
|
||||
(home-page "https://github.com/aws-cloudformation/cfn-python-lint")
|
||||
(version "0.54.3")
|
||||
(home-page "https://github.com/aws-cloudformation/cfn-lint")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -506,12 +505,14 @@ emit information from within their applications to the AWS X-Ray service.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"161mzzlpbi85q43kwzrj39qb32l6wg6xhnbbd4z860yrfbymsn87"))))
|
||||
"106qf19n2k6sdjkb4006aidibd24qqiw901c1613xgjpnyw4dyl6"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Remove test for the documentation update scripts
|
||||
;; to avoid a dependency on 'git'.
|
||||
|
@ -519,8 +520,11 @@ emit information from within their applications to the AWS X-Ray service.")
|
|||
"test/unit/module/maintenance/test_update_documentation.py")
|
||||
(delete-file
|
||||
"test/unit/module/maintenance/test_update_resource_specs.py")
|
||||
(invoke "python" "-m" "unittest" "discover" "-v"
|
||||
"-s" "test")))))))
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(setenv "PATH" (string-append out "/bin:"
|
||||
(getenv "PATH")))
|
||||
(invoke "python" "-m" "unittest" "discover"
|
||||
"-s" "test"))))))))
|
||||
(native-inputs
|
||||
`(("python-pydot" ,python-pydot)
|
||||
("python-mock" ,python-mock)))
|
||||
|
@ -2838,14 +2842,14 @@ supports url redirection and retries, and also gzip and deflate decoding.")
|
|||
(package
|
||||
;; Note: updating awscli typically requires updating botocore as well.
|
||||
(name "awscli")
|
||||
(version "1.20.64")
|
||||
(version "1.21.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pl88y70rgwfprgv5gqkc2fcbasc9d0qyffl98l82bsc24d4c8b9"))))
|
||||
"0fkivwbx4nind5b7l4jhqm5bb9drgqsclcslrg4aggf9rcs4g4s0"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: The 'pypi' release does not contain tests.
|
||||
|
@ -3384,10 +3388,11 @@ Betamax that may possibly end up in the main package.")
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; Some of the 'integration' tests require network access or
|
||||
;; login credentials.
|
||||
(invoke "nosetests" "--exclude=integration"))))))
|
||||
(invoke "nosetests" "--exclude=integration")))))))
|
||||
(native-inputs
|
||||
`(("python-docutils" ,python-docutils)
|
||||
("python-mock" ,python-mock)
|
||||
|
|
|
@ -11416,9 +11416,9 @@ implementations of ASN.1-based codecs and protocols.")
|
|||
(define-public python2-pyasn1-modules
|
||||
(package-with-python2 python-pyasn1-modules))
|
||||
|
||||
(define-public python2-ipaddress
|
||||
(define-public python-ipaddress
|
||||
(package
|
||||
(name "python2-ipaddress")
|
||||
(name "python-ipaddress")
|
||||
(version "1.0.23")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -11427,17 +11427,17 @@ implementations of ASN.1-based codecs and protocols.")
|
|||
(base32
|
||||
"1qp743h30s04m3cg3yk3fycad930jv17q7dsslj4mfw0jlvf1y5p"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2))
|
||||
(home-page "https://github.com/phihag/ipaddress")
|
||||
(synopsis "IP address manipulation library")
|
||||
(description
|
||||
"This package provides a fast, lightweight IPv4/IPv6 manipulation library
|
||||
in Python. This library is used to create, poke at, and manipulate IPv4 and
|
||||
IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress
|
||||
module to older versions of Python.")
|
||||
IPv6 addresses and networks.")
|
||||
(license license:psfl)))
|
||||
|
||||
(define-public python2-ipaddress
|
||||
(package-with-python2 python-ipaddress))
|
||||
|
||||
(define-public python-asn1tools
|
||||
(package
|
||||
(name "python-asn1tools")
|
||||
|
@ -13385,32 +13385,40 @@ text.")
|
|||
(define-public python-moto
|
||||
(package
|
||||
(name "python-moto")
|
||||
;; XXX: Use a pre-release for compatibility with latest botocore & friends.
|
||||
(version "1.3.16.dev134")
|
||||
(version "2.2.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "moto" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd"))))
|
||||
"0pvay0jp119lzzwf5qj5h6311271yq0w2i6344ds20grpf6g6gz8"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-hardcoded-executable-names
|
||||
(lambda _
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash-exec (search-input-file inputs "/bin/sh")))
|
||||
(substitute* "moto/batch/models.py"
|
||||
(("/bin/sh")
|
||||
(which "sh")))
|
||||
(("/bin/sh") bash-exec))
|
||||
(substitute* (find-files "tests" "\\.py$")
|
||||
(("#!/bin/bash")
|
||||
(string-append "#!" (which "bash"))))
|
||||
#t))
|
||||
(("#!/bin/bash") (string-append "#!" bash-exec))))))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "pytest" "-vv" "-m" "not network"
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "-vv" "-m" "not network" "-k"
|
||||
(string-append
|
||||
;; These tests require Docker.
|
||||
"-k" "not test_terminate_job \
|
||||
and not test_invoke_function_from_sqs_exception"))))))
|
||||
"not test_terminate_job"
|
||||
" and not test_invoke_function_from_sqs_exception"
|
||||
" and not test_rotate_secret_lambda_invocations"
|
||||
;; These tests also require the network.
|
||||
" and not test_put_record_batch_http_destination"
|
||||
" and not test_put_record_http_destination"
|
||||
" and not test_dependencies"
|
||||
" and not test_cancel_running_job"
|
||||
" and not test_container_overrides"))))))))
|
||||
(native-inputs
|
||||
`(("python-flask" ,python-flask)
|
||||
("python-flask-cors" ,python-flask-cors)
|
||||
|
@ -13418,6 +13426,8 @@ and not test_invoke_function_from_sqs_exception"))))))
|
|||
("python-parameterized" ,python-parameterized)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-sure" ,python-sure)))
|
||||
(inputs
|
||||
`(("bash" ,bash-minimal)))
|
||||
(propagated-inputs
|
||||
`(("python-aws-xray-sdk" ,python-aws-xray-sdk)
|
||||
("python-boto" ,python-boto)
|
||||
|
@ -13761,14 +13771,14 @@ This software is unmaintained, and new projects should use @code{boto3} instead.
|
|||
;; are compatible.
|
||||
(package
|
||||
(name "python-botocore")
|
||||
(version "1.21.64")
|
||||
(version "1.22.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "botocore" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0z8cdv3lyr8vw452zqm1r8k4gz4sbzlsqwg6avc3zm6pvajdqc0a"))))
|
||||
"1z7g2scyzvfq4yj9b4w911k7802ry1v6lqfnwq12l0ak7ywmsvrh"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: Many tests are failing.
|
||||
|
@ -13789,7 +13799,7 @@ interface to the Amazon Web Services (AWS) API.")
|
|||
(define-public python-boto3
|
||||
(package
|
||||
(name "python-boto3")
|
||||
(version "1.18.64")
|
||||
(version "1.19.11")
|
||||
(home-page "https://github.com/boto/boto3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -13797,7 +13807,7 @@ interface to the Amazon Web Services (AWS) API.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"02hy80xfyxln5yr43cbrmq3kpkdijv8v228alz1x92y4gghnb8cj"))))
|
||||
"1wv0ci2z5ywvm63dh4mp64vqyyvkm4qxc8dxv8ncrqiiphpgr9aq"))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -39,16 +39,22 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crates-io)
|
||||
#:use-module (gnu packages crates-graphics)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages ibus)
|
||||
#:use-module (gnu packages jemalloc)
|
||||
#:use-module (gnu packages kde)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -56,7 +62,8 @@
|
|||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages rust)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control))
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public agate
|
||||
(package
|
||||
|
@ -536,14 +543,6 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
|
|||
(sha256
|
||||
(base32 "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s"))))
|
||||
(build-system cargo-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("curl" ,curl)
|
||||
("dbus" ,dbus)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:features '("pulseaudio" "libpulse-binding")
|
||||
#:install-source? #f
|
||||
|
@ -573,6 +572,9 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
|
|||
(("rust-assert-fs" ,rust-assert-fs-1))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enable-unstable-features
|
||||
(lambda _
|
||||
(setenv "RUSTC_BOOTSTRAP" "1")))
|
||||
(add-after 'unpack 'fix-resources-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((resources (string-append %output "/share")))
|
||||
|
@ -581,10 +583,38 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
|
|||
(add-after 'install 'install-resources
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(copy-recursively "files" (string-append %output "/share"))))
|
||||
(add-after 'unpack 'enable-unstable-features
|
||||
(lambda _
|
||||
(setenv "RUSTC_BOOTSTRAP" "1")
|
||||
#t)))))
|
||||
(add-after 'install 'wrap-i3status
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(paths (map
|
||||
(lambda (input)
|
||||
(string-append (assoc-ref inputs input) "/bin"))
|
||||
'("alsa-utils" "coreutils" "curl" "dbus" "ibus" "iproute"
|
||||
"kdeconnect" "lm-sensors" "pulseaudio"
|
||||
"openssl"
|
||||
"setxkbmap" "speedtest-cli" "xdg-utils" "xrandr"
|
||||
"zlib"))))
|
||||
(wrap-program (string-append out "/bin/i3status-rs")
|
||||
`("PATH" prefix ,paths))))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("alsa-utils" ,alsa-utils)
|
||||
("bash-minimal" ,bash-minimal)
|
||||
("coreutils" ,coreutils)
|
||||
("curl" ,curl)
|
||||
("dbus" ,dbus)
|
||||
("ibus" ,ibus)
|
||||
("iproute" ,iproute)
|
||||
("kdeconnect" ,kdeconnect)
|
||||
("lm-sensors" ,lm-sensors)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("openssl" ,openssl)
|
||||
("setxkbmap" ,setxkbmap)
|
||||
("speedtest-cli" ,speedtest-cli)
|
||||
("xdg-utils" ,xdg-utils)
|
||||
("xrandr" ,xrandr)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://github.com/greshake/i3status-rust")
|
||||
(synopsis "i3status, written in pure Rust")
|
||||
(description "@code{i3status-rs} is a feature-rich and resource-friendly
|
||||
|
@ -1051,6 +1081,41 @@ show number of files, total lines within those files and code, comments, and
|
|||
blanks grouped by language.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public vivid
|
||||
(package
|
||||
(name "vivid")
|
||||
(version "0.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "vivid" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "01fds6dm19bqgqydaa6n051v9l4wh9rb5d6sr9akwp2cc0fs43b7"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-ansi-colours" ,rust-ansi-colours-1)
|
||||
("rust-clap" ,rust-clap-2)
|
||||
("rust-dirs" ,rust-dirs-3)
|
||||
("rust-lazy-static" ,rust-lazy-static-1)
|
||||
("rust-rust-embed" ,rust-rust-embed-5)
|
||||
("rust-yaml-rust" ,rust-yaml-rust-0.4))))
|
||||
(home-page "https://github.com/sharkdp/vivid")
|
||||
(synopsis "LS_COLORS environment variable manager")
|
||||
(description
|
||||
"vivid is a generator for the @code{LS_COLORS} environment variable that
|
||||
controls the colorized output of ls, tree, fd, bfs, dust and many other tools.
|
||||
|
||||
It uses a YAML configuration format for the filetype-database and the color
|
||||
themes. In contrast to @command{dircolors}, the database and the themes are
|
||||
organized in different files. This allows users to choose and customize color
|
||||
themes independent from the collection of file extensions. Instead of using
|
||||
cryptic ANSI escape codes, colors can be specified in the RRGGBB format and
|
||||
will be translated to either truecolor (24-bit) ANSI codes or 8-bit codes for
|
||||
older terminal emulators.")
|
||||
(license (list license:expat license:asl2.0))))
|
||||
|
||||
(define-public watchexec
|
||||
(package
|
||||
(name "watchexec")
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
|
||||
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
|
||||
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -36,7 +37,7 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 bsd-3
|
||||
cc-by-sa4.0 non-copyleft expat))
|
||||
cc-by-sa4.0 non-copyleft expat public-domain))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
|
@ -792,6 +793,45 @@ program-point-specific low-level representation selection and code
|
|||
generation.")
|
||||
(license gpl2+))))
|
||||
|
||||
(define-public s9fes
|
||||
(package
|
||||
(name "s9fes")
|
||||
(version "20181205")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.t3x.org/s9fes/s9fes-" version ".tgz"))
|
||||
(sha256
|
||||
(base32 "0ynpl707bc9drwkdpdgvw14bz9zmwd3wffl1k02sxppjl28xm7rf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "install-all" make-flags))))
|
||||
#:tests? #f)) ; No check target.
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)))
|
||||
(home-page "https://www.t3x.org/s9fes/")
|
||||
(synopsis "Interpreter for R4RS Scheme")
|
||||
(description
|
||||
"Scheme 9 from Empty Space (S9fES) is a mature, portable, and
|
||||
comprehensible public-domain interpreter for R4RS Scheme offering:
|
||||
@itemize
|
||||
@item bignum arithmetics
|
||||
@item decimal-based real number arithmetics
|
||||
@item support for low-level Unix programming
|
||||
@item cursor addressing with Curses
|
||||
@item basic networking procedures
|
||||
@item an integrated online help system
|
||||
@item loads of useful library functions
|
||||
@end itemize")
|
||||
(license public-domain)))
|
||||
|
||||
(define-public femtolisp
|
||||
(let ((commit "ec7601076a976f845bc05ad6bd3ed5b8cde58a97")
|
||||
(revision "2"))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015, 2017 Sou Bunnbu <iyzsong@member.fsf.org>
|
||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -34,7 +34,7 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module ((guix licenses) #:hide (freetype))
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
|
@ -43,6 +43,7 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages fcitx)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
|
@ -110,7 +111,7 @@
|
|||
library designed to provide low level access to audio, keyboard, mouse,
|
||||
joystick, and graphics hardware.")
|
||||
(home-page "https://libsdl.org/")
|
||||
(license lgpl2.1)))
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public sdl2
|
||||
(package (inherit sdl)
|
||||
|
@ -153,7 +154,7 @@ joystick, and graphics hardware.")
|
|||
("wayland" ,wayland)
|
||||
("wayland-protocols" ,wayland-protocols))
|
||||
(package-inputs sdl)))
|
||||
(license bsd-3)))
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public libmikmod
|
||||
(package
|
||||
|
@ -182,7 +183,7 @@ joystick, and graphics hardware.")
|
|||
"MikMod is able to play a wide range of module formats, as well as
|
||||
digital sound files. It can take advantage of particular features of your
|
||||
system, such as sound redirection over the network.")
|
||||
(license lgpl2.1)
|
||||
(license license:lgpl2.1)
|
||||
(home-page "http://mikmod.sourceforge.net/")))
|
||||
|
||||
(define-public sdl-gfx
|
||||
|
@ -211,7 +212,7 @@ system, such as sound redirection over the network.")
|
|||
(description "SDL_gfx provides graphics drawing primitives, rotozoom and
|
||||
other supporting functions for SDL.")
|
||||
(home-page "http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx")
|
||||
(license zlib)))
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public sdl-image
|
||||
(package
|
||||
|
@ -248,7 +249,7 @@ other supporting functions for SDL.")
|
|||
supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF,
|
||||
WEBP, XCF, XPM, and XV.")
|
||||
(home-page "https://www.libsdl.org/projects/SDL_image/")
|
||||
(license zlib)))
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public sdl-mixer
|
||||
(package
|
||||
|
@ -303,7 +304,7 @@ and specify it using the @code{SDL_SOUNDFONTS} environment variable. For the
|
|||
legacy @code{timidity} backend, install a patch set such as @code{freepats}
|
||||
and set the path to the configuration file with @code{TIMIDITY_CFG}.")
|
||||
(home-page "https://www.libsdl.org/projects/SDL_mixer/")
|
||||
(license zlib)))
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public sdl-net
|
||||
(package
|
||||
|
@ -325,7 +326,7 @@ and set the path to the configuration file with @code{TIMIDITY_CFG}.")
|
|||
(description "SDL_net is a small, cross-platform networking library for
|
||||
SDL.")
|
||||
(home-page "https://www.libsdl.org/projects/SDL_net/")
|
||||
(license zlib)))
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public sdl-pango
|
||||
(package
|
||||
|
@ -371,7 +372,7 @@ SDL.")
|
|||
(description "This library is a wrapper around the Pango library.
|
||||
It allows you to use TrueType fonts to render internationalized and
|
||||
tagged text in SDL applications.")
|
||||
(license lgpl2.1)))
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public sdl-ttf
|
||||
(package
|
||||
|
@ -400,7 +401,7 @@ tagged text in SDL applications.")
|
|||
(synopsis "SDL TrueType font library")
|
||||
(description "SDL_ttf is a TrueType font rendering library for SDL.")
|
||||
(home-page "https://www.libsdl.org/projects/SDL_ttf/")
|
||||
(license zlib)))
|
||||
(license license:zlib)))
|
||||
|
||||
(define* (sdl-union #:optional (packages (list sdl sdl-gfx sdl-net sdl-ttf
|
||||
sdl-image sdl-mixer)))
|
||||
|
@ -546,21 +547,22 @@ directory.")
|
|||
(define-public guile-sdl
|
||||
(package
|
||||
(name "guile-sdl")
|
||||
(version "0.5.2")
|
||||
(version "0.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "mirror://gnu/guile-sdl/guile-sdl-"
|
||||
version ".tar.xz"))
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cjgs012a9922hn6xqwj66w6qmfs3nycnm56hyykx5n3g5p7ag01"))))
|
||||
"040gyk3n3yp8i30ngdg97n3083g8b6laky2nlh10jqcyjdd550d6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
`(("lzip" ,lzip)
|
||||
("pkg-config" ,pkg-config)
|
||||
;; Required by test suite.
|
||||
("xorg-server" ,xorg-server)
|
||||
("libjpeg" ,libjpeg-turbo)))
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
("sdl-union" ,(sdl-union))))
|
||||
|
@ -621,7 +623,7 @@ directory.")
|
|||
Layer (SDL). With them, Guile programmers can have easy access to graphics,
|
||||
sound and device input (keyboards, joysticks, mice, etc.).")
|
||||
(home-page "https://www.gnu.org/software/guile-sdl/")
|
||||
(license gpl3+)))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile-sdl2
|
||||
(package
|
||||
|
@ -651,7 +653,7 @@ sound and device input (keyboards, joysticks, mice, etc.).")
|
|||
"Guile-SDL2 provides Guile Scheme bindings for the SDL2 C shared library.
|
||||
The bindings are written in pure Scheme using Guile's foreign function
|
||||
interface.")
|
||||
(license lgpl3+)))
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public guile2.2-sdl2
|
||||
(package/inherit guile-sdl2
|
||||
|
@ -704,4 +706,4 @@ interface.")
|
|||
"SDL2-CS provides C# bindings for the SDL2 C shared library.
|
||||
The C# wrapper was written to be used for FNA's platform support. However, this
|
||||
is written in a way that can be used for any general C# application.")
|
||||
(license zlib))))
|
||||
(license license:zlib))))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -22,22 +23,22 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages guile))
|
||||
|
||||
(define-public serveez
|
||||
(package
|
||||
(name "serveez")
|
||||
(version "0.2.2")
|
||||
(version "0.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/serveez/serveez-"
|
||||
version ".tar.xz"))
|
||||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09a5jh762ps71ivlg7vdlzp3y29ncl3nsad7qbcni78bq2mzwxsc"))))
|
||||
"0capm8i6fyjvh5rflxkfd07llfaa0kk4i3y836qpld9vzy49q6ky"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("guile" ,guile-2.0)))
|
||||
(arguments
|
||||
`(#:configure-flags '("--enable-libserveez-install")
|
||||
#:phases
|
||||
|
@ -48,6 +49,10 @@
|
|||
(find-files "test" "^t[0-9]{3}$")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("lzip" ,lzip)))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(home-page "https://www.gnu.org/software/serveez/")
|
||||
(synopsis "Framework for implementing IP-based servers")
|
||||
(description
|
||||
|
|
|
@ -55,6 +55,44 @@
|
|||
#:use-module (gnu packages tmux)
|
||||
#:use-module (gnu packages vim))
|
||||
|
||||
(define-public ascii
|
||||
(package
|
||||
(name "ascii")
|
||||
(version "3.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.catb.org/~esr/ascii/"
|
||||
"ascii-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b87vy06s8s3a8q70pqavsbk4m4ff034sdml2xxa6qfsykaj513j"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:make-flags
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'install 'create-directories
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man1 (string-append out "/share/man/man1")))
|
||||
(mkdir-p bin)
|
||||
(mkdir-p man1)))))
|
||||
#:tests? #f))
|
||||
(home-page "http://www.catb.org/~esr/ascii/")
|
||||
(synopsis "ASCII name and synonym chart")
|
||||
(description
|
||||
"The @code{ascii} utility provides easy conversion between various byte
|
||||
representations and the American Standard Code for Information Interchange
|
||||
(ASCII) character table. It knows about a wide variety of hex, binary, octal,
|
||||
Teletype mnemonic, ISO/ECMA code point, slang names, XML entity names, and
|
||||
other representations. Given any one on the command line, it will try to
|
||||
display all others. Called with no arguments it displays a handy small ASCII
|
||||
chart.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public boxes
|
||||
(package
|
||||
(name "boxes")
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
|
||||
;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
|
||||
;;; Copyright © 2021 Nikolay Korotkiy <sikmir@disroot.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -963,3 +964,31 @@ running a command.")
|
|||
Single daemon and configuration file. Log to stdout or syslog. No mail
|
||||
support.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public sfm
|
||||
(package
|
||||
(name "sfm")
|
||||
(version "0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "git://git.afify.dev/sfm.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0g6k884mggryld0k054sjcj6kpkbca9cvr50w98klszym73yw0sp"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;no check target
|
||||
#:make-flags
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" %output))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)))) ;no configure script
|
||||
(home-page "https://github.com/afify/sfm")
|
||||
(synopsis "Simple file manager")
|
||||
(description "sfm is a simple file manager.")
|
||||
(license license:isc)))
|
||||
|
|
|
@ -2715,7 +2715,7 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
|
|||
(define-public stagit
|
||||
(package
|
||||
(name "stagit")
|
||||
(version "0.9.6")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2724,7 +2724,7 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hcf1rmsp9s6jjg1dypq7sa3dqmqg2q3x1kj23rb5gwrsb31vyfj"))))
|
||||
"0j2242vx5pbwdv79gcjxdbrwii48qphr8gk1lk7szj2irxdql171"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No tests
|
||||
|
|
|
@ -695,7 +695,7 @@ is fully configurable and extensible in Common Lisp.")
|
|||
(define-public lagrange
|
||||
(package
|
||||
(name "lagrange")
|
||||
(version "1.8.2")
|
||||
(version "1.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -703,7 +703,7 @@ is fully configurable and extensible in Common Lisp.")
|
|||
(string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
|
||||
"download/v" version "/lagrange-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1wb4gqn32sja2qik04chlcl743arr6c844zczy1a2aad5103cnip"))
|
||||
(base32 "1j4r2c6f9fqc22f14fjh28s324kfbb9ahf08nv0xlazy1y5g7f6d"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -7952,24 +7952,22 @@ solution for any project's interface needs:
|
|||
(license license:expat)))
|
||||
|
||||
(define-public gmnisrv
|
||||
(let ((commit "32854b79c73b278bf33eb5123abf1c36abdc7c01")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "gmnisrv")
|
||||
(version (git-version "0" revision commit))
|
||||
(version "1.0")
|
||||
(home-page "https://git.sr.ht/~sircmpwn/gmnisrv")
|
||||
(source (origin
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit commit)))
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0lbb3ablwkdcgm1cjr1hikr55y8gpl420nh8b8g9wn4abhm2xgr9"))
|
||||
(base32 "115r1dw9k08r2nvygy8ll21qvsc5kmzi5jcqm7g7r8q8hifxglap"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
`(#:tests? #f ;no check target
|
||||
#:configure-flags (list "--sysconfdir=/etc"
|
||||
(string-append "--with-mimedb="
|
||||
(assoc-ref %build-inputs "mailcap")
|
||||
|
@ -7984,7 +7982,7 @@ solution for any project's interface needs:
|
|||
(synopsis "Simple Gemini protocol server")
|
||||
(description "gmnisrv is a simple Gemini protocol server written in C.")
|
||||
(license (list license:gpl3+
|
||||
license:bsd-3))))) ;; for ini.c and ini.h
|
||||
license:bsd-3)))) ;; for ini.c and ini.h
|
||||
|
||||
(define-public libzim
|
||||
(package
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
(define-module (gnu services base)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix deprecation)
|
||||
#:autoload (guix diagnostics) (warning)
|
||||
#:autoload (guix i18n) (G_)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu services shepherd)
|
||||
|
@ -53,6 +55,8 @@
|
|||
#:use-module (gnu packages bash)
|
||||
#:use-module ((gnu packages base)
|
||||
#:select (coreutils glibc glibc-utf8-locales))
|
||||
#:autoload (gnu packages guile-xyz) (guile-netlink)
|
||||
#:autoload (gnu packages hurd) (hurd)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
|
||||
#:use-module (gnu packages linux)
|
||||
|
@ -83,17 +87,38 @@
|
|||
virtual-terminal-service-type
|
||||
|
||||
static-networking
|
||||
|
||||
static-networking?
|
||||
static-networking-interface
|
||||
static-networking-ip
|
||||
static-networking-netmask
|
||||
static-networking-gateway
|
||||
static-networking-addresses
|
||||
static-networking-links
|
||||
static-networking-routes
|
||||
static-networking-requirement
|
||||
|
||||
network-address
|
||||
network-address?
|
||||
network-address-device
|
||||
network-address-value
|
||||
network-address-ipv6?
|
||||
|
||||
network-link
|
||||
network-link?
|
||||
network-link-name
|
||||
network-link-type
|
||||
network-link-arguments
|
||||
|
||||
network-route
|
||||
network-route?
|
||||
network-route-destination
|
||||
network-route-source
|
||||
network-route-device
|
||||
network-route-ipv6?
|
||||
network-route-gateway
|
||||
|
||||
static-networking-service
|
||||
static-networking-service-type
|
||||
|
||||
%loopback-static-networking
|
||||
%qemu-static-networking
|
||||
|
||||
udev-configuration
|
||||
udev-configuration?
|
||||
udev-configuration-rules
|
||||
|
@ -2354,72 +2379,267 @@ notably to select, copy, and paste text. The default options use the
|
|||
(description "Start the @command{kmscon} virtual terminal emulator for the
|
||||
Linux @dfn{kernel mode setting} (KMS).")))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Static networking.
|
||||
;;;
|
||||
|
||||
(define (ipv6-address? str)
|
||||
"Return true if STR denotes an IPv6 address."
|
||||
(false-if-exception (->bool (inet-pton AF_INET6 str))))
|
||||
|
||||
(define-record-type* <static-networking>
|
||||
static-networking make-static-networking
|
||||
static-networking?
|
||||
(interface static-networking-interface)
|
||||
(ip static-networking-ip)
|
||||
(netmask static-networking-netmask
|
||||
(default #f))
|
||||
(gateway static-networking-gateway ;FIXME: doesn't belong here
|
||||
(default #f))
|
||||
(addresses static-networking-addresses) ;list of <network-address>
|
||||
(links static-networking-links (default '())) ;list of <network-link>
|
||||
(routes static-networking-routes (default '())) ;list of <network-routes>
|
||||
(provision static-networking-provision
|
||||
(default #f))
|
||||
(default '(networking)))
|
||||
(requirement static-networking-requirement
|
||||
(default '()))
|
||||
(default '(udev)))
|
||||
(name-servers static-networking-name-servers ;FIXME: doesn't belong here
|
||||
(default '())))
|
||||
|
||||
(define static-networking-shepherd-service
|
||||
(define-record-type* <network-address>
|
||||
network-address make-network-address
|
||||
network-address?
|
||||
(device network-address-device) ;string--e.g., "en01"
|
||||
(value network-address-value) ;string--CIDR notation
|
||||
(ipv6? network-address-ipv6? ;Boolean
|
||||
(thunked)
|
||||
(default
|
||||
(ipv6-address? (cidr->ip (network-address-value this-record))))))
|
||||
|
||||
(define-record-type* <network-link>
|
||||
network-link make-network-link
|
||||
network-link?
|
||||
(name network-link-name) ;string--e.g, "v0p0"
|
||||
(type network-link-type) ;symbol--e.g.,'veth
|
||||
(arguments network-link-arguments)) ;list
|
||||
|
||||
(define-record-type* <network-route>
|
||||
network-route make-network-route
|
||||
network-route?
|
||||
(destination network-route-destination)
|
||||
(source network-route-source (default #f))
|
||||
(device network-route-device (default #f))
|
||||
(ipv6? network-route-ipv6? (thunked)
|
||||
(default
|
||||
(or (ipv6-address? (network-route-destination this-record))
|
||||
(and=> (network-route-gateway this-record)
|
||||
ipv6-address?))))
|
||||
(gateway network-route-gateway (default #f)))
|
||||
|
||||
(define* (cidr->netmask str #:optional (family AF_INET))
|
||||
"Given @var{str}, a string in CIDR notation (e.g., \"1.2.3.4/24\"), return
|
||||
the netmask as a string like \"255.255.255.0\"."
|
||||
(match (string-split str #\/)
|
||||
((ip (= string->number bits))
|
||||
(let ((mask (ash (- (expt 2 bits) 1)
|
||||
(- (if (= family AF_INET6) 128 32)
|
||||
bits))))
|
||||
(inet-ntop family mask)))
|
||||
(_ #f)))
|
||||
|
||||
(define (cidr->ip str)
|
||||
"Strip the netmask bit of @var{str}, a CIDR-notation IP/netmask address."
|
||||
(match (string-split str #\/)
|
||||
((or (ip _) (ip))
|
||||
ip)))
|
||||
|
||||
(define* (ip+netmask->cidr ip netmask #:optional (family AF_INET))
|
||||
"Return the CIDR notation (a string) for @var{ip} and @var{netmask}, two
|
||||
@var{family} address strings, where @var{family} is @code{AF_INET} or
|
||||
@code{AF_INET6}."
|
||||
(let* ((netmask (inet-pton family netmask))
|
||||
(bits (logcount netmask)))
|
||||
(string-append ip "/" (number->string bits))))
|
||||
|
||||
(define (static-networking->hurd-pfinet-options config)
|
||||
"Return command-line options for the Hurd's pfinet translator corresponding
|
||||
to CONFIG."
|
||||
(unless (null? (static-networking-links config))
|
||||
;; XXX: Presumably this is not supported, or perhaps could be approximated
|
||||
;; by running separate pfinet instances in some cases?
|
||||
(warning (G_ "network links are currently ignored on GNU/Hurd~%")))
|
||||
|
||||
(match (static-networking-addresses config)
|
||||
((and addresses (first _ ...))
|
||||
`("--ipv6" "/servers/socket/26"
|
||||
"--interface" ,(network-address-device first)
|
||||
,@(append-map (lambda (address)
|
||||
`(,(if (network-address-ipv6? address)
|
||||
"--address6"
|
||||
"--address")
|
||||
,(cidr->ip (network-address-value address))
|
||||
,@(match (cidr->netmask (network-address-value address)
|
||||
(if (network-address-ipv6? address)
|
||||
AF_INET6
|
||||
AF_INET))
|
||||
(#f '())
|
||||
(mask (list "--netmask" mask)))))
|
||||
addresses)
|
||||
,@(append-map (lambda (route)
|
||||
(match route
|
||||
(($ <network-route> "default" #f device _ gateway)
|
||||
(if (network-route-ipv6? route)
|
||||
`("--gateway6" ,gateway)
|
||||
`("--gateway" ,gateway)))
|
||||
(($ <network-route> destination)
|
||||
(warning (G_ "ignoring network route for '~a'~%")
|
||||
destination)
|
||||
'())))
|
||||
(static-networking-routes config))))))
|
||||
|
||||
(define (network-set-up/hurd config)
|
||||
"Set up networking for the Hurd."
|
||||
;; The Hurd implements SIOCGIFADDR and other old-style ioctls, but the only
|
||||
;; way to set up IPv6 is by starting pfinet with the right options.
|
||||
(if (equal? (static-networking-provision config) '(loopback))
|
||||
(scheme-file "set-up-pflocal" #~(begin 'nothing-to-do! #t))
|
||||
(scheme-file "set-up-pfinet"
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 format))
|
||||
|
||||
;; TODO: Do that without forking.
|
||||
(let ((options '#$(static-networking->hurd-pfinet-options
|
||||
config)))
|
||||
(format #t "starting '~a~{ ~s~}'~%"
|
||||
#$(file-append hurd "/hurd/pfinet")
|
||||
options)
|
||||
(apply invoke #$(file-append hurd "/bin/settrans") "-fac"
|
||||
"/servers/socket/2"
|
||||
#$(file-append hurd "/hurd/pfinet")
|
||||
options)))))))
|
||||
|
||||
(define (network-tear-down/hurd config)
|
||||
(scheme-file "tear-down-pfinet"
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
;; Forcefully terminate pfinet. XXX: In theory this
|
||||
;; should just undo the addresses and routes of CONFIG;
|
||||
;; this could be done using ioctls like SIOCDELRT, but
|
||||
;; these are IPv4-only; another option would be to use
|
||||
;; fsysopts but that seems to crash pfinet.
|
||||
(invoke #$(file-append hurd "/bin/settrans") "-fg"
|
||||
"/servers/socket/2")
|
||||
#f))))
|
||||
|
||||
(define network-set-up/linux
|
||||
(match-lambda
|
||||
(($ <static-networking> interface ip netmask gateway provision
|
||||
requirement name-servers)
|
||||
(($ <static-networking> addresses links routes)
|
||||
(scheme-file "set-up-network"
|
||||
(with-extensions (list guile-netlink)
|
||||
#~(begin
|
||||
(use-modules (ip addr) (ip link) (ip route))
|
||||
|
||||
#$@(map (lambda (address)
|
||||
#~(begin
|
||||
(addr-add #$(network-address-device address)
|
||||
#$(network-address-value address)
|
||||
#:ipv6?
|
||||
#$(network-address-ipv6? address))
|
||||
;; FIXME: loopback?
|
||||
(link-set #$(network-address-device address)
|
||||
#:up #t)))
|
||||
addresses)
|
||||
#$@(map (match-lambda
|
||||
(($ <network-link> name type arguments)
|
||||
#~(link-add #$name #$type
|
||||
#:type-args '#$arguments)))
|
||||
links)
|
||||
#$@(map (lambda (route)
|
||||
#~(route-add #$(network-route-destination route)
|
||||
#:device
|
||||
#$(network-route-device route)
|
||||
#:ipv6?
|
||||
#$(network-route-ipv6? route)
|
||||
#:via
|
||||
#$(network-route-gateway route)
|
||||
#:src
|
||||
#$(network-route-source route)))
|
||||
routes)
|
||||
#t))))))
|
||||
|
||||
(define network-tear-down/linux
|
||||
(match-lambda
|
||||
(($ <static-networking> addresses links routes)
|
||||
(scheme-file "tear-down-network"
|
||||
(with-extensions (list guile-netlink)
|
||||
#~(begin
|
||||
(use-modules (ip addr) (ip link) (ip route)
|
||||
(netlink error)
|
||||
(srfi srfi-34))
|
||||
|
||||
(define-syntax-rule (false-if-netlink-error exp)
|
||||
(guard (c ((netlink-error? c) #f))
|
||||
exp))
|
||||
|
||||
;; Wrap calls in 'false-if-netlink-error' so this
|
||||
;; script goes as far as possible undoing the effects
|
||||
;; of "set-up-network".
|
||||
|
||||
#$@(map (lambda (route)
|
||||
#~(false-if-netlink-error
|
||||
(route-del #$(network-route-destination route)
|
||||
#:device
|
||||
#$(network-route-device route)
|
||||
#:ipv6?
|
||||
#$(network-route-ipv6? route)
|
||||
#:via
|
||||
#$(network-route-gateway route)
|
||||
#:src
|
||||
#$(network-route-source route))))
|
||||
routes)
|
||||
#$@(map (match-lambda
|
||||
(($ <network-link> name type arguments)
|
||||
#~(false-if-netlink-error
|
||||
(link-del #$name))))
|
||||
links)
|
||||
#$@(map (lambda (address)
|
||||
#~(false-if-netlink-error
|
||||
(addr-del #$(network-address-device
|
||||
address)
|
||||
#$(network-address-value address)
|
||||
#:ipv6?
|
||||
#$(network-address-ipv6? address))))
|
||||
addresses)
|
||||
#f))))))
|
||||
|
||||
(define (static-networking-shepherd-service config)
|
||||
(match config
|
||||
(($ <static-networking> addresses links routes
|
||||
provision requirement name-servers)
|
||||
(let ((loopback? (and provision (memq 'loopback provision))))
|
||||
(shepherd-service
|
||||
|
||||
(documentation
|
||||
"Bring up the networking interface using a static IP address.")
|
||||
(requirement requirement)
|
||||
(provision (or provision
|
||||
(list (symbol-append 'networking-
|
||||
(string->symbol interface)))))
|
||||
(provision provision)
|
||||
|
||||
(start #~(lambda _
|
||||
;; Return #t if successfully started.
|
||||
(let* ((addr (inet-pton AF_INET #$ip))
|
||||
(sockaddr (make-socket-address AF_INET addr 0))
|
||||
(mask (and #$netmask
|
||||
(inet-pton AF_INET #$netmask)))
|
||||
(maskaddr (and mask
|
||||
(make-socket-address AF_INET
|
||||
mask 0)))
|
||||
(gateway (and #$gateway
|
||||
(inet-pton AF_INET #$gateway)))
|
||||
(gatewayaddr (and gateway
|
||||
(make-socket-address AF_INET
|
||||
gateway 0))))
|
||||
(configure-network-interface #$interface sockaddr
|
||||
(logior IFF_UP
|
||||
#$(if loopback?
|
||||
#~IFF_LOOPBACK
|
||||
0))
|
||||
#:netmask maskaddr)
|
||||
(when gateway
|
||||
(let ((sock (socket AF_INET SOCK_DGRAM 0)))
|
||||
(add-network-route/gateway sock gatewayaddr)
|
||||
(close-port sock))))))
|
||||
(load #$(let-system (system target)
|
||||
(if (string-contains (or target system) "-linux")
|
||||
(network-set-up/linux config)
|
||||
(network-set-up/hurd config))))))
|
||||
(stop #~(lambda _
|
||||
;; Return #f is successfully stopped.
|
||||
(let ((sock (socket AF_INET SOCK_STREAM 0)))
|
||||
(when #$gateway
|
||||
(delete-network-route sock
|
||||
(make-socket-address
|
||||
AF_INET INADDR_ANY 0)))
|
||||
(set-network-interface-flags sock #$interface 0)
|
||||
(close-port sock)
|
||||
#f)))
|
||||
(load #$(let-system (system target)
|
||||
(if (string-contains (or target system) "-linux")
|
||||
(network-tear-down/linux config)
|
||||
(network-tear-down/hurd config))))))
|
||||
(respawn? #f))))))
|
||||
|
||||
(define (static-networking-shepherd-services networks)
|
||||
(map static-networking-shepherd-service networks))
|
||||
|
||||
(define (static-networking-etc-files interfaces)
|
||||
"Return a /etc/resolv.conf entry for INTERFACES or the empty list."
|
||||
(match (delete-duplicates
|
||||
|
@ -2438,30 +2658,6 @@ Linux @dfn{kernel mode setting} (KMS).")))
|
|||
# Generated by 'static-networking-service'.\n"
|
||||
content))))))))
|
||||
|
||||
(define (static-networking-shepherd-services interfaces)
|
||||
"Return the list of Shepherd services to bring up INTERFACES, a list of
|
||||
<static-networking> objects."
|
||||
(define (loopback? service)
|
||||
(memq 'loopback (shepherd-service-provision service)))
|
||||
|
||||
(let ((services (map static-networking-shepherd-service interfaces)))
|
||||
(match (remove loopback? services)
|
||||
(()
|
||||
;; There's no interface other than 'loopback', so we assume that the
|
||||
;; 'networking' service will be provided by dhclient or similar.
|
||||
services)
|
||||
((non-loopback ...)
|
||||
;; Assume we're providing all the interfaces, and thus, provide a
|
||||
;; 'networking' service.
|
||||
(cons (shepherd-service
|
||||
(provision '(networking))
|
||||
(requirement (append-map shepherd-service-provision
|
||||
services))
|
||||
(start #~(const #t))
|
||||
(stop #~(const #f))
|
||||
(documentation "Bring up all the networking interfaces."))
|
||||
services)))))
|
||||
|
||||
(define static-networking-service-type
|
||||
;; The service type for statically-defined network interfaces.
|
||||
(service-type (name 'static-networking)
|
||||
|
@ -2479,12 +2675,13 @@ with the given IP address, gateway, netmask, and so on. The value for
|
|||
services of this type is a list of @code{static-networking} objects, one per
|
||||
network interface.")))
|
||||
|
||||
(define* (static-networking-service interface ip
|
||||
(define-deprecated (static-networking-service interface ip
|
||||
#:key
|
||||
netmask gateway provision
|
||||
;; Most interfaces require udev to be usable.
|
||||
(requirement '(udev))
|
||||
(name-servers '()))
|
||||
static-networking-service-type
|
||||
"Return a service that starts @var{interface} with address @var{ip}. If
|
||||
@var{netmask} is true, use it as the network mask. If @var{gateway} is true,
|
||||
it must be a string specifying the default network gateway.
|
||||
|
@ -2495,12 +2692,48 @@ interface of interest. Behind the scenes what it does is extend
|
|||
to handle."
|
||||
(simple-service 'static-network-interface
|
||||
static-networking-service-type
|
||||
(list (static-networking (interface interface) (ip ip)
|
||||
(netmask netmask) (gateway gateway)
|
||||
(provision provision)
|
||||
(list (static-networking
|
||||
(addresses
|
||||
(list (network-address
|
||||
(device interface)
|
||||
(value (if netmask
|
||||
(ip+netmask->cidr ip netmask)
|
||||
ip))
|
||||
(ipv6? #f))))
|
||||
(routes
|
||||
(if gateway
|
||||
(list (network-route
|
||||
(destination "default")
|
||||
(gateway gateway)
|
||||
(ipv6? #f)))
|
||||
'()))
|
||||
(requirement requirement)
|
||||
(provision (or provision '(networking)))
|
||||
(name-servers name-servers)))))
|
||||
|
||||
(define %loopback-static-networking
|
||||
;; The loopback device.
|
||||
(static-networking
|
||||
(addresses (list (network-address
|
||||
(device "lo")
|
||||
(value "127.0.0.1"))))
|
||||
(requirement '())
|
||||
(provision '(loopback))))
|
||||
|
||||
(define %qemu-static-networking
|
||||
;; Networking configuration for QEMU's user-mode network stack (info "(QEMU)
|
||||
;; Using the user mode network stack").
|
||||
(static-networking
|
||||
(addresses (list (network-address
|
||||
(device "eth0")
|
||||
(value "10.0.2.15/24"))))
|
||||
(routes (list (network-route
|
||||
(destination "default")
|
||||
(gateway "10.0.2.2"))))
|
||||
(requirement '())
|
||||
(provision '(networking))
|
||||
(name-servers '("10.0.2.3"))))
|
||||
|
||||
|
||||
(define %base-services
|
||||
;; Convenience variable holding the basic services.
|
||||
|
@ -2531,10 +2764,7 @@ to handle."
|
|||
(tty "tty6")))
|
||||
|
||||
(service static-networking-service-type
|
||||
(list (static-networking (interface "lo")
|
||||
(ip "127.0.0.1")
|
||||
(requirement '())
|
||||
(provision '(loopback)))))
|
||||
(list %loopback-static-networking))
|
||||
(syslog-service)
|
||||
(service urandom-seed-service-type)
|
||||
(service guix-service-type)
|
||||
|
|
|
@ -898,23 +898,44 @@ specified, the QEMU default path is used."))
|
|||
;;; Secrets for guest VMs.
|
||||
;;;
|
||||
|
||||
(define (secret-service-activation port)
|
||||
"Return an activation snippet that fetches sensitive material at local PORT,
|
||||
(define (secret-service-shepherd-services port)
|
||||
"Return a Shepherd service that fetches sensitive material at local PORT,
|
||||
over TCP. Reboot upon failure."
|
||||
(with-imported-modules '((gnu build secret-service)
|
||||
;; This is a Shepherd service, rather than an activation snippet, to make
|
||||
;; sure it is started once 'networking' is up so it can accept incoming
|
||||
;; connections.
|
||||
(list
|
||||
(shepherd-service
|
||||
(documentation "Fetch secrets from the host at startup time.")
|
||||
(provision '(secret-service-client))
|
||||
(requirement '(loopback networking))
|
||||
(modules '((gnu build secret-service)
|
||||
(guix build utils)))
|
||||
(start (with-imported-modules '((gnu build secret-service)
|
||||
(guix build utils))
|
||||
#~(begin
|
||||
(use-modules (gnu build secret-service))
|
||||
#~(lambda ()
|
||||
;; Since shepherd's output port goes to /dev/log, write this
|
||||
;; message to stderr so it's visible on the Mach console.
|
||||
(format (current-error-port)
|
||||
"receiving secrets from the host...~%")
|
||||
(force-output (current-error-port))
|
||||
|
||||
(let ((sent (secret-service-receive-secrets #$port)))
|
||||
(unless sent
|
||||
(sleep 3)
|
||||
(reboot))))))
|
||||
(stop #~(const #f)))))
|
||||
|
||||
(define secret-service-type
|
||||
(service-type
|
||||
(name 'secret-service)
|
||||
(extensions (list (service-extension activation-service-type
|
||||
secret-service-activation)))
|
||||
(extensions (list (service-extension shepherd-root-service-type
|
||||
secret-service-shepherd-services)
|
||||
|
||||
;; Make every Shepherd service depend on
|
||||
;; 'secret-service-client'.
|
||||
(service-extension user-processes-service-type
|
||||
(const '(secret-service-client)))))
|
||||
(description
|
||||
"This service fetches secret key and other sensitive material over TCP at
|
||||
boot time. This service is meant to be used by virtual machines (VMs) that
|
||||
|
|
|
@ -79,11 +79,13 @@
|
|||
(service hurd-getty-service-type (hurd-getty-configuration
|
||||
(tty "tty2")))
|
||||
(service static-networking-service-type
|
||||
(list (static-networking (interface "lo")
|
||||
(ip "127.0.0.1")
|
||||
(requirement '())
|
||||
(provision '(loopback networking))
|
||||
(name-servers '("10.0.2.3")))))
|
||||
(list %loopback-static-networking
|
||||
|
||||
;; QEMU user-mode networking. To get "eth0", you need
|
||||
;; QEMU to emulate a device for which Mach has an
|
||||
;; in-kernel driver, for instance with:
|
||||
;; --device rtl8139,netdev=net0 --netdev user,id=net0
|
||||
%qemu-static-networking))
|
||||
(syslog-service)
|
||||
(service guix-service-type
|
||||
(guix-configuration
|
||||
|
|
|
@ -408,10 +408,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
|
|||
|
||||
;; Loopback device, needed by OpenSSH notably.
|
||||
(service static-networking-service-type
|
||||
(list (static-networking (interface "lo")
|
||||
(ip "127.0.0.1")
|
||||
(requirement '())
|
||||
(provision '(loopback)))))
|
||||
(list %loopback-static-networking))
|
||||
|
||||
(service wpa-supplicant-service-type)
|
||||
(dbus-service)
|
||||
|
|
|
@ -59,11 +59,8 @@
|
|||
(packages (append (list ganeti-instance-debootstrap ganeti-instance-guix)
|
||||
%base-packages))
|
||||
(services
|
||||
(append (list (static-networking-service "eth0" "10.0.2.15"
|
||||
#:netmask "255.255.255.0"
|
||||
#:gateway "10.0.2.2"
|
||||
#:name-servers '("10.0.2.3"))
|
||||
|
||||
(append (list (service static-networking-service-type
|
||||
(list %qemu-static-networking))
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(permit-root-login 'prohibit-password)))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -37,9 +38,101 @@
|
|||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%test-inetd %test-openvswitch %test-dhcpd %test-tor %test-iptables
|
||||
#:export (%test-static-networking
|
||||
%test-inetd
|
||||
%test-openvswitch
|
||||
%test-dhcpd
|
||||
%test-tor
|
||||
%test-iptables
|
||||
%test-ipfs))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Static networking.
|
||||
;;;
|
||||
|
||||
(define (run-static-networking-test vm)
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette)
|
||||
(guix build syscalls))
|
||||
#~(begin
|
||||
(use-modules (gnu build marionette)
|
||||
(guix build syscalls)
|
||||
(srfi srfi-64))
|
||||
|
||||
(define marionette
|
||||
(make-marionette
|
||||
'(#$vm "-nic" "user,model=virtio-net-pci")))
|
||||
|
||||
(mkdir #$output)
|
||||
(chdir #$output)
|
||||
|
||||
(test-begin "static-networking")
|
||||
|
||||
(test-assert "service is up"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(start-service 'networking))
|
||||
marionette))
|
||||
|
||||
(test-assert "network interfaces"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (guix build syscalls))
|
||||
(network-interface-names))
|
||||
marionette))
|
||||
|
||||
(test-equal "address of eth0"
|
||||
"10.0.2.15"
|
||||
(marionette-eval
|
||||
'(let* ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(addr (network-interface-address sock "eth0")))
|
||||
(close-port sock)
|
||||
(inet-ntop (sockaddr:fam addr) (sockaddr:addr addr)))
|
||||
marionette))
|
||||
|
||||
(test-equal "netmask of eth0"
|
||||
"255.255.255.0"
|
||||
(marionette-eval
|
||||
'(let* ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(mask (network-interface-netmask sock "eth0")))
|
||||
(close-port sock)
|
||||
(inet-ntop (sockaddr:fam mask) (sockaddr:addr mask)))
|
||||
marionette))
|
||||
|
||||
(test-equal "eth0 is up"
|
||||
IFF_UP
|
||||
(marionette-eval
|
||||
'(let* ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(flags (network-interface-flags sock "eth0")))
|
||||
(logand flags IFF_UP))
|
||||
marionette))
|
||||
|
||||
(test-end)
|
||||
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
(gexp->derivation "static-networking" test))
|
||||
|
||||
(define %test-static-networking
|
||||
(system-test
|
||||
(name "static-networking")
|
||||
(description "Test the 'static-networking' service.")
|
||||
(value
|
||||
(let ((os (marionette-operating-system
|
||||
(simple-operating-system
|
||||
(service static-networking-service-type
|
||||
(list %qemu-static-networking)))
|
||||
#:imported-modules '((gnu services herd)
|
||||
(guix combinators)))))
|
||||
(run-static-networking-test (virtual-machine os))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Inetd.
|
||||
;;;
|
||||
|
||||
(define %inetd-os
|
||||
;; Operating system with 2 inetd services.
|
||||
(simple-operating-system
|
||||
|
@ -177,9 +270,13 @@ port 7, and a dict service on port 2628."
|
|||
(define %openvswitch-os
|
||||
(operating-system
|
||||
(inherit (simple-operating-system
|
||||
(static-networking-service "ovs0" "10.1.1.1"
|
||||
#:netmask "255.255.255.252"
|
||||
#:requirement '(openvswitch-configuration))
|
||||
(simple-service 'openswitch-networking
|
||||
static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses (list (network-address
|
||||
(value "10.1.1.1/24")
|
||||
(device "ovs0"))))
|
||||
(requirement '(openvswitch-configuration)))))
|
||||
(service openvswitch-service-type)
|
||||
openvswitch-configuration-service))
|
||||
;; Ensure the interface name does not change depending on the driver.
|
||||
|
@ -188,12 +285,15 @@ port 7, and a dict service on port 2628."
|
|||
(define (run-openvswitch-test)
|
||||
(define os
|
||||
(marionette-operating-system %openvswitch-os
|
||||
#:imported-modules '((gnu services herd))))
|
||||
#:imported-modules '((gnu services herd)
|
||||
(guix build syscalls))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette))
|
||||
(with-imported-modules '((gnu build marionette)
|
||||
(guix build syscalls))
|
||||
#~(begin
|
||||
(use-modules (gnu build marionette)
|
||||
(guix build syscalls)
|
||||
(ice-9 popen)
|
||||
(ice-9 rdelim)
|
||||
(srfi srfi-64))
|
||||
|
@ -234,11 +334,23 @@ port 7, and a dict service on port 2628."
|
|||
(srfi srfi-1))
|
||||
(live-service-running
|
||||
(find (lambda (live)
|
||||
(memq 'networking-ovs0
|
||||
(memq 'networking
|
||||
(live-service-provision live)))
|
||||
(current-services))))
|
||||
marionette))
|
||||
|
||||
(test-equal "ovs0 is up"
|
||||
IFF_UP
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (guix build syscalls))
|
||||
|
||||
(let* ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(flags (network-interface-flags sock "ovs0")))
|
||||
(close-port sock)
|
||||
(logand flags IFF_UP)))
|
||||
marionette))
|
||||
|
||||
(test-end))))
|
||||
|
||||
(gexp->derivation "openvswitch-test" test))
|
||||
|
@ -276,10 +388,15 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
|
|||
|
||||
(define %dhcpd-os
|
||||
(simple-operating-system
|
||||
(static-networking-service "ens3" "192.168.1.4"
|
||||
#:netmask "255.255.255.0"
|
||||
#:gateway "192.168.1.1"
|
||||
#:name-servers '("192.168.1.2" "192.168.1.3"))
|
||||
(service static-networking-service-type
|
||||
(list (static-networking
|
||||
(addresses (list (network-address
|
||||
(value "192.168.1.4/24")
|
||||
(device "ens3"))))
|
||||
(routes (list (network-route
|
||||
(destination "default")
|
||||
(gateway "192.168.1.1"))))
|
||||
(name-servers '("192.168.1.2" "192.168.1.3")))))
|
||||
(service dhcpd-service-type dhcpd-v4-configuration)))
|
||||
|
||||
(define (run-dhcpd-test)
|
||||
|
|
|
@ -144,7 +144,9 @@ must contain the original contents of a narinfo file."
|
|||
(map (lambda (url)
|
||||
(or (string->uri url)
|
||||
(string->uri
|
||||
(string-append cache-url "/" url))))
|
||||
(if (string-suffix? "/" cache-url)
|
||||
(string-append cache-url url)
|
||||
(string-append cache-url "/" url)))))
|
||||
urls)
|
||||
compressions
|
||||
(match file-sizes
|
||||
|
|
|
@ -270,9 +270,7 @@ ABBREVIATION used to shorten FILE for display."
|
|||
tasks is performed. Write PREFIX at the beginning of the line."
|
||||
(define done 0)
|
||||
|
||||
(define (report-progress)
|
||||
(set! done (+ 1 done))
|
||||
(unless (> done total)
|
||||
(define (draw-bar)
|
||||
(let* ((ratio (* 100. (/ done total))))
|
||||
(erase-current-line port)
|
||||
(if (string-null? prefix)
|
||||
|
@ -282,7 +280,15 @@ tasks is performed. Write PREFIX at the beginning of the line."
|
|||
(display prefix port)
|
||||
(display " " port)
|
||||
(display (progress-bar ratio width) port)))
|
||||
(force-output port))))
|
||||
(force-output port)))
|
||||
|
||||
(define draw-bar/rate-limited
|
||||
(rate-limited draw-bar %progress-interval))
|
||||
|
||||
(define (report-progress)
|
||||
(set! done (+ 1 done))
|
||||
(unless (> done total)
|
||||
(draw-bar/rate-limited)))
|
||||
|
||||
(progress-reporter
|
||||
(start (lambda ()
|
||||
|
|
|
@ -35,10 +35,10 @@
|
|||
#:use-module (gcrypt hash)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (srfi srfi-71)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -196,13 +196,16 @@ taken since we do not import the archives."
|
|||
|
||||
(define (port-sha256* port size)
|
||||
;; Like 'port-sha256', but limited to SIZE bytes.
|
||||
(let-values (((out get) (open-sha256-port)))
|
||||
(let ((out get (open-sha256-port)))
|
||||
(dump-port* port out size)
|
||||
(close-port out)
|
||||
(get)))
|
||||
|
||||
(define (archive-contents port)
|
||||
"Return a list representing the files contained in the nar read from PORT."
|
||||
"Return a list representing the files contained in the nar read from PORT.
|
||||
The list is sorted in canonical order--i.e., the order in which entries appear
|
||||
in the nar."
|
||||
(reverse
|
||||
(fold-archive (lambda (file type contents result)
|
||||
(match type
|
||||
((or 'regular 'executable)
|
||||
|
@ -216,13 +219,15 @@ taken since we do not import the archives."
|
|||
(cons `(,file ,type ,contents) result))))
|
||||
'()
|
||||
port
|
||||
""))
|
||||
"")))
|
||||
|
||||
(define (store-item-contents item)
|
||||
"Return a list of files and contents for ITEM in the same format as
|
||||
'archive-contents'."
|
||||
(file-system-fold (const #t) ;enter?
|
||||
(lambda (file stat result) ;leaf
|
||||
(let loop ((file item))
|
||||
(define stat
|
||||
(lstat file))
|
||||
|
||||
(define short
|
||||
(string-drop file (string-length item)))
|
||||
|
||||
|
@ -233,28 +238,26 @@ taken since we do not import the archives."
|
|||
#o100))
|
||||
'regular
|
||||
'executable)))
|
||||
(cons `(,short ,type
|
||||
`((,short ,type
|
||||
,(call-with-input-file file
|
||||
(cut port-sha256* <> size)))
|
||||
result)))
|
||||
(cut port-sha256* <> size))))))
|
||||
('symlink
|
||||
(cons `(,short symlink ,(readlink file))
|
||||
result))))
|
||||
(lambda (directory stat result) result) ;down
|
||||
(lambda (directory stat result) result) ;up
|
||||
(lambda (file stat result) result) ;skip
|
||||
(lambda (file stat errno result) result) ;error
|
||||
'()
|
||||
item
|
||||
lstat))
|
||||
`((,short symlink ,(readlink file))))
|
||||
('directory
|
||||
(append-map (match-lambda
|
||||
((or "." "..")
|
||||
'())
|
||||
(entry
|
||||
(loop (string-append file "/" entry))))
|
||||
;; Traverse entries in canonical order, the same as the
|
||||
;; order of entries in nars.
|
||||
(scandir file (const #t) string<?))))))
|
||||
|
||||
(define (call-with-nar narinfo proc)
|
||||
"Call PROC with an input port from which it can read the nar pointed to by
|
||||
NARINFO."
|
||||
(let*-values (((uri compression size)
|
||||
(narinfo-best-uri narinfo))
|
||||
((port actual-size)
|
||||
(http-fetch uri)))
|
||||
(let* ((uri compression size (narinfo-best-uri narinfo))
|
||||
(port actual-size (http-fetch uri)))
|
||||
(define reporter
|
||||
(progress-reporter/file (narinfo-path narinfo)
|
||||
(and size
|
||||
|
|
|
@ -156,7 +156,11 @@ indicates that PATH is unavailable at CACHE-URL."
|
|||
|
||||
(define (narinfo-request cache-url path)
|
||||
"Return an HTTP request for the narinfo of PATH at CACHE-URL."
|
||||
(let* ((base (string->uri cache-url))
|
||||
;; Ensure BASE has a trailing slash so that REF is correct regardless of
|
||||
;; whether the user-provided CACHE-URL has a trailing slash.
|
||||
(let* ((base (string->uri (if (string-suffix? "/" cache-url)
|
||||
cache-url
|
||||
(string-append cache-url "/"))))
|
||||
(ref (build-relative-ref
|
||||
#:path (string-append (store-path-hash-part path) ".narinfo")))
|
||||
(url (resolve-uri-reference ref base))
|
||||
|
|
Reference in New Issue