Merge master into staging-next
This commit is contained in:
commit
febc27b59a
@ -276,6 +276,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
|
||||
fullName = "European Union Public License 1.2";
|
||||
};
|
||||
|
||||
fdl11 = spdx {
|
||||
spdxId = "GFDL-1.1-only";
|
||||
fullName = "GNU Free Documentation License v1.1 only";
|
||||
};
|
||||
|
||||
fdl12 = spdx {
|
||||
spdxId = "GFDL-1.2-only";
|
||||
fullName = "GNU Free Documentation License v1.2 only";
|
||||
|
@ -5027,6 +5027,12 @@
|
||||
githubId = 223323;
|
||||
name = "Miguel de la Cruz";
|
||||
};
|
||||
mgdm = {
|
||||
email = "michael@mgdm.net";
|
||||
github = "mgdm";
|
||||
githubId = 71893;
|
||||
name = "Michael Maclean";
|
||||
};
|
||||
mgregoire = {
|
||||
email = "gregoire@martinache.net";
|
||||
github = "M-Gregoire";
|
||||
|
@ -181,6 +181,12 @@ services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
|
||||
<link linkend="opt-security.duosec.integrationKey">security.duosec.integrationKey</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>vmware</literal> has been removed from the <literal>services.x11.videoDrivers</literal> defaults.
|
||||
For VMWare guests set <literal>virtualisation.vmware.guest.enable</literal> to <literal>true</literal> which will include the appropriate drivers.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The initrd SSH support now uses OpenSSH rather than Dropbear to
|
||||
|
@ -68,7 +68,8 @@ with lib;
|
||||
config = {
|
||||
|
||||
environment.systemPackages =
|
||||
optional (config.i18n.supportedLocales != []) config.i18n.glibcLocales;
|
||||
# We increase the priority a little, so that plain glibc in systemPackages can't win.
|
||||
optional (config.i18n.supportedLocales != []) (lib.setPrio (-1) config.i18n.glibcLocales);
|
||||
|
||||
environment.sessionVariables =
|
||||
{ LANG = config.i18n.defaultLocale;
|
||||
|
@ -218,6 +218,7 @@ in
|
||||
description = "Redis database user";
|
||||
isSystemUser = true;
|
||||
};
|
||||
users.groups.redis = {};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
@ -240,6 +241,7 @@ in
|
||||
StateDirectory = "redis";
|
||||
Type = "notify";
|
||||
User = "redis";
|
||||
Group = "redis";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -21,6 +21,7 @@ let
|
||||
# `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
|
||||
|
||||
exporterOpts = genAttrs [
|
||||
"apcupsd"
|
||||
"bind"
|
||||
"blackbox"
|
||||
"collectd"
|
||||
@ -28,6 +29,8 @@ let
|
||||
"dovecot"
|
||||
"fritzbox"
|
||||
"json"
|
||||
"keylight"
|
||||
"lnd"
|
||||
"mail"
|
||||
"mikrotik"
|
||||
"minio"
|
||||
|
@ -0,0 +1,38 @@
|
||||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.apcupsd;
|
||||
in
|
||||
{
|
||||
port = 9162;
|
||||
extraOpts = {
|
||||
apcupsdAddress = mkOption {
|
||||
type = types.str;
|
||||
default = ":3551";
|
||||
description = ''
|
||||
Address of the apcupsd Network Information Server (NIS).
|
||||
'';
|
||||
};
|
||||
|
||||
apcupsdNetwork = mkOption {
|
||||
type = types.enum ["tcp" "tcp4" "tcp6"];
|
||||
default = "tcp";
|
||||
description = ''
|
||||
Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-apcupsd-exporter}/bin/apcupsd_exporter \
|
||||
-telemetry.addr ${cfg.listenAddress}:${toString cfg.port} \
|
||||
-apcupsd.addr ${cfg.apcupsdAddress} \
|
||||
-apcupsd.network ${cfg.apcupsdNetwork} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.keylight;
|
||||
in
|
||||
{
|
||||
port = 9288;
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-keylight-exporter}/bin/keylight_exporter \
|
||||
-metrics.addr ${cfg.listenAddress}:${toString cfg.port} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.lnd;
|
||||
in
|
||||
{
|
||||
port = 9092;
|
||||
extraOpts = {
|
||||
lndHost = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost:10009";
|
||||
description = ''
|
||||
lnd instance gRPC address:port.
|
||||
'';
|
||||
};
|
||||
|
||||
lndTlsPath = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to lnd TLS certificate.
|
||||
'';
|
||||
};
|
||||
|
||||
lndMacaroonDir = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Path to lnd macaroons.
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts.serviceConfig = {
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-lnd-exporter}/bin/lndmon \
|
||||
--prometheus.listenaddr=${cfg.listenAddress}:${toString cfg.port} \
|
||||
--prometheus.logdir=/var/log/prometheus-lnd-exporter \
|
||||
--lnd.host=${cfg.lndHost} \
|
||||
--lnd.tlspath=${cfg.lndTlsPath} \
|
||||
--lnd.macaroondir=${cfg.lndMacaroonDir} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
LogsDirectory = "prometheus-lnd-exporter";
|
||||
ReadOnlyPaths = [ cfg.lndTlsPath cfg.lndMacaroonDir ];
|
||||
};
|
||||
}
|
@ -246,7 +246,7 @@ in
|
||||
videoDrivers = mkOption {
|
||||
type = types.listOf types.str;
|
||||
# !!! We'd like "nv" here, but it segfaults the X server.
|
||||
default = [ "radeon" "cirrus" "vesa" "vmware" "modesetting" ];
|
||||
default = [ "radeon" "cirrus" "vesa" "modesetting" ];
|
||||
example = [
|
||||
"ati_unfree" "amdgpu" "amdgpu-pro"
|
||||
"nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"
|
||||
|
@ -15,7 +15,6 @@ in
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
virtualisation.lxd = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
@ -25,12 +24,18 @@ in
|
||||
containers. Users in the "lxd" group can interact with
|
||||
the daemon (e.g. to start or stop containers) using the
|
||||
<command>lxc</command> command line tool, among others.
|
||||
|
||||
Most of the time, you'll also want to start lxcfs, so
|
||||
that containers can "see" the limits:
|
||||
<code>
|
||||
virtualisation.lxc.lxcfs.enable = true;
|
||||
</code>
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.lxd;
|
||||
default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
|
||||
defaultText = "pkgs.lxd";
|
||||
description = ''
|
||||
The LXD package to use.
|
||||
@ -65,6 +70,7 @@ in
|
||||
with nixos.
|
||||
'';
|
||||
};
|
||||
|
||||
recommendedSysctlSettings = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@ -83,7 +89,6 @@ in
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
security.apparmor = {
|
||||
@ -115,6 +120,12 @@ in
|
||||
LimitNOFILE = "1048576";
|
||||
LimitNPROC = "infinity";
|
||||
TasksMax = "infinity";
|
||||
|
||||
# By default, `lxd` loads configuration files from hard-coded
|
||||
# `/usr/share/lxc/config` - since this is a no-go for us, we have to
|
||||
# explicitly tell it where the actual configuration files are
|
||||
Environment = mkIf (config.virtualisation.lxc.lxcfs.enable)
|
||||
"LXD_LXC_TEMPLATE_CONFIG=${pkgs.lxcfs}/share/lxc/config";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -178,6 +178,8 @@ in
|
||||
limesurvey = handleTest ./limesurvey.nix {};
|
||||
login = handleTest ./login.nix {};
|
||||
loki = handleTest ./loki.nix {};
|
||||
lxd = handleTest ./lxd.nix {};
|
||||
lxd-nftables = handleTest ./lxd-nftables.nix {};
|
||||
#logstash = handleTest ./logstash.nix {};
|
||||
lorri = handleTest ./lorri/default.nix {};
|
||||
magnetico = handleTest ./magnetico.nix {};
|
||||
|
50
nixos/tests/lxd-nftables.nix
Normal file
50
nixos/tests/lxd-nftables.nix
Normal file
@ -0,0 +1,50 @@
|
||||
# This test makes sure that lxd stops implicitly depending on iptables when
|
||||
# user enabled nftables.
|
||||
#
|
||||
# It has been extracted from `lxd.nix` for clarity, and because switching from
|
||||
# iptables to nftables requires a full reboot, which is a bit hard inside NixOS
|
||||
# tests.
|
||||
|
||||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "lxd-nftables";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ patryk27 ];
|
||||
};
|
||||
|
||||
machine = { lib, ... }: {
|
||||
virtualisation = {
|
||||
lxd.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
firewall.enable = false;
|
||||
nftables.enable = true;
|
||||
nftables.ruleset = ''
|
||||
table inet filter {
|
||||
chain incoming {
|
||||
type filter hook input priority 0;
|
||||
policy accept;
|
||||
}
|
||||
|
||||
chain forward {
|
||||
type filter hook forward priority 0;
|
||||
policy accept;
|
||||
}
|
||||
|
||||
chain output {
|
||||
type filter hook output priority 0;
|
||||
policy accept;
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("network.target")
|
||||
|
||||
with subtest("When nftables are enabled, lxd doesn't depend on iptables anymore"):
|
||||
machine.succeed("lsmod | grep nf_tables")
|
||||
machine.fail("lsmod | grep ip_tables")
|
||||
'';
|
||||
})
|
135
nixos/tests/lxd.nix
Normal file
135
nixos/tests/lxd.nix
Normal file
@ -0,0 +1,135 @@
|
||||
import ./make-test-python.nix ({ pkgs, ...} :
|
||||
|
||||
let
|
||||
# Since we don't have access to the internet during the tests, we have to
|
||||
# pre-fetch lxd containers beforehand.
|
||||
#
|
||||
# I've chosen to import Alpine Linux, because its image is turbo-tiny and,
|
||||
# generally, sufficient for our tests.
|
||||
|
||||
alpine-meta = pkgs.fetchurl {
|
||||
url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/lxd.tar.xz";
|
||||
sha256 = "1hkvaj3rr333zmx1759njy435lps33gl4ks8zfm7m4nqvipm26a0";
|
||||
};
|
||||
|
||||
alpine-rootfs = pkgs.fetchurl {
|
||||
url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/rootfs.tar.xz";
|
||||
sha256 = "1v82zdra4j5xwsff09qlp7h5vbsg54s0j7rdg4rynichfid3r347";
|
||||
};
|
||||
|
||||
lxd-config = pkgs.writeText "config.yaml" ''
|
||||
storage_pools:
|
||||
- name: default
|
||||
driver: dir
|
||||
config:
|
||||
source: /var/lxd-pool
|
||||
|
||||
networks:
|
||||
- name: lxdbr0
|
||||
type: bridge
|
||||
config:
|
||||
ipv4.address: auto
|
||||
ipv6.address: none
|
||||
|
||||
profiles:
|
||||
- name: default
|
||||
devices:
|
||||
eth0:
|
||||
name: eth0
|
||||
network: lxdbr0
|
||||
type: nic
|
||||
root:
|
||||
path: /
|
||||
pool: default
|
||||
type: disk
|
||||
'';
|
||||
|
||||
in {
|
||||
name = "lxd";
|
||||
meta = with pkgs.stdenv.lib.maintainers; {
|
||||
maintainers = [ patryk27 ];
|
||||
};
|
||||
|
||||
machine = { lib, ... }: {
|
||||
virtualisation = {
|
||||
# Since we're testing `limits.cpu`, we've gotta have a known number of
|
||||
# cores to lay on
|
||||
cores = 2;
|
||||
|
||||
# Ditto, for `limits.memory`
|
||||
memorySize = 512;
|
||||
|
||||
lxc.lxcfs.enable = true;
|
||||
lxd.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("sockets.target")
|
||||
machine.wait_for_unit("lxd.service")
|
||||
|
||||
# It takes additional second for lxd to settle
|
||||
machine.sleep(1)
|
||||
|
||||
# lxd expects the pool's directory to already exist
|
||||
machine.succeed("mkdir /var/lxd-pool")
|
||||
|
||||
machine.succeed(
|
||||
"cat ${lxd-config} | lxd init --preseed"
|
||||
)
|
||||
|
||||
machine.succeed(
|
||||
"lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine"
|
||||
)
|
||||
|
||||
with subtest("Containers can be launched and destroyed"):
|
||||
machine.succeed("lxc launch alpine test")
|
||||
machine.succeed("lxc exec test true")
|
||||
machine.succeed("lxc delete -f test")
|
||||
|
||||
with subtest("Containers are being mounted with lxcfs inside"):
|
||||
machine.succeed("lxc launch alpine test")
|
||||
|
||||
## ---------- ##
|
||||
## limits.cpu ##
|
||||
|
||||
machine.succeed("lxc config set test limits.cpu 1")
|
||||
|
||||
# Since Alpine doesn't have `nproc` pre-installed, we've gotta resort
|
||||
# to the primal methods
|
||||
assert (
|
||||
"1"
|
||||
== machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
|
||||
)
|
||||
|
||||
machine.succeed("lxc config set test limits.cpu 2")
|
||||
|
||||
assert (
|
||||
"2"
|
||||
== machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
|
||||
)
|
||||
|
||||
## ------------- ##
|
||||
## limits.memory ##
|
||||
|
||||
machine.succeed("lxc config set test limits.memory 64MB")
|
||||
|
||||
assert (
|
||||
"MemTotal: 62500 kB"
|
||||
== machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
|
||||
)
|
||||
|
||||
machine.succeed("lxc config set test limits.memory 128MB")
|
||||
|
||||
assert (
|
||||
"MemTotal: 125000 kB"
|
||||
== machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
|
||||
)
|
||||
|
||||
machine.succeed("lxc delete -f test")
|
||||
|
||||
with subtest("Unless explicitly changed, lxd leans on iptables"):
|
||||
machine.succeed("lsmod | grep ip_tables")
|
||||
machine.fail("lsmod | grep nf_tables")
|
||||
'';
|
||||
})
|
@ -56,6 +56,21 @@ let
|
||||
*/
|
||||
|
||||
exporterTests = {
|
||||
apcupsd = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
};
|
||||
metricProvider = {
|
||||
services.apcupsd.enable = true;
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("apcupsd.service")
|
||||
wait_for_open_port(3551)
|
||||
wait_for_unit("prometheus-apcupsd-exporter.service")
|
||||
wait_for_open_port(9162)
|
||||
succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'")
|
||||
'';
|
||||
};
|
||||
|
||||
bind = {
|
||||
exporterConfig = {
|
||||
@ -202,6 +217,69 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
keylight = {
|
||||
# A hardware device is required to properly test this exporter, so just
|
||||
# perform a couple of basic sanity checks that the exporter is running
|
||||
# and requires a target, but cannot reach a specified target.
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-keylight-exporter.service")
|
||||
wait_for_open_port(9288)
|
||||
succeed(
|
||||
"curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'"
|
||||
)
|
||||
succeed(
|
||||
"curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'"
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
lnd = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
lndTlsPath = "/var/lib/lnd/tls.cert";
|
||||
lndMacaroonDir = "/var/lib/lnd";
|
||||
};
|
||||
metricProvider = {
|
||||
systemd.services.prometheus-lnd-exporter.serviceConfig.DynamicUser = false;
|
||||
services.bitcoind.enable = true;
|
||||
services.bitcoind.extraConfig = ''
|
||||
rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7
|
||||
bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
|
||||
bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
|
||||
'';
|
||||
systemd.services.lnd = {
|
||||
serviceConfig.ExecStart = ''
|
||||
${pkgs.lnd}/bin/lnd \
|
||||
--datadir=/var/lib/lnd \
|
||||
--tlscertpath=/var/lib/lnd/tls.cert \
|
||||
--tlskeypath=/var/lib/lnd/tls.key \
|
||||
--logdir=/var/log/lnd \
|
||||
--bitcoin.active \
|
||||
--bitcoin.mainnet \
|
||||
--bitcoin.node=bitcoind \
|
||||
--bitcoind.rpcuser=bitcoinrpc \
|
||||
--bitcoind.rpcpass=hunter2 \
|
||||
--bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \
|
||||
--bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \
|
||||
--readonlymacaroonpath=/var/lib/lnd/readonly.macaroon
|
||||
'';
|
||||
serviceConfig.StateDirectory = "lnd";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
};
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("lnd.service")
|
||||
wait_for_open_port(10009)
|
||||
wait_for_unit("prometheus-lnd-exporter.service")
|
||||
wait_for_open_port(9092)
|
||||
succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'")
|
||||
'';
|
||||
};
|
||||
|
||||
mail = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
|
@ -2,13 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "artyFX";
|
||||
version = "1.3";
|
||||
# Fix build with lv2 1.18: https://github.com/openAVproductions/openAV-ArtyFX/pull/41/commits/492587461b50d140455aa3c98d915eb8673bebf0
|
||||
version = "unstable-2020-04-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openAVproductions";
|
||||
repo = "openAV-ArtyFX";
|
||||
rev = "release-${version}";
|
||||
sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9";
|
||||
rev = "492587461b50d140455aa3c98d915eb8673bebf0";
|
||||
sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "carla";
|
||||
version = "2.1";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "falkTX";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc";
|
||||
sha256 = "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
|
||||
{ stdenv, fetchurl, fetchpatch, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
|
||||
, libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler
|
||||
}:
|
||||
|
||||
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build for lv2 1.18.0
|
||||
(fetchpatch {
|
||||
url = "http://cgit.drumgizmo.org/plugingizmo.git/patch/?id=be64ddf9da525cd5c6757464efc966052731ba71";
|
||||
sha256 = "17w8g78i5avssc7m8rpw64ka3rai8dff81wfzir9cpxp8s2h44qf";
|
||||
extraPrefix = "plugin/plugingizmo/";
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
configureFlags = [ "--enable-lv2" ];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -19,6 +19,12 @@ stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix build with lv2 1.18: https://sourceforge.net/p/eq10q/bugs/23/
|
||||
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
|
||||
-exec sed -i {} -e 's/const _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
|
||||
'';
|
||||
|
||||
installFlags = [ "DESTDIR=$(out)" ];
|
||||
|
||||
fixupPhase = ''
|
||||
|
@ -20,19 +20,19 @@ with stdenv.lib.strings;
|
||||
|
||||
let
|
||||
|
||||
version = "unstable-2020-03-20";
|
||||
version = "unstable-2020-06-08";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grame-cncm";
|
||||
repo = "faust";
|
||||
rev = "2782088d4485f1c572755f41e7a072b41cb7148a";
|
||||
sha256 = "1l7bi2mq10s5wm8g4cdipg8gndd478x897qv0h7nqi1s2q9nq99p";
|
||||
rev = "f0037e289987818b65d3f6fb1ad943aaad2a2b28";
|
||||
sha256 = "0h08902rgx7rhzpng4h1qw8i2nzv50f79vrlbzdk5d35wa4zibh4";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://faust.grame.fr/";
|
||||
downloadPage = "https://sourceforge.net/projects/faudiostream/files/";
|
||||
downloadPage = "https://github.com/grame-cncm/faust/";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ magnetophon pmahoney ];
|
||||
|
@ -12,7 +12,6 @@ faust.wrapWithBuildEnv {
|
||||
|
||||
scripts = [
|
||||
"faust2jack"
|
||||
"faust2jackinternal"
|
||||
"faust2jackconsole"
|
||||
];
|
||||
|
||||
|
@ -1,8 +1,38 @@
|
||||
{ stdenv, fetchurl, fetchpatch, faust, gettext, intltool, pkgconfig, python2
|
||||
, avahi, bluez, boost, eigen, fftw, glib, glib-networking
|
||||
, glibmm, gsettings-desktop-schemas, gtkmm2, libjack2
|
||||
, ladspaH, libav, libsndfile, lilv, lrdf, lv2, serd, sord, sratom
|
||||
, wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, avahi
|
||||
, bluez
|
||||
, boost
|
||||
, curl
|
||||
, eigen
|
||||
, fftw
|
||||
, gettext
|
||||
, glib
|
||||
, glib-networking
|
||||
, glibmm
|
||||
, gnome3
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, gtkmm3
|
||||
, hicolor-icon-theme
|
||||
, intltool
|
||||
, ladspaH
|
||||
, libav
|
||||
, libjack2
|
||||
, libsndfile
|
||||
, lilv
|
||||
, lrdf
|
||||
, lv2
|
||||
, pkgconfig
|
||||
, python2
|
||||
, sassc
|
||||
, serd
|
||||
, sord
|
||||
, sratom
|
||||
, wafHook
|
||||
, wrapGAppsHook
|
||||
, zita-convolver
|
||||
, zita-resampler
|
||||
, optimizationSupport ? false # Enable support for native CPU extensions
|
||||
}:
|
||||
|
||||
@ -12,43 +42,67 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "guitarix";
|
||||
version = "0.39.0";
|
||||
version = "0.40.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
|
||||
sha256 = "1nn80m1qagfhvv69za60f0w6ck87vmk77qmqarj7fbr8avwg63s9";
|
||||
sha256 = "0q9050499hcj19hvbxb069vxh5yclawjg04vryh46lxm4sfy9g57";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/guitarix-0.39.0-fix_faust_and_lv2_plugins.patch?id=8579b4dfe85e04303ad2d9771ed699f04ea7b7cf";
|
||||
stripLen = 1;
|
||||
sha256 = "0pgkhi4v4vrzjnig0ggmz207q4x5iyk2n6rjj8s5lv15fia7qzp4";
|
||||
})
|
||||
];
|
||||
# see: https://sourceforge.net/p/guitarix/bugs/105
|
||||
patches = [ ./fix-build.patch ];
|
||||
|
||||
nativeBuildInputs = [ faust gettext intltool wrapGAppsHook pkgconfig python2 wafHook ];
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
hicolor-icon-theme
|
||||
intltool
|
||||
pkgconfig
|
||||
python2
|
||||
wafHook
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
avahi bluez boost eigen fftw glib glibmm glib-networking.out
|
||||
gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav
|
||||
libsndfile lilv lrdf lv2 serd sord sratom zita-convolver
|
||||
zita-resampler curl
|
||||
avahi
|
||||
bluez
|
||||
boost
|
||||
curl
|
||||
eigen
|
||||
fftw
|
||||
glib
|
||||
glib-networking.out
|
||||
glibmm
|
||||
gnome3.adwaita-icon-theme
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
gtkmm3
|
||||
ladspaH
|
||||
libav
|
||||
libjack2
|
||||
libsndfile
|
||||
lilv
|
||||
lrdf
|
||||
lv2
|
||||
sassc
|
||||
serd
|
||||
sord
|
||||
sratom
|
||||
zita-convolver
|
||||
zita-resampler
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72
|
||||
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
|
||||
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
|
||||
'';
|
||||
|
||||
# this doesnt build, probably because we have the wrong faust version:
|
||||
# "--faust"
|
||||
# aproved versions are 2.20.2 and 2.15.11
|
||||
wafConfigureFlags = [
|
||||
"--no-faust"
|
||||
"--no-font-cache-update"
|
||||
"--shared-lib"
|
||||
"--no-desktop-update"
|
||||
"--enable-nls"
|
||||
"--install-roboto-font"
|
||||
"--includeresampler"
|
||||
"--convolver-ffmpeg"
|
||||
"--includeconvolver"
|
||||
] ++ optional optimizationSupport "--optimization";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
10
pkgs/applications/audio/guitarix/fix-build.patch
Normal file
10
pkgs/applications/audio/guitarix/fix-build.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/src/LV2/xputty/xfilepicker.cpp
|
||||
+++ b/src/LV2/xputty/xfilepicker.cpp
|
||||
@@ -191,6 +191,6 @@
|
||||
filepicker->selected_file = NULL;
|
||||
filepicker->path = NULL;
|
||||
filepicker->filter = NULL;
|
||||
- asprintf(&filepicker->path, path);
|
||||
+ asprintf(&filepicker->path, "%s", path);
|
||||
assert(filepicker->path != NULL);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "infamousPlugins";
|
||||
@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1r72agk5nxf5k0mghcc2j90z43j5d9i7rqjmf49jfyqnd443isip";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ssj71/infamousPlugins/commit/06dd967b4736ea886dc1dc07f882cb1563961582.patch";
|
||||
sha256 = "08xwh6px13y1gykaw103nhvjms7vgbgkcm0avh9f5d2d7aadq0l2";
|
||||
})
|
||||
];
|
||||
nativeBuildInputs = [ pkgconfig cmake ];
|
||||
buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ];
|
||||
|
||||
|
@ -15,6 +15,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
||||
postPatch = ''
|
||||
# Fix build with lv2 1.18: https://github.com/tomszilagyi/ir.lv2/pull/20
|
||||
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
|
||||
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
|
||||
'';
|
||||
|
||||
|
||||
postBuild = "make convert4chan";
|
||||
|
||||
installPhase = ''
|
||||
|
@ -1,29 +1,19 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, makeWrapper
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
|
||||
, libsndfile, jack2Full
|
||||
, libGLU, libGL, lv2, cairo
|
||||
, ladspaH, php }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lsp-plugins";
|
||||
version = "1.1.19";
|
||||
version = "1.1.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sadko4u";
|
||||
repo = pname;
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg";
|
||||
sha256 = "0s0i0kf5nqxxywckg03fds1w7696ly60rnlljzqvp7qfgzps1r6c";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build
|
||||
# https://github.com/sadko4u/lsp-plugins/issues/104
|
||||
(fetchpatch {
|
||||
url = "https://github.com/sadko4u/lsp-plugins/commit/4d901135fb82fa95e668b4d55d05e405f5e620d2.patch";
|
||||
excludes = [ "TODO.txt" ];
|
||||
sha256 = "1s028gqvahvwm1px4xxxawrw2zrwyszb1aq93f0kspf3g7lq27f1";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig php makeWrapper ];
|
||||
buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];
|
||||
|
||||
|
@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Lossless audio codec";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.lgpl2;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
@ -1,13 +1,12 @@
|
||||
{ stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
version = "3.2.6";
|
||||
|
||||
pname = "mp3blaster";
|
||||
version = "3.2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stragulus";
|
||||
repo = "mp3blaster";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
|
||||
};
|
||||
@ -17,14 +16,17 @@ stdenv.mkDerivation rec {
|
||||
libvorbis
|
||||
] ++ stdenv.lib.optional stdenv.isDarwin SDL;
|
||||
|
||||
buildFlags = [ "CXXFLAGS=-Wno-narrowing" ];
|
||||
NIX_CFLAGS_COMPILE = toString ([
|
||||
"-Wno-narrowing"
|
||||
] ++ stdenv.lib.optionals stdenv.cc.isClang [
|
||||
"-Wno-reserved-user-defined-literal"
|
||||
]);
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "An audio player for the text console";
|
||||
homepage = "http://www.mp3blaster.org/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ earldouglas ];
|
||||
platforms = platforms.all;
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
|
||||
--prefix PATH : "${cdparanoia}/bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
meta = with stdenv.lib; {
|
||||
description = "High quality CD audio ripper";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
||||
|
@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ];
|
||||
|
||||
postPatch = ''
|
||||
# Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72
|
||||
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
|
||||
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
make install
|
||||
cp -a ../presets/* "$out/lib/lv2"
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
|
||||
{ stdenv, fetchFromGitHub , alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
|
||||
, libjack2, libsndfile, libXdmcp, readline, lv2, libGLU, libGL, minixml, pkgconfig, zlib, xorg
|
||||
}:
|
||||
|
||||
@ -6,13 +6,15 @@ assert stdenv ? glibc;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yoshimi";
|
||||
version = "1.7.0.1";
|
||||
# Fix build with lv2 1.18: https://github.com/Yoshimi/yoshimi/pull/102/commits/86996cbb235f0fe138ae814a6758c2c8ba1c2a38
|
||||
version = "unstable-2020-05-10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2";
|
||||
sha256 = "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Yoshimi";
|
||||
repo = pname;
|
||||
rev = "86996cbb235f0fe138ae814a6758c2c8ba1c2a38";
|
||||
sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
|
||||
minixml zlib xorg.libpthreadstubs pcre
|
||||
|
@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://www.dash.org";
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
|
60
pkgs/applications/editors/setzer/default.nix
Normal file
60
pkgs/applications/editors/setzer/default.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, appstream
|
||||
, appstream-glib
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
, gtksourceview4
|
||||
, gspell
|
||||
, poppler_gi
|
||||
, webkitgtk
|
||||
, librsvg
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "setzer";
|
||||
version = "0.2.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cvfosammmm";
|
||||
repo = "Setzer";
|
||||
rev = "v${version}";
|
||||
sha256 = "1llxxjj038nd2p857bjdyyhzskn56826qi259v47vaqlv9hkifil";
|
||||
};
|
||||
|
||||
format = "other";
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
appstream # for appstreamcli
|
||||
appstream-glib
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gobject-introspection
|
||||
gtksourceview4
|
||||
gspell
|
||||
poppler_gi
|
||||
webkitgtk
|
||||
librsvg
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
pygobject3
|
||||
pyxdg
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "LaTeX editor written in Python with Gtk";
|
||||
homepage = src.meta.homepage;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
};
|
||||
}
|
@ -13,8 +13,8 @@ let
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "7.0.10-14";
|
||||
sha256 = "1qcsq5884iqis1adpfbx3cwki8v4q9wwh70fpcaqnwwmznmqfq4j";
|
||||
version = "7.0.10-17";
|
||||
sha256 = "15cj9qkikx13j6gfqaawi4nh09lnzg3asf5mdcswx6z6yhbf90zx";
|
||||
patches = [];
|
||||
};
|
||||
in
|
||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Utilities for archiving photos for saving to long term storage or serving over the web";
|
||||
homepage = "https://github.com/danielgtaylor/jpeg-archive";
|
||||
# license = ...; # mixed?
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.srghma ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
@ -9,14 +9,14 @@
|
||||
libarchive, libzip,
|
||||
|
||||
# Archive tools
|
||||
lrzip,
|
||||
p7zip, lrzip,
|
||||
|
||||
# Unfree tools
|
||||
unfreeEnableUnrar ? false, unrar,
|
||||
}:
|
||||
|
||||
let
|
||||
extraTools = [ lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
|
||||
extraTools = [ p7zip lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
|
||||
in
|
||||
|
||||
mkDerivation {
|
||||
|
@ -5,13 +5,13 @@ with python3.pkgs;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "gcalcli";
|
||||
version = "4.2.1";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "insanum";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1xwrgmy2azvr99b7df92m2imj0wy4fh53bn7lvcrnghjbnh7n0l0";
|
||||
sha256 = "0s5fhcmz3n0dwh3vkqr4aigi59q43v03ch5jhh6v75149icwr0df";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.isLinux ''
|
||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation {
|
||||
|
||||
patches = [ ./pointer_int_comparison.patch ];
|
||||
patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol
|
||||
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Open Street Map viewer";
|
||||
homepage = "https://sourceforge.net/projects/gosmore/";
|
||||
@ -33,5 +33,6 @@ stdenv.mkDerivation {
|
||||
raskin
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.bsd2;
|
||||
};
|
||||
}
|
||||
|
@ -16,10 +16,10 @@ let
|
||||
|
||||
pname = "simplenote";
|
||||
|
||||
version = "1.16.0";
|
||||
version = "1.17.0";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "01nk3dbyhs0p7f6b4bkrng95i29g0x7vxj0rx1qb7sm3n11yi091";
|
||||
x86_64-linux = "14kjx4y3kvw7h8wk8mmkpx1288jscmd8bgl10bw6kcfigcwahpw3";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -20,14 +20,14 @@
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
version = "0.10.9";
|
||||
version = "0.10.10";
|
||||
pname = "syncthingtray";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Martchus";
|
||||
repo = "syncthingtray";
|
||||
rev = "v${version}";
|
||||
sha256 = "19kni5v9g0p4751bw2xb8dawg5yjkyk39vdy0m93448lsl8cqq04";
|
||||
sha256 = "14nn0igcx4kd7pcna1ggz3yz9xfk1czgy87fxkmn2p91psmy2i18";
|
||||
};
|
||||
|
||||
buildInputs = [ qtbase cpp-utilities qtutilities ]
|
||||
|
@ -1,16 +1,30 @@
|
||||
{ pname, version, src, binaryName, desktopName
|
||||
, stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
|
||||
, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
|
||||
, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid
|
||||
, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
|
||||
, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }:
|
||||
, autoPatchelfHook, fetchurl, makeDesktopItem, stdenv, wrapGAppsHook
|
||||
, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
|
||||
, freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
|
||||
, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
|
||||
, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
|
||||
, mesa, nspr, nss, pango, systemd
|
||||
}:
|
||||
|
||||
let
|
||||
inherit binaryName;
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit pname version src;
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook ];
|
||||
nativeBuildInputs = [
|
||||
alsaLib
|
||||
autoPatchelfHook
|
||||
cups
|
||||
libdrm
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXtst
|
||||
libxcb
|
||||
mesa.drivers
|
||||
nss
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
|
@ -27,10 +27,10 @@ in {
|
||||
pname = "discord-canary";
|
||||
binaryName = "DiscordCanary";
|
||||
desktopName = "Discord Canary";
|
||||
version = "0.0.103";
|
||||
version = "0.0.104";
|
||||
src = fetchurl {
|
||||
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||
sha256 = "1d95q75ak4z6wkxlgcmkl7yk20gl7zf568b0xslz42hwx032fn4z";
|
||||
sha256 = "17np1hqqygjlbmlln0d1ba2qlbjykwj156w5dw7g4lg77kfxicfk";
|
||||
};
|
||||
};
|
||||
}.${branch}
|
||||
|
@ -23,7 +23,7 @@ let
|
||||
else "");
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "signal-desktop";
|
||||
version = "1.34.1"; # Please backport all updates to the stable channel.
|
||||
version = "1.34.2"; # Please backport all updates to the stable channel.
|
||||
# All releases have a limited lifetime and "expire" 90 days after the release.
|
||||
# When releases "expire" the application becomes unusable until an update is
|
||||
# applied. The expiration date for the current release can be extracted with:
|
||||
@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
sha256 = "0v9mqn43vn1w6wppzydkgpbx2752bp7mmpf50wqgvrmhchnywnkj";
|
||||
sha256 = "0l0i6v6n6iyq1zb2rlgfjnsk37kzjqgglk824vl5kp8qbq0li6b6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ipfs-cluster";
|
||||
version = "0.12.1";
|
||||
version = "0.13.0";
|
||||
rev = "v${version}";
|
||||
|
||||
vendorSha256 = "1n0zb3v83wsy8y3k7xbpjc2ykh1b2n6p10d5wkflhga49q7rf64h";
|
||||
vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ipfs";
|
||||
repo = "ipfs-cluster";
|
||||
inherit rev;
|
||||
sha256 = "1jh6ynj50jd4w79widaqrgm3h3yz5h03vq0lbsx717a8d9073blh";
|
||||
sha256 = "0jf3ngxqkgss5f1kifp5lp3kllb21jxc475ysl01ma8l3smqdvya";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -9,11 +9,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "msmtp";
|
||||
version = "1.8.10";
|
||||
version = "1.8.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
|
||||
sha256 = "041g921rdjiv8bapp61gp4rylq8cckfkcwzyh8bs7xwxs4wpzfna";
|
||||
sha256 = "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -37,10 +37,11 @@ stdenv.mkDerivation {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = "A GTK-based Usenet newsreader good at both text and binaries";
|
||||
homepage = "http://pan.rebelbase.com/";
|
||||
maintainers = [ stdenv.lib.maintainers.eelco ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = [ maintainers.eelco ];
|
||||
platforms = platforms.linux;
|
||||
license = with licenses; [ gpl2 fdl11 ];
|
||||
};
|
||||
}
|
||||
|
@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
|
||||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
|
||||
--prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
|
||||
--prefix PERL5LIB ":" "$PERL5LIB" \
|
||||
--set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
|
||||
--prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
|
||||
'';
|
||||
|
||||
|
24
pkgs/applications/radio/rtl-ais/default.nix
Normal file
24
pkgs/applications/radio/rtl-ais/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, libusb1, rtl-sdr }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "rtl-ais";
|
||||
version = "0.8.1";
|
||||
buildInputs = [ pkgconfig rtl-sdr libusb1 ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dgiardini";
|
||||
repo = "rtl-ais";
|
||||
rev = "0e85f4e5f9ce7378834c3129bc894580efc24291";
|
||||
sha256 = "0wm4zai1vs89mf0zgz52q5w5rj8f3i3v6zg42hfb7aqabi25r3jf";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A simple AIS tuner and generic dual-frequency FM demodulator";
|
||||
homepage = "https://github.com/dgiardini/rtl-ais";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ mgdm ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "abc-verifier";
|
||||
version = "2020.03.05";
|
||||
version = "2020.04.30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "berkeley-abc";
|
||||
repo = "abc";
|
||||
rev = "ed90ce20df9c7c4d6e1db5d3f786f9b52e06bab1";
|
||||
sha256 = "01sw67pkrb6wzflkxbkxzwsnli3nvp0yxwp3j1ngb3c0j86ri437";
|
||||
rev = "fd2c9b1c19216f6b756f88b18f5ca67b759ca128";
|
||||
sha256 = "1d18pkpsx0nlzl3a6lyfdnpk4kixjmgswy6cp5fbrkpp4rf1gahi";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "symbiyosys";
|
||||
version = "2020.03.24";
|
||||
version = "2020.05.18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YosysHQ";
|
||||
repo = "SymbiYosys";
|
||||
rev = "8a62780b9df4d2584e41cdd42cab92fddcd75b31";
|
||||
sha256 = "0ss5mrzwff2dny8kfciqbrz67m6k52yvc1shd7gk3qb99x7g7fp8";
|
||||
rev = "13fef4a710d0e2cf0f109ca75a94fb7253ba6838";
|
||||
sha256 = "152nyxddiqbxvbd06cmwavvgi931v6i35zj9sh3z04m737grvb3d";
|
||||
};
|
||||
|
||||
buildInputs = [ python3 ];
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fossil";
|
||||
version = "2.11";
|
||||
version = "2.11.1";
|
||||
|
||||
src = fetchurl {
|
||||
urls =
|
||||
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||
"https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
|
||||
];
|
||||
name = "${pname}-${version}.tar.gz";
|
||||
sha256 = "0c9nzx42wxfmym9vf1pnbdb1c7gp7a7zqky60izxsph7w2xh8nix";
|
||||
sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib openssl readline sqlite which ed ]
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "0.9.0";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "050wqjng0l42ilaiglwm1mzrrmnk0bg9icnzq9sm88axgl4xpmdy";
|
||||
sha256 = "0m4qgvhd4fzl83acfbpwff0sqshyfhqiy5q4i7ly8h6rdsjysdck";
|
||||
};
|
||||
|
||||
vendorSha256 = "0s99bjmsafnzhl3s2lcybxgsw1s4i1h3vh6p40gz4vsfhndidqrq";
|
||||
vendorSha256 = "0zkgdb69zm662p50sk1663lcbkw0vp8ip9blqfp6539mp9b87dn7";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"version": "13.0.4",
|
||||
"repo_hash": "15pfg3ss1diqsnlf0xpx4ixlpjnvzghzjfvs6y3bv21qnjfwkp0g",
|
||||
"version": "13.0.6",
|
||||
"repo_hash": "0iyzx5lnkwp6m8q5p60gzsjmpf6qflvzl0vzfw37hymnxwq646zy",
|
||||
"owner": "gitlab-org",
|
||||
"repo": "gitlab",
|
||||
"rev": "v13.0.4-ee",
|
||||
"rev": "v13.0.6-ee",
|
||||
"passthru": {
|
||||
"GITALY_SERVER_VERSION": "13.0.4",
|
||||
"GITALY_SERVER_VERSION": "13.0.6",
|
||||
"GITLAB_PAGES_VERSION": "1.18.0",
|
||||
"GITLAB_SHELL_VERSION": "13.2.0",
|
||||
"GITLAB_WORKHORSE_VERSION": "8.31.1"
|
||||
"GITLAB_WORKHORSE_VERSION": "8.31.2"
|
||||
}
|
||||
}
|
@ -19,14 +19,14 @@ let
|
||||
};
|
||||
};
|
||||
in buildGoPackage rec {
|
||||
version = "13.0.4";
|
||||
version = "13.0.6";
|
||||
pname = "gitaly";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitaly";
|
||||
rev = "v${version}";
|
||||
sha256 = "1hnjv2q98016srvjmyjpd5fkpg68mra6qk0asl1l83z2vin2xrkm";
|
||||
sha256 = "14vp73z9f0p3m1bjykkfzrmw9miyjxiqm79rns477xbm2dbmwa4s";
|
||||
};
|
||||
|
||||
# Fix a check which assumes that hook files are writeable by their
|
||||
|
@ -3,13 +3,13 @@
|
||||
buildGoPackage rec {
|
||||
pname = "gitlab-workhorse";
|
||||
|
||||
version = "8.31.1";
|
||||
version = "8.31.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gitlab-org";
|
||||
repo = "gitlab-workhorse";
|
||||
rev = "v${version}";
|
||||
sha256 = "1c2y1icil98qay9d95q1rlpi0ffhll990grkkib9srsn55b2i86v";
|
||||
sha256 = "0wvhhjfb490mjdrmc9xwr3qfh3941xn3b02c757ghrvzwv329wvg";
|
||||
};
|
||||
|
||||
goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";
|
||||
|
@ -32,10 +32,10 @@ let
|
||||
# All arguments besides the input and output binaries (${mpv}/bin/mpv and
|
||||
# $out/bin/mpv). These are used by the darwin specific makeWrapper call
|
||||
# used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well.
|
||||
mostMakeWrapperArgs = builtins.concatStringsSep " " ([ "--argv0" "'$0'"
|
||||
mostMakeWrapperArgs = lib.strings.escapeShellArgs ([ "--argv0" "'$0'"
|
||||
# These are always needed (TODO: Explain why)
|
||||
"--prefix" "LUA_CPATH" "\\;" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/\\?.so"
|
||||
"--prefix" "LUA_PATH" "\\;" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/\\?.lua"
|
||||
"--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so"
|
||||
"--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua"
|
||||
] ++ lib.optionals mpv.vapoursynthSupport [
|
||||
"--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/lib/${mpv.vapoursynth.python3.sitePackages}"
|
||||
] ++ lib.optionals (binPath != "") [
|
||||
@ -52,7 +52,7 @@ let
|
||||
) scripts
|
||||
)) ++ extraMakeWrapperArgs)
|
||||
;
|
||||
umpvWrapperArgs = builtins.concatStringsSep " " ([
|
||||
umpvWrapperArgs = lib.strings.escapeShellArgs ([
|
||||
"--argv0" "'$0'"
|
||||
"--set" "MPV" "$out/bin/mpv"
|
||||
] ++ extraUmpvWrapperArgs)
|
||||
|
@ -13,4 +13,6 @@ stdenv.mkDerivation rec {
|
||||
cp "${qemu}/bin/qemu-io" "$out/bin/qemu-io"
|
||||
cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
|
||||
'';
|
||||
|
||||
inherit (qemu) meta;
|
||||
}
|
||||
|
@ -27,10 +27,11 @@ stdenv.mkDerivation rec {
|
||||
cp build/xhyve $out/bin
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "Lightweight Virtualization on macOS Based on bhyve";
|
||||
homepage = "https://github.com/mist64/xhyve";
|
||||
maintainers = [ lib.maintainers.lnl7 ];
|
||||
platforms = lib.platforms.darwin;
|
||||
maintainers = [ maintainers.lnl7 ];
|
||||
license = licenses.bsd2;
|
||||
platforms = platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
|
||||
, libjpeg, libtiff, libungif, libpng, imlib, expat
|
||||
, freetype, fontconfig, pkgconfig, gdk-pixbuf
|
||||
, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib
|
||||
, mkfontdir, libX11, libXft, libXext, libXinerama
|
||||
, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
|
||||
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
|
||||
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [
|
||||
gettext libjpeg libtiff libungif libpng imlib expat
|
||||
freetype fontconfig gdk-pixbuf mkfontdir libX11
|
||||
freetype fontconfig gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11
|
||||
libXft libXext libXinerama libXrandr libICE libSM libXpm
|
||||
libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi
|
||||
libXdamage libXcomposite libXfixes
|
||||
|
@ -42,10 +42,11 @@ stdenv.mkDerivation rec {
|
||||
- Resize windows interactively with Alt+Button3 drag (right mouse button)
|
||||
- Raise windows with Alt+F1 (not high on usability I know, but I needed a
|
||||
keybinding in there somewhere)
|
||||
- Focus windows with the mouse pointer (X does this on its own)
|
||||
- Focus windows with the mouse pointer (X does this on its own)
|
||||
'';
|
||||
homepage = "http://incise.org/tinywm.html";
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = libX11.meta.platforms;
|
||||
license = licenses.publicDomain;
|
||||
};
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ runCommand
|
||||
|
||||
mkdir -p $out/share
|
||||
# Link icons and desktop files into place
|
||||
for dir in applications icons info man; do
|
||||
for dir in applications icons info man emacs; do
|
||||
ln -s $emacs/share/$dir $out/share/$dir
|
||||
done
|
||||
''
|
||||
|
@ -39,6 +39,7 @@
|
||||
, luajit
|
||||
, lz4
|
||||
, mesa
|
||||
, mint-x-icons
|
||||
, openjpeg
|
||||
, openssl
|
||||
, poppler
|
||||
@ -92,7 +93,7 @@ stdenv.mkDerivation rec {
|
||||
xorg.libXcursor
|
||||
xorg.xorgproto
|
||||
zlib
|
||||
# still missing parent icon themes: Mint-X, RAVE-X, Faenza
|
||||
# still missing parent icon themes: RAVE-X, Faenza
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -107,6 +108,7 @@ stdenv.mkDerivation rec {
|
||||
fribidi
|
||||
ghostscript
|
||||
harfbuzz
|
||||
hicolor-icon-theme # for the icon theme
|
||||
jbig2dec
|
||||
libdrm
|
||||
libinput
|
||||
@ -117,6 +119,7 @@ stdenv.mkDerivation rec {
|
||||
libwebp
|
||||
libxkbcommon
|
||||
luajit
|
||||
mint-x-icons # Mint-X is a parent icon theme of Enlightenment-X
|
||||
openjpeg
|
||||
poppler
|
||||
utillinux
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evolution-data-server";
|
||||
version = "3.36.2";
|
||||
version = "3.36.3";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0yz9fsnbnnlj2iidd81i9w7d0dhidrzqkixrnfjfdkhnxk7p9qlq";
|
||||
sha256 = "1cix02xl473m0l7h715s68cn7bi1p4y1jkrxswcq4a0g7lblhpqz";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -1,22 +1,36 @@
|
||||
{ stdenv, lib, fetchFromGitHub, fetchurl, jdk, ant
|
||||
, libusb-compat-0_1, libusb1, unzip, zlib, ncurses, readline
|
||||
, withGui ? false, gtk2 ? null, withTeensyduino ? false
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, jdk
|
||||
, ant
|
||||
, libusb-compat-0_1
|
||||
, libusb1
|
||||
, unzip
|
||||
, zlib
|
||||
, ncurses
|
||||
, readline
|
||||
, withGui ? false
|
||||
, gtk2 ? null
|
||||
, withTeensyduino ? false
|
||||
/* Packages needed for Teensyduino */
|
||||
, upx, fontconfig, xorg, gcc
|
||||
, atk, glib, pango, gdk-pixbuf, libpng12, expat, freetype
|
||||
, cairo, udev
|
||||
, upx
|
||||
, fontconfig
|
||||
, xorg
|
||||
, gcc
|
||||
, atk
|
||||
, glib
|
||||
, pango
|
||||
, gdk-pixbuf
|
||||
, libpng12
|
||||
, expat
|
||||
, freetype
|
||||
, cairo
|
||||
, udev
|
||||
}:
|
||||
|
||||
assert withGui -> gtk2 != null;
|
||||
assert withTeensyduino -> withGui;
|
||||
|
||||
# TODO: Teensyduino is disabled for i686-linux due to an indefinite hang in the
|
||||
# xdotool script; the cause of this hang is not yet known.
|
||||
# TODO: There is a fair chance that Teensyduino works with arm-linux, but it
|
||||
# has not yet been tested.
|
||||
if withTeensyduino && (stdenv.hostPlatform.system != "x86_64-linux") then throw
|
||||
"Teensyduino is only supported on x86_64-linux at this time (patches welcome)."
|
||||
else
|
||||
let
|
||||
externalDownloads = import ./downloads.nix {
|
||||
inherit fetchurl;
|
||||
@ -25,12 +39,13 @@ let
|
||||
};
|
||||
# Some .so-files are later copied from .jar-s to $HOME, so patch them beforehand
|
||||
patchelfInJars =
|
||||
lib.optional (stdenv.hostPlatform.system == "x86_64-linux") {jar = "share/arduino/lib/jssc-2.8.0-arduino3.jar"; file = "libs/linux/libjSSC-2.8_x86_64.so";}
|
||||
++ lib.optional (stdenv.hostPlatform.system == "i686-linux") {jar = "share/arduino/lib/jssc-2.8.0-arduino3.jar"; file = "libs/linux/libjSSC-2.8_x86.so";}
|
||||
lib.optional (stdenv.hostPlatform.system == "aarch64-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_aarch64.so"; }
|
||||
++ lib.optional (builtins.match "armv[67]l-linux" stdenv.hostPlatform.system != null) { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_armhf.so"; }
|
||||
++ lib.optional (stdenv.hostPlatform.system == "x86_64-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_x86_64.so"; }
|
||||
++ lib.optional (stdenv.hostPlatform.system == "i686-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_x86.so"; }
|
||||
;
|
||||
# abiVersion 6 is default, but we need 5 for `avrdude_bin` executable
|
||||
ncurses5 = ncurses.override { abiVersion = "5"; };
|
||||
|
||||
teensy_libpath = stdenv.lib.makeLibraryPath [
|
||||
atk
|
||||
cairo
|
||||
@ -54,49 +69,61 @@ let
|
||||
zlib
|
||||
];
|
||||
teensy_architecture =
|
||||
lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64"
|
||||
+ lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32"
|
||||
+ lib.optionalString (stdenv.hostPlatform.system == "arm-linux") "linuxarm";
|
||||
|
||||
flavor = (if withTeensyduino then "teensyduino" else "arduino")
|
||||
+ stdenv.lib.optionalString (!withGui) "-core";
|
||||
lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64"
|
||||
+ lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32"
|
||||
+ lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") "linuxaarch64"
|
||||
+ lib.optionalString (builtins.match "armv[67]l-linux" stdenv.hostPlatform.system != null) "linuxarm";
|
||||
flavor = ( if withTeensyduino then "teensyduino" else "arduino")
|
||||
+ stdenv.lib.optionalString (!withGui) "-core";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.8.9";
|
||||
version = "1.8.12";
|
||||
name = "${flavor}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "arduino";
|
||||
repo = "Arduino";
|
||||
rev = version;
|
||||
sha256 = "0kblq0bqap2zzkflrj6rmdi8dvqxa28fcwwrc3lfmbz2893ni3w4";
|
||||
sha256 = "0lxkyvsh55biz2q20ba4qabraind5cpxznl41zfq027vl22j6kd2";
|
||||
};
|
||||
|
||||
teensyduino_version = "147";
|
||||
teensyduino_version = "151";
|
||||
teensyduino_src = fetchurl {
|
||||
url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
|
||||
sha256 =
|
||||
lib.optionalString (teensy_architecture == "linux64")
|
||||
"09ysanip5d2f5axzd81z2l74ayng60zqhjxmxs7xa5098fff46il"
|
||||
"0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0"
|
||||
+ lib.optionalString (teensy_architecture == "linux32")
|
||||
"1zw3cfv2p62dwg8838vh0gd1934b18cyx7c13azvwmrpj601l0xx"
|
||||
"1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m"
|
||||
+ lib.optionalString (teensy_architecture == "linuxaarch64")
|
||||
"09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x"
|
||||
+ lib.optionalString (teensy_architecture == "linuxarm")
|
||||
"12421z26ksx84aldw1pq0cakh8jhs33mwafgvfij0zfgn9x0i877";
|
||||
};
|
||||
"19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
|
||||
};
|
||||
# Used because teensyduino requires jars be a specific size
|
||||
arduino_dist_src = fetchurl {
|
||||
url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
|
||||
sha256 =
|
||||
lib.optionalString (teensy_architecture == "linux64")
|
||||
"1lv4in9j0r8s0cis4zdvbk2637vlj12w69wdxgcxcrwvkcdahkpa"
|
||||
"128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9"
|
||||
+ lib.optionalString (teensy_architecture == "linux32")
|
||||
"0zla3a6gd9prclgrbbgsmhf8ds8zb221m65x21pvz0y1cwsdvjpm"
|
||||
"11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi"
|
||||
+ lib.optionalString (teensy_architecture == "linuxaarch64")
|
||||
"04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa"
|
||||
+ lib.optionalString (teensy_architecture == "linuxarm")
|
||||
"1w5m49wfd68zazli0lf3w4zykab8n7mzp3wnbjqfpx2vip80bqnz";
|
||||
"1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
|
||||
};
|
||||
|
||||
|
||||
buildInputs = [ jdk ant libusb-compat-0_1 libusb1 unzip zlib ncurses5 readline
|
||||
buildInputs = [
|
||||
jdk
|
||||
ant
|
||||
libusb-compat-0_1
|
||||
libusb1
|
||||
unzip
|
||||
zlib
|
||||
ncurses5
|
||||
readline
|
||||
] ++ stdenv.lib.optionals withTeensyduino [ upx ];
|
||||
downloadSrcList = builtins.attrValues externalDownloads;
|
||||
downloadDstList = builtins.attrNames externalDownloads;
|
||||
@ -116,7 +143,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# Deliberately break build.xml's download statement in order to cause
|
||||
# an error if anything needed is missing from download.nix.
|
||||
substituteInPlace build/build.xml --replace "get src" "get error"
|
||||
substituteInPlace build/build.xml \
|
||||
--replace 'ignoreerrors="true"' 'ignoreerrors="false"'
|
||||
|
||||
cd ./arduino-core && ant
|
||||
cd ../build && ant
|
||||
@ -125,11 +153,11 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# This will be patched into `arduino` wrapper script
|
||||
# Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH
|
||||
dynamicLibraryPath = lib.makeLibraryPath [gtk2];
|
||||
javaPath = lib.makeBinPath [jdk];
|
||||
dynamicLibraryPath = lib.makeLibraryPath [ gtk2 ];
|
||||
javaPath = lib.makeBinPath [ jdk ];
|
||||
|
||||
# Everything else will be patched into rpath
|
||||
rpath = (lib.makeLibraryPath [zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc]);
|
||||
rpath = (lib.makeLibraryPath [ zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc ]);
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/arduino
|
||||
@ -192,19 +220,19 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
|
||||
${lib.concatMapStringsSep "\n"
|
||||
({jar, file}:
|
||||
({ jar, file }:
|
||||
''
|
||||
jar xvf $out/${jar} ${file}
|
||||
patchelf --set-rpath $rpath ${file}
|
||||
jar uvf $out/${jar} ${file}
|
||||
rm -f ${file}
|
||||
jar xvf $out/${jar} ${file}
|
||||
patchelf --set-rpath $rpath ${file}
|
||||
jar uvf $out/${jar} ${file}
|
||||
rm -f ${file}
|
||||
''
|
||||
)
|
||||
patchelfInJars}
|
||||
patchelfInJars}
|
||||
|
||||
# avrdude_bin is linked against libtinfo.so.5
|
||||
mkdir $out/lib/
|
||||
ln -s ${lib.makeLibraryPath [ncurses5]}/libtinfo.so.5 $out/lib/libtinfo.so.5
|
||||
ln -s ${lib.makeLibraryPath [ ncurses5 ]}/libtinfo.so.5 $out/lib/libtinfo.so.5
|
||||
|
||||
${stdenv.lib.optionalString withTeensyduino ''
|
||||
# Patch the Teensy loader binary
|
||||
|
@ -1,4 +1,7 @@
|
||||
{fetchurl, optionalAttrs, system}:
|
||||
{ fetchurl
|
||||
, optionalAttrs
|
||||
, system
|
||||
}:
|
||||
# This file preloads all the archives which Arduino's build/build.xml
|
||||
# would otherwise try to download itself. When updating this for a new
|
||||
# version of Arduino, check build.xml for version numbers and new
|
||||
@ -56,9 +59,9 @@
|
||||
url = "https://github.com/arduino-libraries/RobotIRremote/archive/2.0.0.zip";
|
||||
sha256 = "0j5smap74j8p3wc6k0h73b1skj4gkr7r25jbjh1j1cg052dxri86";
|
||||
};
|
||||
"build/SpacebrewYun-1.0.1.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.1.zip";
|
||||
sha256 = "1zs6ymlzw66bglrm0x6d3cvr52q85c8rlm525x0wags111xx3s90";
|
||||
"build/SpacebrewYun-1.0.2.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.2.zip";
|
||||
sha256 = "1d8smmsx12qhf2ldvmi93h48cvdyz4id5gd68cvf076wfyv6dks8";
|
||||
};
|
||||
"build/Temboo-1.2.1.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/Temboo/archive/1.2.1.zip";
|
||||
@ -76,108 +79,135 @@
|
||||
url = "https://github.com/arduino-libraries/Keyboard/archive/1.0.2.zip";
|
||||
sha256 = "17yfj95r1i7fb87q4krmxmaq07b4x2xf8cjngrj5imj68wgjck53";
|
||||
};
|
||||
"build/SD-1.2.3.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/SD/archive/1.2.3.zip";
|
||||
sha256 = "0i5hb5hmrsrhfgxx8w7zzrfrkc751vs63vhxrj6qvwazhfcdpjw2";
|
||||
"build/SD-1.2.4.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/SD/archive/1.2.4.zip";
|
||||
sha256 = "123g9px9nqcrsx696wqwzjd5s4hr55nxgfz95b7ws3v007i1f3fz";
|
||||
};
|
||||
"build/Servo-1.1.3.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/Servo/archive/1.1.3.zip";
|
||||
sha256 = "1m019a75cdn1fg0cwlzbahmaqvg8sgzr6v1812rd7rjh8ismiah6";
|
||||
"build/Servo-1.1.6.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/Servo/archive/1.1.6.zip";
|
||||
sha256 = "1z9k9lxzj5d3f8h9hy86f4k5wgfr2a9zcvjh76qmpvv6clcv3js3";
|
||||
};
|
||||
"build/LiquidCrystal-1.0.7.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip";
|
||||
sha256 = "1wrxrqz3n4yrj9j1a2b7pdd7a1rlyi974ra7crv5amjng8817x9n";
|
||||
};
|
||||
"build/Adafruit_Circuit_Playground-1.8.1.zip" = fetchurl {
|
||||
url = "https://github.com/Adafruit/Adafruit_CircuitPlayground/archive/1.8.1.zip";
|
||||
sha256 = "1fl24px4c42f6shpb3livwsxgpj866yy285274qrj4m1zl07f18q";
|
||||
"build/Adafruit_Circuit_Playground-1.10.4.zip" = fetchurl {
|
||||
url = "https://github.com/adafruit/Adafruit_CircuitPlayground/archive/1.10.4.zip";
|
||||
sha256 = "194az5pxxzs0wg4ng7w0zqrdw93qdyv02y0q2yy57dr4kwfrm6nl";
|
||||
};
|
||||
"build/libastylej-2.05.1-4.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/libastylej-2.05.1-4.zip";
|
||||
sha256 = "0q307b85xba7izjh344kqby3qahg3f5zy18gg52sjk1lbkl9i39s";
|
||||
"build/libastylej-2.05.1-5.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/libastylej-2.05.1-5.zip";
|
||||
sha256 = "11mlprwvqfq3nvmz6hdf1fcg02a7xi2a9qhffa1d8a4w15s2iwny";
|
||||
};
|
||||
"build/liblistSerials-1.4.2.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip";
|
||||
sha256 = "1p58b421k92rbgwfgbihy0d04mby7kfssghpmjb4gk9yix09za3m";
|
||||
"build/liblistSerials-1.4.2-2.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2-2.zip";
|
||||
sha256 = "0sqzwp1lfjy452z3d4ma5c4blwsj7za72ymxf7crpq9dh9qd8f53";
|
||||
};
|
||||
"build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip";
|
||||
sha256 = "1k23xyr5dmr60y8hb9x24wrgd4mfgvrzky621p6fvawn5xbdq8a3";
|
||||
"build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip" = fetchurl {
|
||||
url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.10/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip";
|
||||
sha256 = "0bs5qdglsfc2q5c48m6wdjpzhz4ya4askh1g8364dp6p7jmg6w0d";
|
||||
};
|
||||
"build/avr-1.8.2.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2";
|
||||
sha256 = "06zl8fwphknd0qdx87fcr1003gid1yqsazaj674mm9widqfd84v2";
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (system == "x86_64-linux") {
|
||||
"build/arduino-builder-linux64-1.4.4.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.4.4.tar.bz2";
|
||||
sha256 = "1m5b4rc9i235ra6isqdpjj9llddb5sldkhidb8c4i14mcqbdci1n";
|
||||
"build/arduino-builder-linux64-1.5.2.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.2.tar.bz2";
|
||||
sha256 = "0wypr9a2cbv9r0ignsr13raw09i3vfc5zvkjxp2xwb7mv35y77z3";
|
||||
};
|
||||
"build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "11ciwv9sw900wxb2fwm4i4ml4a85ylng0f595v0mf0xifc6jnhh5";
|
||||
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "1yq6a811dabrkcgzfi3jsys41r19qsna46kglkjbcy0rza7yvzry";
|
||||
};
|
||||
"build/linux/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "1z4b6pvn1823h8mg0iph88igmcnrk2y7skr3z44dqlwk0pryi1kr";
|
||||
"build/linux/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "0gfic26af9vlcpkw8v914psn05vmq1rsrlk1fi7vzapj1a9gpkdc";
|
||||
};
|
||||
"build/linux/arduinoOTA-1.2.1-linux_amd64.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2";
|
||||
sha256 = "1ya834p2cqjj8k1ad3yxcnzd4bcgrlqsqsli9brq1138ac6k30jv";
|
||||
};
|
||||
"build/avr-1.6.23.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2";
|
||||
sha256 = "1al449r8hcdck7f4y295g7q388qvbn6qhk2zqdvws9kg4mzqsq8q";
|
||||
"build/linux/arduinoOTA-1.3.0-linux_amd64.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2";
|
||||
sha256 = "1ylz4pfa9np0nn0w9igmmm3sr8hz3na04n7cv8ia3hzz84jfwida";
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (system == "i686-linux") {
|
||||
"build/arduino-builder-linux32-1.4.4.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.4.4.tar.bz2";
|
||||
sha256 = "0q3i1ba7vh14616d9ligizcz89yadr0skazxbrcq3mvvjqzbifw8";
|
||||
"build/arduino-builder-linux32-1.5.2.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.5.2.tar.bz2";
|
||||
sha256 = "1slzw8fzxkqsp2izjisjd1rxxbqkrq6n72jc4frk5z2gdm6zfa0l";
|
||||
};
|
||||
"build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "13skspybzq80ndsi93s7v15900lf26n5243mbib77andyc27xy2i";
|
||||
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "078f3rbpdrghk63mbaq73bd5p6znimp14b1wdf6nh2gdswwjgw9g";
|
||||
};
|
||||
"build/linux/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "1jklpk1sgrmbh1r25ynps4qcs5dbg6hd54fzjx4hcdf68cw0w42g";
|
||||
"build/linux/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "0py0jvpim0frmv0dnvzfj122ni5hg1qwshgya4a0wc5rgp0wd32w";
|
||||
};
|
||||
"build/linux/arduinoOTA-1.2.1-linux_386.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2";
|
||||
sha256 = "1m56ps58h0fs8rr4ifc45slmrdvalc63vhldy85isv28g15zdz9g";
|
||||
"build/linux/arduinoOTA-1.3.0-linux_386.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2";
|
||||
sha256 = "1cl79019ldsq0sc3fd4pm0vx2kqcklld7w03hdcj99y7zgb5jzry";
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (system == "x86_64-darwin") {
|
||||
"build/arduino-builder-macosx-1.4.4.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.4.4.tar.bz2";
|
||||
sha256 = "1jp5kg32aiw062kcxlv660w38iaprifm8h3g2798izpwyfj0dmwg";
|
||||
"build/arduino-builder-macosx-1.5.2-signed.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.5.2-signed.tar.bz2";
|
||||
sha256 = "1pa795vwly1z9h1bp5qzbx2c2pq4n6p7ab5ivhmd3q89z0ywyqgz";
|
||||
};
|
||||
"build/macosx/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2";
|
||||
sha256 = "1y2972b08ac59xwjqkyjmi5lf2pmzw88a6sdgci3x9rvahvh3idb";
|
||||
"build/macosx/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14-signed.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14-signed.tar.bz2";
|
||||
sha256 = "0lcnp525glnc2chcynnz2nllm4q6ar4n9nrjqd1jbj4m706zbv67";
|
||||
};
|
||||
"build/macosx/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2";
|
||||
sha256 = "0qsa3sb3f480fm2z75fq14cqddw5hq8w8q0c2a9cw8i7aa8kkl27";
|
||||
"build/macosx/avrdude-6.3.0-arduino17-x86_64-apple-darwin12-signed.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12-signed.tar.bz2";
|
||||
sha256 = "1m24dci8mjf70yrf033mp1834pbp870m8sns2jxs3iy2i4qviiki";
|
||||
};
|
||||
"build/macosx/appbundler/appbundler-1.0ea-arduino4.jar.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/appbundler-1.0ea-arduino4.jar.zip";
|
||||
sha256 = "1vz0g98ancfqdf7yx5m3zrxmzb3fwp18zh5lkh2nyl5xlr9m368z";
|
||||
"build/linux/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2";
|
||||
sha256 = "12pwfnikq3z3ji5wgjhzx1mfyaha5cym7mr63r8kfl5a85fhk8nz";
|
||||
};
|
||||
"build/macosx/appbundler/appbundler-1.0ea-arduino5.jar.zip" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/appbundler-1.0ea-arduino5.jar.zip";
|
||||
sha256 = "1ims951z7ajprqms7yd8ll83c79n7krhd9ljw30yn61f6jk46x82";
|
||||
};
|
||||
}
|
||||
// optionalAttrs (system == "armv6l-linux") {
|
||||
"build/arduino-builder-linuxarm-1.4.4.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linuxarm-1.4.4.tar.bz2";
|
||||
sha256 = "03bhlhdkg1jx0d3lh9194xgaqsbank9njhlnwy8braa7pw4p58gn";
|
||||
|
||||
// optionalAttrs (system == "aarch64-linux") {
|
||||
"build/arduino-builder-linuxaarch64-1.5.2.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linuxaarch64-1.5.2.tar.bz2";
|
||||
sha256 = "14k7h7anjizbs2h04phw784slpfbi6hch9skvhy5ll805dmr24ci";
|
||||
};
|
||||
"build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "17z9li387mx2acgad733h7l1jnnwv09ynw4nrwlqfahqqdfgjhb7";
|
||||
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "040cspc41iv59fb2g9fzc6w5523dvqa1bavxni7s8w731ccp176x";
|
||||
};
|
||||
"build/linux/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "12amp8hqcj6gcdga7hfs22asgmgzafy8ny0rqhqs8n8d95sn586i";
|
||||
"build/linux/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "1z59dx2j2j4675awjzag9fswhvkn3hlz4ds5d2b7pzmca7vliybc";
|
||||
};
|
||||
"build/linux/arduinoOTA-1.2.1-linux_arm.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2";
|
||||
sha256 = "1q79w1d0h2lp3jcg58qrlh3k5lak7dbsnawrzm0jj8c6spfb6m5d";
|
||||
"build/linux/arduinoOTA-1.3.0-linux_aarch64.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_aarch64.tar.bz2";
|
||||
sha256 = "04s1is2w8xhvc7lg0lmyk0yjsnar2l2gdc6ig7lkgb7zgkrxhpl3";
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (builtins.match "armv[67]l-linux" system != null) {
|
||||
"build/arduino-builder-linuxarm-1.5.2.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduino-builder-linuxarm-1.5.2.tar.bz2";
|
||||
sha256 = "1vs2s5px07jb2sdv83qxkf9lxmsy8j4dm7bn3vpw5dcjqd3qdyww";
|
||||
};
|
||||
"build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-arm-linux-gnueabihf.tar.bz2";
|
||||
sha256 = "0fcn0s0fdgbz3yma2gjv16s1idrzn6nhmypdw8awg0kb3i9xbb7l";
|
||||
};
|
||||
"build/linux/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2";
|
||||
sha256 = "1lah9wvwvliajrrf5jw5blkjhk1sxivz26gj5s86zah3v32ni3ia";
|
||||
};
|
||||
"build/linux/arduinoOTA-1.3.0-linux_arm.tar.bz2" = fetchurl {
|
||||
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_arm.tar.bz2";
|
||||
sha256 = "0mm6spjlg0lhkfx5c9q27b6agjywnc1nf3mbl15yysmm15s5i20q";
|
||||
};
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
{stdenv, fetchurl, ant, jre, jdk}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "abcl";
|
||||
version = "1.6.1";
|
||||
version = "1.7.0";
|
||||
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
|
||||
src = fetchurl {
|
||||
url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
|
||||
sha256 = "04myiba6g0vij2ym2dmb0156k20ki2lz13dxwp2bk9kvjn2zg88b";
|
||||
sha256 = "0pbn5s22zygk6k0rzjc9g76220628lj1b3057gr0n4grl11p4lx5";
|
||||
};
|
||||
configurePhase = ''
|
||||
mkdir nix-tools
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "go-jsonnet";
|
||||
version = "0.15.0";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "go-jsonnet";
|
||||
rev = "v${version}";
|
||||
sha256 = "0l6cwky2xl7m8nnc9abp76bhkdcf2ldbbv3r8p30xv2yr5wd1j8i";
|
||||
sha256 = "17606gc75wnkm64am4hmlv7m3fy2hi8rnzadp6nrgpcd6rl26m83";
|
||||
};
|
||||
|
||||
vendorSha256 = "1vdv0nq31mjprxzxf8x0diaigissy07vnm338h8jrk5i74x5by39";
|
||||
vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
|
||||
|
||||
subPackages = [ "cmd/jsonnet" ];
|
||||
|
||||
|
@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
LD_LIBRARY_PATH = makeLibraryPath [
|
||||
arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
|
||||
openspecfun pcre2
|
||||
openspecfun pcre2 lapack
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ stdenv
|
||||
, abc-verifier
|
||||
, bash
|
||||
, bison
|
||||
, fetchFromGitHub
|
||||
, flex
|
||||
@ -15,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yosys";
|
||||
version = "2020.03.24";
|
||||
version = "2020.06.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YosysHQ";
|
||||
repo = "yosys";
|
||||
rev = "c9555c9adeba886a308c60615ac794ec20d9276e";
|
||||
sha256 = "1fh118fv06jyfmkx6zy0w2k0rjj22m0ffyll3k5giaw8zzaf0j3a";
|
||||
rev = "a1785e988b2b51dac32985dd6b0afdcedc6bda1d";
|
||||
sha256 = "0987f5vm2zb0i02c3vlw21gihky2cfj5l9b78ddzhxfiv0qfkdfp";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
@ -38,6 +39,8 @@ stdenv.mkDerivation rec {
|
||||
--replace 'LD = gcc' 'LD = $(CXX)' \
|
||||
--replace 'ABCMKARGS = CC="$(CXX)" CXX="$(CXX)"' 'ABCMKARGS =' \
|
||||
--replace 'echo UNKNOWN' 'echo ${builtins.substring 0 10 src.rev}'
|
||||
substituteInPlace ./misc/yosys-config.in \
|
||||
--replace '/bin/bash' '${bash}/bin/bash'
|
||||
patchShebangs tests
|
||||
'';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig, which
|
||||
, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile
|
||||
, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile, mpg123
|
||||
, CoreServices, AudioUnit, AudioToolbox
|
||||
, enableNativeMidi ? false, fluidsynth ? null }:
|
||||
|
||||
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ];
|
||||
|
||||
propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg2 flac libmodplug opusfile ];
|
||||
propagatedBuildInputs = [ SDL2 libogg libvorbis fluidsynth smpeg2 flac libmodplug opusfile mpg123 ];
|
||||
|
||||
configureFlags = [ "--disable-music-ogg-shared" ]
|
||||
++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl"
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, cmake, vtk_7, darwin }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.0.5";
|
||||
version = "3.0.6";
|
||||
pname = "gdcm";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2";
|
||||
sha256 = "16d3sf81n4qhwbbx1d80jg6fhrla5paan384c4bbbqvbhm222yby";
|
||||
sha256 = "048ycvhk143cvsf09r7vwmp4sm9ah9bh5pbbrl366m5a4sp7fr89";
|
||||
};
|
||||
|
||||
dontUseCmakeBuildDir = true;
|
||||
|
@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "Archive";
|
||||
repo = "gdk-pixbuf-xlib";
|
||||
rev = "dc22ea36f69755007c66877284596df270532cc1";
|
||||
sha256 = "XhBQ4wano+MtGaqF6JNKoWgYQN6eBW+b8ZCGEBGt8IM=";
|
||||
rev = "19482794a621d542b223219940e836257d4ae2c9";
|
||||
sha256 = "7Qv6tyjR0/iFXYHx5jPhvLLLt0Ms2nzpyWw02oXTkZc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -33,12 +33,9 @@ stdenv.mkDerivation rec {
|
||||
gtk-doc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
gdk-pixbuf
|
||||
libX11
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
|
@ -17,6 +17,7 @@
|
||||
, dbus
|
||||
, gdk-pixbuf
|
||||
, makeWrapper
|
||||
, which
|
||||
, xvfb_run
|
||||
, nixosTests
|
||||
}:
|
||||
@ -28,11 +29,11 @@ let
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "gjs";
|
||||
version = "1.64.2";
|
||||
version = "1.64.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0ywrsfmkxaw11z83dnmb9yqkn6k3c1mkxw2mv6arbwad6x6q7zqm";
|
||||
sha256 = "1rl524rmdbpmp5xdkm8dx3znq47l7dgvh192x80zjf8wc1af35lx";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "installedTests" ];
|
||||
@ -42,6 +43,7 @@ in stdenv.mkDerivation rec {
|
||||
ninja
|
||||
pkgconfig
|
||||
makeWrapper
|
||||
which # for locale detection
|
||||
libxml2 # for xml-stripblanks
|
||||
];
|
||||
|
||||
@ -74,11 +76,10 @@ in stdenv.mkDerivation rec {
|
||||
./installed-tests-path.patch
|
||||
];
|
||||
|
||||
# Gio test is failing
|
||||
# https://github.com/NixOS/nixpkgs/pull/81626#issuecomment-599325843
|
||||
doCheck = false;
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build/choose-tests-locale.sh
|
||||
substituteInPlace installed-tests/debugger-test.sh --subst-var-by gjsConsole $out/bin/gjs-console
|
||||
'';
|
||||
|
||||
@ -95,7 +96,15 @@ in stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# TODO: make the glib setup hook handle this
|
||||
installedTestsSchemaDatadir="$installedTests/share/gsettings-schemas/${pname}-${version}"
|
||||
mkdir -p "$installedTestsSchemaDatadir"
|
||||
mv "$installedTests/share/glib-2.0" "$installedTestsSchemaDatadir"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram "$installedTests/libexec/gjs/installed-tests/minijasmine" \
|
||||
--prefix XDG_DATA_DIRS : "$installedTestsSchemaDatadir" \
|
||||
--prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" testDeps}"
|
||||
'';
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git a/installed-tests/meson.build b/installed-tests/meson.build
|
||||
index 294d20c6..1e5029e0 100644
|
||||
index 7e842025..1e5029e0 100644
|
||||
--- a/installed-tests/meson.build
|
||||
+++ b/installed-tests/meson.build
|
||||
@@ -1,7 +1,7 @@
|
||||
@ -12,6 +12,19 @@ index 294d20c6..1e5029e0 100644
|
||||
|
||||
# Simple shell script tests #
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 084d5396..e5d73fcd 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -540,7 +540,7 @@ install_data('installed-tests/extra/lsan.supp',
|
||||
install_dir: get_option('datadir') / api_name / 'lsan')
|
||||
|
||||
if get_option('installed_tests')
|
||||
- schemadir = abs_datadir / 'glib-2.0' / 'schemas'
|
||||
+ schemadir = get_option('installed_test_prefix') / 'share' / 'glib-2.0' / 'schemas'
|
||||
install_data('installed-tests/js/org.gnome.GjsTest.gschema.xml', install_dir: schemadir)
|
||||
meson.add_install_script('build/compile-gschemas.py', schemadir)
|
||||
endif
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 66f66024..008687cb 100644
|
||||
--- a/meson_options.txt
|
||||
|
28
pkgs/development/libraries/libmilter/darwin.patch
Normal file
28
pkgs/development/libraries/libmilter/darwin.patch
Normal file
@ -0,0 +1,28 @@
|
||||
Fix build issues on Darwin.
|
||||
|
||||
--- a/devtools/OS/Darwin 2014-03-05 01:59:45.000000000 +0100
|
||||
+++ b/devtools/OS/Darwin 2020-05-18 14:47:57.000000000 +0200
|
||||
@@ -8,6 +8,8 @@
|
||||
# We look a lot more like 4.4BSD than NeXTStep or OpenStep.
|
||||
#
|
||||
define(`confCC', `cc -traditional-cpp -pipe ${Extra_CC_Flags}')
|
||||
+define(`confCCOPTS_SO', `-fPIC')
|
||||
+define(`confSOEXT', `dylib')
|
||||
define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX -DNETINFO -DAUTO_NETINFO_ALIASES -DAUTO_NETINFO_HOSTS')
|
||||
define(`confENVDEF', `-DDARWIN')
|
||||
define(`confLDOPTS', `${Extra_LD_Flags}')
|
||||
--- a/sendmail/sendmail.h 2020-05-18 14:51:17.000000000 +0200
|
||||
+++ b/sendmail/sendmail.h 2020-05-18 14:51:00.000000000 +0200
|
||||
@@ -104,7 +104,11 @@
|
||||
# endif /* NETX25 */
|
||||
|
||||
# if NAMED_BIND
|
||||
-# include <arpa/nameser.h>
|
||||
+# ifdef __APPLE__
|
||||
+# include <arpa/nameser_compat.h>
|
||||
+# else
|
||||
+# include <arpa/nameser.h>
|
||||
+# endif
|
||||
# ifdef NOERROR
|
||||
# undef NOERROR /* avoid <sys/streams.h> conflict */
|
||||
# endif /* NOERROR */
|
@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
|
||||
define(\`confLIBGRP', \`root')
|
||||
APPENDDEF(\`confENVDEF', \`-DNETINET6')
|
||||
EOF
|
||||
export MILTER_SOVER=1
|
||||
sh Build -f ./a.m4
|
||||
'';
|
||||
|
||||
patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ];
|
||||
patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ./darwin.patch ];
|
||||
|
||||
nativeBuildInputs = [ m4 ];
|
||||
|
||||
|
@ -16,28 +16,29 @@ diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3
|
||||
+#
|
||||
+divert(0)dnl
|
||||
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
|
||||
+define(`confSOEXT', ifdef(`confSOEXT', `confSOEXT', `so'))dnl
|
||||
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
|
||||
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl
|
||||
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.'confSOEXT bldCURRENT_PRODUCT`.a')dnl
|
||||
+bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
|
||||
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
|
||||
+
|
||||
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
|
||||
+divert(bldTARGETS_SECTION)
|
||||
+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
|
||||
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
|
||||
+bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
|
||||
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.confSOEXT ifdef(`confSONAME',`-Wl,confSONAME,bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}') ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
|
||||
+bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
|
||||
+ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
|
||||
+ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
|
||||
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
|
||||
+
|
||||
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a
|
||||
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a
|
||||
+ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ')
|
||||
+ ${INSTALL} -c bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}"
|
||||
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so"
|
||||
+ ${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
|
||||
+ ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}"
|
||||
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT"
|
||||
+ ${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
|
||||
+
|
||||
+bldCURRENT_PRODUCT-clean:
|
||||
+ rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES}
|
||||
+ rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES}
|
||||
+
|
||||
+divert(0)
|
||||
+COPTS+= confCCOPTS_SO
|
||||
|
@ -23,11 +23,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libosinfo";
|
||||
version = "1.7.1";
|
||||
version = "1.8.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv";
|
||||
sha256 = "1988l5rykpzvml1l7bi2hcax0gdc811vja0f92cnr7r01nz35zs9";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
@ -66,6 +66,7 @@ in stdenv.mkDerivation rec {
|
||||
"USE_SYSTEM_ZLIB=1"
|
||||
"NSS_USE_SYSTEM_SQLITE=1"
|
||||
"NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
|
||||
] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
|
||||
# Pass in CPU even if we're not cross compiling, because otherwise it tries to guess with
|
||||
# uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
|
||||
"OS_TEST=${cpu}"
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ stdenv
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, meson
|
||||
, ninja
|
||||
, pkgconfig
|
||||
@ -44,6 +45,13 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3";
|
||||
};
|
||||
|
||||
patches = [ (fetchpatch {
|
||||
# Brought by https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/263,
|
||||
# should be part of > 0.3.6
|
||||
url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d1162f28efd502fcb973e172867970f5cc8d7a6b.patch";
|
||||
sha256 = "0ng34yin5726cvv0nll1b2xigyq6mj6j516l3xi0ys1i2g2fyby9";
|
||||
})];
|
||||
|
||||
nativeBuildInputs = [
|
||||
doxygen
|
||||
graphviz
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "protozero";
|
||||
version = "1.6.8";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mapbox";
|
||||
repo = "protozero";
|
||||
rev = "v${version}";
|
||||
sha256 = "1hfijpfylf1c71wa3mk70gjc88b6k1q7cxb87cwqdflw5q2x8ma6";
|
||||
sha256 = "0fdihfl5j68wayjjxvpvhvnjq1anzcfnfl09f68wpzbkg3zmhblz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qtutilities";
|
||||
version = "6.0.5";
|
||||
version = "6.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Martchus";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1f2nir1qb0d6r1ndpsg7vpskdw08szq82mqvbwm5bi160xkrqhjf";
|
||||
sha256 = "0g3f18530w5f8dlzrh45k868hspga5p3m8qpz7pcg3nsdjda8cwz";
|
||||
};
|
||||
|
||||
buildInputs = [ qtbase cpp-utilities ];
|
||||
|
@ -66,6 +66,7 @@
|
||||
, "elm-oracle"
|
||||
, "emoj"
|
||||
, "emojione"
|
||||
, "escape-string-regexp"
|
||||
, "eslint"
|
||||
, "eslint_d"
|
||||
, {"fast-cli": "1.x"}
|
||||
@ -80,6 +81,7 @@
|
||||
, "gtop"
|
||||
, "gulp"
|
||||
, "gulp-cli"
|
||||
, "he"
|
||||
, "html-minifier"
|
||||
, "htmlhint"
|
||||
, "http-server"
|
||||
|
434
pkgs/development/node-packages/node-packages.nix
generated
434
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -7,6 +7,7 @@
|
||||
, gzip
|
||||
, bzip2
|
||||
, gnutar
|
||||
, p7zip
|
||||
, cabextract
|
||||
, lzma
|
||||
, nose
|
||||
@ -28,7 +29,7 @@ buildPythonPackage {
|
||||
sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar cabextract lzma pycrypto ]
|
||||
propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
|
||||
++ stdenv.lib.optional visualizationSupport pyqtgraph;
|
||||
|
||||
# setup.py only installs version.py during install, not test
|
||||
|
@ -11,22 +11,26 @@
|
||||
, tornado
|
||||
, aiohttp
|
||||
, uritemplate
|
||||
, pyjwt
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "gidgethub";
|
||||
version = "3.2.0";
|
||||
version = "4.1.1";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "8f4b69063a256994d38243cc0eba4e1453017b5b8b04a173216d02d47ffc3989";
|
||||
sha256 = "13nzc40c71kxvjxahgnc6c974xp5fpm02gqymwgfjbj2dmlzmayg";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools pytestrunner ];
|
||||
checkInputs = [ pytest pytest-asyncio twisted treq tornado aiohttp ];
|
||||
propagatedBuildInputs = [ uritemplate ];
|
||||
propagatedBuildInputs = [
|
||||
uritemplate
|
||||
pyjwt
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
|
@ -4,11 +4,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mautrix";
|
||||
version = "0.5.1";
|
||||
version = "0.5.4";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "a8dcf86c3562c1c6c25247b0a1a16f95d821bc8b3805141787c0b9ed8a2b4ca9";
|
||||
sha256 = "0csvk3y0y2r9gnfqj91fiqprgp8dxiv4n80b6myraab5s7zn1mvv";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -2,7 +2,7 @@
|
||||
, docutils
|
||||
, lockfile
|
||||
, mock
|
||||
, pytest
|
||||
, pytest_4
|
||||
, testscenarios
|
||||
, twine
|
||||
}:
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
nativeBuildInputs = [ twine ];
|
||||
propagatedBuildInputs = [ docutils lockfile ];
|
||||
|
||||
checkInputs = [ pytest mock testscenarios ];
|
||||
checkInputs = [ pytest_4 mock testscenarios ];
|
||||
checkPhase = ''
|
||||
pytest -k 'not detaches_process_context \
|
||||
and not standard_stream_file_descriptors'
|
||||
|
@ -10,7 +10,6 @@ buildGoModule rec {
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
goPackagePath = "github.com/zmb3/gogetdoc";
|
||||
excludedPackages = "\\(testdata\\)";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@ -21,8 +20,6 @@ buildGoModule rec {
|
||||
sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr";
|
||||
};
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Gets documentation for items in Go source code";
|
||||
homepage = "https://github.com/zmb3/gogetdoc";
|
||||
@ -30,4 +27,4 @@ buildGoModule rec {
|
||||
maintainers = with maintainers; [ kalbasit ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
13
pkgs/development/tools/gogetdoc/deps.nix
generated
13
pkgs/development/tools/gogetdoc/deps.nix
generated
@ -1,13 +0,0 @@
|
||||
# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
|
||||
[
|
||||
|
||||
{
|
||||
goPackagePath = "golang.org/x/tools";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/tools";
|
||||
rev = "6adeb8aab2de";
|
||||
sha256 = "0kylkki0ksdm12ppl37fghzbma9hmgqwph0nwngv08v4blk6li6k";
|
||||
};
|
||||
}
|
||||
]
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ktlint";
|
||||
version = "0.37.0";
|
||||
version = "0.37.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
|
||||
sha256 = "1z2hvhcrz1rj9g8749x640axrf529wk361pckwb4ihn43c19ajpf";
|
||||
sha256 = "0i5frcy3ya1qwq0hl67gq6fgz0c8vgskgha25irsw7j2ndf4qp8i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||
buildGoPackage rec {
|
||||
pname = "packer";
|
||||
version = "1.5.6";
|
||||
version = "1.6.0";
|
||||
|
||||
goPackagePath = "github.com/hashicorp/packer";
|
||||
|
||||
@ -11,14 +11,14 @@ buildGoPackage rec {
|
||||
owner = "hashicorp";
|
||||
repo = "packer";
|
||||
rev = "v${version}";
|
||||
sha256 = "0pwygrh6pjmx8a1jc12929x0slj7w3b8p3pzswnbk7klyhj4jkp8";
|
||||
sha256 = "0qddljg330i7059kvij84pjzz67g6qh1w2zcmsj6rv58ix8xsfx7";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
|
||||
homepage = "https://www.packer.io";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ cstrahan zimbatm ];
|
||||
maintainers = with maintainers; [ cstrahan zimbatm ma27 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ let
|
||||
|
||||
in buildPythonApplication rec {
|
||||
pname = "pipenv";
|
||||
version = "2020.5.28";
|
||||
version = "2020.6.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "072lc4nywcf9q9irvanwcz7w0sd9dcyannz208jm6glyj8a271l1";
|
||||
sha256 = "12s7c3f3k5v1szdhklsxwisf9v3dk4mb9fh7762afpgs8mrrmm3x";
|
||||
};
|
||||
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
|
@ -1,17 +1,26 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "yq-go";
|
||||
version = "3.3.0";
|
||||
version = "3.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mikefarah";
|
||||
rev = version;
|
||||
repo = "yq";
|
||||
sha256 = "1jll5nmskvs61031h3sizhv3scv8znrr9apyc4qlxcp4jiv7xpmp";
|
||||
sha256 = "0fr6zwnij3r53dqdw43qfmp4nw26gv6zmj066l44fazka4fl25i6";
|
||||
};
|
||||
|
||||
vendorSha256 = "0rlvbyhl53x1bhwr7f7zs4swa580saak19z3d3g58srq3jyw6zlc";
|
||||
vendorSha256 = "1bjy3qr26zndr3dhh9gd33rhm5gy779525qgzjw4a4mla0p2q6kl";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
for shell in bash fish zsh; do
|
||||
$out/bin/yq shell-completion --variation $shell > yq.$shell
|
||||
installShellCompletion yq.$shell
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Portable command-line YAML processor";
|
||||
@ -19,4 +28,4 @@ buildGoModule rec {
|
||||
license = [ licenses.mit ];
|
||||
maintainers = [ maintainers.lewo ];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -3,52 +3,34 @@
|
||||
, fetchFromGitHub
|
||||
, rust
|
||||
, rustPlatform
|
||||
, python27
|
||||
, installShellFiles
|
||||
, Security
|
||||
, CoreServices
|
||||
}:
|
||||
let
|
||||
pname = "deno";
|
||||
version = "1.0.0";
|
||||
|
||||
denoSrc = fetchFromGitHub {
|
||||
owner = "denoland";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0k8mqy1hf9hkp60jhd0x4z814y36g51083b3r7prc69ih2523hd1";
|
||||
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
cargoSha256 = "1fjl07qqvl1f20qazcqxh32xmdfh80jni7i3jzvz6vgsfw1g5cmk";
|
||||
|
||||
rustyV8Lib = fetchlib "rusty_v8" "0.4.2" {
|
||||
x86_64-linux = "1ac6kv3kv087df6kdgfd7kbh24187cg9z7xhbz6rw6jjv4ci2zbi";
|
||||
aarch64-linux = "06iyjx4p4vp2i81wdy0vxai2k18pki972ff7k0scjqrgmnav1p8k";
|
||||
x86_64-darwin = "02hwbpsqdzb9mvfndgykvv44f1jig3w3a26l0h26hs5shsrp47jv";
|
||||
};
|
||||
|
||||
deps = import ./deps.nix { };
|
||||
arch = rust.toRustTarget stdenv.hostPlatform;
|
||||
fetchlib = name: version: sha256: fetchurl {
|
||||
url = "https://github.com/denoland/${name}/releases/download/v${version}/librusty_v8_release_${arch}.a";
|
||||
sha256 = sha256."${stdenv.hostPlatform.system}";
|
||||
rustyV8Lib = with deps.rustyV8Lib; fetchurl {
|
||||
url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
|
||||
sha256 = sha256s."${stdenv.hostPlatform.system}";
|
||||
meta = { inherit version; };
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
inherit pname version cargoSha256;
|
||||
pname = "deno";
|
||||
version = "1.0.5";
|
||||
|
||||
src = denoSrc;
|
||||
src = fetchFromGitHub {
|
||||
owner = "denoland";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1hlmgcppr01bddvp28js010hhlzyx2lm7g7lq9nrcjazfw7kd2pf";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
cargoSha256 = "1jqaryr7np6h65a1bqr952h0vllsvd6v6v6wvivc7933dcbhdal4";
|
||||
|
||||
nativeBuildInputs = [
|
||||
# chromium/V8 requires python 2.7, we're not building V8 from source
|
||||
# but as a result rusty_v8's download script also uses python 2.7
|
||||
# tracking issue: https://bugs.chromium.org/p/chromium/issues/detail?id=942720
|
||||
python27
|
||||
|
||||
# Install completions post-install
|
||||
installShellFiles
|
||||
];
|
||||
# Install completions post-install
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = with stdenv.lib; [ ]
|
||||
++ optionals stdenv.isDarwin [ Security CoreServices ];
|
||||
@ -56,16 +38,6 @@ rustPlatform.buildRustPackage rec {
|
||||
# The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
|
||||
# To avoid this we pre-download the file and place it in the locations it will require it in advance
|
||||
preBuild = ''
|
||||
# Check the rusty_v8 lib downloaded matches the Cargo.lock file
|
||||
rusty_v8_ver="$(grep 'name = "rusty_v8"' -A 1 Cargo.lock | grep "version =" | cut -d\" -f2)"
|
||||
if [ "${rustyV8Lib.meta.version}" != "$rusty_v8_ver" ]; then
|
||||
printf "%s\n" >&2 \
|
||||
"version mismatch between 'rusty_v8' in Cargo.lock and downloaded library:" \
|
||||
" wanted: ${rustyV8Lib.meta.version}" \
|
||||
" got: $rusty_v8_ver"
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
_rusty_v8_setup() {
|
||||
for v in "$@"; do
|
||||
dir="target/$v/gn_out/obj"
|
||||
@ -77,40 +49,9 @@ rustPlatform.buildRustPackage rec {
|
||||
_rusty_v8_setup "debug" "release" "${arch}/release"
|
||||
'';
|
||||
|
||||
# Set home to existing env var TMP dir so tests that write there work correctly
|
||||
preCheck = ''
|
||||
export HOME="$TMPDIR"
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
# Strace not allowed on hydra
|
||||
"--skip benchmark_test"
|
||||
|
||||
# Tests that try to write to `/build/source/target/debug`
|
||||
"--skip _017_import_redirect"
|
||||
"--skip https_import"
|
||||
"--skip js_unit_tests"
|
||||
"--skip lock_write_fetch"
|
||||
|
||||
# Cargo test runs a deno test on the std lib with sub-benchmarking-tests,
|
||||
# The sub-sub-tests that are failing:
|
||||
# forAwaitFetchDenolandX10, promiseAllFetchDenolandX10is
|
||||
# Trying to access https://deno.land/ on build's limited network access
|
||||
"--skip std_tests"
|
||||
|
||||
# Fails on aarch64 machines
|
||||
# tracking issue: https://github.com/denoland/deno/issues/5324
|
||||
"--skip run_v8_flags"
|
||||
|
||||
# Skip for multiple reasons:
|
||||
# downloads x86_64 binary on aarch64 machines
|
||||
# tracking issue: https://github.com/denoland/deno/pull/5402
|
||||
# downloads a binary that needs ELF patching & tries to run imediately
|
||||
# upgrade will likely never work with nix as it tries to replace itself
|
||||
# code: https://github.com/denoland/deno/blob/v1.0.0/cli/upgrade.rs#L211
|
||||
"--skip upgrade_in_tmpdir"
|
||||
"--skip upgrade_with_version_in_tmpdir"
|
||||
];
|
||||
# Tests have some inconsistencies between runs with output integration tests
|
||||
# Skipping until resolved
|
||||
doCheck = false;
|
||||
|
||||
# TODO: Move to enhanced installShellCompletion when merged: PR #83630
|
||||
postInstall = ''
|
||||
@ -120,8 +61,11 @@ rustPlatform.buildRustPackage rec {
|
||||
installShellCompletion deno.{bash,fish} --zsh _deno
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update/update.ts;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://deno.land/";
|
||||
changelog = "${src.meta.homepage}/releases/tag/v${version}";
|
||||
description = "A secure runtime for JavaScript and TypeScript";
|
||||
longDescription = ''
|
||||
Deno aims to be a productive and secure scripting environment for the modern programmer.
|
||||
|
12
pkgs/development/web/deno/deps.nix
generated
Normal file
12
pkgs/development/web/deno/deps.nix
generated
Normal file
@ -0,0 +1,12 @@
|
||||
# auto-generated file -- DO NOT EDIT!
|
||||
{}:
|
||||
rec {
|
||||
rustyV8Lib = {
|
||||
version = "0.5.0";
|
||||
sha256s = {
|
||||
x86_64-linux = "1jmrqf5ns2y51cxx9r88my15m6gc6wmg54xadi3kphq47n4hmdfw";
|
||||
aarch64-linux = "14v57pxpkz1fs483rbbc8k55rc4x41dqi0k12zdrjwa5ycdam3m5";
|
||||
x86_64-darwin = "0466px7k2zvbsswwcrr342i5ml669gf76xd8yzzypsmb7l71s6vr";
|
||||
};
|
||||
};
|
||||
}
|
52
pkgs/development/web/deno/update/common.ts
Normal file
52
pkgs/development/web/deno/update/common.ts
Normal file
@ -0,0 +1,52 @@
|
||||
interface GHRelease {
|
||||
tag_name: string;
|
||||
}
|
||||
|
||||
const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
|
||||
const run = async (command: string, args: string[]) => {
|
||||
const cmd = Deno.run(
|
||||
{ cmd: [command, ...args], stdout: "piped", stderr: "piped" },
|
||||
);
|
||||
if (!(await cmd.status()).success) {
|
||||
throw await cmd.stderrOutput().then((b) => decode(b));
|
||||
}
|
||||
return cmd.output().then((b) => decode(b).trimEnd());
|
||||
};
|
||||
|
||||
// Exports
|
||||
export const versionRegExp = /\d+\.\d+\.\d+/;
|
||||
export const sha256RegExp = /[a-z0-9]{52}/;
|
||||
|
||||
export async function commit(
|
||||
name: string,
|
||||
oldVer: string,
|
||||
newVer: string,
|
||||
files: string[],
|
||||
) {
|
||||
await run("git", ["add", ...files]);
|
||||
await run("git", ["commit", "-m", `${name}: ${oldVer} -> ${newVer}`]);
|
||||
}
|
||||
|
||||
export const getExistingVersion = async (filePath: string) =>
|
||||
read(filePath).then((s) =>
|
||||
s.match(genValueRegExp("version", versionRegExp))?.shift() || ""
|
||||
);
|
||||
|
||||
export const getLatestVersion = (owner: string, repo: string) =>
|
||||
fetch(`https://api.github.com/repos/${owner}/${repo}/releases`)
|
||||
.then((res) => res.json())
|
||||
.then((res: GHRelease[]) => res[0].tag_name);
|
||||
|
||||
// The (?<=) and (?=) allow replace to only change inside
|
||||
// Match the regex passed in or empty
|
||||
export const genValueRegExp = (key: string, regex: RegExp) =>
|
||||
new RegExp(`(?<=${key} = ")(${regex.source}|)(?=")`);
|
||||
|
||||
export const logger = (name: string) =>
|
||||
(...a: any) => console.log(`[${name}]`, ...a);
|
||||
|
||||
export const nixPrefetch = (args: string[]) => run("nix-prefetch", args);
|
||||
export const nixPrefetchURL = (args: string[]) => run("nix-prefetch-url", args);
|
||||
|
||||
export const read = Deno.readTextFile;
|
||||
export const write = Deno.writeTextFile;
|
79
pkgs/development/web/deno/update/deps.ts
Normal file
79
pkgs/development/web/deno/update/deps.ts
Normal file
@ -0,0 +1,79 @@
|
||||
import {
|
||||
getExistingVersion,
|
||||
genValueRegExp,
|
||||
logger,
|
||||
nixPrefetchURL,
|
||||
versionRegExp,
|
||||
write,
|
||||
} from "./common.ts";
|
||||
|
||||
const log = logger("deps");
|
||||
|
||||
export interface Architecture {
|
||||
nix: string;
|
||||
rust: string;
|
||||
}
|
||||
interface PrefetchResult {
|
||||
arch: Architecture;
|
||||
sha256: string;
|
||||
}
|
||||
|
||||
const getRustyV8Version = async (
|
||||
owner: string,
|
||||
repo: string,
|
||||
version: string,
|
||||
) =>
|
||||
fetch(
|
||||
`https://github.com/${owner}/${repo}/raw/${version}/core/Cargo.toml`,
|
||||
)
|
||||
.then((res) => res.text())
|
||||
.then((txt) =>
|
||||
txt.match(genValueRegExp("rusty_v8", versionRegExp))?.shift()
|
||||
);
|
||||
|
||||
const archShaTasks = (version: string, arches: Architecture[]) =>
|
||||
arches.map(async (arch: Architecture): Promise<PrefetchResult> => {
|
||||
log("Fetching:", arch.nix);
|
||||
const sha256 = await nixPrefetchURL(
|
||||
[`https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a`],
|
||||
);
|
||||
log("Done: ", arch.nix);
|
||||
return { arch, sha256 };
|
||||
});
|
||||
|
||||
const templateDeps = (version: string, deps: PrefetchResult[]) =>
|
||||
`# auto-generated file -- DO NOT EDIT!
|
||||
{}:
|
||||
rec {
|
||||
rustyV8Lib = {
|
||||
version = "${version}";
|
||||
sha256s = {
|
||||
${deps.map((d) => ` ${d.arch.nix} = "${d.sha256}";`).join("\n")}
|
||||
};
|
||||
};
|
||||
}
|
||||
`;
|
||||
|
||||
export async function updateDeps(
|
||||
filePath: string,
|
||||
owner: string,
|
||||
repo: string,
|
||||
denoVersion: string,
|
||||
arches: Architecture[],
|
||||
) {
|
||||
log("Starting deps update");
|
||||
// 0.0.0
|
||||
const version = await getRustyV8Version(owner, repo, denoVersion);
|
||||
if (typeof version !== "string") {
|
||||
throw "no rusty_v8 version";
|
||||
}
|
||||
log("rusty_v8 version:", version);
|
||||
const existingVersion = await getExistingVersion(filePath);
|
||||
if (version === existingVersion) {
|
||||
log("Version already matches latest, skipping...");
|
||||
return;
|
||||
}
|
||||
const archShaResults = await Promise.all(archShaTasks(version, arches));
|
||||
await write(filePath, templateDeps(version, archShaResults));
|
||||
log("Finished deps update");
|
||||
}
|
67
pkgs/development/web/deno/update/src.ts
Normal file
67
pkgs/development/web/deno/update/src.ts
Normal file
@ -0,0 +1,67 @@
|
||||
import {
|
||||
genValueRegExp,
|
||||
logger,
|
||||
nixPrefetch,
|
||||
read,
|
||||
sha256RegExp,
|
||||
versionRegExp,
|
||||
write,
|
||||
} from "./common.ts";
|
||||
|
||||
interface Replacer {
|
||||
regex: RegExp;
|
||||
value: string;
|
||||
}
|
||||
|
||||
const log = logger("src");
|
||||
|
||||
const prefetchSha256 = (nixpkgs: string, version: string) =>
|
||||
nixPrefetch(["-f", nixpkgs, "deno.src", "--rev", version]);
|
||||
const prefetchCargoSha256 = (nixpkgs: string) =>
|
||||
nixPrefetch(
|
||||
[`{ sha256 }: (import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { outputHash = sha256; })`],
|
||||
);
|
||||
|
||||
const replace = (str: string, replacers: Replacer[]) =>
|
||||
replacers.reduce(
|
||||
(str, r) => str.replace(r.regex, r.value),
|
||||
str,
|
||||
);
|
||||
|
||||
const updateNix = (filePath: string, replacers: Replacer[]) =>
|
||||
read(filePath).then((str) => write(filePath, replace(str, replacers)));
|
||||
|
||||
const genVerReplacer = (k: string, value: string): Replacer => (
|
||||
{ regex: genValueRegExp(k, versionRegExp), value }
|
||||
);
|
||||
const genShaReplacer = (k: string, value: string): Replacer => (
|
||||
{ regex: genValueRegExp(k, sha256RegExp), value }
|
||||
);
|
||||
|
||||
export async function updateSrc(
|
||||
filePath: string,
|
||||
nixpkgs: string,
|
||||
denoVersion: string,
|
||||
) {
|
||||
log("Starting src update");
|
||||
const trimVersion = denoVersion.substr(1);
|
||||
log("Fetching sha256 for:", trimVersion);
|
||||
const sha256 = await prefetchSha256(nixpkgs, denoVersion);
|
||||
log("sha256 to update:", sha256);
|
||||
await updateNix(
|
||||
filePath,
|
||||
[
|
||||
genVerReplacer("version", trimVersion),
|
||||
genShaReplacer("sha256", sha256),
|
||||
genShaReplacer("cargoSha256", ""), // Empty ready for prefetchCargoSha256
|
||||
],
|
||||
);
|
||||
log("Fetching cargoSha256 for:", sha256);
|
||||
const cargoSha256 = await prefetchCargoSha256(nixpkgs);
|
||||
log("cargoSha256 to update:", cargoSha256);
|
||||
await updateNix(
|
||||
filePath,
|
||||
[genShaReplacer("cargoSha256", cargoSha256)],
|
||||
);
|
||||
log("Finished src update");
|
||||
}
|
50
pkgs/development/web/deno/update/update.ts
Executable file
50
pkgs/development/web/deno/update/update.ts
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
/*
|
||||
#!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nix-prefetch nix-prefetch-url
|
||||
*/
|
||||
import {
|
||||
commit,
|
||||
getExistingVersion,
|
||||
getLatestVersion,
|
||||
logger,
|
||||
} from "./common.ts";
|
||||
import { Architecture, updateDeps } from "./deps.ts";
|
||||
import { updateSrc } from "./src.ts";
|
||||
|
||||
const log = logger("update");
|
||||
// TODO: Getting current file position to more-safely point to nixpkgs root
|
||||
const nixpkgs = Deno.cwd();
|
||||
// TODO: Read values from default.nix
|
||||
const owner = "denoland";
|
||||
const repo = "deno";
|
||||
const denoDir = `${nixpkgs}/pkgs/development/web/${repo}`;
|
||||
const src = `${denoDir}/default.nix`;
|
||||
const deps = `${denoDir}/deps.nix`;
|
||||
const architectures: Architecture[] = [
|
||||
{ nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
|
||||
{ nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
|
||||
{ nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
|
||||
];
|
||||
|
||||
log("Updating deno");
|
||||
|
||||
log("Getting latest deno version");
|
||||
const version = await getLatestVersion(owner, repo);
|
||||
const existingVersion = await getExistingVersion(src);
|
||||
const trimVersion = version.substr(1); // Strip v from v0.0.0
|
||||
log("Latest version: ", trimVersion);
|
||||
log("Extracted version:", existingVersion);
|
||||
if (trimVersion === existingVersion) {
|
||||
log("Version already matches latest, skipping...");
|
||||
Deno.exit(0);
|
||||
}
|
||||
|
||||
const tasks = [
|
||||
updateSrc(src, nixpkgs, version),
|
||||
updateDeps(deps, owner, repo, version, architectures),
|
||||
];
|
||||
await Promise.all(tasks);
|
||||
log("Updating deno complete");
|
||||
log("Commiting");
|
||||
await commit(repo, existingVersion, trimVersion, [src, deps]);
|
||||
log("Done");
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user