Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2020-06-12 08:57:26 +02:00
commit febc27b59a
146 changed files with 1775 additions and 851 deletions

View File

@ -276,6 +276,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
fullName = "European Union Public License 1.2"; fullName = "European Union Public License 1.2";
}; };
fdl11 = spdx {
spdxId = "GFDL-1.1-only";
fullName = "GNU Free Documentation License v1.1 only";
};
fdl12 = spdx { fdl12 = spdx {
spdxId = "GFDL-1.2-only"; spdxId = "GFDL-1.2-only";
fullName = "GNU Free Documentation License v1.2 only"; fullName = "GNU Free Documentation License v1.2 only";

View File

@ -5027,6 +5027,12 @@
githubId = 223323; githubId = 223323;
name = "Miguel de la Cruz"; name = "Miguel de la Cruz";
}; };
mgdm = {
email = "michael@mgdm.net";
github = "mgdm";
githubId = 71893;
name = "Michael Maclean";
};
mgregoire = { mgregoire = {
email = "gregoire@martinache.net"; email = "gregoire@martinache.net";
github = "M-Gregoire"; github = "M-Gregoire";

View File

@ -181,6 +181,12 @@ services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
<link linkend="opt-security.duosec.integrationKey">security.duosec.integrationKey</link>. <link linkend="opt-security.duosec.integrationKey">security.duosec.integrationKey</link>.
</para> </para>
</listitem> </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> <listitem>
<para> <para>
The initrd SSH support now uses OpenSSH rather than Dropbear to The initrd SSH support now uses OpenSSH rather than Dropbear to

View File

@ -68,7 +68,8 @@ with lib;
config = { config = {
environment.systemPackages = 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 = environment.sessionVariables =
{ LANG = config.i18n.defaultLocale; { LANG = config.i18n.defaultLocale;

View File

@ -218,6 +218,7 @@ in
description = "Redis database user"; description = "Redis database user";
isSystemUser = true; isSystemUser = true;
}; };
users.groups.redis = {};
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
@ -240,6 +241,7 @@ in
StateDirectory = "redis"; StateDirectory = "redis";
Type = "notify"; Type = "notify";
User = "redis"; User = "redis";
Group = "redis";
}; };
}; };
}; };

View File

@ -21,6 +21,7 @@ let
# `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart` # `serviceOpts.script` or `serviceOpts.serviceConfig.ExecStart`
exporterOpts = genAttrs [ exporterOpts = genAttrs [
"apcupsd"
"bind" "bind"
"blackbox" "blackbox"
"collectd" "collectd"
@ -28,6 +29,8 @@ let
"dovecot" "dovecot"
"fritzbox" "fritzbox"
"json" "json"
"keylight"
"lnd"
"mail" "mail"
"mikrotik" "mikrotik"
"minio" "minio"

View File

@ -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}
'';
};
};
}

View File

@ -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}
'';
};
};
}

View File

@ -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 ];
};
}

View File

@ -246,7 +246,7 @@ in
videoDrivers = mkOption { videoDrivers = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
# !!! We'd like "nv" here, but it segfaults the X server. # !!! We'd like "nv" here, but it segfaults the X server.
default = [ "radeon" "cirrus" "vesa" "vmware" "modesetting" ]; default = [ "radeon" "cirrus" "vesa" "modesetting" ];
example = [ example = [
"ati_unfree" "amdgpu" "amdgpu-pro" "ati_unfree" "amdgpu" "amdgpu-pro"
"nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304" "nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"

View File

@ -15,7 +15,6 @@ in
###### interface ###### interface
options = { options = {
virtualisation.lxd = { virtualisation.lxd = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
@ -25,12 +24,18 @@ in
containers. Users in the "lxd" group can interact with containers. Users in the "lxd" group can interact with
the daemon (e.g. to start or stop containers) using the the daemon (e.g. to start or stop containers) using the
<command>lxc</command> command line tool, among others. <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 { package = mkOption {
type = types.package; type = types.package;
default = pkgs.lxd; default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
defaultText = "pkgs.lxd"; defaultText = "pkgs.lxd";
description = '' description = ''
The LXD package to use. The LXD package to use.
@ -65,6 +70,7 @@ in
with nixos. with nixos.
''; '';
}; };
recommendedSysctlSettings = mkOption { recommendedSysctlSettings = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -83,7 +89,6 @@ in
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
security.apparmor = { security.apparmor = {
@ -115,6 +120,12 @@ in
LimitNOFILE = "1048576"; LimitNOFILE = "1048576";
LimitNPROC = "infinity"; LimitNPROC = "infinity";
TasksMax = "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";
}; };
}; };

View File

@ -178,6 +178,8 @@ in
limesurvey = handleTest ./limesurvey.nix {}; limesurvey = handleTest ./limesurvey.nix {};
login = handleTest ./login.nix {}; login = handleTest ./login.nix {};
loki = handleTest ./loki.nix {}; loki = handleTest ./loki.nix {};
lxd = handleTest ./lxd.nix {};
lxd-nftables = handleTest ./lxd-nftables.nix {};
#logstash = handleTest ./logstash.nix {}; #logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {}; lorri = handleTest ./lorri/default.nix {};
magnetico = handleTest ./magnetico.nix {}; magnetico = handleTest ./magnetico.nix {};

View 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
View 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")
'';
})

View File

@ -56,6 +56,21 @@ let
*/ */
exporterTests = { 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 = { bind = {
exporterConfig = { 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 = { mail = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View File

@ -2,13 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "artyFX"; 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 { src = fetchFromGitHub {
owner = "openAVproductions"; owner = "openAVproductions";
repo = "openAV-ArtyFX"; repo = "openAV-ArtyFX";
rev = "release-${version}"; rev = "492587461b50d140455aa3c98d915eb8673bebf0";
sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9"; sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "carla"; pname = "carla";
version = "2.1"; version = "2.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "falkTX"; owner = "falkTX";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "074y40yrgl3qrdr3a5vn0scsw0qv77r5p5m6gc89zhf20ic8ajzc"; sha256 = "0c3y4a6cgi4bv1mg57i3qn5ia6pqjqlaylvkapj6bmpsw71ig22g";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -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 , libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler
}: }:
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7"; 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" ]; configureFlags = [ "--enable-lv2" ];
buildInputs = [ buildInputs = [

View File

@ -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)" ]; installFlags = [ "DESTDIR=$(out)" ];
fixupPhase = '' fixupPhase = ''

View File

@ -20,19 +20,19 @@ with stdenv.lib.strings;
let let
version = "unstable-2020-03-20"; version = "unstable-2020-06-08";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "grame-cncm"; owner = "grame-cncm";
repo = "faust"; repo = "faust";
rev = "2782088d4485f1c572755f41e7a072b41cb7148a"; rev = "f0037e289987818b65d3f6fb1ad943aaad2a2b28";
sha256 = "1l7bi2mq10s5wm8g4cdipg8gndd478x897qv0h7nqi1s2q9nq99p"; sha256 = "0h08902rgx7rhzpng4h1qw8i2nzv50f79vrlbzdk5d35wa4zibh4";
fetchSubmodules = true; fetchSubmodules = true;
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://faust.grame.fr/"; homepage = "http://faust.grame.fr/";
downloadPage = "https://sourceforge.net/projects/faudiostream/files/"; downloadPage = "https://github.com/grame-cncm/faust/";
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ magnetophon pmahoney ]; maintainers = with maintainers; [ magnetophon pmahoney ];

View File

@ -12,7 +12,6 @@ faust.wrapWithBuildEnv {
scripts = [ scripts = [
"faust2jack" "faust2jack"
"faust2jackinternal"
"faust2jackconsole" "faust2jackconsole"
]; ];

View File

@ -1,8 +1,38 @@
{ stdenv, fetchurl, fetchpatch, faust, gettext, intltool, pkgconfig, python2 { stdenv
, avahi, bluez, boost, eigen, fftw, glib, glib-networking , fetchurl
, glibmm, gsettings-desktop-schemas, gtkmm2, libjack2 , avahi
, ladspaH, libav, libsndfile, lilv, lrdf, lv2, serd, sord, sratom , bluez
, wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook , 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 , optimizationSupport ? false # Enable support for native CPU extensions
}: }:
@ -12,43 +42,67 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "guitarix"; pname = "guitarix";
version = "0.39.0"; version = "0.40.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz"; url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
sha256 = "1nn80m1qagfhvv69za60f0w6ck87vmk77qmqarj7fbr8avwg63s9"; sha256 = "0q9050499hcj19hvbxb069vxh5yclawjg04vryh46lxm4sfy9g57";
}; };
patches = [ # see: https://sourceforge.net/p/guitarix/bugs/105
(fetchpatch { patches = [ ./fix-build.patch ];
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";
})
];
nativeBuildInputs = [ faust gettext intltool wrapGAppsHook pkgconfig python2 wafHook ]; nativeBuildInputs = [
gettext
hicolor-icon-theme
intltool
pkgconfig
python2
wafHook
wrapGAppsHook
];
buildInputs = [ buildInputs = [
avahi bluez boost eigen fftw glib glibmm glib-networking.out avahi
gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav bluez
libsndfile lilv lrdf lv2 serd sord sratom zita-convolver boost
zita-resampler curl 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 = '' # this doesnt build, probably because we have the wrong faust version:
# Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72 # "--faust"
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \ # aproved versions are 2.20.2 and 2.15.11
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
'';
wafConfigureFlags = [ wafConfigureFlags = [
"--no-faust"
"--no-font-cache-update"
"--shared-lib" "--shared-lib"
"--no-desktop-update" "--no-desktop-update"
"--enable-nls" "--enable-nls"
"--install-roboto-font" "--install-roboto-font"
"--includeresampler" "--includeresampler"
"--convolver-ffmpeg" "--includeconvolver"
] ++ optional optimizationSupport "--optimization"; ] ++ optional optimizationSupport "--optimization";
meta = with stdenv.lib; { meta = with stdenv.lib; {

View 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);
}

View File

@ -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 { stdenv.mkDerivation rec {
pname = "infamousPlugins"; pname = "infamousPlugins";
@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
sha256 = "1r72agk5nxf5k0mghcc2j90z43j5d9i7rqjmf49jfyqnd443isip"; sha256 = "1r72agk5nxf5k0mghcc2j90z43j5d9i7rqjmf49jfyqnd443isip";
}; };
patches = [
(fetchpatch {
url = "https://github.com/ssj71/infamousPlugins/commit/06dd967b4736ea886dc1dc07f882cb1563961582.patch";
sha256 = "08xwh6px13y1gykaw103nhvjms7vgbgkcm0avh9f5d2d7aadq0l2";
})
];
nativeBuildInputs = [ pkgconfig cmake ]; nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ]; buildInputs = [ cairomm lv2 libpthreadstubs libXdmcp libXft ntk pcre fftwFloat zita-resampler ];

View File

@ -15,6 +15,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; 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"; postBuild = "make convert4chan";
installPhase = '' installPhase = ''

View File

@ -1,29 +1,19 @@
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, makeWrapper { stdenv, fetchFromGitHub, pkgconfig, makeWrapper
, libsndfile, jack2Full , libsndfile, jack2Full
, libGLU, libGL, lv2, cairo , libGLU, libGL, lv2, cairo
, ladspaH, php }: , ladspaH, php }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lsp-plugins"; pname = "lsp-plugins";
version = "1.1.19"; version = "1.1.22";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sadko4u"; owner = "sadko4u";
repo = pname; repo = pname;
rev = "${pname}-${version}"; 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 ]; nativeBuildInputs = [ pkgconfig php makeWrapper ];
buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ]; buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];

View File

@ -12,7 +12,9 @@ stdenv.mkDerivation rec {
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Lossless audio codec";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.lgpl2;
maintainers = [ ]; maintainers = [ ];
}; };
} }

