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";
};
fdl11 = spdx {
spdxId = "GFDL-1.1-only";
fullName = "GNU Free Documentation License v1.1 only";
};
fdl12 = spdx {
spdxId = "GFDL-1.2-only";
fullName = "GNU Free Documentation License v1.2 only";

View File

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

View File

@ -181,6 +181,12 @@ services.mysql.initialScript = pkgs.writeText "mariadb-init.sql" ''
<link linkend="opt-security.duosec.integrationKey">security.duosec.integrationKey</link>.
</para>
</listitem>
<listitem>
<para>
<literal>vmware</literal> has been removed from the <literal>services.x11.videoDrivers</literal> defaults.
For VMWare guests set <literal>virtualisation.vmware.guest.enable</literal> to <literal>true</literal> which will include the appropriate drivers.
</para>
</listitem>
<listitem>
<para>
The initrd SSH support now uses OpenSSH rather than Dropbear to

View File

@ -68,7 +68,8 @@ with lib;
config = {
environment.systemPackages =
optional (config.i18n.supportedLocales != []) config.i18n.glibcLocales;
# We increase the priority a little, so that plain glibc in systemPackages can't win.
optional (config.i18n.supportedLocales != []) (lib.setPrio (-1) config.i18n.glibcLocales);
environment.sessionVariables =
{ LANG = config.i18n.defaultLocale;

View File

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

View File

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

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 {
type = types.listOf types.str;
# !!! We'd like "nv" here, but it segfaults the X server.
default = [ "radeon" "cirrus" "vesa" "vmware" "modesetting" ];
default = [ "radeon" "cirrus" "vesa" "modesetting" ];
example = [
"ati_unfree" "amdgpu" "amdgpu-pro"
"nv" "nvidia" "nvidiaLegacy390" "nvidiaLegacy340" "nvidiaLegacy304"

View File

@ -15,7 +15,6 @@ in
###### interface
options = {
virtualisation.lxd = {
enable = mkOption {
type = types.bool;
@ -25,12 +24,18 @@ in
containers. Users in the "lxd" group can interact with
the daemon (e.g. to start or stop containers) using the
<command>lxc</command> command line tool, among others.
Most of the time, you'll also want to start lxcfs, so
that containers can "see" the limits:
<code>
virtualisation.lxc.lxcfs.enable = true;
</code>
'';
};
package = mkOption {
type = types.package;
default = pkgs.lxd;
default = pkgs.lxd.override { nftablesSupport = config.networking.nftables.enable; };
defaultText = "pkgs.lxd";
description = ''
The LXD package to use.
@ -65,6 +70,7 @@ in
with nixos.
'';
};
recommendedSysctlSettings = mkOption {
type = types.bool;
default = false;
@ -83,7 +89,6 @@ in
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
security.apparmor = {
@ -115,6 +120,12 @@ in
LimitNOFILE = "1048576";
LimitNPROC = "infinity";
TasksMax = "infinity";
# By default, `lxd` loads configuration files from hard-coded
# `/usr/share/lxc/config` - since this is a no-go for us, we have to
# explicitly tell it where the actual configuration files are
Environment = mkIf (config.virtualisation.lxc.lxcfs.enable)
"LXD_LXC_TEMPLATE_CONFIG=${pkgs.lxcfs}/share/lxc/config";
};
};

View File

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

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 = {
apcupsd = {
exporterConfig = {
enable = true;
};
metricProvider = {
services.apcupsd.enable = true;
};
exporterTest = ''
wait_for_unit("apcupsd.service")
wait_for_open_port(3551)
wait_for_unit("prometheus-apcupsd-exporter.service")
wait_for_open_port(9162)
succeed("curl -sSf http://localhost:9162/metrics | grep -q 'apcupsd_info'")
'';
};
bind = {
exporterConfig = {
@ -202,6 +217,69 @@ let
'';
};
keylight = {
# A hardware device is required to properly test this exporter, so just
# perform a couple of basic sanity checks that the exporter is running
# and requires a target, but cannot reach a specified target.
exporterConfig = {
enable = true;
};
exporterTest = ''
wait_for_unit("prometheus-keylight-exporter.service")
wait_for_open_port(9288)
succeed(
"curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics | grep -q '400'"
)
succeed(
"curl -sS --write-out '%{http_code}' -o /dev/null http://localhost:9288/metrics?target=nosuchdevice | grep -q '500'"
)
'';
};
lnd = {
exporterConfig = {
enable = true;
lndTlsPath = "/var/lib/lnd/tls.cert";
lndMacaroonDir = "/var/lib/lnd";
};
metricProvider = {
systemd.services.prometheus-lnd-exporter.serviceConfig.DynamicUser = false;
services.bitcoind.enable = true;
services.bitcoind.extraConfig = ''
rpcauth=bitcoinrpc:e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7
bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
'';
systemd.services.lnd = {
serviceConfig.ExecStart = ''
${pkgs.lnd}/bin/lnd \
--datadir=/var/lib/lnd \
--tlscertpath=/var/lib/lnd/tls.cert \
--tlskeypath=/var/lib/lnd/tls.key \
--logdir=/var/log/lnd \
--bitcoin.active \
--bitcoin.mainnet \
--bitcoin.node=bitcoind \
--bitcoind.rpcuser=bitcoinrpc \
--bitcoind.rpcpass=hunter2 \
--bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \
--bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \
--readonlymacaroonpath=/var/lib/lnd/readonly.macaroon
'';
serviceConfig.StateDirectory = "lnd";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
};
};
exporterTest = ''
wait_for_unit("lnd.service")
wait_for_open_port(10009)
wait_for_unit("prometheus-lnd-exporter.service")
wait_for_open_port(9092)
succeed("curl -sSf localhost:9092/metrics | grep -q '^promhttp_metric_handler'")
'';
};
mail = {
exporterConfig = {
enable = true;

View File

@ -2,13 +2,14 @@
stdenv.mkDerivation rec {
pname = "artyFX";
version = "1.3";
# Fix build with lv2 1.18: https://github.com/openAVproductions/openAV-ArtyFX/pull/41/commits/492587461b50d140455aa3c98d915eb8673bebf0
version = "unstable-2020-04-28";
src = fetchFromGitHub {
owner = "openAVproductions";
repo = "openAV-ArtyFX";
rev = "release-${version}";
sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9";
rev = "492587461b50d140455aa3c98d915eb8673bebf0";
sha256 = "0wwg8ivnpyy0235bapjy4g0ij85zq355jwi6c1nkrac79p4z9ail";
};
nativeBuildInputs = [ pkgconfig ];

View File

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

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
}:
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
};
patches = [
# Fix build for lv2 1.18.0
(fetchpatch {
url = "http://cgit.drumgizmo.org/plugingizmo.git/patch/?id=be64ddf9da525cd5c6757464efc966052731ba71";
sha256 = "17w8g78i5avssc7m8rpw64ka3rai8dff81wfzir9cpxp8s2h44qf";
extraPrefix = "plugin/plugingizmo/";
stripLen = 1;
})
];
configureFlags = [ "--enable-lv2" ];
buildInputs = [

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)" ];
fixupPhase = ''

View File

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

View File

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

View File

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

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

View File

@ -15,6 +15,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
postPatch = ''
# Fix build with lv2 1.18: https://github.com/tomszilagyi/ir.lv2/pull/20
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
'';
postBuild = "make convert4chan";
installPhase = ''

View File

@ -1,29 +1,19 @@
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, makeWrapper
{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
, libsndfile, jack2Full
, libGLU, libGL, lv2, cairo
, ladspaH, php }:
stdenv.mkDerivation rec {
pname = "lsp-plugins";
version = "1.1.19";
version = "1.1.22";
src = fetchFromGitHub {
owner = "sadko4u";
repo = pname;
rev = "${pname}-${version}";
sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg";
sha256 = "0s0i0kf5nqxxywckg03fds1w7696ly60rnlljzqvp7qfgzps1r6c";
};
patches = [
# Fix build
# https://github.com/sadko4u/lsp-plugins/issues/104
(fetchpatch {
url = "https://github.com/sadko4u/lsp-plugins/commit/4d901135fb82fa95e668b4d55d05e405f5e620d2.patch";
excludes = [ "TODO.txt" ];
sha256 = "1s028gqvahvwm1px4xxxawrw2zrwyszb1aq93f0kspf3g7lq27f1";
})
];
nativeBuildInputs = [ pkgconfig php makeWrapper ];
buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];

View File

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

View File

@ -1,13 +1,12 @@
{ stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
stdenv.mkDerivation rec {
version = "3.2.6";
pname = "mp3blaster";
version = "3.2.6";
src = fetchFromGitHub {
owner = "stragulus";
repo = "mp3blaster";
repo = pname;
rev = "v${version}";
sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
};
@ -17,14 +16,17 @@ stdenv.mkDerivation rec {
libvorbis
] ++ stdenv.lib.optional stdenv.isDarwin SDL;
buildFlags = [ "CXXFLAGS=-Wno-narrowing" ];
NIX_CFLAGS_COMPILE = toString ([
"-Wno-narrowing"
] ++ stdenv.lib.optionals stdenv.cc.isClang [
"-Wno-reserved-user-defined-literal"
]);
meta = with stdenv.lib; {
description = "An audio player for the text console";
homepage = "http://www.mp3blaster.org/";
license = licenses.gpl2;
maintainers = with maintainers; [ earldouglas ];
platforms = platforms.all;
platforms = with platforms; linux ++ darwin;
};
}

View File

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

View File

@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ boost cairomm cmake libsndfile lv2 ntk python ];
postPatch = ''
# Fix build with lv2 1.18: https://github.com/brummer10/guitarix/commit/c0334c72
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
-exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
'';
installPhase = ''
make install
cp -a ../presets/* "$out/lib/lv2"

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
}:
@ -6,13 +6,15 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec {
pname = "yoshimi";
version = "1.7.0.1";
# Fix build with lv2 1.18: https://github.com/Yoshimi/yoshimi/pull/102/commits/86996cbb235f0fe138ae814a6758c2c8ba1c2a38
version = "unstable-2020-05-10";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2";
sha256 = "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c";
src = fetchFromGitHub {
owner = "Yoshimi";
repo = pname;
rev = "86996cbb235f0fe138ae814a6758c2c8ba1c2a38";
sha256 = "0bgcc5fbgwpdjircq00wlii30pakf45yzligpbnf02a554hh4j01";
};
buildInputs = [
alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU libGL
minixml zlib xorg.libpthreadstubs pcre

View File

@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.dash.org";
maintainers = with maintainers; [ AndersonTorres ];
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.";
cfg = {
version = "7.0.10-14";
sha256 = "1qcsq5884iqis1adpfbx3cwki8v4q9wwh70fpcaqnwwmznmqfq4j";
version = "7.0.10-17";
sha256 = "15cj9qkikx13j6gfqaawi4nh09lnzg3asf5mdcswx6z6yhbf90zx";
patches = [];
};
in

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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 : "${hicolor-icon-theme}/share" \
--prefix PERL5LIB ":" "$PERL5LIB" \
--set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
--prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
'';

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 {
pname = "abc-verifier";
version = "2020.03.05";
version = "2020.04.30";
src = fetchFromGitHub {
owner = "berkeley-abc";
repo = "abc";
rev = "ed90ce20df9c7c4d6e1db5d3f786f9b52e06bab1";
sha256 = "01sw67pkrb6wzflkxbkxzwsnli3nvp0yxwp3j1ngb3c0j86ri437";
rev = "fd2c9b1c19216f6b756f88b18f5ca67b759ca128";
sha256 = "1d18pkpsx0nlzl3a6lyfdnpk4kixjmgswy6cp5fbrkpp4rf1gahi";
};
nativeBuildInputs = [ cmake ];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
, libjpeg, libtiff, libungif, libpng, imlib, expat
, freetype, fontconfig, pkgconfig, gdk-pixbuf
, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib
, mkfontdir, libX11, libXft, libXext, libXinerama
, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
buildInputs = [
gettext libjpeg libtiff libungif libpng imlib expat
freetype fontconfig gdk-pixbuf mkfontdir libX11
freetype fontconfig gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11
libXft libXext libXinerama libXrandr libICE libSM libXpm
libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi
libXdamage libXcomposite libXfixes

View File

@ -42,10 +42,11 @@ stdenv.mkDerivation rec {
- Resize windows interactively with Alt+Button3 drag (right mouse button)
- Raise windows with Alt+F1 (not high on usability I know, but I needed a
keybinding in there somewhere)
- Focus windows with the mouse pointer (X does this on its own)
- Focus windows with the mouse pointer (X does this on its own)
'';
homepage = "http://incise.org/tinywm.html";
maintainers = with maintainers; [ AndersonTorres ];
platforms = libX11.meta.platforms;
license = licenses.publicDomain;
};
}

View File

@ -174,7 +174,7 @@ runCommand
mkdir -p $out/share
# Link icons and desktop files into place
for dir in applications icons info man; do
for dir in applications icons info man emacs; do
ln -s $emacs/share/$dir $out/share/$dir
done
''

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
diff --git a/installed-tests/meson.build b/installed-tests/meson.build
index 294d20c6..1e5029e0 100644
index 7e842025..1e5029e0 100644
--- a/installed-tests/meson.build
+++ b/installed-tests/meson.build
@@ -1,7 +1,7 @@
@ -12,6 +12,19 @@ index 294d20c6..1e5029e0 100644
# Simple shell script tests #
diff --git a/meson.build b/meson.build
index 084d5396..e5d73fcd 100644
--- a/meson.build
+++ b/meson.build
@@ -540,7 +540,7 @@ install_data('installed-tests/extra/lsan.supp',
install_dir: get_option('datadir') / api_name / 'lsan')
if get_option('installed_tests')
- schemadir = abs_datadir / 'glib-2.0' / 'schemas'
+ schemadir = get_option('installed_test_prefix') / 'share' / 'glib-2.0' / 'schemas'
install_data('installed-tests/js/org.gnome.GjsTest.gschema.xml', install_dir: schemadir)
meson.add_install_script('build/compile-gschemas.py', schemadir)
endif
diff --git a/meson_options.txt b/meson_options.txt
index 66f66024..008687cb 100644
--- a/meson_options.txt

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')
APPENDDEF(\`confENVDEF', \`-DNETINET6')
EOF
export MILTER_SOVER=1
sh Build -f ./a.m4
'';
patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ];
patches = [ ./install.patch ./sharedlib.patch ./glibc-2.30.patch ./darwin.patch ];
nativeBuildInputs = [ m4 ];

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
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
+define(`confSOEXT', ifdef(`confSOEXT', `confSOEXT', `so'))dnl
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.'confSOEXT bldCURRENT_PRODUCT`.a')dnl
+bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
+
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
+divert(bldTARGETS_SECTION)
+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
+bldCURRENT_PRODUCT`.'confSOEXT: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.confSOEXT ifdef(`confSONAME',`-Wl,confSONAME,bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}') ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
+bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
+ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
+
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a
+ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ')
+ ${INSTALL} -c bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}"
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so"
+ ${INSTALL} -c bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
+ ${INSTALL} -c bldCURRENT_PRODUCT.confSOEXT "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER}"
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.confSOEXT.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.confSOEXT"
+ ${INSTALL} -c -m 644 bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
+
+bldCURRENT_PRODUCT-clean:
+ rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES}
+ rm -f ${OBJS} bldCURRENT_PRODUCT.confSOEXT bldCURRENT_PRODUCT.a ${MANPAGES}
+
+divert(0)
+COPTS+= confCCOPTS_SO

View File

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

View File

@ -66,6 +66,7 @@ in stdenv.mkDerivation rec {
"USE_SYSTEM_ZLIB=1"
"NSS_USE_SYSTEM_SQLITE=1"
"NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
# Pass in CPU even if we're not cross compiling, because otherwise it tries to guess with
# uname, which can be wrong if e.g. we're compiling for aarch32 on aarch64
"OS_TEST=${cpu}"

View File

@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitLab
, fetchpatch
, meson
, ninja
, pkgconfig
@ -44,6 +45,13 @@ stdenv.mkDerivation rec {
sha256 = "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3";
};
patches = [ (fetchpatch {
# Brought by https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/263,
# should be part of > 0.3.6
url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d1162f28efd502fcb973e172867970f5cc8d7a6b.patch";
sha256 = "0ng34yin5726cvv0nll1b2xigyq6mj6j516l3xi0ys1i2g2fyby9";
})];
nativeBuildInputs = [
doxygen
graphviz

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@
, gzip
, bzip2
, gnutar
, p7zip
, cabextract
, lzma
, nose
@ -28,7 +29,7 @@ buildPythonPackage {
sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
};
propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar cabextract lzma pycrypto ]
propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
++ stdenv.lib.optional visualizationSupport pyqtgraph;
# setup.py only installs version.py during install, not test

View File

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

View File

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

View File

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

View File

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

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 {
pname = "ktlint";
version = "0.37.0";
version = "0.37.1";
src = fetchurl {
url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
sha256 = "1z2hvhcrz1rj9g8749x640axrf529wk361pckwb4ihn43c19ajpf";
sha256 = "0i5frcy3ya1qwq0hl67gq6fgz0c8vgskgha25irsw7j2ndf4qp8i";
};
nativeBuildInputs = [ makeWrapper ];

View File

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

View File

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

View File

@ -1,17 +1,26 @@
{ lib, buildGoModule, fetchFromGitHub }:
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec {
pname = "yq-go";
version = "3.3.0";
version = "3.3.1";
src = fetchFromGitHub {
owner = "mikefarah";
rev = version;
repo = "yq";
sha256 = "1jll5nmskvs61031h3sizhv3scv8znrr9apyc4qlxcp4jiv7xpmp";
sha256 = "0fr6zwnij3r53dqdw43qfmp4nw26gv6zmj066l44fazka4fl25i6";
};
vendorSha256 = "0rlvbyhl53x1bhwr7f7zs4swa580saak19z3d3g58srq3jyw6zlc";
vendorSha256 = "1bjy3qr26zndr3dhh9gd33rhm5gy779525qgzjw4a4mla0p2q6kl";
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
for shell in bash fish zsh; do
$out/bin/yq shell-completion --variation $shell > yq.$shell
installShellCompletion yq.$shell
done
'';
meta = with lib; {
description = "Portable command-line YAML processor";
@ -19,4 +28,4 @@ buildGoModule rec {
license = [ licenses.mit ];
maintainers = [ maintainers.lewo ];
};
}
}

View File

@ -3,52 +3,34 @@
, fetchFromGitHub
, rust
, rustPlatform
, python27
, installShellFiles
, Security
, CoreServices
}:
let
pname = "deno";
version = "1.0.0";
denoSrc = fetchFromGitHub {
owner = "denoland";
repo = pname;
rev = "v${version}";
sha256 = "0k8mqy1hf9hkp60jhd0x4z814y36g51083b3r7prc69ih2523hd1";
fetchSubmodules = true;
};
cargoSha256 = "1fjl07qqvl1f20qazcqxh32xmdfh80jni7i3jzvz6vgsfw1g5cmk";
rustyV8Lib = fetchlib "rusty_v8" "0.4.2" {
x86_64-linux = "1ac6kv3kv087df6kdgfd7kbh24187cg9z7xhbz6rw6jjv4ci2zbi";
aarch64-linux = "06iyjx4p4vp2i81wdy0vxai2k18pki972ff7k0scjqrgmnav1p8k";
x86_64-darwin = "02hwbpsqdzb9mvfndgykvv44f1jig3w3a26l0h26hs5shsrp47jv";
};
deps = import ./deps.nix { };
arch = rust.toRustTarget stdenv.hostPlatform;
fetchlib = name: version: sha256: fetchurl {
url = "https://github.com/denoland/${name}/releases/download/v${version}/librusty_v8_release_${arch}.a";
sha256 = sha256."${stdenv.hostPlatform.system}";
rustyV8Lib = with deps.rustyV8Lib; fetchurl {
url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
sha256 = sha256s."${stdenv.hostPlatform.system}";
meta = { inherit version; };
};
in
rustPlatform.buildRustPackage rec {
inherit pname version cargoSha256;
pname = "deno";
version = "1.0.5";
src = denoSrc;
src = fetchFromGitHub {
owner = "denoland";
repo = pname;
rev = "v${version}";
sha256 = "1hlmgcppr01bddvp28js010hhlzyx2lm7g7lq9nrcjazfw7kd2pf";
fetchSubmodules = true;
};
cargoSha256 = "1jqaryr7np6h65a1bqr952h0vllsvd6v6v6wvivc7933dcbhdal4";
nativeBuildInputs = [
# chromium/V8 requires python 2.7, we're not building V8 from source
# but as a result rusty_v8's download script also uses python 2.7
# tracking issue: https://bugs.chromium.org/p/chromium/issues/detail?id=942720
python27
# Install completions post-install
installShellFiles
];
# Install completions post-install
nativeBuildInputs = [ installShellFiles ];
buildInputs = with stdenv.lib; [ ]
++ optionals stdenv.isDarwin [ Security CoreServices ];
@ -56,16 +38,6 @@ rustPlatform.buildRustPackage rec {
# The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
# To avoid this we pre-download the file and place it in the locations it will require it in advance
preBuild = ''
# Check the rusty_v8 lib downloaded matches the Cargo.lock file
rusty_v8_ver="$(grep 'name = "rusty_v8"' -A 1 Cargo.lock | grep "version =" | cut -d\" -f2)"
if [ "${rustyV8Lib.meta.version}" != "$rusty_v8_ver" ]; then
printf "%s\n" >&2 \
"version mismatch between 'rusty_v8' in Cargo.lock and downloaded library:" \
" wanted: ${rustyV8Lib.meta.version}" \
" got: $rusty_v8_ver"
exit 1
fi;
_rusty_v8_setup() {
for v in "$@"; do
dir="target/$v/gn_out/obj"
@ -77,40 +49,9 @@ rustPlatform.buildRustPackage rec {
_rusty_v8_setup "debug" "release" "${arch}/release"
'';
# Set home to existing env var TMP dir so tests that write there work correctly
preCheck = ''
export HOME="$TMPDIR"
'';
checkFlags = [
# Strace not allowed on hydra
"--skip benchmark_test"
# Tests that try to write to `/build/source/target/debug`
"--skip _017_import_redirect"
"--skip https_import"
"--skip js_unit_tests"
"--skip lock_write_fetch"
# Cargo test runs a deno test on the std lib with sub-benchmarking-tests,
# The sub-sub-tests that are failing:
# forAwaitFetchDenolandX10, promiseAllFetchDenolandX10is
# Trying to access https://deno.land/ on build's limited network access
"--skip std_tests"
# Fails on aarch64 machines
# tracking issue: https://github.com/denoland/deno/issues/5324
"--skip run_v8_flags"
# Skip for multiple reasons:
# downloads x86_64 binary on aarch64 machines
# tracking issue: https://github.com/denoland/deno/pull/5402
# downloads a binary that needs ELF patching & tries to run imediately
# upgrade will likely never work with nix as it tries to replace itself
# code: https://github.com/denoland/deno/blob/v1.0.0/cli/upgrade.rs#L211
"--skip upgrade_in_tmpdir"
"--skip upgrade_with_version_in_tmpdir"
];
# Tests have some inconsistencies between runs with output integration tests
# Skipping until resolved
doCheck = false;
# TODO: Move to enhanced installShellCompletion when merged: PR #83630
postInstall = ''
@ -120,8 +61,11 @@ rustPlatform.buildRustPackage rec {
installShellCompletion deno.{bash,fish} --zsh _deno
'';
passthru.updateScript = ./update/update.ts;
meta = with stdenv.lib; {
homepage = "https://deno.land/";
changelog = "${src.meta.homepage}/releases/tag/v${version}";
description = "A secure runtime for JavaScript and TypeScript";
longDescription = ''
Deno aims to be a productive and secure scripting environment for the modern programmer.

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