From 178f455494ff02e1fcf37e7a6c7acedad754e01f Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Sun, 5 May 2019 17:23:32 +0900 Subject: [WIP] usb_modeswitch --- nixos/modules/hardware/usb-wwan.nix | 13 + .../configurable-usb-modeswitch.patch | 294 +++++++++++++++++++++ .../development/tools/misc/usb-modeswitch/data.nix | 7 +- .../tools/misc/usb-modeswitch/default.nix | 30 ++- 4 files changed, 334 insertions(+), 10 deletions(-) create mode 100644 pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch diff --git a/nixos/modules/hardware/usb-wwan.nix b/nixos/modules/hardware/usb-wwan.nix index 2d20421586a..679a6c6497c 100644 --- a/nixos/modules/hardware/usb-wwan.nix +++ b/nixos/modules/hardware/usb-wwan.nix @@ -21,6 +21,19 @@ with lib; ###### implementation config = mkIf config.hardware.usbWwan.enable { + # Attaches device specific handlers. services.udev.packages = with pkgs; [ usb-modeswitch-data ]; + + # Triggered by udev, usb-modeswitch creates systemd services via a + # template unit in the usb-modeswitch package. + systemd.packages = with pkgs; [ usb-modeswitch ]; + + # The systemd service requires the usb-modeswitch-data. The + # usb-modeswitch package intends to discover this via the + # filesystem at /usr/share/usb_modeswitch, and merge it with user + # configuration in /etc/usb_modeswitch.d. Configuring the correct + # path in the package is difficult, as it would cause a cyclic + # dependency. + environment.etc."usb_modeswitch.d".source = "${pkgs.usb-modeswitch-data}/share/usb_modeswitch"; }; } diff --git a/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch b/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch new file mode 100644 index 00000000000..3f96cfa7575 --- /dev/null +++ b/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch @@ -0,0 +1,294 @@ +diff --git a/Makefile b/Makefile +index 463a11f..f20072c 100644 +--- a/Makefile ++++ b/Makefile +@@ -5,11 +5,11 @@ CFLAGS += -Wall + LIBS = `pkg-config --libs --cflags libusb-1.0` + RM = /bin/rm -f + OBJS = usb_modeswitch.c +-PREFIX = $(DESTDIR)/usr +-ETCDIR = $(DESTDIR)/etc ++PREFIX = /usr/local ++ETCDIR = $(PREFIX)/etc + SYSDIR = $(ETCDIR)/systemd/system + UPSDIR = $(ETCDIR)/init +-UDEVDIR = $(DESTDIR)/lib/udev ++UDEVDIR = $(PREFIX)/lib/udev + SBINDIR = $(PREFIX)/sbin + MANDIR = $(PREFIX)/share/man/man1 + VPATH = jimtcl +@@ -22,10 +22,17 @@ endif + JIM_CONFIGURE_OPTS = --disable-lineedit \ + --with-out-jim-ext="stdlib posix load signal syslog" --prefix=/usr + ++USE_UPSTART=$(shell if command -v initctl > /dev/null; then echo "true"; fi) ++USE_SYSTEMD=$(shell if command -v systemctl > /dev/null; then echo "true"; fi) ++ + .PHONY: clean install install-common uninstall \ + script shared static \ + dispatcher-script dispatcher-shared dispatcher-static \ +- install-script install-shared install-static ++ install-script install-shared install-static \ ++ install-upstart install-systemd \ ++ configure-dispatcher configure-script \ ++ configure-upstart configure-systemd \ ++ configure + + all: script + +@@ -46,7 +53,25 @@ jim/libjim.a: + cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS) + $(MAKE) -C jim lib + +-dispatcher-script: usb_modeswitch.tcl ++configure-dispatcher: ++ sed -i \ ++ -e 's,^\(set setup(sbindir) \).*$$,\1$(SBINDIR),' \ ++ -e 's,^\(set setup(etcdir) \).*$$,\1$(ETCDIR),' \ ++ usb_modeswitch.tcl ++ ++configure-script: ++ sed -i -e 's,^\(SBINDIR=\).*$$,\1$(SBINDIR),' usb_modeswitch.sh ++ ++configure-systemd: ++ sed -i -e 's,@sbindir@,$(SBINDIR),' usb_modeswitch@.service ++ ++configure-upstart: ++ sed -i -e 's,@sbindir@,$(SBINDIR),' usb-modeswitch-upstart.conf ++ ++configure: configure-dispatcher configure-script \ ++ configure-systemd configure-upstart ++ ++dispatcher-script: configure-dispatcher usb_modeswitch.tcl + sed 's_!/usr/bin/tclsh_!'"$(TCL)"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher + + dispatcher-shared: jim/libjim.so dispatcher.c usb_modeswitch.string +@@ -55,7 +80,7 @@ dispatcher-shared: jim/libjim.so dispatcher.c usb_modeswitch.string + dispatcher-static: jim/libjim.a dispatcher.c usb_modeswitch.string + $(CC) dispatcher.c $(LDFLAGS) jim/libjim.a -Ijim -o usb_modeswitch_dispatcher $(CFLAGS) + +-usb_modeswitch.string: usb_modeswitch.tcl ++usb_modeswitch.string: configure-dispatcher usb_modeswitch.tcl + $(HOST_TCL) make_string.tcl usb_modeswitch.tcl > $@ + + clean: +@@ -76,16 +101,28 @@ ums-clean: + # If the systemd folder is present, install the service for starting the dispatcher + # If not, use the dispatcher directly from the udev rule as in previous versions + +-install-common: $(PROG) usb_modeswitch_dispatcher +- install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch +- install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch +- install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf +- install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1 +- install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1 +- install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher ++install-common: $(PROG) configure usb_modeswitch_dispatcher ++ install -D --mode=755 usb_modeswitch $(DESTDIR)$(SBINDIR)/usb_modeswitch ++ install -D --mode=755 usb_modeswitch.sh $(DESTDIR)$(UDEVDIR)/usb_modeswitch ++ install -D --mode=644 usb_modeswitch.conf $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf ++ install -D --mode=644 usb_modeswitch.1 $(DESTDIR)$(MANDIR)/usb_modeswitch.1 ++ install -D --mode=644 usb_modeswitch_dispatcher.1 $(DESTDIR)$(MANDIR)/usb_modeswitch_dispatcher.1 ++ install -D --mode=755 usb_modeswitch_dispatcher $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher + install -d $(DESTDIR)/var/lib/usb_modeswitch +- test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1 +- test -d $(SYSDIR) -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1 ++ ++install-upstart: ++ install -D --mode=644 usb-modeswitch-upstart.conf $(DESTDIR)$(UPSDIR)/usb-modeswitch-upstart.conf ++ ++install-systemd: ++ install -D --mode=644 usb_modeswitch@.service $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service ++ ++ifeq ($(USE_UPSTART),true) ++install-common: install-upstart ++endif ++ ++ifeq ($(USE_SYSTEMD),true) ++install-common: install-systemd ++endif + + install: install-script + +@@ -96,10 +133,10 @@ install-shared: dispatcher-shared install-common + install-static: dispatcher-static install-common + + uninstall: +- $(RM) $(SBINDIR)/usb_modeswitch +- $(RM) $(SBINDIR)/usb_modeswitch_dispatcher +- $(RM) $(UDEVDIR)/usb_modeswitch +- $(RM) $(ETCDIR)/usb_modeswitch.conf +- $(RM) $(MANDIR)/usb_modeswitch.1 ++ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch ++ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher ++ $(RM) $(DESTDIR)$(UDEVDIR)/usb_modeswitch ++ $(RM) $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf ++ $(RM) $(DESTDIR)$(MANDIR)/usb_modeswitch.1 + $(RM) -R $(DESTDIR)/var/lib/usb_modeswitch +- $(RM) $(SYSDIR)/usb_modeswitch@.service ++ $(RM) $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service +diff --git a/usb-modeswitch-upstart.conf b/usb-modeswitch-upstart.conf +index 0d82b69..1c177b4 100644 +--- a/usb-modeswitch-upstart.conf ++++ b/usb-modeswitch-upstart.conf +@@ -1,5 +1,5 @@ + start on usb-modeswitch-upstart + task + script +- exec /usr/sbin/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM ++ exec @sbindir@/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM + end script +diff --git a/usb_modeswitch.sh b/usb_modeswitch.sh +index eb3fa3e..0e93166 100755 +--- a/usb_modeswitch.sh ++++ b/usb_modeswitch.sh +@@ -1,5 +1,9 @@ + #!/bin/sh + # part of usb_modeswitch 2.5.2 ++ ++# Compile time configuration, injected by the Makefile ++SBINDIR=/usr/sbin ++ + device_in() + { + if [ ! -e /var/lib/usb_modeswitch/$1 ]; then +@@ -37,7 +41,7 @@ if [ $(expr "$1" : "--.*") ]; then + v_id=$3 + fi + fi +-PATH=/sbin:/usr/sbin:$PATH ++ + case "$1" in + --driver-bind) + # driver binding code removed +@@ -46,9 +50,7 @@ case "$1" in + --symlink-name) + device_in "link_list" $v_id $p_id + if [ "$?" = "1" ]; then +- if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then +- exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null +- fi ++ exec $SBINDIR/usb_modeswitch_dispatcher $1 $2 2>>/dev/null + fi + exit 0 + ;; +@@ -61,15 +63,13 @@ if [ "$p2" = "" -a "$p1" != "" ]; then + p2=$p1 + fi + +-PATH=/bin:/sbin:/usr/bin:/usr/sbin +-init_path=`readlink -f /sbin/init` +-if [ `basename $init_path` = "systemd" ]; then ++if command -v systemctl > /dev/null; then + systemctl --no-block start usb_modeswitch@$p2.service +-elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then ++elif command -v initctl > /dev/null; then + initctl emit --no-wait usb-modeswitch-upstart UMS_PARAM=$p2 + else + # only old distros, new udev will kill all subprocesses + exec 1<&- 2<&- 5<&- 7<&- +- exec usb_modeswitch_dispatcher --switch-mode $p2 & ++ exec $SBINDIR/usb_modeswitch_dispatcher --switch-mode $p2 & + fi + exit 0 +diff --git a/usb_modeswitch.tcl b/usb_modeswitch.tcl +index d2ee50c..8a48751 100755 +--- a/usb_modeswitch.tcl ++++ b/usb_modeswitch.tcl +@@ -12,6 +12,16 @@ + # Part of usb-modeswitch-2.5.2 package + # (C) Josua Dietze 2009-2017 + ++# Compile-time configuration, injected by the Makefile. ++set setup(sbindir) /usr/sbin ++set setup(etcdir) /etc ++ ++# External dependency default location ++set setup(dbdir) /usr/share/usb_modeswitch ++ ++# Derived configuration ++set setup(dbdir_etc) $setup(etcdir)/usb_modeswitch.d ++ + set arg0 [lindex $argv 0] + if [regexp {\.tcl$} $arg0] { + if [file exists $arg0] { +@@ -91,10 +101,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]} { + } + set flags(logwrite) 1 + +-set setup(dbdir) /usr/share/usb_modeswitch +-set setup(dbdir_etc) /etc/usb_modeswitch.d + if {![file exists $setup(dbdir)] && ![file exists $setup(dbdir_etc)]} { +- Log "\nError: no config database found in /usr/share or /etc. Exit" ++ Log "\nError: no config database found in $setup(dbdir) or $setup(dbdir_etc). Exit" + SafeExit + } + +@@ -261,7 +269,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNumConfigurations) > 1} { + if [CheckMBIM] { + Log " driver for MBIM devices is available" + Log "Find MBIM configuration number ..." +- if [catch {set cfgno [exec /usr/sbin/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] { ++ if [catch {set cfgno [exec $setup(sbindir)/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] { + Log "Error when trying to find MBIM configuration, switch to legacy modem mode" + } else { + set cfgno [string trim $cfgno] +@@ -297,7 +305,7 @@ if {$report == ""} { + # Now we are actually switching + if $flags(logging) { + Log "Command line:\nusb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f \$flags(config)" +- catch {set report [exec /usr/sbin/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report ++ catch {set report [exec $setup(sbindir)/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report + Log "\nVerbose debug output of usb_modeswitch and libusb follows" + Log "(Note that some USB errors are to be expected in the process)" + Log "--------------------------------" +@@ -305,7 +313,7 @@ if {$report == ""} { + Log "--------------------------------" + Log "(end of usb_modeswitch output)\n" + } else { +- catch {set report [exec /usr/sbin/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report ++ catch {set report [exec $setup(sbindir)/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report + } + } + +@@ -498,9 +506,9 @@ return 1 + + proc {ParseGlobalConfig} {} { + +-global flags ++global flags setup + set configFile "" +-set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch] ++set places [list $setup(etcdir)/usb_modeswitch.conf $setup(etcdir)/sysconfig/usb_modeswitch $setup(etcdir)/default/usb_modeswitch] + foreach cfg $places { + if [file exists $cfg] { + set configFile $cfg +@@ -897,10 +905,12 @@ proc {SysLog} {msg} { + + global flags + if {![info exists flags(logger)]} { +- set flags(logger) "" +- foreach fn {/bin/logger /usr/bin/logger} { +- if [file exists $fn] { +- set flags(logger) $fn ++ set flags(logger) [exec sh -c "command -v logger || true"] ++ if {$flags(logger) == ""} { ++ foreach fn {/bin/logger /usr/bin/logger} { ++ if [file exists $fn] { ++ set flags(logger) $fn ++ } + } + } + Log "Logger is $flags(logger)" +diff --git a/usb_modeswitch@.service b/usb_modeswitch@.service +index f74a8bf..90cb96a 100644 +--- a/usb_modeswitch@.service ++++ b/usb_modeswitch@.service +@@ -3,6 +3,6 @@ Description=USB_ModeSwitch_%i + + [Service] + Type=oneshot +-ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode %i ++ExecStart=@sbindir@/usb_modeswitch_dispatcher --switch-mode %i + #ExecStart=/bin/echo %i + diff --git a/pkgs/development/tools/misc/usb-modeswitch/data.nix b/pkgs/development/tools/misc/usb-modeswitch/data.nix index 0fa854f9b2a..a232c3e0063 100644 --- a/pkgs/development/tools/misc/usb-modeswitch/data.nix +++ b/pkgs/development/tools/misc/usb-modeswitch/data.nix @@ -9,10 +9,13 @@ stdenv.mkDerivation rec { sha256 = "0b1wari3aza6qjggqd0hk2zsh93k1q8scgmwh6f8wr0flpr3whff"; }; - inherit (usb-modeswitch) makeFlags; + makeFlags = [ + "PREFIX=$(out)" + "DESTDIR=$(out)" + ]; prePatch = '' - sed -i 's@usb_modeswitch@${usb-modeswitch}/bin/usb_modeswitch@g' 40-usb_modeswitch.rules + sed -i 's@usb_modeswitch@${usb-modeswitch}/lib/udev/usb_modeswitch@g' 40-usb_modeswitch.rules ''; # we add tcl here so we can patch in support for new devices by dropping config into diff --git a/pkgs/development/tools/misc/usb-modeswitch/default.nix b/pkgs/development/tools/misc/usb-modeswitch/default.nix index d34a94e0467..02a62594b15 100644 --- a/pkgs/development/tools/misc/usb-modeswitch/default.nix +++ b/pkgs/development/tools/misc/usb-modeswitch/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchurl, pkgconfig, libusb1 }: +{ stdenv, lib, fetchurl, pkgconfig, makeWrapper +, libusb1, tcl, utillinux, coreutils, bash }: stdenv.mkDerivation rec { name = "usb-modeswitch-${version}"; @@ -9,19 +10,32 @@ stdenv.mkDerivation rec { sha256 = "19ifi80g9ns5dmspchjvfj4ykxssq9yrci8m227dgb3yr04srzxb"; }; + patches = [ ./configurable-usb-modeswitch.patch ]; + + # Remove attempts to write to /etc and /var/lib. + postPatch = '' + sed -i \ + -e '/^\tinstall .* usb_modeswitch.conf/s,$(ETCDIR),$(out)/etc,' \ + -e '\,^\tinstall -d .*/var/lib/usb_modeswitch,d' \ + Makefile + ''; + makeFlags = [ - "DESTDIR=$(out)" "PREFIX=$(out)" + "ETCDIR=/etc" + "USE_UPSTART=false" + "USE_SYSTEMD=true" + "SYSDIR=$(out)/lib/systemd/system" + "UDEVDIR=$(out)/lib/udev" ]; - # make clean: we always build from source. It should be necessary on x86_64 only - preConfigure = '' - find -type f | xargs sed 's@/bin/rm@rm@g' -i - make clean + postFixup = '' + wrapProgram $out/bin/usb_modeswitch_dispatcher \ + --set PATH ${lib.makeBinPath [ utillinux coreutils bash ]} ''; - buildInputs = [ libusb1 ]; - nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libusb1 tcl ]; + nativeBuildInputs = [ pkgconfig makeWrapper ]; meta = with stdenv.lib; { description = "A mode switching tool for controlling 'multi-mode' USB devices"; -- cgit 1.4.1 From 03c43615990942d58a4c02f36ce13c66181614ff Mon Sep 17 00:00:00 2001 From: Andrew Childs Date: Sat, 11 Jan 2020 22:56:01 +0900 Subject: libretro.snes9x: 29b78d -> 04692e Upstream has broken git history [1], so the current version cannot be fetched. The required patches have been upstreamed [2], and we hope that upstream will be more careful with their git history. The previous commit can still be viewed on github [3], but is not the ancestor of any fetchable ref. [1] https://github.com/libretro/snes9x/issues/199 [2] https://github.com/snes9xgit/snes9x/pull/588 [3] https://github.com/libretro/snes9x/commit/29b78df8c9f0f48ed4605d08a187a134b3b316d6 --- pkgs/misc/emulators/retroarch/cores.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix index 45ed31168f0..2176d53628f 100644 --- a/pkgs/misc/emulators/retroarch/cores.nix +++ b/pkgs/misc/emulators/retroarch/cores.nix @@ -786,10 +786,11 @@ in with stdenv.lib.licenses; snes9x = (mkLibRetroCore rec { core = "snes9x"; - src = fetchRetro { + src = fetchFromGitHub { + owner = "snes9xgit"; repo = core; - rev = "29b78df8c9f0f48ed4605d08a187a134b3b316d6"; - sha256 = "004h1pkxvbn4zlh8bqs6z17k04jw5wzbwklpgvmb7hbxshsi4qid"; + rev = "04692e1ee45cc647423774ee17c63208c2713638"; + sha256 = "09p9m85fxwrrrapjb08rcxknpgq5d6a87arrm1jn94r56glxlcfa"; }; description = "Port of SNES9x git to libretro"; license = "Non-commercial"; -- cgit 1.4.1 From 78aec9cfcb119f10b765d9a43e2a1ba6ce77837d Mon Sep 17 00:00:00 2001 From: 0x4A6F <0x4A6F@users.noreply.github.com> Date: Sat, 14 Dec 2019 01:17:49 +0100 Subject: nixosTests.xandikos: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/xandikos.nix | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 nixos/tests/xandikos.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 3f6921e0f4d..9d96bb22f4d 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -294,6 +294,7 @@ in wireguard-generated = handleTest ./wireguard/generated.nix {}; wireguard-namespaces = handleTest ./wireguard/namespaces.nix {}; wordpress = handleTest ./wordpress.nix {}; + xandikos = handleTest ./xandikos.nix {}; xautolock = handleTest ./xautolock.nix {}; xfce = handleTest ./xfce.nix {}; xmonad = handleTest ./xmonad.nix {}; diff --git a/nixos/tests/xandikos.nix b/nixos/tests/xandikos.nix new file mode 100644 index 00000000000..0fded20ff1a --- /dev/null +++ b/nixos/tests/xandikos.nix @@ -0,0 +1,70 @@ +import ./make-test-python.nix ( + { pkgs, lib, ... }: + + { + name = "xandikos"; + + meta.maintainers = [ lib.maintainers."0x4A6F" ]; + + nodes = { + xandikos_client = {}; + xandikos_default = { + networking.firewall.allowedTCPPorts = [ 8080 ]; + services.xandikos.enable = true; + }; + xandikos_proxy = { + networking.firewall.allowedTCPPorts = [ 80 8080 ]; + services.xandikos.enable = true; + services.xandikos.address = "localhost"; + services.xandikos.port = 8080; + services.xandikos.routePrefix = "/xandikos/"; + services.xandikos.extraOptions = [ + "--defaults" + ]; + services.nginx = { + enable = true; + recommendedProxySettings = true; + virtualHosts."xandikos" = { + serverName = "xandikos.local"; + basicAuth.xandikos = "snakeOilPassword"; + locations."/xandikos/" = { + proxyPass = "http://localhost:8080/"; + }; + }; + }; + }; + }; + + testScript = '' + start_all() + + with subtest("Xandikos default"): + xandikos_default.wait_for_unit("multi-user.target") + xandikos_default.wait_for_unit("xandikos.service") + xandikos_default.wait_for_open_port(8080) + xandikos_default.succeed("curl --fail http://localhost:8080/") + xandikos_default.succeed( + "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + ) + xandikos_client.wait_for_unit("network.target") + xandikos_client.fail("curl --fail http://xandikos_default:8080/") + + with subtest("Xandikos proxy"): + xandikos_proxy.wait_for_unit("multi-user.target") + xandikos_proxy.wait_for_unit("xandikos.service") + xandikos_proxy.wait_for_open_port(8080) + xandikos_proxy.succeed("curl --fail http://localhost:8080/") + xandikos_proxy.succeed( + "curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos" + ) + xandikos_client.wait_for_unit("network.target") + xandikos_client.fail("curl --fail http://xandikos_proxy:8080/") + xandikos_client.succeed( + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos" + ) + xandikos_client.succeed( + "curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos" + ) + ''; + } +) -- cgit 1.4.1 From c9ca370e327c9191fb8ca9674d1acb2d6ac4736d Mon Sep 17 00:00:00 2001 From: 0x4A6F <0x4A6F@users.noreply.github.com> Date: Sat, 14 Dec 2019 01:18:44 +0100 Subject: nixos/xandikos: init --- nixos/modules/module-list.nix | 1 + nixos/modules/services/networking/xandikos.nix | 148 +++++++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 nixos/modules/services/networking/xandikos.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 1abf87dfcc6..b738a86e523 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -735,6 +735,7 @@ ./services/networking/wicd.nix ./services/networking/wireguard.nix ./services/networking/wpa_supplicant.nix + ./services/networking/xandikos.nix ./services/networking/xinetd.nix ./services/networking/xl2tpd.nix ./services/networking/xrdp.nix diff --git a/nixos/modules/services/networking/xandikos.nix b/nixos/modules/services/networking/xandikos.nix new file mode 100644 index 00000000000..87c029156b9 --- /dev/null +++ b/nixos/modules/services/networking/xandikos.nix @@ -0,0 +1,148 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xandikos; +in +{ + + options = { + services.xandikos = { + enable = mkEnableOption "Xandikos CalDAV and CardDAV server"; + + package = mkOption { + type = types.package; + default = pkgs.xandikos; + defaultText = "pkgs.xandikos"; + description = "The Xandikos package to use."; + }; + + address = mkOption { + type = types.str; + default = "localhost"; + description = '' + The IP address on which Xandikos will listen. + By default listens on localhost. + ''; + }; + + port = mkOption { + type = types.port; + default = 8080; + description = "The port of the Xandikos web application"; + }; + + routePrefix = mkOption { + type = types.str; + default = "/"; + description = '' + Path to Xandikos. + Useful when Xandikos is behind a reverse proxy. + ''; + }; + + extraOptions = mkOption { + default = []; + type = types.listOf types.str; + example = literalExample '' + [ "--autocreate" + "--defaults" + "--current-user-principal user" + "--dump-dav-xml" + ] + ''; + description = '' + Extra command line arguments to pass to xandikos. + ''; + }; + + nginx = mkOption { + default = {}; + description = '' + Configuration for nginx reverse proxy. + ''; + + type = types.submodule { + options = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Configure the nginx reverse proxy settings. + ''; + }; + + hostName = mkOption { + type = types.str; + description = '' + The hostname use to setup the virtualhost configuration + ''; + }; + }; + }; + }; + + }; + + }; + + config = mkIf cfg.enable ( + mkMerge [ + { + meta.maintainers = [ lib.maintainers."0x4A6F" ]; + + systemd.services.xandikos = { + description = "A Simple Calendar and Contact Server"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + User = "xandikos"; + Group = "xandikos"; + DynamicUser = "yes"; + RuntimeDirectory = "xandikos"; + StateDirectory = "xandikos"; + StateDirectoryMode = "0700"; + PrivateDevices = true; + # Sandboxing + CapabilityBoundingSet = "CAP_NET_RAW CAP_NET_ADMIN"; + ProtectSystem = "strict"; + ProtectHome = true; + PrivateTmp = true; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectControlGroups = true; + RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_PACKET AF_NETLINK"; + RestrictNamespaces = true; + LockPersonality = true; + MemoryDenyWriteExecute = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + ExecStart = '' + ${cfg.package}/bin/xandikos \ + --directory /var/lib/xandikos \ + --listen_address ${cfg.address} \ + --port ${toString cfg.port} \ + --route-prefix ${cfg.routePrefix} \ + ${lib.concatStringsSep " " cfg.extraOptions} + ''; + }; + }; + } + + ( + mkIf cfg.nginx.enable { + services.nginx = { + enable = true; + virtualHosts."${cfg.nginx.hostName}" = { + locations."/" = { + proxyPass = "http://${cfg.address}:${toString cfg.port}/"; + }; + }; + }; + } + ) + ] + ); +} -- cgit 1.4.1 From 4d95c5fc538ebb109ae9d1c92916085430dedf63 Mon Sep 17 00:00:00 2001 From: Timma Date: Thu, 9 Jan 2020 20:41:05 +0530 Subject: python3Packages.avro-python3: init at 1.8.2 --- .../python-modules/avro-python3/default.nix | 19 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 21 insertions(+) create mode 100644 pkgs/development/python-modules/avro-python3/default.nix diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix new file mode 100644 index 00000000000..166456023bd --- /dev/null +++ b/pkgs/development/python-modules/avro-python3/default.nix @@ -0,0 +1,19 @@ +{ stdenv, buildPythonPackage, fetchPypi, isPy3k }: + +buildPythonPackage rec { + pname = "avro-python3"; + version = "1.8.2"; + disabled = !isPy3k; + + src = fetchPypi { + inherit pname version; + sha256 = "f82cf0d66189600b1e6b442f650ad5aca6c189576723dcbf6f9ce096eab81bd6"; + }; + + doCheck = false; # No such file or directory: './run_tests.py + + meta = with stdenv.lib; { + description = "A serialization and RPC framework"; + homepage = https://pypi.python.org/pypi/avro-python3/; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ada5daa000b..44183268e04 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1665,6 +1665,8 @@ in { avro3k = callPackage ../development/python-modules/avro3k {}; + avro-python3 = callPackage ../development/python-modules/avro-python3 {}; + aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { }; python-slugify = callPackage ../development/python-modules/python-slugify { }; -- cgit 1.4.1 From a2a0927269a613b802c62bcb380a1482db62b557 Mon Sep 17 00:00:00 2001 From: Timma Date: Sat, 11 Jan 2020 13:53:06 +0530 Subject: maintainers: add ktrsoft --- maintainers/maintainer-list.nix | 5 +++++ pkgs/development/python-modules/avro-python3/default.nix | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 09a45d267e7..cda14ba1058 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7014,6 +7014,11 @@ github = "timbertson"; name = "Tim Cuthbertson"; }; + timma = { + email = "kunduru.it.iitb@gmail.com"; + github = "ktrsoft"; + name = "Timma"; + }; timokau = { email = "timokau@zoho.com"; github = "timokau"; diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix index 166456023bd..c9db39a325f 100644 --- a/pkgs/development/python-modules/avro-python3/default.nix +++ b/pkgs/development/python-modules/avro-python3/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi, isPy3k }: +{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k }: buildPythonPackage rec { pname = "avro-python3"; @@ -12,8 +12,11 @@ buildPythonPackage rec { doCheck = false; # No such file or directory: './run_tests.py - meta = with stdenv.lib; { + meta = with lib; { description = "A serialization and RPC framework"; homepage = https://pypi.python.org/pypi/avro-python3/; + license = licenses.asl20; + + maintainers = [ maintainers.shlevy maintainers.timma ]; }; } -- cgit 1.4.1 From 265da70e583672311b8cfc998b550a2c5f9161ad Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 12 Jan 2020 15:14:08 -0500 Subject: lib/types: dont warn loaOf for home-manager namespace This option namespace is not a part of NixOS so we shouldn't provide this warning for it. --- lib/types.nix | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/types.nix b/lib/types.nix index ab325fd2009..57ddb45a237 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -367,18 +367,6 @@ rec { { path = [ "services" "geoclue2" "appConfig" ]; name = "desktopID"; } - { path = [ "home-manager" "users" anyString "programs" "ssh" "matchBlocks" ]; - name = "host"; # https://github.com/rycee/home-manager/blob/e8dbc3561373b68d12decb3c0d7c1ba245f138f7/modules/programs/ssh.nix#L265 - } - { path = [ "home-manager" "users" anyString "home" "file" ]; - name = "target"; # https://github.com/rycee/home-manager/blob/0e9b7aab3c6c27bf020402e0e2ef20b65c040552/modules/files.nix#L33 - } - { path = [ "home-manager" "users" anyString "xdg" "configFile" ]; - name = "target"; # https://github.com/rycee/home-manager/blob/54de0e1d79a1370e57a8f23bef89f99f9b92ab67/modules/misc/xdg.nix#L41 - } - { path = [ "home-manager" "users" anyString "xdg" "dataFile" ]; - name = "target"; # https://github.com/rycee/home-manager/blob/54de0e1d79a1370e57a8f23bef89f99f9b92ab67/modules/misc/xdg.nix#L58 - } ]; matched = let equals = a: b: b == anyString || a == b; -- cgit 1.4.1 From be4efc801057e5d54c94374098a7862fe3d7a3b4 Mon Sep 17 00:00:00 2001 From: ryneeverett Date: Sun, 12 Jan 2020 21:41:31 +0000 Subject: gitstatus: patch fewer characters This is a followup to https://github.com/NixOS/nixpkgs/pull/76744. The patch is still too aggressive because it captures additional local variables declared in the same line. It should stop when it hits whitespace. See https://github.com/romkatv/gitstatus/pull/92. --- .../applications/version-management/git-and-tools/gitstatus/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix index 94753275b61..429ab092f40 100644 --- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix +++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ]; patchPhase = '' - sed -i "s|local daemon=.*|local daemon=$out/bin/gitstatusd|" gitstatus.plugin.zsh + sed -i "s|local daemon=\S*|local daemon=$out/bin/gitstatusd|" gitstatus.plugin.zsh ''; installPhase = '' install -Dm755 gitstatusd $out/bin/gitstatusd -- cgit 1.4.1 From f5e446b30fea10895bbd3ff90e27737d1754b899 Mon Sep 17 00:00:00 2001 From: ryneeverett Date: Sun, 12 Jan 2020 22:21:25 +0000 Subject: gitstatus: patch in variable rather than regexing Patching in the GITSTATUS_DAEMON variable seems like a more stable solution than doing inline replacements. --- .../applications/version-management/git-and-tools/gitstatus/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix index 429ab092f40..9b77690868b 100644 --- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix +++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ]; patchPhase = '' - sed -i "s|local daemon=\S*|local daemon=$out/bin/gitstatusd|" gitstatus.plugin.zsh + sed -i "1i GITSTATUS_DAEMON=$out/bin/gitstatusd" gitstatus.plugin.zsh ''; installPhase = '' install -Dm755 gitstatusd $out/bin/gitstatusd -- cgit 1.4.1 From 865851f003cca81224a2d8d1d99648ad224b7b62 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 12 Jan 2020 11:13:44 +0100 Subject: rx: 0.3.1 -> 0.3.2 --- pkgs/applications/graphics/rx/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/rx/default.nix b/pkgs/applications/graphics/rx/default.nix index f2b56b578b6..3093fa107d6 100644 --- a/pkgs/applications/graphics/rx/default.nix +++ b/pkgs/applications/graphics/rx/default.nix @@ -7,13 +7,13 @@ with stdenv.lib; rustPlatform.buildRustPackage rec { pname = "rx"; - version = "0.3.1"; + version = "0.3.2"; src = fetchFromGitHub { owner = "cloudhead"; repo = pname; rev = "v${version}"; - sha256 = "1byaxbhd3q49473kcdd52rvn3xq7bmy8bdx3pz0jiw96bclzhcgq"; + sha256 = "1n5s7v2z13550gkqz7w6dw62jdy60wdi8w1lfa23609b4yhg4w94"; }; cargoSha256 = "173jfjvdag97f6jvfg366hjk9v3cz301cbzpcahy51rbf1cip1w1"; -- cgit 1.4.1 From 386dbd5aea22f34f4902c7fce541586e5236b0bb Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 13 Jan 2020 15:45:00 +0000 Subject: poetry2nix: 1.2.1 -> 1.3.0 --- .../tools/poetry2nix/poetry2nix/default.nix | 20 +-- .../tools/poetry2nix/poetry2nix/lib.nix | 34 ++-- .../tools/poetry2nix/poetry2nix/mk-poetry-dep.nix | 172 +++++++++++---------- .../tools/poetry2nix/poetry2nix/overrides.nix | 119 ++++++++++++-- 4 files changed, 225 insertions(+), 120 deletions(-) diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix index 8e0e861fab3..b6d53387552 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix @@ -20,16 +20,10 @@ let getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn; - getAttrDefault = attribute: set: default: ( - if builtins.hasAttr attribute set - then builtins.getAttr attribute set - else default - ); - # Map SPDX identifiers to license names spdxLicenses = lib.listToAttrs (lib.filter (pair: pair.name != null) (builtins.map (v: { name = if lib.hasAttr "spdxId" v then v.spdxId else null; value = v; }) (lib.attrValues lib.licenses))); # Get license by id falling back to input string - getLicenseBySpdxId = spdxId: getAttrDefault spdxId spdxLicenses spdxId; + getLicenseBySpdxId = spdxId: spdxLicenses.${spdxId} or spdxId; # # Returns an attrset { python, poetryPackages } for the given lockfile @@ -65,7 +59,7 @@ let # closure as python can only ever have one version of a dependency baseOverlay = self: super: let - getDep = depName: if builtins.hasAttr depName self then self."${depName}" else throw "foo"; + getDep = depName: self.${depName}; lockPkgs = builtins.listToAttrs ( builtins.map ( @@ -74,7 +68,7 @@ let value = self.mkPoetryDep ( pkgMeta // { inherit pwd; - source = getAttrDefault "source" pkgMeta null; + source = pkgMeta.source or null; files = lockFiles.${name}; pythonPackages = self; } @@ -159,12 +153,12 @@ let passedAttrs = builtins.removeAttrs attrs specialAttrs; getDeps = depAttr: let - deps = getAttrDefault depAttr pyProject.tool.poetry {}; + deps = pyProject.tool.poetry.${depAttr} or {}; depAttrs = builtins.map (d: lib.toLower d) (builtins.attrNames deps); in builtins.map (dep: py.pkgs."${dep}") depAttrs; - getInputs = attr: getAttrDefault attr attrs []; + getInputs = attr: attrs.${attr} or []; mkInput = attr: extraInputs: getInputs attr ++ extraInputs; buildSystemPkgs = poetryLib.getBuildSystemPkgs { @@ -189,7 +183,7 @@ let python = py; }; - postPatch = (getAttrDefault "postPatch" passedAttrs "") + '' + postPatch = (passedAttrs.postPatch or "") + '' # Tell poetry not to resolve the path dependencies. Any version is # fine ! yj -tj < pyproject.toml | python ${./pyproject-without-path.py} > pyproject.json @@ -199,7 +193,7 @@ let meta = meta // { inherit (pyProject.tool.poetry) description homepage; - license = getLicenseBySpdxId (getAttrDefault "license" pyProject.tool.poetry "unknown"); + license = getLicenseBySpdxId (pyProject.tool.poetry.license or "unknown"); }; } diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix index 559c3051a73..68d854f2648 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix @@ -30,22 +30,24 @@ let in (builtins.foldl' combine initial tokens).state; - fromTOML = toml: if builtins.hasAttr "fromTOML" builtins then builtins.fromTOML toml else - builtins.fromJSON ( - builtins.readFile ( - pkgs.runCommand "from-toml" - { - inherit toml; - allowSubstitutes = false; - preferLocalBuild = true; - } - '' - ${pkgs.remarshal}/bin/remarshal \ - -if toml \ - -i <(echo "$toml") \ - -of json \ - -o $out - '' + fromTOML = builtins.fromTOML or + ( + toml: builtins.fromJSON ( + builtins.readFile ( + pkgs.runCommand "from-toml" + { + inherit toml; + allowSubstitutes = false; + preferLocalBuild = true; + } + '' + ${pkgs.remarshal}/bin/remarshal \ + -if toml \ + -i <(echo "$toml") \ + -of json \ + -o $out + '' + ) ) ); readTOML = path: fromTOML (builtins.readFile path); diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix index 256e2d90daa..95543ca7359 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix @@ -16,102 +16,112 @@ , pwd , supportedExtensions ? lib.importJSON ./extensions.json , ... -}: let - - inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi; +}: - inherit (import ./pep425.nix { - inherit lib python; - inherit (pkgs) stdenv; - }) selectWheel - ; +pythonPackages.callPackage ( + { preferWheel ? false + }: - fileCandidates = let - supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")"); - matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null; - hasSupportedExtension = fname: builtins.match supportedRegex fname != null; - isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname; - in - builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files; + let - toPath = s: pwd + "/${s}"; + inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi; - isSource = source != null; - isGit = isSource && source.type == "git"; - isLocal = isSource && source.type == "directory"; + inherit (import ./pep425.nix { + inherit lib python; + inherit (pkgs) stdenv; + }) selectWheel + ; - localDepPath = toPath source.url; - pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml"); + fileCandidates = let + supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")"); + matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null; + hasSupportedExtension = fname: builtins.match supportedRegex fname != null; + isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname; + in + builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files; - buildSystemPkgs = poetryLib.getBuildSystemPkgs { - inherit pythonPackages pyProject; - }; + toPath = s: pwd + "/${s}"; - fileInfo = let - isBdist = f: lib.strings.hasSuffix "whl" f.file; - isSdist = f: ! isBdist f && ! isEgg f; - isEgg = f: lib.strings.hasSuffix ".egg" f.file; + isSource = source != null; + isGit = isSource && source.type == "git"; + isLocal = isSource && source.type == "directory"; - binaryDist = selectWheel fileCandidates; - sourceDist = builtins.filter isSdist fileCandidates; - eggs = builtins.filter isEgg fileCandidates; + localDepPath = toPath source.url; + pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml"); - lockFileEntry = builtins.head (sourceDist ++ binaryDist ++ eggs); + buildSystemPkgs = poetryLib.getBuildSystemPkgs { + inherit pythonPackages pyProject; + }; - _isEgg = isEgg lockFileEntry; + fileInfo = let + isBdist = f: lib.strings.hasSuffix "whl" f.file; + isSdist = f: ! isBdist f && ! isEgg f; + isEgg = f: lib.strings.hasSuffix ".egg" f.file; - in - rec { - inherit (lockFileEntry) file hash; - name = file; - format = - if _isEgg then "egg" - else if lib.strings.hasSuffix ".whl" name then "wheel" - else "setuptools"; - kind = - if _isEgg then python.pythonVersion - else if format == "setuptools" then "source" - else (builtins.elemAt (lib.strings.splitString "-" name) 2); - }; + binaryDist = selectWheel fileCandidates; + sourceDist = builtins.filter isSdist fileCandidates; + eggs = builtins.filter isEgg fileCandidates; - baseBuildInputs = lib.optional (name != "setuptools_scm" && name != "setuptools-scm") pythonPackages.setuptools_scm; + entries = (if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs; -in + lockFileEntry = builtins.head entries; -buildPythonPackage { - pname = name; - version = version; + _isEgg = isEgg lockFileEntry; - doCheck = false; # We never get development deps - dontStrip = true; - format = if isLocal then "pyproject" else if isGit then "setuptools" else fileInfo.format; + in + rec { + inherit (lockFileEntry) file hash; + name = file; + format = + if _isEgg then "egg" + else if lib.strings.hasSuffix ".whl" name then "wheel" + else "setuptools"; + kind = + if _isEgg then python.pythonVersion + else if format == "setuptools" then "source" + else (builtins.elemAt (lib.strings.splitString "-" name) 2); + }; - nativeBuildInputs = if (!isSource && (getManyLinuxDeps fileInfo.name).str != null) then [ autoPatchelfHook ] else []; - buildInputs = baseBuildInputs ++ (if !isSource then (getManyLinuxDeps fileInfo.name).pkg else []); + baseBuildInputs = lib.optional (name != "setuptools_scm" && name != "setuptools-scm") pythonPackages.setuptools_scm; - propagatedBuildInputs = - let - # Some dependencies like django gets the attribute name django - # but dependencies try to access Django - deps = builtins.map (d: lib.toLower d) (builtins.attrNames dependencies); in - (builtins.map (n: pythonPackages.${n}) deps) ++ (if isLocal then buildSystemPkgs else []); - - meta = { - broken = ! isCompatible python.version python-versions; - license = []; - }; - - # We need to retrieve kind from the interpreter and the filename of the package - # Interpreters should declare what wheel types they're compatible with (python type + ABI) - # Here we can then choose a file based on that info. - src = if isGit then ( - builtins.fetchGit { - inherit (source) url; - rev = source.reference; - } - ) else if isLocal then (localDepPath) else fetchFromPypi { - pname = name; - inherit (fileInfo) file hash kind; - }; -} + + buildPythonPackage { + pname = name; + version = version; + + doCheck = false; # We never get development deps + dontStrip = true; + format = if isLocal then "pyproject" else if isGit then "setuptools" else fileInfo.format; + + nativeBuildInputs = if (!isSource && (getManyLinuxDeps fileInfo.name).str != null) then [ autoPatchelfHook ] else []; + buildInputs = baseBuildInputs ++ (if !isSource then (getManyLinuxDeps fileInfo.name).pkg else []); + + propagatedBuildInputs = + let + # Some dependencies like django gets the attribute name django + # but dependencies try to access Django + deps = builtins.map (d: lib.toLower d) (builtins.attrNames dependencies); + in + (builtins.map (n: pythonPackages.${n}) deps) ++ (if isLocal then buildSystemPkgs else []); + + meta = { + broken = ! isCompatible python.version python-versions; + license = []; + }; + + # We need to retrieve kind from the interpreter and the filename of the package + # Interpreters should declare what wheel types they're compatible with (python type + ABI) + # Here we can then choose a file based on that info. + src = if isGit then ( + builtins.fetchGit { + inherit (source) url; + rev = source.reference; + } + ) else if isLocal then (localDepPath) else fetchFromPypi { + pname = name; + inherit (fileInfo) file hash kind; + }; + } + +) {} diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix index 207841fd005..48b8ff9859b 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix @@ -5,14 +5,6 @@ self: super: -let - - getAttrDefault = attribute: set: default: - if builtins.hasAttr attribute set - then builtins.getAttr attribute set - else default; - -in { av = super.av.overrideAttrs ( old: { @@ -52,7 +44,7 @@ in django = ( super.django.overrideAttrs ( old: { - propagatedNativeBuildInputs = (getAttrDefault "propagatedNativeBuildInputs" old []) + propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or []) ++ [ pkgs.gettext ]; } ) @@ -64,7 +56,7 @@ in if ! test -e LICENSE; then touch LICENSE fi - '' + (getAttrDefault "configurePhase" old ""); + '' + (old.configurePhase or ""); } ); @@ -85,6 +77,13 @@ in } ); + # importlib-metadata has an incomplete dependency specification + importlib-metadata = super.importlib-metadata.overrideAttrs ( + old: { + propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2; + } + ); + lap = super.lap.overrideAttrs ( old: { propagatedBuildInputs = old.propagatedBuildInputs ++ [ @@ -154,6 +153,11 @@ in } ); + # Calls Cargo at build time for source builds and is really tricky to package + maturin = super.maturin.override { + preferWheel = true; + }; + mccabe = super.mccabe.overrideAttrs ( old: { postPatch = '' @@ -293,6 +297,93 @@ in } ); + pyqt5 = super.pyqt5.overridePythonAttrs ( + old: { + format = "other"; + + nativeBuildInputs = old.nativeBuildInputs ++ [ + pkgs.pkgconfig + pkgs.qt5.qmake + pkgs.xorg.lndir + pkgs.qt5.qtbase + pkgs.qt5.qtsvg + pkgs.qt5.qtdeclarative + pkgs.qt5.qtwebchannel + # self.pyqt5-sip + self.sip + ]; + + buildInputs = old.buildInputs ++ [ + pkgs.dbus + pkgs.qt5.qtbase + pkgs.qt5.qtsvg + pkgs.qt5.qtdeclarative + self.sip + ]; + + # Fix dbus mainloop + inherit (pkgs.python3.pkgs.pyqt5) patches; + + configurePhase = '' + runHook preConfigure + + export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages} + + mkdir -p $out/${self.python.sitePackages}/dbus/mainloop + ${self.python.executable} configure.py -w \ + --confirm-license \ + --no-qml-plugin \ + --bindir=$out/bin \ + --destdir=$out/${self.python.sitePackages} \ + --stubsdir=$out/${self.python.sitePackages}/PyQt5 \ + --sipdir=$out/share/sip/PyQt5 \ + --designer-plugindir=$out/plugins/designer + + runHook postConfigure + ''; + + postInstall = '' + ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/ + for i in $out/bin/*; do + wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH" + done + + # # Let's make it a namespace package + # cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py + # from pkgutil import extend_path + # __path__ = extend_path(__path__, __name__) + # EOF + ''; + + installCheckPhase = let + modules = [ + "PyQt5" + "PyQt5.QtCore" + "PyQt5.QtQml" + "PyQt5.QtWidgets" + "PyQt5.QtGui" + ]; + imports = lib.concatMapStrings (module: "import ${module};") modules; + in + '' + echo "Checking whether modules can be imported..." + ${self.python.interpreter} -c "${imports}" + ''; + + doCheck = true; + + enableParallelBuilding = true; + } + ); + + pytest-datadir = super.pytest-datadir.overrideAttrs ( + old: { + postInstall = '' + rm -f $out/LICENSE + ''; + } + ); + python-prctl = super.python-prctl.overrideAttrs ( old: { buildInputs = old.buildInputs ++ [ @@ -340,6 +431,14 @@ in } ); + vose-alias-method = super.pytest-datadir.overrideAttrs ( + old: { + postInstall = '' + rm -f $out/LICENSE + ''; + } + ); + # Stop infinite recursion by using bootstrapped pkg from nixpkgs wheel = ( pkgs.python3.pkgs.override { -- cgit 1.4.1 From be4d80d72189c9d59f1ceb7a6d2d60fc973bdf4c Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 13 Jan 2020 13:42:13 +0000 Subject: linux-libre.updateScript: fix COMMIT option Because bash was being run with -u, if COMMIT wasn't set in the environment the script would just crash here, rather than exiting successfully. --- pkgs/os-specific/linux/kernel/update-libre.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/update-libre.sh b/pkgs/os-specific/linux/kernel/update-libre.sh index 3b8a00edcda..e056577477c 100755 --- a/pkgs/os-specific/linux/kernel/update-libre.sh +++ b/pkgs/os-specific/linux/kernel/update-libre.sh @@ -20,7 +20,7 @@ sha256="$(QUIET=1 nix-prefetch-svn "$svn_url" "$rev" | tail -1)" sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \ -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path" -if [ -n "$COMMIT" ]; then +if [ -n "${COMMIT-}" ]; then git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path" echo "Updated linux_latest-libre $old_rev -> $rev" fi -- cgit 1.4.1 From 345f6712e3027555608b67853d13666fc313eca1 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 13 Jan 2020 13:43:55 +0000 Subject: linux-libre.updateScript: don't update if unchanged The revision applies to the whole SVN tree, not just the scripts directory, so the revision will increment sometimes with no change in content. --- pkgs/os-specific/linux/kernel/update-libre.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/update-libre.sh b/pkgs/os-specific/linux/kernel/update-libre.sh index e056577477c..1b4cd8aef60 100755 --- a/pkgs/os-specific/linux/kernel/update-libre.sh +++ b/pkgs/os-specific/linux/kernel/update-libre.sh @@ -6,6 +6,7 @@ nixpkgs="$(git rev-parse --show-toplevel)" path="$nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix" old_rev="$(grep -o 'rev = ".*"' "$path" | awk -F'"' '{print $2}')" +old_sha256="$(grep -o 'sha256 = ".*"' "$path" | awk -F'"' '{print $2}')" svn_url=https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/ rev="$(curl -s "$svn_url" | grep -Em 1 -o 'Revision [0-9]+' | awk '{print $2}')" @@ -17,6 +18,11 @@ fi sha256="$(QUIET=1 nix-prefetch-svn "$svn_url" "$rev" | tail -1)" +if [ "$old_sha256" = "$sha256" ]; then + echo "No updates for linux-libre" + exit 0 +fi + sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \ -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path" -- cgit 1.4.1 From 1d51514ab24251afd1340338901a487319fbc4be Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 13 Jan 2020 13:45:40 +0000 Subject: linux-libre.updateScript: fix git commit With nothing staged and no paths given, previously this wouldn't actually do anything. --- pkgs/os-specific/linux/kernel/update-libre.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/kernel/update-libre.sh b/pkgs/os-specific/linux/kernel/update-libre.sh index 1b4cd8aef60..aea12df55cc 100755 --- a/pkgs/os-specific/linux/kernel/update-libre.sh +++ b/pkgs/os-specific/linux/kernel/update-libre.sh @@ -27,6 +27,7 @@ sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \ -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path" if [ -n "${COMMIT-}" ]; then - git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path" + git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path" \ + $nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix echo "Updated linux_latest-libre $old_rev -> $rev" fi -- cgit 1.4.1 From 2ddd038e52b5d828e235d5c595fd3a6709686d99 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 13 Jan 2020 00:18:25 +0000 Subject: python3.pkgs.publicsuffix: fix build This patch has not been necessary since 5425867bfa3e4ba83a3d67aa50b811b5f70d6fe5, and has in fact broken the build since then. --- pkgs/development/python-modules/publicsuffix/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/publicsuffix/default.nix b/pkgs/development/python-modules/publicsuffix/default.nix index 027b017c23e..cb8c037fc76 100644 --- a/pkgs/development/python-modules/publicsuffix/default.nix +++ b/pkgs/development/python-modules/publicsuffix/default.nix @@ -10,11 +10,8 @@ buildPythonPackage rec { }; - # fix the ASCII-mode LICENSE file read # disable test_fetch and the doctests (which also invoke fetch) - patchPhase = stdenv.lib.optionalString isPy3k '' - sed -i "s/)\.read(/,encoding='utf-8'\0/" setup.py - '' + '' + patchPhase = '' sed -i -e "/def test_fetch/i\\ \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py ''; -- cgit 1.4.1 From d18403953f5c2265e6cd2aaea32a2abd6c712895 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 13 Jan 2020 13:53:36 +0000 Subject: python3.pkgs.publicsuffix: patchPhase -> postPatch --- pkgs/development/python-modules/publicsuffix/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/publicsuffix/default.nix b/pkgs/development/python-modules/publicsuffix/default.nix index cb8c037fc76..061ad685861 100644 --- a/pkgs/development/python-modules/publicsuffix/default.nix +++ b/pkgs/development/python-modules/publicsuffix/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { # disable test_fetch and the doctests (which also invoke fetch) - patchPhase = '' + postPatch = '' sed -i -e "/def test_fetch/i\\ \\t@unittest.skip('requires internet')" -e "/def additional_tests():/,+1d" tests.py ''; -- cgit 1.4.1 From 57d0c8106cf6da440fe711a4fc46eaa7bcc3e70c Mon Sep 17 00:00:00 2001 From: wucke13 Date: Mon, 13 Jan 2020 12:47:42 +0100 Subject: python3Packages.solo-python: 0.0.18 -> 0.0.21 + fixes 74835 --- pkgs/development/python-modules/solo-python/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix index 52d7d7539f9..216e5a2a84f 100644 --- a/pkgs/development/python-modules/solo-python/default.nix +++ b/pkgs/development/python-modules/solo-python/default.nix @@ -3,7 +3,7 @@ buildPythonPackage rec { pname = "solo-python"; - version = "0.0.18"; + version = "0.0.21"; format = "flit"; disabled = pythonOlder "3.6"; # only python>=3.6 is supported @@ -11,7 +11,7 @@ owner = "solokeys"; repo = pname; rev = version; - sha256 = "01mgppjvxlr93vrgz7bzisghpg1vqyaj4cg5wngk0h499iyx4d9q"; + sha256 = "07r451dp3ma1mh735b2kjv86a4jkjhmag70cjqf73z7b61dmzl1q"; }; # replaced pinned fido, with unrestricted fido version @@ -48,6 +48,5 @@ homepage = "https://github.com/solokeys/solo-python"; maintainers = with maintainers; [ wucke13 ]; license = with licenses; [ asl20 mit ]; - broken = true; # no longer compatible with fido2 }; } -- cgit 1.4.1 From 775f3e037e0d457471f5042c6d58488b45627c4e Mon Sep 17 00:00:00 2001 From: Florian Date: Mon, 6 Jan 2020 18:51:37 +0100 Subject: maintainers: add flyfloh --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7e5a2e1986b..9e1f92793cf 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2439,6 +2439,12 @@ githubId = 844574; name = "Daniel Austin"; }; + flyfloh = { + email = "nix@halbmastwurf.de"; + github = "flyfloh"; + githubId = 74379; + name = "Florian Pester"; + }; fmthoma = { email = "f.m.thoma@googlemail.com"; github = "fmthoma"; -- cgit 1.4.1 From c2997409d3120d63a6db5dd4f093df48fb155c71 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 1 Jan 2020 13:24:24 +0100 Subject: python-miio: init at 0.4.8 Homeassitant uses this package to control Xiaomi Roborock vacuum cleaners. --- .../python-modules/python-miio/default.nix | 39 ++++++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 pkgs/development/python-modules/python-miio/default.nix diff --git a/pkgs/development/python-modules/python-miio/default.nix b/pkgs/development/python-modules/python-miio/default.nix new file mode 100644 index 00000000000..eb7c9153196 --- /dev/null +++ b/pkgs/development/python-modules/python-miio/default.nix @@ -0,0 +1,39 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, appdirs +, click +, construct +, cryptography +, pytest +, zeroconf +, attrs +, pytz +, tqdm +, netifaces +}: + +buildPythonPackage rec { + pname = "python-miio"; + version = "0.4.8"; + + src = fetchPypi { + inherit pname version; + sha256 = "19423b3386b23d2e0fc94a8f6a358bcfbb44eed05376e33fd434d26d168bd18c"; + }; + + checkInputs = [ pytest ]; + propagatedBuildInputs = [ appdirs click construct cryptography zeroconf attrs pytz tqdm netifaces ]; + + checkPhase = '' + pytest + ''; + + meta = with stdenv.lib; { + description = "Python library for interfacing with Xiaomi smart appliances"; + homepage = https://github.com/rytilahti/python-miio; + license = licenses.gpl3; + maintainers = with maintainers; [ flyfloh ]; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b8c718e8771..df861e06aa0 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5011,6 +5011,8 @@ in { python-markdown-math = callPackage ../development/python-modules/python-markdown-math { }; + python-miio = callPackage ../development/python-modules/python-miio { }; + python-pipedrive = callPackage ../development/python-modules/python-pipedrive { }; python-ptrace = callPackage ../development/python-modules/python-ptrace { }; -- cgit 1.4.1 From 1979ac619f0e5b021ecb440193347f9e9ae36a9d Mon Sep 17 00:00:00 2001 From: Maxim Schuwalow Date: Sun, 12 Jan 2020 03:11:56 +0100 Subject: stups-pierone: init at 1.1.45 --- .../python-modules/stups-pierone/default.nix | 47 ++++++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/python-modules/stups-pierone/default.nix diff --git a/pkgs/development/python-modules/stups-pierone/default.nix b/pkgs/development/python-modules/stups-pierone/default.nix new file mode 100644 index 00000000000..aaa04991641 --- /dev/null +++ b/pkgs/development/python-modules/stups-pierone/default.nix @@ -0,0 +1,47 @@ +{ lib +, fetchFromGitHub +, buildPythonPackage +, requests +, stups-cli-support +, stups-zign +, pytest +, pytestcov +, hypothesis +, isPy3k +}: + +buildPythonPackage rec { + pname = "stups-pierone"; + version = "1.1.45"; + disabled = !isPy3k; + + src = fetchFromGitHub { + owner = "zalando-stups"; + repo = "pierone-cli"; + rev = version; + sha256 = "1ggfizw27wpcagbbk15xpfrhq6b250cx4278b5d7y8s438g128cs"; + }; + + propagatedBuildInputs = [ + requests + stups-cli-support + stups-zign + ]; + + preCheck = " + export HOME=$TEMPDIR + "; + + checkInputs = [ + pytest + pytestcov + hypothesis + ]; + + meta = with lib; { + description = "Convenient command line client for STUPS' Pier One Docker registry"; + homepage = "https://github.com/zalando-stups/pierone-cli"; + license = licenses.asl20; + maintainers = [ maintainers.mschuwalow ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index df861e06aa0..f314cffbb52 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1392,6 +1392,8 @@ in { stups-fullstop = callPackage ../development/python-modules/stups-fullstop { }; + stups-pierone = callPackage ../development/python-modules/stups-pierone { }; + stups-tokens = callPackage ../development/python-modules/stups-tokens { }; stups-zign = callPackage ../development/python-modules/stups-zign { }; -- cgit 1.4.1 From eec3db0cde2e7bc041b18b19d4ae98ae60fdaf5d Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Sun, 12 Jan 2020 01:51:04 +0100 Subject: maintainers: add nloomans --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9e1f92793cf..bdeed800890 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5088,6 +5088,12 @@ githubId = 7588406; name = "Andrew R. M."; }; + nloomans = { + email = "noah@nixos.noahloomans.com"; + github = "nloomans"; + githubId = 7829481; + name = "Noah Loomans"; + }; nmattia = { email = "nicolas@nmattia.com"; github = "nmattia"; -- cgit 1.4.1 From 60d72d12dea298599f497865fa83b5188ff7e467 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Sun, 12 Jan 2020 02:21:20 +0100 Subject: hakuneko: 1.4.2 -> 5.0.8 HakuNeko switched to electron. Since this is the latest release the broken status can be dropped. The original maintainer (Ruben Astudillo) dropped support for the package so I decided to pick it up. I based this on the simplenote package, and implemented the setuid fix from the slack package. Closes #45332 --- pkgs/tools/misc/hakuneko/default.nix | 94 ++++++++++++++++++++++++++++-------- 1 file changed, 75 insertions(+), 19 deletions(-) diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix index 8c2e7dc7451..0a27397551d 100644 --- a/pkgs/tools/misc/hakuneko/default.nix +++ b/pkgs/tools/misc/hakuneko/default.nix @@ -1,28 +1,84 @@ -{ stdenv, fetchurl, wxGTK30, openssl, curl }: - +{ atomEnv +, autoPatchelfHook +, dpkg +, fetchurl +, makeDesktopItem +, makeWrapper +, udev +, stdenv +, wrapGAppsHook +}: +let + desktopItem = makeDesktopItem { + desktopName = "HakuNeko Desktop"; + genericName = "Manga & Anime Downloader"; + categories = "Network;FileTransfer;"; + exec = "hakuneko"; + icon = "hakuneko-desktop"; + name = "hakuneko-desktop"; + type = "Application"; + }; +in stdenv.mkDerivation rec { pname = "hakuneko"; - version = "1.4.2"; + version = "5.0.8"; - src = fetchurl { - url = "mirror://sourceforge/hakuneko/hakuneko_${version}_src.tar.gz"; - sha256 = "76a63fa05e91b082cb5a70a8abacef005354e99978ff8b1369f7aa0af7615d52"; - }; + src = { + "x86_64-linux" = fetchurl { + url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_amd64.deb"; + sha256 = "924df1d7a0ab54b918529165317e4428b423c9045548d1e36bd634914f7957f0"; + }; + "i686-linux" = fetchurl { + url = "https://github.com/manga-download/hakuneko/releases/download/v${version}/hakuneko-desktop_${version}_linux_i386.deb"; + sha256 = "988d8b0e8447dcd0a8d85927f5877bca9efb8e4b09ed3c80a6788390e54a48d2"; + }; + }."${stdenv.hostPlatform.system}"; + + dontBuild = true; + dontConfigure = true; + dontPatchELF = true; + dontWrapGApps = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + wrapGAppsHook + ]; + + buildInputs = atomEnv.packages; + + unpackPhase = '' + # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here + dpkg --fsys-tarfile $src | tar --extract + ''; - preConfigure = '' - substituteInPlace ./configure \ - --replace /bin/bash $shell - ''; + installPhase = '' + cp -R usr "$out" + # Overwrite existing .desktop file. + cp "${desktopItem}/share/applications/hakuneko-desktop.desktop" \ + "$out/share/applications/hakuneko-desktop.desktop" + ''; - buildInputs = [ wxGTK30 openssl curl ]; + runtimeDependencies = [ + udev.lib + ]; - meta = { - description = "Manga downloader"; - homepage = https://sourceforge.net/projects/hakuneko/; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.linux; + postFixup = '' + makeWrapper $out/lib/hakuneko-desktop/hakuneko $out/bin/hakuneko \ + "''${gappsWrapperArgs[@]}" + ''; - # This project was abandoned upstream. - broken = true; + meta = with stdenv.lib; { + description = "Manga & Anime Downloader"; + homepage = "https://sourceforge.net/projects/hakuneko/"; + license = licenses.unlicense; + maintainers = with maintainers; [ + nloomans + ]; + platforms = [ + "x86_64-linux" + "i686-linux" + ]; }; } -- cgit 1.4.1 From a6d5765dc12fe601eeaf776de871378befe6d6f7 Mon Sep 17 00:00:00 2001 From: Anders Lundstedt Date: Mon, 13 Jan 2020 21:02:46 +0100 Subject: spotifyd: 0.2.20 -> 0.2.23 --- pkgs/applications/audio/spotifyd/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix index 36ab017c5cb..b8063811030 100644 --- a/pkgs/applications/audio/spotifyd/default.nix +++ b/pkgs/applications/audio/spotifyd/default.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "spotifyd"; - version = "0.2.20"; + version = "0.2.23"; src = fetchFromGitHub { owner = "Spotifyd"; repo = "spotifyd"; rev = "v${version}"; - sha256 = "1hf4wpk7r0s4jpjhxaz67y1hd8jx9ns5imd85r3cdg4lxf3j5gph"; + sha256 = "0xxr21avgr4pvlr5vgb68jmad5xy5kqvaxfzh0qn1jpiax7y3avm"; }; - cargoSha256 = "1h3fis47hmxvppiv1icjhgp48nd46gayfcmzfjs34q6jask90n0w"; + cargoSha256 = "1ykmn7zzwn9my96bbxwkparab5lck1zzdkpafil2mmrjyvyi40da"; cargoBuildFlags = [ "--no-default-features" -- cgit 1.4.1 From 475e516e2a286edeba71dbfcf564282f20bac298 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Sun, 17 Nov 2019 12:11:21 +0100 Subject: pavucontrol: Use system style --- pkgs/applications/audio/pavucontrol/default.nix | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix index fee86cb5bca..d07cf8a476b 100644 --- a/pkgs/applications/audio/pavucontrol/default.nix +++ b/pkgs/applications/audio/pavucontrol/default.nix @@ -1,5 +1,5 @@ { fetchurl, stdenv, pkgconfig, intltool, libpulseaudio, gtkmm3 -, libcanberra-gtk3, makeWrapper, gnome3 }: +, libcanberra-gtk3, gnome3, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "pavucontrol"; @@ -10,16 +10,10 @@ stdenv.mkDerivation rec { sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g"; }; - preFixup = '' - wrapProgram "$out/bin/pavucontrol" \ - --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ - --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS" - ''; - - buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3 makeWrapper + buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3 gnome3.adwaita-icon-theme ]; - nativeBuildInputs = [ pkgconfig intltool ]; + nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ]; configureFlags = [ "--disable-lynx" ]; -- cgit 1.4.1 From cb895499a77711c121aa978efb0588c28e68f9e4 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Sun, 17 Nov 2019 12:11:35 +0100 Subject: waybar: Use system style --- pkgs/applications/misc/waybar/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix index 84735feef21..212013fb655 100644 --- a/pkgs/applications/misc/waybar/default.nix +++ b/pkgs/applications/misc/waybar/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja +{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook , wayland, wlroots, gtkmm3, libinput, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell , traySupport ? true, libdbusmenu-gtk3 , pulseSupport ? false, libpulseaudio @@ -19,7 +19,7 @@ }; nativeBuildInputs = [ - meson ninja pkgconfig scdoc + meson ninja pkgconfig scdoc wrapGAppsHook ]; buildInputs = with stdenv.lib; -- cgit 1.4.1 From 96bfc3bd4b3bfe5cc6cf690d45ddd013bb466963 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Mon, 13 Jan 2020 22:48:33 +0100 Subject: vimPlugins: Update --- pkgs/misc/vim-plugins/generated.nix | 72 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index d4c03fe022c..8e8ab736e9a 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -424,12 +424,12 @@ let coc-metals = buildVimPluginFrom2Nix { pname = "coc-metals"; - version = "2020-01-12"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "ckipp01"; repo = "coc-metals"; - rev = "569547beb3bbed8c1b882dc5ad0331f95b7d100f"; - sha256 = "1s9qyks69x3nbp9nn8p2yhv3wi9s77nihcjck7l5rzmmdcg5rka8"; + rev = "b2b3c6e43f8dc0a9353046faacb2cfafe0220228"; + sha256 = "160y5rz1nhpdlb9j3ximn6ylj0rabkbvl0h7jil95rin60sq91d1"; }; }; @@ -876,12 +876,12 @@ let denite-nvim = buildVimPluginFrom2Nix { pname = "denite-nvim"; - version = "2020-01-11"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "Shougo"; repo = "denite.nvim"; - rev = "ef50148d730a9a14b3def3fa07c6cce4917172ed"; - sha256 = "1kb8gl5c1sgrs3p2x7ib01nwwnwa73kzsgzg38w6xwsrnw044d18"; + rev = "22dd7524bef3468af674fb1ecfb3e55ee679ebc0"; + sha256 = "03cf90kvq337mj151y5m0w5px6h3y6hanfj2bcxwnpwifmjdinij"; }; }; @@ -1675,12 +1675,12 @@ let lh-vim-lib = buildVimPluginFrom2Nix { pname = "lh-vim-lib"; - version = "2019-12-29"; + version = "2020-01-12"; src = fetchFromGitHub { owner = "LucHermitte"; repo = "lh-vim-lib"; - rev = "6e60e3a6575449e08feb27fb3528b55e71fd56e3"; - sha256 = "054wxj8f23ddqs3mp8rvw2lsplqfyn352zcq6biywbybjm2xphf7"; + rev = "13a59968c0d76884f2ef1feb27493ba90d62deb0"; + sha256 = "0g9dfg7y7znj3iiz67323jbflg6d34hq8hc8v4gcjnrinagyydnv"; }; }; @@ -2886,12 +2886,12 @@ let tsuquyomi = buildVimPluginFrom2Nix { pname = "tsuquyomi"; - version = "2019-07-17"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "Quramy"; repo = "tsuquyomi"; - rev = "61e16ab1d1cb621385bc9c6a0c5e7744494ec9f5"; - sha256 = "1w6m69695f4gx7d5fg3bnabhjx1680fvrz44f65jhdh2y2njm68h"; + rev = "1fc47734abcb272df4321a50e2587c4c9e0a0a1a"; + sha256 = "0dwc22zhzslgk60slr60rn26ww3ppl52nf6pcbnagxwfzadn5l6z"; }; }; @@ -3227,12 +3227,12 @@ let vim-airline = buildVimPluginFrom2Nix { pname = "vim-airline"; - version = "2020-01-06"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline"; - rev = "c1de3d33701492a388684ffcc9899faf4b863e92"; - sha256 = "0pw0laiigsbivsrxiy654jnsxjq8x855pk6y0mdilkwvinza0z0j"; + rev = "8d694cba9c22efe8320a8fbc919a50bd938e7929"; + sha256 = "17kjbc13rsjaxkpfj0f90v3khzid02rrkcdjss3sqa35f37wn2bz"; }; }; @@ -3414,12 +3414,12 @@ let vim-codefmt = buildVimPluginFrom2Nix { pname = "vim-codefmt"; - version = "2020-01-08"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "google"; repo = "vim-codefmt"; - rev = "024911c7fede0105a3381f6bc3ed54364ecbe77d"; - sha256 = "0yjvkxz6qk1yxdbjb6b0zxsab1h880l4dr6c74rcmak9m1m12r66"; + rev = "af796cf4084a3d32b85313ccc82675d626d40b59"; + sha256 = "0pbwirsh8nx0dgf82w1sy6az6mpwdnxzy0ycqrx6qxs6bbf1kf74"; }; }; @@ -3667,12 +3667,12 @@ let vim-easymotion = buildVimPluginFrom2Nix { pname = "vim-easymotion"; - version = "2020-01-06"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "easymotion"; repo = "vim-easymotion"; - rev = "83a09a19e7a9c51c6ca2e0f90f1dd27ef4c159c6"; - sha256 = "1xaliyiv80vcsl5gqj40avgdf4384d5xhnvhh0jaklk1hmrdzxgf"; + rev = "d534ba0d0c211d8228408c88fa3ebde13fecec37"; + sha256 = "0yc28synqrqjnzgzpmn7ji3nnidb55mm8n27d0kkd2l80bygg8n4"; }; }; @@ -5131,12 +5131,12 @@ let vim-snippets = buildVimPluginFrom2Nix { pname = "vim-snippets"; - version = "2020-01-07"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "honza"; repo = "vim-snippets"; - rev = "977cc05194bdac51970bf83d0fe6fafc297012de"; - sha256 = "0jj7j4mrkx0h1kcz50zs316gbppciypnv541hpsv32wzfcjj2x9m"; + rev = "5279654b3e9fc280742d02c9509d4313d9da18e9"; + sha256 = "0xnml4ayjwf7mzpz64alwygpgccvj4znask76ldw3hxp112fwcah"; }; }; @@ -5725,12 +5725,12 @@ let vimtex = buildVimPluginFrom2Nix { pname = "vimtex"; - version = "2020-01-11"; + version = "2020-01-12"; src = fetchFromGitHub { owner = "lervag"; repo = "vimtex"; - rev = "b39262879240e699ac90618003d47857be664c2d"; - sha256 = "17r6nckqqw6mcpxcvh8whv3xpmnf77ws1hyiphw2dppfmr3jpp36"; + rev = "aabfcf9e0c95bc08125aefaeb9fdfc9be04913c5"; + sha256 = "0d7sv6f8iafwm891vl4wlsv93jfqjckmsrg2k9rfynk737vsmvp5"; }; }; @@ -5747,12 +5747,12 @@ let vimwiki = buildVimPluginFrom2Nix { pname = "vimwiki"; - version = "2020-01-04"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "vimwiki"; repo = "vimwiki"; - rev = "b90e6f2e3343277faca65156d733f725f76f1e53"; - sha256 = "1z3mj73iqh4h3wx5cq4k7gp2nkbaj85v665v0phqw42c213064nb"; + rev = "64c9f3d36d632b1657616c06ea8f08f14cf6438d"; + sha256 = "0wwfl0bafwh9p8lzic75d0nl6v5dnpfid7fbiffr0i72agp0gcq7"; }; }; @@ -5879,12 +5879,12 @@ let yats-vim = buildVimPluginFrom2Nix { pname = "yats-vim"; - version = "2020-01-11"; + version = "2020-01-13"; src = fetchFromGitHub { owner = "HerringtonDarkholme"; repo = "yats.vim"; - rev = "81137eba4f2b3ed093e60dbba7d29b6d3ae4c988"; - sha256 = "04hprqqxx84lwnfnfj7x0fnsbc45xk8grf3akbzrpl1a0v36b0r3"; + rev = "976d10ee24ce4d8790bcd80b3f7c6b8bbc9ec76d"; + sha256 = "0f3kgb07js6pjr6p03iyspn5k852y5b90w1ylas7lbgz32a1f3hp"; fetchSubmodules = true; }; }; @@ -5936,12 +5936,12 @@ let zig-vim = buildVimPluginFrom2Nix { pname = "zig-vim"; - version = "2020-01-09"; + version = "2020-01-12"; src = fetchFromGitHub { owner = "zig-lang"; repo = "zig.vim"; - rev = "9c22f756b8d2b2e0e3557671a84a555f52aa1a87"; - sha256 = "1dd0by3z1ac55fm52nvxm7qf41icm0pdhzmdpdmsizbfz75nnhwz"; + rev = "2a1de0f764e42f8b76daafc24249d6cb4a743c16"; + sha256 = "0lbry8s34ld97m05q091q2dmpfkn8k6nsj0q1vrbrsml5i5xig9c"; }; }; -- cgit 1.4.1 From a6212049c11573179179874d86d4c5cc59c00ce9 Mon Sep 17 00:00:00 2001 From: Flakebi Date: Mon, 13 Jan 2020 22:49:31 +0100 Subject: vimPlugins.salt-vim: init at 2017-07-01 --- pkgs/misc/vim-plugins/generated.nix | 11 +++++++++++ pkgs/misc/vim-plugins/vim-plugin-names | 1 + 2 files changed, 12 insertions(+) diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix index 8e8ab736e9a..13416271703 100644 --- a/pkgs/misc/vim-plugins/generated.nix +++ b/pkgs/misc/vim-plugins/generated.nix @@ -2498,6 +2498,17 @@ let }; }; + salt-vim = buildVimPluginFrom2Nix { + pname = "salt-vim"; + version = "2017-07-01"; + src = fetchFromGitHub { + owner = "saltstack"; + repo = "salt-vim"; + rev = "6ca9e3500cc39dd417b411435d58a1b720b331cc"; + sha256 = "0r79bpl98xcsmkw6dg83cf1ghn89rzsr011zirk3v1wfxclri2c4"; + }; + }; + self = buildVimPluginFrom2Nix { pname = "self"; version = "2014-05-28"; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index 9ab4b652348..b22a811d2a8 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -378,6 +378,7 @@ ryanoasis/vim-devicons Rykka/riv.vim ryvnf/readline.vim sakhnik/nvim-gdb +saltstack/salt-vim samoshkin/vim-mergetool sbdchd/neoformat scrooloose/nerdcommenter -- cgit 1.4.1 From 74a3ff502f07d7a6bbb344babcb0b26a72f803da Mon Sep 17 00:00:00 2001 From: Aiken Cairncross Date: Wed, 16 Oct 2019 00:31:30 +0100 Subject: pythonPackages.onnx: init at version 1.6.0 --- pkgs/development/python-modules/onnx/default.nix | 78 ++++++++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 80 insertions(+) create mode 100644 pkgs/development/python-modules/onnx/default.nix diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix new file mode 100644 index 00000000000..3f3cf38f333 --- /dev/null +++ b/pkgs/development/python-modules/onnx/default.nix @@ -0,0 +1,78 @@ +{ lib +, fetchpatch +, buildPythonPackage +, fetchPypi +, pythonOlder +, isPy27 +, cmake +, protobuf +, numpy +, six +, typing-extensions +, typing +, pytestrunner +, pytest +, nbval +, tabulate +}: + +buildPythonPackage rec { + pname = "onnx"; + version = "1.6.0"; + + # Due to Protobuf packaging issues this build of Onnx with Python 2 gives + # errors on import + disabled = isPy27; + + src = fetchPypi { + inherit pname version; + sha256 = "0ig33jl3591041lyylxp52yi20rfrcqx3i030hd6al8iabzc721v"; + }; + + # Remove the unqualified requirement for the typing package for running the + # tests. typing is already required for the installation, where it is + # correctly qualified so as to only be required for sufficiently old Python + # versions. + # This patch should be in the next release (>1.6). + patches = [ + (fetchpatch { + url = "https://github.com/onnx/onnx/commit/c963586d0f8dd5740777b2fd06f04ec60816de9f.patch"; + sha256 = "1hl26cw5zckc91gmh0bdah87jyprccxiw0f4i5h1gwkq28hm6wbj"; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + propagatedBuildInputs = [ + protobuf + numpy + six + typing-extensions + ] ++ lib.optional (pythonOlder "3.5") [ typing ]; + + checkInputs = [ + pytestrunner + pytest + nbval + tabulate + ]; + + postPatch = '' + patchShebangs tools/protoc-gen-mypy.py + ''; + + # The executables are just utility scripts that aren't too important + postInstall = '' + rm -r $out/bin + ''; + + # The setup.py does all the configuration (running CMake) + dontConfigure = true; + + meta = { + homepage = http://onnx.ai; + description = "Open Neural Network Exchange"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.acairncross ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f314cffbb52..2b2248f6943 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -903,6 +903,8 @@ in { oauthenticator = callPackage ../development/python-modules/oauthenticator { }; + onnx = callPackage ../development/python-modules/onnx { }; + ordered-set = callPackage ../development/python-modules/ordered-set { }; ortools = (toPythonModule (pkgs.or-tools.override { -- cgit 1.4.1 From a8144b1ad33547cfdc31a903f8f7c0c658d78216 Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 13 Jan 2020 19:25:14 -0500 Subject: linux_latest-libre: 17192 -> 17198 --- pkgs/os-specific/linux/kernel/linux-libre.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix index 850865ff9c2..5102a1c2086 100644 --- a/pkgs/os-specific/linux/kernel/linux-libre.nix +++ b/pkgs/os-specific/linux/kernel/linux-libre.nix @@ -1,8 +1,8 @@ { stdenv, lib, fetchsvn, linux , scripts ? fetchsvn { url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/"; - rev = "17192"; - sha256 = "0hyd7wp73w4555d42xcvk4x4nxrfckbzah2ckb4d2aqzxab87789"; + rev = "17198"; + sha256 = "0cr7jpag6kr3iili5zmv1iimi5a1c175dcj8qvhcspwkbv7f17mp"; } , ... }: -- cgit 1.4.1 From 7184df6beb88c4f5f3186e5b73d5437a3461ceaf Mon Sep 17 00:00:00 2001 From: Tim Steinbach Date: Mon, 13 Jan 2020 19:53:00 -0500 Subject: linux: 5.5-rc5 -> 5.5-rc6 --- pkgs/os-specific/linux/kernel/linux-testing.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 1d3102e2a11..b6231b5a972 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.5-rc5"; + version = "5.5-rc6"; extraMeta.branch = "5.5"; # modDirVersion needs to be x.y.z, will always add .0 @@ -11,7 +11,7 @@ buildLinux (args // rec { src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "0h5ks0c0pdl0awiysqja6ky5ykhjcdicc01wi01wzhjklq9j0lmq"; + sha256 = "0y4rsxynn0qprrsxy4v5vr4ihhavn43yqqp1qfrrxsfw15djncc2"; }; # Should the testing kernels ever be built on Hydra? -- cgit 1.4.1 From 2ac5fab2647895a95fe9cf877faa9ce648a7be7c Mon Sep 17 00:00:00 2001 From: Flakebi Date: Sun, 12 Jan 2020 14:58:25 +0100 Subject: pencil: 3.0.4 -> 3.1.0 --- pkgs/applications/graphics/pencil/default.nix | 116 +++++++++++++------------- 1 file changed, 59 insertions(+), 57 deletions(-) diff --git a/pkgs/applications/graphics/pencil/default.nix b/pkgs/applications/graphics/pencil/default.nix index 37857fc459e..edd923822ea 100644 --- a/pkgs/applications/graphics/pencil/default.nix +++ b/pkgs/applications/graphics/pencil/default.nix @@ -1,32 +1,72 @@ -{ stdenv, fetchurl, lib, makeWrapper, +{ stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook, # build dependencies - alsaLib, atk, cairo, cups, dbus, expat, fontconfig, - freetype, gdk-pixbuf, glib, gnome2, nspr, nss, xorg, - glibc, systemd + alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, + freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango, + xorg, systemd }: +let -stdenv.mkDerivation rec { - version = "3.0.4"; + deps = [ + alsaLib + atk + at-spi2-atk + at-spi2-core + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + glibc + gtk3 + libuuid + nspr + nss + pango + xorg.libX11 + xorg.libxcb + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + stdenv.cc.cc.lib + stdenv.cc.cc + ]; + +in stdenv.mkDerivation rec { + version = "3.1.0"; pname = "pencil"; src = fetchurl { - url = "http://pencil.evolus.vn/dl/V${version}/Pencil_${version}_amd64.deb"; - sha256 = "58e2b794c615ea8715d8374f177e19c87f7071e359826ec34a59836d537a62fd"; + url = "http://pencil.evolus.vn/dl/V${version}.ga/pencil_${version}.ga_amd64.deb"; + sha256 = "01ae54b1a1351b909eb2366c6ec00816e1deba370e58f35601cf7368f10aaba3"; }; sourceRoot = "."; unpackCmd = '' - ar p "$src" data.tar.xz | tar xJ + ar p "$src" data.tar.gz | tar xz ''; dontBuild = true; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + + buildInputs = deps; installPhase = '' - mkdir -p $out/bin - cp -R usr/share opt $out/ + mkdir -p $out/bin $out/opt $out/share/applications + cp -R usr/share $out/ + cp -R opt/pencil*/ $out/opt/pencil + cp $out/opt/pencil/pencil.desktop $out/share/applications/ # fix the path in the desktop file substituteInPlace \ @@ -34,42 +74,12 @@ stdenv.mkDerivation rec { --replace /opt/ $out/opt/ # symlink the binary to bin/ - ln -s $out/opt/Pencil/pencil $out/bin/pencil + ln -s $out/opt/pencil/pencil $out/bin/pencil ''; preFixup = let - packages = [ - alsaLib - atk - cairo - cups - dbus - expat - fontconfig - freetype - gdk-pixbuf - glib - gnome2.GConf - gnome2.gtk - gnome2.pango - nspr - nss - xorg.libX11 - xorg.libXScrnSaver - xorg.libXcomposite - xorg.libXcursor - xorg.libXdamage - xorg.libXext - xorg.libXfixes - xorg.libXi - xorg.libXrandr - xorg.libXrender - xorg.libXtst - stdenv.cc.cc.lib - stdenv.cc.cc - glibc - ]; + packages = deps; libPathNative = lib.makeLibraryPath packages; libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages; libPath = "${libPathNative}:${libPath64}"; @@ -77,21 +87,13 @@ stdenv.mkDerivation rec { # patch executable patchelf \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${libPath}:$out/opt/Pencil" \ - $out/opt/Pencil/pencil - - # patch libnode - patchelf \ - --set-rpath "${libPath}" \ - $out/opt/Pencil/libnode.so - - # libffmpeg is for some reason not executable - chmod a+x $out/opt/Pencil/libffmpeg.so + --set-rpath "${libPath}:$out/opt/pencil" \ + $out/opt/pencil/pencil # fix missing libudev - ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/Pencil/libudev.so.1 - wrapProgram $out/opt/Pencil/pencil \ - --prefix LD_LIBRARY_PATH : $out/opt/Pencil + ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1 + wrapProgram $out/opt/pencil/pencil \ + --prefix LD_LIBRARY_PATH : $out/opt/pencil ''; meta = with stdenv.lib; { -- cgit 1.4.1 From 69aa28a19594bc26fa512bb872695534e78b6d61 Mon Sep 17 00:00:00 2001 From: Kaz Wesley Date: Tue, 14 Jan 2020 08:41:59 +0000 Subject: ocamlPackages.lens: init at 1.2.3 (#77656) --- pkgs/development/ocaml-modules/lens/default.nix | 23 +++++++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/development/ocaml-modules/lens/default.nix diff --git a/pkgs/development/ocaml-modules/lens/default.nix b/pkgs/development/ocaml-modules/lens/default.nix new file mode 100644 index 00000000000..27a753ae81a --- /dev/null +++ b/pkgs/development/ocaml-modules/lens/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchzip, ppx_deriving, ppxfind, buildDunePackage }: + +buildDunePackage rec { + pname = "lens"; + version = "1.2.3"; + + src = fetchzip { + url = "https://github.com/pdonadeo/ocaml-lens/archive/v${version}.tar.gz"; + sha256 = "09k2vhzysx91syjhgv6w1shc9mgzi0l4bhwpx1g5pi4r4ghjp07y"; + }; + + minimumOCamlVersion = "4.04.1"; + buildInputs = [ ppx_deriving ppxfind ]; + + meta = with lib; { + homepage = https://github.com/pdonadeo/ocaml-lens; + description = "Functional lenses"; + license = licenses.bsd3; + maintainers = with maintainers; [ + kazcw + ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 4a7743b1090..4d956c494c0 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -468,6 +468,8 @@ let lambdaTerm = callPackage ../development/ocaml-modules/lambda-term { }; + lens = callPackage ../development/ocaml-modules/lens { }; + linenoise = callPackage ../development/ocaml-modules/linenoise { }; llvm = callPackage ../development/ocaml-modules/llvm { -- cgit 1.4.1 From ec2ed2d316d850061ffa75a43f487928b0d7e7c3 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Tue, 14 Jan 2020 10:17:10 +0100 Subject: swaylock-fancy: fix src --- pkgs/applications/window-managers/sway/lock-fancy.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/window-managers/sway/lock-fancy.nix b/pkgs/applications/window-managers/sway/lock-fancy.nix index 6dd8db0f45b..aa2db698f74 100644 --- a/pkgs/applications/window-managers/sway/lock-fancy.nix +++ b/pkgs/applications/window-managers/sway/lock-fancy.nix @@ -18,7 +18,7 @@ in stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "Big-B"; - repo = pname; + repo = "swaylock-fancy"; rev = "35618ceec70338047355b6b057825e68f16971b5"; sha256 = "06fjqwblmj0d9pq6y11rr73mizirna4ixy6xkvblf1c7sn5n8lpc"; }; -- cgit 1.4.1