View File

@ -1,13 +1,12 @@
{ stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }: { stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.2.6";
pname = "mp3blaster"; pname = "mp3blaster";
version = "3.2.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stragulus"; owner = "stragulus";
repo = "mp3blaster"; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs"; sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
}; };
@ -17,14 +16,17 @@ stdenv.mkDerivation rec {
libvorbis libvorbis
] ++ stdenv.lib.optional stdenv.isDarwin SDL; ] ++ 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; { meta = with stdenv.lib; {
description = "An audio player for the text console"; description = "An audio player for the text console";
homepage = "http://www.mp3blaster.org/"; homepage = "http://www.mp3blaster.org/";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ earldouglas ]; maintainers = with maintainers; [ earldouglas ];
platforms = platforms.all; platforms = with platforms; linux ++ darwin;
}; };
} }

View File

@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
--prefix PATH : "${cdparanoia}/bin" --prefix PATH : "${cdparanoia}/bin"
''; '';
meta = { meta = with stdenv.lib; {
platforms = stdenv.lib.platforms.linux; description = "High quality CD audio ripper";
platforms = platforms.linux;
license = licenses.gpl3;
}; };
} }

View File

@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ]; 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 = '' installPhase = ''
make install make install
cp -a ../presets/* "$out/lib/lv2" cp -a ../presets/* "$out/lib/lv2"

View File

@ -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 , libjack2, libsndfile, libXdmcp, readline, lv2, libGLU, libGL, minixml, pkgconfig, zlib, xorg
}: }:
@ -6,13 +6,15 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "yoshimi"; 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 { src = fetchFromGitHub {
url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2"; owner = "Yoshimi";
sha256 = "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c"; repo = pname;
rev = "86996cbb235f0fe138ae814a6758c2c8ba1c2a38";
sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
}; };
buildInputs = [ buildInputs = [
alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
minixml zlib xorg.libpthreadstubs pcre minixml zlib xorg.libpthreadstubs pcre

View File

@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.dash.org"; homepage = "https://www.dash.org";
maintainers = with maintainers; [ AndersonTorres ]; maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix; platforms = platforms.unix;
license = licenses.mit;
}; };
} }

View 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 ];
};
}

View File

@ -13,8 +13,8 @@ let
else throw "ImageMagick is not supported on this platform."; else throw "ImageMagick is not supported on this platform.";
cfg = { cfg = {
version = "7.0.10-14"; version = "7.0.10-17";
sha256 = "1qcsq5884iqis1adpfbx3cwki8v4q9wwh70fpcaqnwwmznmqfq4j"; sha256 = "15cj9qkikx13j6gfqaawi4nh09lnzg3asf5mdcswx6z6yhbf90zx";
patches = []; patches = [];
}; };
in in

View File

@ -35,7 +35,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Utilities for archiving photos for saving to long term storage or serving over the web"; description = "Utilities for archiving photos for saving to long term storage or serving over the web";
homepage = "https://github.com/danielgtaylor/jpeg-archive"; homepage = "https://github.com/danielgtaylor/jpeg-archive";
# license = ...; # mixed? license = licenses.mit;
maintainers = [ maintainers.srghma ]; maintainers = [ maintainers.srghma ];
platforms = platforms.all; platforms = platforms.all;
}; };

View File

@ -9,14 +9,14 @@
libarchive, libzip, libarchive, libzip,
# Archive tools # Archive tools
lrzip, p7zip, lrzip,
# Unfree tools # Unfree tools
unfreeEnableUnrar ? false, unrar, unfreeEnableUnrar ? false, unrar,
}: }:
let let
extraTools = [ lrzip ] ++ lib.optional unfreeEnableUnrar unrar; extraTools = [ p7zip lrzip ] ++ lib.optional unfreeEnableUnrar unrar;
in in
mkDerivation { mkDerivation {

View File

@ -5,13 +5,13 @@ with python3.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "gcalcli"; pname = "gcalcli";
version = "4.2.1"; version = "4.3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "insanum"; owner = "insanum";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1xwrgmy2azvr99b7df92m2imj0wy4fh53bn7lvcrnghjbnh7n0l0"; sha256 = "0s5fhcmz3n0dwh3vkqr4aigi59q43v03ch5jhh6v75149icwr0df";
}; };
postPatch = lib.optionalString stdenv.isLinux '' postPatch = lib.optionalString stdenv.isLinux ''

View File

@ -25,7 +25,7 @@ stdenv.mkDerivation {
patches = [ ./pointer_int_comparison.patch ]; patches = [ ./pointer_int_comparison.patch ];
patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol patchFlags = [ "-p1" "--binary" ]; # patch has dos style eol
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Open Street Map viewer"; description = "Open Street Map viewer";
homepage = "https://sourceforge.net/projects/gosmore/"; homepage = "https://sourceforge.net/projects/gosmore/";
@ -33,5 +33,6 @@ stdenv.mkDerivation {
raskin raskin
]; ];
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.bsd2;
}; };
} }

View File

@ -16,10 +16,10 @@ let
pname = "simplenote"; pname = "simplenote";
version = "1.16.0"; version = "1.17.0";
sha256 = { sha256 = {
x86_64-linux = "01nk3dbyhs0p7f6b4bkrng95i29g0x7vxj0rx1qb7sm3n11yi091"; x86_64-linux = "14kjx4y3kvw7h8wk8mmkpx1288jscmd8bgl10bw6kcfigcwahpw3";
}.${system} or throwSystem; }.${system} or throwSystem;
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -20,14 +20,14 @@
}: }:
mkDerivation rec { mkDerivation rec {
version = "0.10.9"; version = "0.10.10";
pname = "syncthingtray"; pname = "syncthingtray";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Martchus"; owner = "Martchus";
repo = "syncthingtray"; repo = "syncthingtray";
rev = "v${version}"; rev = "v${version}";
sha256 = "19kni5v9g0p4751bw2xb8dawg5yjkyk39vdy0m93448lsl8cqq04"; sha256 = "14nn0igcx4kd7pcna1ggz3yz9xfk1czgy87fxkmn2p91psmy2i18";
}; };
buildInputs = [ qtbase cpp-utilities qtutilities ] buildInputs = [ qtbase cpp-utilities qtutilities ]

View File

@ -1,16 +1,30 @@
{ pname, version, src, binaryName, desktopName { pname, version, src, binaryName, desktopName
, stdenv, fetchurl, makeDesktopItem, wrapGAppsHook , autoPatchelfHook, fetchurl, makeDesktopItem, stdenv, wrapGAppsHook
, alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype , alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
, gdk-pixbuf, glib, gtk3, libnotify, libX11, libXcomposite, libXcursor, libXdamage, libuuid , freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }: , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
, mesa, nspr, nss, pango, systemd
}:
let let
inherit binaryName; inherit binaryName;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
inherit pname version src; inherit pname version src;
nativeBuildInputs = [ wrapGAppsHook ]; nativeBuildInputs = [
alsaLib
autoPatchelfHook
cups
libdrm
libX11
libXScrnSaver
libXtst
libxcb
mesa.drivers
nss
wrapGAppsHook
];
dontWrapGApps = true; dontWrapGApps = true;

View File

@ -27,10 +27,10 @@ in {
pname = "discord-canary"; pname = "discord-canary";
binaryName = "DiscordCanary"; binaryName = "DiscordCanary";
desktopName = "Discord Canary"; desktopName = "Discord Canary";
version = "0.0.103"; version = "0.0.104";
src = fetchurl { src = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "1d95q75ak4z6wkxlgcmkl7yk20gl7zf568b0xslz42hwx032fn4z"; sha256 = "17np1hqqygjlbmlln0d1ba2qlbjykwj156w5dw7g4lg77kfxicfk";
}; };
}; };
}.${branch} }.${branch}

View File

@ -23,7 +23,7 @@ let
else ""); else "");
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "signal-desktop"; 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. # All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is # When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with: # applied. The expiration date for the current release can be extracted with:
@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "0v9mqn43vn1w6wppzydkgpbx2752bp7mmpf50wqgvrmhchnywnkj"; sha256 = "0l0i6v6n6iyq1zb2rlgfjnsk37kzjqgglk824vl5kp8qbq0li6b6";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "ipfs-cluster"; pname = "ipfs-cluster";
version = "0.12.1"; version = "0.13.0";
rev = "v${version}"; rev = "v${version}";
vendorSha256 = "1n0zb3v83wsy8y3k7xbpjc2ykh1b2n6p10d5wkflhga49q7rf64h"; vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ipfs"; owner = "ipfs";
repo = "ipfs-cluster"; repo = "ipfs-cluster";
inherit rev; inherit rev;
sha256 = "1jh6ynj50jd4w79widaqrgm3h3yz5h03vq0lbsx717a8d9073blh"; sha256 = "0jf3ngxqkgss5f1kifp5lp3kllb21jxc475ysl01ma8l3smqdvya";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -9,11 +9,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "msmtp"; pname = "msmtp";
version = "1.8.10"; version = "1.8.11";
src = fetchurl { src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
sha256 = "041g921rdjiv8bapp61gp4rylq8cckfkcwzyh8bs7xwxs4wpzfna"; sha256 = "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj";
}; };
patches = [ patches = [

View File

@ -37,10 +37,11 @@ stdenv.mkDerivation {
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with stdenv.lib; {
description = "A GTK-based Usenet newsreader good at both text and binaries"; description = "A GTK-based Usenet newsreader good at both text and binaries";
homepage = "http://pan.rebelbase.com/"; homepage = "http://pan.rebelbase.com/";
maintainers = [ stdenv.lib.maintainers.eelco ]; maintainers = [ maintainers.eelco ];
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux;
license = with licenses; [ gpl2 fdl11 ];
}; };
} }

View File

@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
--prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \ --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
--prefix PERL5LIB ":" "$PERL5LIB" \ --prefix PERL5LIB ":" "$PERL5LIB" \
--set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
--prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
''; '';

View 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;
};
}

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "abc-verifier"; pname = "abc-verifier";
version = "2020.03.05"; version = "2020.04.30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "berkeley-abc"; owner = "berkeley-abc";
repo = "abc"; repo = "abc";
rev = "ed90ce20df9c7c4d6e1db5d3f786f9b52e06bab1"; rev = "fd2c9b1c19216f6b756f88b18f5ca67b759ca128";
sha256 = "01sw67pkrb6wzflkxbkxzwsnli3nvp0yxwp3j1ngb3c0j86ri437"; sha256 = "1d18pkpsx0nlzl3a6lyfdnpk4kixjmgswy6cp5fbrkpp4rf1gahi";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "symbiyosys"; pname = "symbiyosys";
version = "2020.03.24"; version = "2020.05.18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "YosysHQ"; owner = "YosysHQ";
repo = "SymbiYosys"; repo = "SymbiYosys";
rev = "8a62780b9df4d2584e41cdd42cab92fddcd75b31"; rev = "13fef4a710d0e2cf0f109ca75a94fb7253ba6838";
sha256 = "0ss5mrzwff2dny8kfciqbrz67m6k52yvc1shd7gk3qb99x7g7fp8"; sha256 = "152nyxddiqbxvbd06cmwavvgi931v6i35zj9sh3z04m737grvb3d";
}; };
buildInputs = [ python3 ]; buildInputs = [ python3 ];

View File

@ -5,7 +5,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fossil"; pname = "fossil";
version = "2.11"; version = "2.11.1";
src = fetchurl { src = fetchurl {
urls = urls =
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
"https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz" "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
]; ];
name = "${pname}-${version}.tar.gz"; name = "${pname}-${version}.tar.gz";
sha256 = "0c9nzx42wxfmym9vf1pnbdb1c7gp7a7zqky60izxsph7w2xh8nix"; sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
}; };
buildInputs = [ zlib openssl readline sqlite which ed ] buildInputs = [ zlib openssl readline sqlite which ed ]

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "gh"; pname = "gh";
version = "0.9.0"; version = "0.10.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cli"; owner = "cli";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "050wqjng0l42ilaiglwm1mzrrmnk0bg9icnzq9sm88axgl4xpmdy"; sha256 = "0m4qgvhd4fzl83acfbpwff0sqshyfhqiy5q4i7ly8h6rdsjysdck";
}; };
vendorSha256 = "0s99bjmsafnzhl3s2lcybxgsw1s4i1h3vh6p40gz4vsfhndidqrq"; vendorSha256 = "0zkgdb69zm662p50sk1663lcbkw0vp8ip9blqfp6539mp9b87dn7";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View File

@ -1,13 +1,13 @@
{ {
"version": "13.0.4", "version": "13.0.6",
"repo_hash": "15pfg3ss1diqsnlf0xpx4ixlpjnvzghzjfvs6y3bv21qnjfwkp0g", "repo_hash": "0iyzx5lnkwp6m8q5p60gzsjmpf6qflvzl0vzfw37hymnxwq646zy",
"owner": "gitlab-org", "owner": "gitlab-org",
"repo": "gitlab", "repo": "gitlab",
"rev": "v13.0.4-ee", "rev": "v13.0.6-ee",
"passthru": { "passthru": {
"GITALY_SERVER_VERSION": "13.0.4", "GITALY_SERVER_VERSION": "13.0.6",
"GITLAB_PAGES_VERSION": "1.18.0", "GITLAB_PAGES_VERSION": "1.18.0",
"GITLAB_SHELL_VERSION": "13.2.0", "GITLAB_SHELL_VERSION": "13.2.0",
"GITLAB_WORKHORSE_VERSION": "8.31.1" "GITLAB_WORKHORSE_VERSION": "8.31.2"
} }
} }

View File

@ -19,14 +19,14 @@ let
}; };
}; };
in buildGoPackage rec { in buildGoPackage rec {
version = "13.0.4"; version = "13.0.6";
pname = "gitaly"; pname = "gitaly";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitaly"; repo = "gitaly";
rev = "v${version}"; rev = "v${version}";
sha256 = "1hnjv2q98016srvjmyjpd5fkpg68mra6qk0asl1l83z2vin2xrkm"; sha256 = "14vp73z9f0p3m1bjykkfzrmw9miyjxiqm79rns477xbm2dbmwa4s";
}; };
# Fix a check which assumes that hook files are writeable by their # Fix a check which assumes that hook files are writeable by their

View File

@ -3,13 +3,13 @@
buildGoPackage rec { buildGoPackage rec {
pname = "gitlab-workhorse"; pname = "gitlab-workhorse";
version = "8.31.1"; version = "8.31.2";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "gitlab-org"; owner = "gitlab-org";
repo = "gitlab-workhorse"; repo = "gitlab-workhorse";
rev = "v${version}"; rev = "v${version}";
sha256 = "1c2y1icil98qay9d95q1rlpi0ffhll990grkkib9srsn55b2i86v"; sha256 = "0wvhhjfb490mjdrmc9xwr3qfh3941xn3b02c757ghrvzwv329wvg";
}; };
goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse"; goPackagePath = "gitlab.com/gitlab-org/gitlab-workhorse";

View File

@ -32,10 +32,10 @@ let
# All arguments besides the input and output binaries (${mpv}/bin/mpv and # All arguments besides the input and output binaries (${mpv}/bin/mpv and
# $out/bin/mpv). These are used by the darwin specific makeWrapper call # $out/bin/mpv). These are used by the darwin specific makeWrapper call
# used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well. # 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) # These are always needed (TODO: Explain why)
"--prefix" "LUA_CPATH" "\\;" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/\\?.so" "--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so"
"--prefix" "LUA_PATH" "\\;" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/\\?.lua" "--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua"
] ++ lib.optionals mpv.vapoursynthSupport [ ] ++ lib.optionals mpv.vapoursynthSupport [
"--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/lib/${mpv.vapoursynth.python3.sitePackages}" "--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/lib/${mpv.vapoursynth.python3.sitePackages}"
] ++ lib.optionals (binPath != "") [ ] ++ lib.optionals (binPath != "") [
@ -52,7 +52,7 @@ let
) scripts ) scripts
)) ++ extraMakeWrapperArgs) )) ++ extraMakeWrapperArgs)
; ;
umpvWrapperArgs = builtins.concatStringsSep " " ([ umpvWrapperArgs = lib.strings.escapeShellArgs ([
"--argv0" "'$0'" "--argv0" "'$0'"
"--set" "MPV" "$out/bin/mpv" "--set" "MPV" "$out/bin/mpv"
] ++ extraUmpvWrapperArgs) ] ++ extraUmpvWrapperArgs)

View File

@ -13,4 +13,6 @@ stdenv.mkDerivation rec {
cp "${qemu}/bin/qemu-io" "$out/bin/qemu-io" cp "${qemu}/bin/qemu-io" "$out/bin/qemu-io"
cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd" cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
''; '';
inherit (qemu) meta;
} }

View File

@ -27,10 +27,11 @@ stdenv.mkDerivation rec {
cp build/xhyve $out/bin cp build/xhyve $out/bin
''; '';
meta = { meta = with lib; {
description = "Lightweight Virtualization on macOS Based on bhyve"; description = "Lightweight Virtualization on macOS Based on bhyve";
homepage = "https://github.com/mist64/xhyve"; homepage = "https://github.com/mist64/xhyve";
maintainers = [ lib.maintainers.lnl7 ]; maintainers = [ maintainers.lnl7 ];
platforms = lib.platforms.darwin; license = licenses.bsd2;
platforms = platforms.darwin;
}; };
} }

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc { stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
, libjpeg, libtiff, libungif, libpng, imlib, expat , 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 , mkfontdir, libX11, libXft, libXext, libXinerama
, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb , libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes , libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
gettext libjpeg libtiff libungif libpng imlib expat 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 libXft libXext libXinerama libXrandr libICE libSM libXpm
libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi
libXdamage libXcomposite libXfixes libXdamage libXcomposite libXfixes

View File

@ -42,10 +42,11 @@ stdenv.mkDerivation rec {
- Resize windows interactively with Alt+Button3 drag (right mouse button) - 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 - Raise windows with Alt+F1 (not high on usability I know, but I needed a
keybinding in there somewhere) 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"; homepage = "http://incise.org/tinywm.html";
maintainers = with maintainers; [ AndersonTorres ]; maintainers = with maintainers; [ AndersonTorres ];
platforms = libX11.meta.platforms; platforms = libX11.meta.platforms;
license = licenses.publicDomain;
}; };
} }

View File

@ -174,7 +174,7 @@ runCommand
mkdir -p $out/share mkdir -p $out/share
# Link icons and desktop files into place # 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 ln -s $emacs/share/$dir $out/share/$dir
done done
'' ''

View File

@ -39,6 +39,7 @@
, luajit , luajit
, lz4 , lz4
, mesa , mesa
, mint-x-icons
, openjpeg , openjpeg
, openssl , openssl
, poppler , poppler
@ -92,7 +93,7 @@ stdenv.mkDerivation rec {
xorg.libXcursor xorg.libXcursor
xorg.xorgproto xorg.xorgproto
zlib zlib
# still missing parent icon themes: Mint-X, RAVE-X, Faenza # still missing parent icon themes: RAVE-X, Faenza
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -107,6 +108,7 @@ stdenv.mkDerivation rec {
fribidi fribidi
ghostscript ghostscript
harfbuzz harfbuzz
hicolor-icon-theme # for the icon theme
jbig2dec jbig2dec
libdrm libdrm
libinput libinput
@ -117,6 +119,7 @@ stdenv.mkDerivation rec {
libwebp libwebp
libxkbcommon libxkbcommon
luajit luajit
mint-x-icons # Mint-X is a parent icon theme of Enlightenment-X
openjpeg openjpeg
poppler poppler
utillinux utillinux

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "evolution-data-server"; pname = "evolution-data-server";
version = "3.36.2"; version = "3.36.3";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0yz9fsnbnnlj2iidd81i9w7d0dhidrzqkixrnfjfdkhnxk7p9qlq"; sha256 = "1cix02xl473m0l7h715s68cn7bi1p4y1jkrxswcq4a0g7lblhpqz";
}; };
patches = [ patches = [

View File

@ -1,22 +1,36 @@
{ stdenv, lib, fetchFromGitHub, fetchurl, jdk, ant { stdenv
, libusb-compat-0_1, libusb1, unzip, zlib, ncurses, readline , lib
, withGui ? false, gtk2 ? null, withTeensyduino ? false , fetchFromGitHub
, fetchurl
, jdk
, ant
, libusb-compat-0_1
, libusb1
, unzip
, zlib
, ncurses
, readline
, withGui ? false
, gtk2 ? null
, withTeensyduino ? false
/* Packages needed for Teensyduino */ /* Packages needed for Teensyduino */
, upx, fontconfig, xorg, gcc , upx
, atk, glib, pango, gdk-pixbuf, libpng12, expat, freetype , fontconfig
, cairo, udev , xorg
, gcc
, atk
, glib
, pango
, gdk-pixbuf
, libpng12
, expat
, freetype
, cairo
, udev
}: }:
assert withGui -> gtk2 != null; assert withGui -> gtk2 != null;
assert withTeensyduino -> withGui; 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 let
externalDownloads = import ./downloads.nix { externalDownloads = import ./downloads.nix {
inherit fetchurl; inherit fetchurl;
@ -25,12 +39,13 @@ let
}; };
# Some .so-files are later copied from .jar-s to $HOME, so patch them beforehand # Some .so-files are later copied from .jar-s to $HOME, so patch them beforehand
patchelfInJars = 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 == "aarch64-linux") { jar = "share/arduino/lib/jssc-2.8.0-arduino4.jar"; file = "libs/linux/libjSSC-2.8_aarch64.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 (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 # abiVersion 6 is default, but we need 5 for `avrdude_bin` executable
ncurses5 = ncurses.override { abiVersion = "5"; }; ncurses5 = ncurses.override { abiVersion = "5"; };
teensy_libpath = stdenv.lib.makeLibraryPath [ teensy_libpath = stdenv.lib.makeLibraryPath [
atk atk
cairo cairo
@ -54,49 +69,61 @@ let
zlib zlib
]; ];
teensy_architecture = teensy_architecture =
lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64" lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64"
+ lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32" + lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32"
+ lib.optionalString (stdenv.hostPlatform.system == "arm-linux") "linuxarm"; + 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") flavor = ( if withTeensyduino then "teensyduino" else "arduino")
+ stdenv.lib.optionalString (!withGui) "-core"; + stdenv.lib.optionalString (!withGui) "-core";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.8.9"; version = "1.8.12";
name = "${flavor}-${version}"; name = "${flavor}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "arduino"; owner = "arduino";
repo = "Arduino"; repo = "Arduino";
rev = version; rev = version;
sha256 = "0kblq0bqap2zzkflrj6rmdi8dvqxa28fcwwrc3lfmbz2893ni3w4"; sha256 = "0lxkyvsh55biz2q20ba4qabraind5cpxznl41zfq027vl22j6kd2";
}; };
teensyduino_version = "147"; teensyduino_version = "151";
teensyduino_src = fetchurl { teensyduino_src = fetchurl {
url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}"; url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
sha256 = sha256 =
lib.optionalString (teensy_architecture == "linux64") lib.optionalString (teensy_architecture == "linux64")
"09ysanip5d2f5axzd81z2l74ayng60zqhjxmxs7xa5098fff46il" "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0"
+ lib.optionalString (teensy_architecture == "linux32") + lib.optionalString (teensy_architecture == "linux32")
"1zw3cfv2p62dwg8838vh0gd1934b18cyx7c13azvwmrpj601l0xx" "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m"
+ lib.optionalString (teensy_architecture == "linuxaarch64")
"09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x"
+ lib.optionalString (teensy_architecture == "linuxarm") + lib.optionalString (teensy_architecture == "linuxarm")
"12421z26ksx84aldw1pq0cakh8jhs33mwafgvfij0zfgn9x0i877"; "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
}; };
# Used because teensyduino requires jars be a specific size # Used because teensyduino requires jars be a specific size
arduino_dist_src = fetchurl { arduino_dist_src = fetchurl {
url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz"; url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
sha256 = sha256 =
lib.optionalString (teensy_architecture == "linux64") lib.optionalString (teensy_architecture == "linux64")
"1lv4in9j0r8s0cis4zdvbk2637vlj12w69wdxgcxcrwvkcdahkpa" "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9"
+ lib.optionalString (teensy_architecture == "linux32") + lib.optionalString (teensy_architecture == "linux32")
"0zla3a6gd9prclgrbbgsmhf8ds8zb221m65x21pvz0y1cwsdvjpm" "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi"
+ lib.optionalString (teensy_architecture == "linuxaarch64")
"04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa"
+ lib.optionalString (teensy_architecture == "linuxarm") + 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 ]; ] ++ stdenv.lib.optionals withTeensyduino [ upx ];
downloadSrcList = builtins.attrValues externalDownloads; downloadSrcList = builtins.attrValues externalDownloads;
downloadDstList = builtins.attrNames externalDownloads; downloadDstList = builtins.attrNames externalDownloads;
@ -116,7 +143,8 @@ stdenv.mkDerivation rec {
# Deliberately break build.xml's download statement in order to cause # Deliberately break build.xml's download statement in order to cause
# an error if anything needed is missing from download.nix. # 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 ./arduino-core && ant
cd ../build && ant cd ../build && ant
@ -125,11 +153,11 @@ stdenv.mkDerivation rec {
# This will be patched into `arduino` wrapper script # This will be patched into `arduino` wrapper script
# Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH # Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH
dynamicLibraryPath = lib.makeLibraryPath [gtk2]; dynamicLibraryPath = lib.makeLibraryPath [ gtk2 ];
javaPath = lib.makeBinPath [jdk]; javaPath = lib.makeBinPath [ jdk ];
# Everything else will be patched into rpath # 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 = '' installPhase = ''
mkdir -p $out/share/arduino mkdir -p $out/share/arduino
@ -192,19 +220,19 @@ stdenv.mkDerivation rec {
done done
${lib.concatMapStringsSep "\n" ${lib.concatMapStringsSep "\n"
({jar, file}: ({ jar, file }:
'' ''
jar xvf $out/${jar} ${file} jar xvf $out/${jar} ${file}
patchelf --set-rpath $rpath ${file} patchelf --set-rpath $rpath ${file}
jar uvf $out/${jar} ${file} jar uvf $out/${jar} ${file}
rm -f ${file} rm -f ${file}
'' ''
) )
patchelfInJars} patchelfInJars}
# avrdude_bin is linked against libtinfo.so.5 # avrdude_bin is linked against libtinfo.so.5
mkdir $out/lib/ 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 '' ${stdenv.lib.optionalString withTeensyduino ''
# Patch the Teensy loader binary # Patch the Teensy loader binary

View File

@ -1,4 +1,7 @@
{fetchurl, optionalAttrs, system}: { fetchurl
, optionalAttrs
, system
}:
# This file preloads all the archives which Arduino's build/build.xml # This file preloads all the archives which Arduino's build/build.xml
# would otherwise try to download itself. When updating this for a new # would otherwise try to download itself. When updating this for a new
# version of Arduino, check build.xml for version numbers and 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"; url = "https://github.com/arduino-libraries/RobotIRremote/archive/2.0.0.zip";
sha256 = "0j5smap74j8p3wc6k0h73b1skj4gkr7r25jbjh1j1cg052dxri86"; sha256 = "0j5smap74j8p3wc6k0h73b1skj4gkr7r25jbjh1j1cg052dxri86";
}; };
"build/SpacebrewYun-1.0.1.zip" = fetchurl { "build/SpacebrewYun-1.0.2.zip" = fetchurl {
url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.1.zip"; url = "https://github.com/arduino-libraries/SpacebrewYun/archive/1.0.2.zip";
sha256 = "1zs6ymlzw66bglrm0x6d3cvr52q85c8rlm525x0wags111xx3s90"; sha256 = "1d8smmsx12qhf2ldvmi93h48cvdyz4id5gd68cvf076wfyv6dks8";
}; };
"build/Temboo-1.2.1.zip" = fetchurl { "build/Temboo-1.2.1.zip" = fetchurl {
url = "https://github.com/arduino-libraries/Temboo/archive/1.2.1.zip"; 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"; url = "https://github.com/arduino-libraries/Keyboard/archive/1.0.2.zip";
sha256 = "17yfj95r1i7fb87q4krmxmaq07b4x2xf8cjngrj5imj68wgjck53"; sha256 = "17yfj95r1i7fb87q4krmxmaq07b4x2xf8cjngrj5imj68wgjck53";
}; };
"build/SD-1.2.3.zip" = fetchurl { "build/SD-1.2.4.zip" = fetchurl {
url = "https://github.com/arduino-libraries/SD/archive/1.2.3.zip"; url = "https://github.com/arduino-libraries/SD/archive/1.2.4.zip";
sha256 = "0i5hb5hmrsrhfgxx8w7zzrfrkc751vs63vhxrj6qvwazhfcdpjw2"; sha256 = "123g9px9nqcrsx696wqwzjd5s4hr55nxgfz95b7ws3v007i1f3fz";
}; };
"build/Servo-1.1.3.zip" = fetchurl { "build/Servo-1.1.6.zip" = fetchurl {
url = "https://github.com/arduino-libraries/Servo/archive/1.1.3.zip"; url = "https://github.com/arduino-libraries/Servo/archive/1.1.6.zip";
sha256 = "1m019a75cdn1fg0cwlzbahmaqvg8sgzr6v1812rd7rjh8ismiah6"; sha256 = "1z9k9lxzj5d3f8h9hy86f4k5wgfr2a9zcvjh76qmpvv6clcv3js3";
}; };
"build/LiquidCrystal-1.0.7.zip" = fetchurl { "build/LiquidCrystal-1.0.7.zip" = fetchurl {
url = "https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip"; url = "https://github.com/arduino-libraries/LiquidCrystal/archive/1.0.7.zip";
sha256 = "1wrxrqz3n4yrj9j1a2b7pdd7a1rlyi974ra7crv5amjng8817x9n"; sha256 = "1wrxrqz3n4yrj9j1a2b7pdd7a1rlyi974ra7crv5amjng8817x9n";
}; };
"build/Adafruit_Circuit_Playground-1.8.1.zip" = fetchurl { "build/Adafruit_Circuit_Playground-1.10.4.zip" = fetchurl {
url = "https://github.com/Adafruit/Adafruit_CircuitPlayground/archive/1.8.1.zip"; url = "https://github.com/adafruit/Adafruit_CircuitPlayground/archive/1.10.4.zip";
sha256 = "1fl24px4c42f6shpb3livwsxgpj866yy285274qrj4m1zl07f18q"; sha256 = "194az5pxxzs0wg4ng7w0zqrdw93qdyv02y0q2yy57dr4kwfrm6nl";
}; };
"build/libastylej-2.05.1-4.zip" = fetchurl { "build/libastylej-2.05.1-5.zip" = fetchurl {
url = "https://downloads.arduino.cc/libastylej-2.05.1-4.zip"; url = "https://downloads.arduino.cc/libastylej-2.05.1-5.zip";
sha256 = "0q307b85xba7izjh344kqby3qahg3f5zy18gg52sjk1lbkl9i39s"; sha256 = "11mlprwvqfq3nvmz6hdf1fcg02a7xi2a9qhffa1d8a4w15s2iwny";
}; };
"build/liblistSerials-1.4.2.zip" = fetchurl { "build/liblistSerials-1.4.2-2.zip" = fetchurl {
url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2.zip"; url = "https://downloads.arduino.cc/liblistSerials/liblistSerials-1.4.2-2.zip";
sha256 = "1p58b421k92rbgwfgbihy0d04mby7kfssghpmjb4gk9yix09za3m"; sha256 = "0sqzwp1lfjy452z3d4ma5c4blwsj7za72ymxf7crpq9dh9qd8f53";
}; };
"build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip" = fetchurl { "build/shared/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip" = fetchurl {
url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.6/WiFi101-Updater-ArduinoIDE-Plugin-0.10.6.zip"; url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.10/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip";
sha256 = "1k23xyr5dmr60y8hb9x24wrgd4mfgvrzky621p6fvawn5xbdq8a3"; 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") { // optionalAttrs (system == "x86_64-linux") {
"build/arduino-builder-linux64-1.4.4.tar.bz2" = fetchurl { "build/arduino-builder-linux64-1.5.2.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.4.4.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.2.tar.bz2";
sha256 = "1m5b4rc9i235ra6isqdpjj9llddb5sldkhidb8c4i14mcqbdci1n"; sha256 = "0wypr9a2cbv9r0ignsr13raw09i3vfc5zvkjxp2xwb7mv35y77z3";
}; };
"build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" = fetchurl { "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-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2";
sha256 = "11ciwv9sw900wxb2fwm4i4ml4a85ylng0f595v0mf0xifc6jnhh5"; sha256 = "1yq6a811dabrkcgzfi3jsys41r19qsna46kglkjbcy0rza7yvzry";
}; };
"build/linux/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" = fetchurl { "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-arduino14-x86_64-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2";
sha256 = "1z4b6pvn1823h8mg0iph88igmcnrk2y7skr3z44dqlwk0pryi1kr"; sha256 = "0gfic26af9vlcpkw8v914psn05vmq1rsrlk1fi7vzapj1a9gpkdc";
}; };
"build/linux/arduinoOTA-1.2.1-linux_amd64.tar.bz2" = fetchurl { "build/linux/arduinoOTA-1.3.0-linux_amd64.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_amd64.tar.bz2";
sha256 = "1ya834p2cqjj8k1ad3yxcnzd4bcgrlqsqsli9brq1138ac6k30jv"; sha256 = "1ylz4pfa9np0nn0w9igmmm3sr8hz3na04n7cv8ia3hzz84jfwida";
};
"build/avr-1.6.23.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2";
sha256 = "1al449r8hcdck7f4y295g7q388qvbn6qhk2zqdvws9kg4mzqsq8q";
}; };
} }
// optionalAttrs (system == "i686-linux") { // optionalAttrs (system == "i686-linux") {
"build/arduino-builder-linux32-1.4.4.tar.bz2" = fetchurl { "build/arduino-builder-linux32-1.5.2.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.4.4.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduino-builder-linux32-1.5.2.tar.bz2";
sha256 = "0q3i1ba7vh14616d9ligizcz89yadr0skazxbrcq3mvvjqzbifw8"; sha256 = "1slzw8fzxkqsp2izjisjd1rxxbqkrq6n72jc4frk5z2gdm6zfa0l";
}; };
"build/linux/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" = fetchurl { "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-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-i686-pc-linux-gnu.tar.bz2";
sha256 = "13skspybzq80ndsi93s7v15900lf26n5243mbib77andyc27xy2i"; sha256 = "078f3rbpdrghk63mbaq73bd5p6znimp14b1wdf6nh2gdswwjgw9g";
}; };
"build/linux/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" = fetchurl { "build/linux/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2";
sha256 = "1jklpk1sgrmbh1r25ynps4qcs5dbg6hd54fzjx4hcdf68cw0w42g"; sha256 = "0py0jvpim0frmv0dnvzfj122ni5hg1qwshgya4a0wc5rgp0wd32w";
}; };
"build/linux/arduinoOTA-1.2.1-linux_386.tar.bz2" = fetchurl { "build/linux/arduinoOTA-1.3.0-linux_386.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_386.tar.bz2";
sha256 = "1m56ps58h0fs8rr4ifc45slmrdvalc63vhldy85isv28g15zdz9g"; sha256 = "1cl79019ldsq0sc3fd4pm0vx2kqcklld7w03hdcj99y7zgb5jzry";
}; };
} }
// optionalAttrs (system == "x86_64-darwin") { // optionalAttrs (system == "x86_64-darwin") {
"build/arduino-builder-macosx-1.4.4.tar.bz2" = fetchurl { "build/arduino-builder-macosx-1.5.2-signed.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.4.4.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduino-builder-macosx-1.5.2-signed.tar.bz2";
sha256 = "1jp5kg32aiw062kcxlv660w38iaprifm8h3g2798izpwyfj0dmwg"; sha256 = "1pa795vwly1z9h1bp5qzbx2c2pq4n6p7ab5ivhmd3q89z0ywyqgz";
}; };
"build/macosx/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" = fetchurl { "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-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2"; url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-apple-darwin14-signed.tar.bz2";
sha256 = "1y2972b08ac59xwjqkyjmi5lf2pmzw88a6sdgci3x9rvahvh3idb"; sha256 = "0lcnp525glnc2chcynnz2nllm4q6ar4n9nrjqd1jbj4m706zbv67";
}; };
"build/macosx/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" = fetchurl { "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-arduino14-i386-apple-darwin11.tar.bz2"; url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12-signed.tar.bz2";
sha256 = "0qsa3sb3f480fm2z75fq14cqddw5hq8w8q0c2a9cw8i7aa8kkl27"; sha256 = "1m24dci8mjf70yrf033mp1834pbp870m8sns2jxs3iy2i4qviiki";
}; };
"build/macosx/appbundler/appbundler-1.0ea-arduino4.jar.zip" = fetchurl { "build/linux/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/appbundler-1.0ea-arduino4.jar.zip"; url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-darwin_amd64-signed.tar.bz2";
sha256 = "1vz0g98ancfqdf7yx5m3zrxmzb3fwp18zh5lkh2nyl5xlr9m368z"; 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 { // optionalAttrs (system == "aarch64-linux") {
url = "https://downloads.arduino.cc/tools/arduino-builder-linuxarm-1.4.4.tar.bz2"; "build/arduino-builder-linuxaarch64-1.5.2.tar.bz2" = fetchurl {
sha256 = "03bhlhdkg1jx0d3lh9194xgaqsbank9njhlnwy8braa7pw4p58gn"; 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 { "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-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-aarch64-pc-linux-gnu.tar.bz2";
sha256 = "17z9li387mx2acgad733h7l1jnnwv09ynw4nrwlqfahqqdfgjhb7"; sha256 = "040cspc41iv59fb2g9fzc6w5523dvqa1bavxni7s8w731ccp176x";
}; };
"build/linux/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" = fetchurl { "build/linux/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2"; url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2";
sha256 = "12amp8hqcj6gcdga7hfs22asgmgzafy8ny0rqhqs8n8d95sn586i"; sha256 = "1z59dx2j2j4675awjzag9fswhvkn3hlz4ds5d2b7pzmca7vliybc";
}; };
"build/linux/arduinoOTA-1.2.1-linux_arm.tar.bz2" = fetchurl { "build/linux/arduinoOTA-1.3.0-linux_aarch64.tar.bz2" = fetchurl {
url = "https://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2"; url = "https://downloads.arduino.cc/tools/arduinoOTA-1.3.0-linux_aarch64.tar.bz2";
sha256 = "1q79w1d0h2lp3jcg58qrlh3k5lak7dbsnawrzm0jj8c6spfb6m5d"; 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";
}; };
} }

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, ant, jre, jdk}: {stdenv, fetchurl, ant, jre, jdk}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "abcl"; pname = "abcl";
version = "1.6.1"; version = "1.7.0";
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
src = fetchurl { src = fetchurl {
url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz"; url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
sha256 = "04myiba6g0vij2ym2dmb0156k20ki2lz13dxwp2bk9kvjn2zg88b"; sha256 = "0pbn5s22zygk6k0rzjc9g76220628lj1b3057gr0n4grl11p4lx5";
}; };
configurePhase = '' configurePhase = ''
mkdir nix-tools mkdir nix-tools

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "go-jsonnet"; pname = "go-jsonnet";
version = "0.15.0"; version = "0.16.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "go-jsonnet"; repo = "go-jsonnet";
rev = "v${version}"; rev = "v${version}";
sha256 = "0l6cwky2xl7m8nnc9abp76bhkdcf2ldbbv3r8p30xv2yr5wd1j8i"; sha256 = "17606gc75wnkm64am4hmlv7m3fy2hi8rnzadp6nrgpcd6rl26m83";
}; };
vendorSha256 = "1vdv0nq31mjprxzxf8x0diaigissy07vnm338h8jrk5i74x5by39"; vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
subPackages = [ "cmd/jsonnet" ]; subPackages = [ "cmd/jsonnet" ];

View File

@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
LD_LIBRARY_PATH = makeLibraryPath [ LD_LIBRARY_PATH = makeLibraryPath [
arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
openspecfun pcre2 openspecfun pcre2 lapack
]; ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,5 +1,6 @@
{ stdenv { stdenv
, abc-verifier , abc-verifier
, bash
, bison , bison
, fetchFromGitHub , fetchFromGitHub
, flex , flex
@ -15,13 +16,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "yosys"; pname = "yosys";
version = "2020.03.24"; version = "2020.06.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "YosysHQ"; owner = "YosysHQ";
repo = "yosys"; repo = "yosys";
rev = "c9555c9adeba886a308c60615ac794ec20d9276e"; rev = "a1785e988b2b51dac32985dd6b0afdcedc6bda1d";
sha256 = "1fh118fv06jyfmkx6zy0w2k0rjj22m0ffyll3k5giaw8zzaf0j3a"; sha256 = "0987f5vm2zb0i02c3vlw21gihky2cfj5l9b78ddzhxfiv0qfkdfp";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
@ -38,6 +39,8 @@ stdenv.mkDerivation rec {
--replace 'LD = gcc' 'LD = $(CXX)' \ --replace 'LD = gcc' 'LD = $(CXX)' \
--replace 'ABCMKARGS = CC="$(CXX)" CXX="$(CXX)"' 'ABCMKARGS =' \ --replace 'ABCMKARGS = CC="$(CXX)" CXX="$(CXX)"' 'ABCMKARGS =' \
--replace 'echo UNKNOWN' 'echo ${builtins.substring 0 10 src.rev}' --replace 'echo UNKNOWN' 'echo ${builtins.substring 0 10 src.rev}'
substituteInPlace ./misc/yosys-config.in \
--replace '/bin/bash' '${bash}/bin/bash'
patchShebangs tests patchShebangs tests
''; '';

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig, which { stdenv, lib, fetchurl, autoreconfHook, pkgconfig, which
, SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile , SDL2, libogg, libvorbis, smpeg2, flac, libmodplug, opusfile, mpg123
, CoreServices, AudioUnit, AudioToolbox , CoreServices, AudioUnit, AudioToolbox
, enableNativeMidi ? false, fluidsynth ? null }: , enableNativeMidi ? false, fluidsynth ? null }:
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices AudioUnit AudioToolbox ]; 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" ] configureFlags = [ "--disable-music-ogg-shared" ]
++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl" ++ lib.optional enableNativeMidi "--enable-music-native-midi-gpl"

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, cmake, vtk_7, darwin }: { stdenv, fetchurl, cmake, vtk_7, darwin }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.0.5"; version = "3.0.6";
pname = "gdcm"; pname = "gdcm";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2"; url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2";
sha256 = "16d3sf81n4qhwbbx1d80jg6fhrla5paan384c4bbbqvbhm222yby"; sha256 = "048ycvhk143cvsf09r7vwmp4sm9ah9bh5pbbrl366m5a4sp7fr89";
}; };
dontUseCmakeBuildDir = true; dontUseCmakeBuildDir = true;

View File

@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
domain = "gitlab.gnome.org"; domain = "gitlab.gnome.org";
owner = "Archive"; owner = "Archive";
repo = "gdk-pixbuf-xlib"; repo = "gdk-pixbuf-xlib";
rev = "dc22ea36f69755007c66877284596df270532cc1"; rev = "19482794a621d542b223219940e836257d4ae2c9";
sha256 = "XhBQ4wano+MtGaqF6JNKoWgYQN6eBW+b8ZCGEBGt8IM="; sha256 = "7Qv6tyjR0/iFXYHx5jPhvLLLt0Ms2nzpyWw02oXTkZc=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -33,12 +33,9 @@ stdenv.mkDerivation rec {
gtk-doc gtk-doc
]; ];
buildInputs = [
libX11
];
propagatedBuildInputs = [ propagatedBuildInputs = [
gdk-pixbuf gdk-pixbuf
libX11
]; ];
mesonFlags = [ mesonFlags = [

View File

@ -17,6 +17,7 @@
, dbus , dbus
, gdk-pixbuf , gdk-pixbuf
, makeWrapper , makeWrapper
, which
, xvfb_run , xvfb_run
, nixosTests , nixosTests
}: }:
@ -28,11 +29,11 @@ let
]; ];
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "gjs"; pname = "gjs";
version = "1.64.2"; version = "1.64.3";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0ywrsfmkxaw11z83dnmb9yqkn6k3c1mkxw2mv6arbwad6x6q7zqm"; sha256 = "1rl524rmdbpmp5xdkm8dx3znq47l7dgvh192x80zjf8wc1af35lx";
}; };
outputs = [ "out" "dev" "installedTests" ]; outputs = [ "out" "dev" "installedTests" ];
@ -42,6 +43,7 @@ in stdenv.mkDerivation rec {
ninja ninja
pkgconfig pkgconfig
makeWrapper makeWrapper
which # for locale detection
libxml2 # for xml-stripblanks libxml2 # for xml-stripblanks
]; ];
@ -74,11 +76,10 @@ in stdenv.mkDerivation rec {
./installed-tests-path.patch ./installed-tests-path.patch
]; ];
# Gio test is failing doCheck = true;
# https://github.com/NixOS/nixpkgs/pull/81626#issuecomment-599325843
doCheck = false;
postPatch = '' postPatch = ''
patchShebangs build/choose-tests-locale.sh
substituteInPlace installed-tests/debugger-test.sh --subst-var-by gjsConsole $out/bin/gjs-console substituteInPlace installed-tests/debugger-test.sh --subst-var-by gjsConsole $out/bin/gjs-console
''; '';
@ -95,7 +96,15 @@ in stdenv.mkDerivation rec {
''; '';
postInstall = '' 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" \ wrapProgram "$installedTests/libexec/gjs/installed-tests/minijasmine" \
--prefix XDG_DATA_DIRS : "$installedTestsSchemaDatadir" \
--prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" testDeps}" --prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" testDeps}"
''; '';

View File

@ -1,5 +1,5 @@
diff --git a/installed-tests/meson.build b/installed-tests/meson.build 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 --- a/installed-tests/meson.build
+++ b/installed-tests/meson.build +++ b/installed-tests/meson.build
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
@ -12,6 +12,19 @@ index 294d20c6..1e5029e0 100644
# Simple shell script tests # # 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 diff --git a/meson_options.txt b/meson_options.txt
index 66f66024..008687cb 100644 index 66f66024..008687cb 100644
--- a/meson_options.txt --- a/meson_options.txt

View 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 */

View File

@ -28,10 +28,11 @@ stdenv.mkDerivation rec {
define(\`confLIBGRP', \`root') define(\`confLIBGRP', \`root')
APPENDDEF(\`confENVDEF', \`-DNETINET6') APPENDDEF(\`confENVDEF', \`-DNETINET6')
EOF EOF
export MILTER_SOVER=1
sh Build -f ./a.m4 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 ]; nativeBuildInputs = [ m4 ];

View File

@ -16,28 +16,29 @@ diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3
+# +#
+divert(0)dnl +divert(0)dnl
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')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 +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_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl +bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
+ +
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4') +include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
+divert(bldTARGETS_SECTION) +divert(bldTARGETS_SECTION)
+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} +bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS} + ${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'} +bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'} + ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
+ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a + ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)') +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 ') +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}" + ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}"
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so" + ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT"
+ ${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') + ${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
+ +
+bldCURRENT_PRODUCT-clean: +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) +divert(0)
+COPTS+= confCCOPTS_SO +COPTS+= confCCOPTS_SO

View File

@ -23,11 +23,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libosinfo"; pname = "libosinfo";
version = "1.7.1"; version = "1.8.0";
src = fetchurl { src = fetchurl {
url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz"; url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
sha256 = "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv"; sha256 = "1988l5rykpzvml1l7bi2hcax0gdc811vja0f92cnr7r01nz35zs9";
}; };
outputs = [ "out" "dev" "devdoc" ]; outputs = [ "out" "dev" "devdoc" ];

View File

@ -66,6 +66,7 @@ in stdenv.mkDerivation rec {
"USE_SYSTEM_ZLIB=1" "USE_SYSTEM_ZLIB=1"
"NSS_USE_SYSTEM_SQLITE=1" "NSS_USE_SYSTEM_SQLITE=1"
"NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc" "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 # 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 # uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
"OS_TEST=${cpu}" "OS_TEST=${cpu}"

View File

@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
@ -44,6 +45,13 @@ stdenv.mkDerivation rec {
sha256 = "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3"; 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 = [ nativeBuildInputs = [
doxygen doxygen
graphviz graphviz

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "protozero"; pname = "protozero";
version = "1.6.8"; version = "1.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mapbox"; owner = "mapbox";
repo = "protozero"; repo = "protozero";
rev = "v${version}"; rev = "v${version}";
sha256 = "1hfijpfylf1c71wa3mk70gjc88b6k1q7cxb87cwqdflw5q2x8ma6"; sha256 = "0fdihfl5j68wayjjxvpvhvnjq1anzcfnfl09f68wpzbkg3zmhblz";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "qtutilities"; pname = "qtutilities";
version = "6.0.5"; version = "6.0.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Martchus"; owner = "Martchus";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1f2nir1qb0d6r1ndpsg7vpskdw08szq82mqvbwm5bi160xkrqhjf"; sha256 = "0g3f18530w5f8dlzrh45k868hspga5p3m8qpz7pcg3nsdjda8cwz";
}; };
buildInputs = [ qtbase cpp-utilities ]; buildInputs = [ qtbase cpp-utilities ];

View File

@ -66,6 +66,7 @@
, "elm-oracle" , "elm-oracle"
, "emoj" , "emoj"
, "emojione" , "emojione"
, "escape-string-regexp"
, "eslint" , "eslint"
, "eslint_d" , "eslint_d"
, {"fast-cli": "1.x"} , {"fast-cli": "1.x"}
@ -80,6 +81,7 @@
, "gtop" , "gtop"
, "gulp" , "gulp"
, "gulp-cli" , "gulp-cli"
, "he"
, "html-minifier" , "html-minifier"
, "htmlhint" , "htmlhint"
, "http-server" , "http-server"

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@
, gzip , gzip
, bzip2 , bzip2
, gnutar , gnutar
, p7zip
, cabextract , cabextract
, lzma , lzma
, nose , nose
@ -28,7 +29,7 @@ buildPythonPackage {
sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc"; 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; ++ stdenv.lib.optional visualizationSupport pyqtgraph;
# setup.py only installs version.py during install, not test # setup.py only installs version.py during install, not test

View File

@ -11,22 +11,26 @@
, tornado , tornado
, aiohttp , aiohttp
, uritemplate , uritemplate
, pyjwt
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "gidgethub"; pname = "gidgethub";
version = "3.2.0"; version = "4.1.1";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "8f4b69063a256994d38243cc0eba4e1453017b5b8b04a173216d02d47ffc3989"; sha256 = "13nzc40c71kxvjxahgnc6c974xp5fpm02gqymwgfjbj2dmlzmayg";
}; };
nativeBuildInputs = [ setuptools pytestrunner ]; nativeBuildInputs = [ setuptools pytestrunner ];
checkInputs = [ pytest pytest-asyncio twisted treq tornado aiohttp ]; checkInputs = [ pytest pytest-asyncio twisted treq tornado aiohttp ];
propagatedBuildInputs = [ uritemplate ]; propagatedBuildInputs = [
uritemplate
pyjwt
];
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \

View File

@ -4,11 +4,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mautrix"; pname = "mautrix";
version = "0.5.1"; version = "0.5.4";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "a8dcf86c3562c1c6c25247b0a1a16f95d821bc8b3805141787c0b9ed8a2b4ca9"; sha256 = "0csvk3y0y2r9gnfqj91fiqprgp8dxiv4n80b6myraab5s7zn1mvv";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -2,7 +2,7 @@
, docutils , docutils
, lockfile , lockfile
, mock , mock
, pytest , pytest_4
, testscenarios , testscenarios
, twine , twine
}: }:
@ -19,7 +19,7 @@ buildPythonPackage rec {
nativeBuildInputs = [ twine ]; nativeBuildInputs = [ twine ];
propagatedBuildInputs = [ docutils lockfile ]; propagatedBuildInputs = [ docutils lockfile ];
checkInputs = [ pytest mock testscenarios ]; checkInputs = [ pytest_4 mock testscenarios ];
checkPhase = '' checkPhase = ''
pytest -k 'not detaches_process_context \ pytest -k 'not detaches_process_context \
and not standard_stream_file_descriptors' and not standard_stream_file_descriptors'

View File

@ -10,7 +10,6 @@ buildGoModule rec {
vendorSha256 = null; vendorSha256 = null;
goPackagePath = "github.com/zmb3/gogetdoc";
excludedPackages = "\\(testdata\\)"; excludedPackages = "\\(testdata\\)";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -21,8 +20,6 @@ buildGoModule rec {
sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr"; sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr";
}; };
goDeps = ./deps.nix;
meta = with lib; { meta = with lib; {
description = "Gets documentation for items in Go source code"; description = "Gets documentation for items in Go source code";
homepage = "https://github.com/zmb3/gogetdoc"; homepage = "https://github.com/zmb3/gogetdoc";
@ -30,4 +27,4 @@ buildGoModule rec {
maintainers = with maintainers; [ kalbasit ]; maintainers = with maintainers; [ kalbasit ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -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";
};
}
]

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ktlint"; pname = "ktlint";
version = "0.37.0"; version = "0.37.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint"; url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
sha256 = "1z2hvhcrz1rj9g8749x640axrf529wk361pckwb4ihn43c19ajpf"; sha256 = "0i5frcy3ya1qwq0hl67gq6fgz0c8vgskgha25irsw7j2ndf4qp8i";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -1,7 +1,7 @@
{ stdenv, buildGoPackage, fetchFromGitHub }: { stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec { buildGoPackage rec {
pname = "packer"; pname = "packer";
version = "1.5.6"; version = "1.6.0";
goPackagePath = "github.com/hashicorp/packer"; goPackagePath = "github.com/hashicorp/packer";
@ -11,14 +11,14 @@ buildGoPackage rec {
owner = "hashicorp"; owner = "hashicorp";
repo = "packer"; repo = "packer";
rev = "v${version}"; rev = "v${version}";
sha256 = "0pwygrh6pjmx8a1jc12929x0slj7w3b8p3pzswnbk7klyhj4jkp8"; sha256 = "0qddljg330i7059kvij84pjzz67g6qh1w2zcmsj6rv58ix8xsfx7";
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A tool for creating identical machine images for multiple platforms from a single source configuration"; description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
homepage = "https://www.packer.io"; homepage = "https://www.packer.io";
license = licenses.mpl20; license = licenses.mpl20;
maintainers = with maintainers; [ cstrahan zimbatm ]; maintainers = with maintainers; [ cstrahan zimbatm ma27 ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -18,11 +18,11 @@ let
in buildPythonApplication rec { in buildPythonApplication rec {
pname = "pipenv"; pname = "pipenv";
version = "2020.5.28"; version = "2020.6.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "072lc4nywcf9q9irvanwcz7w0sd9dcyannz208jm6glyj8a271l1"; sha256 = "12s7c3f3k5v1szdhklsxwisf9v3dk4mb9fh7762afpgs8mrrmm3x";
}; };
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";

View File

@ -1,17 +1,26 @@
{ lib, buildGoModule, fetchFromGitHub }: { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec { buildGoModule rec {
pname = "yq-go"; pname = "yq-go";
version = "3.3.0"; version = "3.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mikefarah"; owner = "mikefarah";
rev = version; rev = version;
repo = "yq"; 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; { meta = with lib; {
description = "Portable command-line YAML processor"; description = "Portable command-line YAML processor";
@ -19,4 +28,4 @@ buildGoModule rec {
license = [ licenses.mit ]; license = [ licenses.mit ];
maintainers = [ maintainers.lewo ]; maintainers = [ maintainers.lewo ];
}; };
} }

View File

@ -3,52 +3,34 @@
, fetchFromGitHub , fetchFromGitHub
, rust , rust
, rustPlatform , rustPlatform
, python27
, installShellFiles , installShellFiles
, Security , Security
, CoreServices , CoreServices
}: }:
let let
pname = "deno"; deps = import ./deps.nix { };
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";
};
arch = rust.toRustTarget stdenv.hostPlatform; arch = rust.toRustTarget stdenv.hostPlatform;
fetchlib = name: version: sha256: fetchurl { rustyV8Lib = with deps.rustyV8Lib; fetchurl {
url = "https://github.com/denoland/${name}/releases/download/v${version}/librusty_v8_release_${arch}.a"; url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
sha256 = sha256."${stdenv.hostPlatform.system}"; sha256 = sha256s."${stdenv.hostPlatform.system}";
meta = { inherit version; }; meta = { inherit version; };
}; };
in in
rustPlatform.buildRustPackage rec { 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 = [ # Install completions post-install
# chromium/V8 requires python 2.7, we're not building V8 from source nativeBuildInputs = [ installShellFiles ];
# 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
];
buildInputs = with stdenv.lib; [ ] buildInputs = with stdenv.lib; [ ]
++ optionals stdenv.isDarwin [ Security CoreServices ]; ++ 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 # 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 # To avoid this we pre-download the file and place it in the locations it will require it in advance
preBuild = '' 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() { _rusty_v8_setup() {
for v in "$@"; do for v in "$@"; do
dir="target/$v/gn_out/obj" dir="target/$v/gn_out/obj"
@ -77,40 +49,9 @@ rustPlatform.buildRustPackage rec {
_rusty_v8_setup "debug" "release" "${arch}/release" _rusty_v8_setup "debug" "release" "${arch}/release"
''; '';
# Set home to existing env var TMP dir so tests that write there work correctly # Tests have some inconsistencies between runs with output integration tests
preCheck = '' # Skipping until resolved
export HOME="$TMPDIR" doCheck = false;
'';
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"
];
# TODO: Move to enhanced installShellCompletion when merged: PR #83630 # TODO: Move to enhanced installShellCompletion when merged: PR #83630
postInstall = '' postInstall = ''
@ -120,8 +61,11 @@ rustPlatform.buildRustPackage rec {
installShellCompletion deno.{bash,fish} --zsh _deno installShellCompletion deno.{bash,fish} --zsh _deno
''; '';
passthru.updateScript = ./update/update.ts;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://deno.land/"; homepage = "https://deno.land/";
changelog = "${src.meta.homepage}/releases/tag/v${version}";
description = "A secure runtime for JavaScript and TypeScript"; description = "A secure runtime for JavaScript and TypeScript";
longDescription = '' longDescription = ''
Deno aims to be a productive and secure scripting environment for the modern programmer. Deno aims to be a productive and secure scripting environment for the modern programmer.

12
pkgs/development/web/deno/deps.nix generated Normal file
View 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";
};
};
}

View 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;

View 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");
}

View 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");
}

View 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