diff options
Diffstat (limited to 'pkgs')
38 files changed, 959 insertions, 159 deletions
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index aa1e2a6b5bd73..ec799c0fa49cc 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -100,7 +100,7 @@ let # Only display the log on error since it will contain a few normally # irrelevant messages. if ! $out/bin/nvim \ - -u ${vimUtils.vimrcFile (configure // { customRC = ""; })} \ + -u ${vimUtils.vimrcFile (configure // { customRC = ""; beforePlugins = ''filetype indent plugin on | syn on''; })} \ -i NONE -n \ -E -V1rplugins.log -s \ +UpdateRemotePlugins +quit! > outfile 2>&1; then diff --git a/pkgs/applications/graphics/runwayml/default.nix b/pkgs/applications/graphics/runwayml/default.nix index 6fa8efbf68c61..f96b70a77b473 100644 --- a/pkgs/applications/graphics/runwayml/default.nix +++ b/pkgs/applications/graphics/runwayml/default.nix @@ -6,12 +6,12 @@ let pname = "runwayml"; - version = "0.8.1"; + version = "0.9.0"; name = "${pname}-${version}"; src = fetchurl { url = "https://runway-releases.s3.amazonaws.com/Runway%20${version}.AppImage"; - sha256 = "0pqnlwk804cly2x9kph39g9ps5dv75ybi2v1fgrvmhk3wbmwmpb0"; + sha256 = "0rg7ipp7kx0l4qgcymfg5d3saz0c6d2j0c6rf28rwqgbm92gbjjq"; name="${pname}-${version}.AppImage"; }; diff --git a/pkgs/applications/misc/qMasterPassword/default.nix b/pkgs/applications/misc/qMasterPassword/default.nix index e0a1e33dc6282..9775112734258 100644 --- a/pkgs/applications/misc/qMasterPassword/default.nix +++ b/pkgs/applications/misc/qMasterPassword/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, qtbase, qmake, libX11, libXtst, openssl, libscrypt }: +{ stdenv, mkDerivation, fetchFromGitHub, qtbase, qmake, libX11, libXtst, openssl, libscrypt }: -stdenv.mkDerivation rec { +mkDerivation rec { name = "qMasterPassword"; version = "1.2.2"; diff --git a/pkgs/applications/networking/maestral/default.nix b/pkgs/applications/networking/maestral/default.nix new file mode 100644 index 0000000000000..bfacac2eaf4d0 --- /dev/null +++ b/pkgs/applications/networking/maestral/default.nix @@ -0,0 +1,38 @@ +{ lib, python3Packages, fetchFromGitHub +, withGui ? false, wrapQtAppsHook ? null }: + +python3Packages.buildPythonApplication rec { + pname = "maestral${lib.optionalString withGui "-gui"}"; + version = "0.2.6"; + + src = fetchFromGitHub { + owner = "SamSchott"; + repo = "maestral-dropbox"; + rev = "v${version}"; + sha256 = "1nfjm58f6hnqbx9xnz2h929s2175ka1yf5jjlk4i60v0wppnrrdf"; + }; + + disabled = python3Packages.pythonOlder "3.6"; + + propagatedBuildInputs = (with python3Packages; [ + blinker click dropbox keyring keyrings-alt requests u-msgpack-python watchdog + ] ++ lib.optional withGui pyqt5); + + nativeBuildInputs = lib.optional withGui wrapQtAppsHook; + + postInstall = lib.optionalString withGui '' + makeQtWrapper $out/bin/maestral $out/bin/maestral-gui \ + --add-flags gui + ''; + + # no tests + doCheck = false; + + meta = with lib; { + description = "Open-source Dropbox client for macOS and Linux"; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.unix; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/compilers/icedtea-web/default.nix b/pkgs/development/compilers/icedtea-web/default.nix index 9390cbde63779..73dd90ab4a1f5 100644 --- a/pkgs/development/compilers/icedtea-web/default.nix +++ b/pkgs/development/compilers/icedtea-web/default.nix @@ -1,30 +1,55 @@ -{ stdenv, fetchurl, jdk, gtk2, xulrunner, zip, pkgconfig, perl, npapi_sdk, bash, bc }: +{ stdenv, fetchFromGitHub, cargo, rustc, autoreconfHook, jdk, glib, xulrunner, zip, pkgconfig, npapi_sdk, bash, bc }: stdenv.mkDerivation rec { name = "icedtea-web-${version}"; - version = "1.7.1"; + version = "1.8.3"; - src = fetchurl { - url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz"; - sha256 = "1b9z0i9b1dsc2qpfdzbn2fi4vi3idrhm7ig45g1ny40ymvxcwwn9"; + src = fetchFromGitHub { + owner = "AdoptOpenJDK"; + repo = "IcedTea-Web"; + rev = name; + sha256 = "0bm5k11i2vgb54ch1bawsmjbwnqnp04saadwm2f2mggmmdc6b1qq"; }; - nativeBuildInputs = [ pkgconfig bc perl ]; - buildInputs = [ gtk2 xulrunner zip npapi_sdk ]; + nativeBuildInputs = [ autoreconfHook pkgconfig bc ]; + buildInputs = [ cargo rustc glib xulrunner zip npapi_sdk ]; preConfigure = '' - #patchShebangs javac.in configureFlagsArray+=("BIN_BASH=${bash}/bin/bash") ''; + patches = [ ./patches/0001-make-cargo-work-with-nix-build-on-linux.patch ]; + + doCheck = true; + preCheck = '' + # Needed for the below rust-launcher tests to pass + # dirs_paths_helper::tests::check_config_files_paths + # dirs_paths_helper::tests::check_legacy_config_files_paths + + mkdir -p $HOME/.icedtea + touch $HOME/.icedtea/deployment.properties + + mkdir -p $XDG_CONFIG_HOME/icedtea-web + touch $XDG_CONFIG_HOME/icedtea-web/deployment.properties + ''; + + HOME = "/build"; + XDG_CONFIG_HOME = "/build"; + configureFlags = [ + "--with-itw-libs=DISTRIBUTION" "--with-jdk-home=${jdk.home}" "--disable-docs" ]; mozillaPlugin = "/lib"; + postInstall = '' + mkdir -p $out/share/applications + cp javaws.desktop itweb-settings.desktop policyeditor.desktop $out/share/applications + ''; + meta = { description = "Java web browser plugin and an implementation of Java Web Start"; longDescription = '' @@ -32,7 +57,7 @@ stdenv.mkDerivation rec { programming language and an implementation of Java Web Start, originally based on the NetX project. ''; - homepage = http://icedtea.classpath.org/wiki/IcedTea-Web; + homepage = https://github.com/adoptopenjdk/icedtea-web; maintainers = with stdenv.lib.maintainers; [ wizeman ]; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/development/compilers/icedtea-web/patches/0001-make-cargo-work-with-nix-build-on-linux.patch b/pkgs/development/compilers/icedtea-web/patches/0001-make-cargo-work-with-nix-build-on-linux.patch new file mode 100644 index 0000000000000..85cad6cf4678a --- /dev/null +++ b/pkgs/development/compilers/icedtea-web/patches/0001-make-cargo-work-with-nix-build-on-linux.patch @@ -0,0 +1,46 @@ +Subject: [PATCH] make cargo work with nix-build on linux + +--- + .cargo/config | 2 ++ + rust-launcher/Cargo.lock | 4 ++++ + rust-launcher/Cargo.toml | 7 ++++--- + 3 files changed, 10 insertions(+), 3 deletions(-) + create mode 100644 .cargo/config + create mode 100644 rust-launcher/Cargo.lock + +diff --git a/.cargo/config b/.cargo/config +new file mode 100644 +index 0000000..03ec4a2 +--- /dev/null ++++ b/.cargo/config +@@ -0,0 +1,2 @@ ++[net] ++offline=true +diff --git a/rust-launcher/Cargo.lock b/rust-launcher/Cargo.lock +new file mode 100644 +index 0000000..6055cc0 +--- /dev/null ++++ b/rust-launcher/Cargo.lock +@@ -0,0 +1,4 @@ ++[[package]] ++name = "launcher" ++version = "1.8.0" ++ +diff --git a/rust-launcher/Cargo.toml b/rust-launcher/Cargo.toml +index 61ee308..5e6e91b 100644 +--- a/rust-launcher/Cargo.toml ++++ b/rust-launcher/Cargo.toml +@@ -3,6 +3,7 @@ name = "launcher" + version = "1.8.0" + authors = ["https://icedtea.classpath.org/wiki/IcedTea-Web"] + +-[dependencies] +-[target.'cfg(windows)'.dependencies] +-dunce = "0.1.1" ++[workspace] ++# We need this too or cargo will fail. Some files seem to be copied around and ++# cargo thinks we are in a workspace, so let's exclude everything. ++exclude = ["*"] +-- +2.19.2 + diff --git a/pkgs/development/compilers/sagittarius-scheme/default.nix b/pkgs/development/compilers/sagittarius-scheme/default.nix new file mode 100644 index 0000000000000..4b1358b72472e --- /dev/null +++ b/pkgs/development/compilers/sagittarius-scheme/default.nix @@ -0,0 +1,58 @@ +{ stdenv +, fetchurl +, cmake +, pkgconfig +, libffi +, boehmgc +, openssl +, zlib +, odbcSupport ? true +, libiodbc +}: + +let platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" + else if (stdenv.isLinux or stdenv.isBSD) then "LD_LIBRARY_PATH" + else throw "unsupported platform"; +in +stdenv.mkDerivation rec { + pname = "sagittarius-scheme"; + version = "0.9.6"; + src = fetchurl { + url = "https://bitbucket.org/ktakashi/${pname}/downloads/sagittarius-${version}.tar.gz"; + sha256 = "03nvvvfd4gdlvq244zpnikxxajp6w8jj3ymw4bcq83x7zilb2imr"; + }; + preBuild = '' + # since we lack rpath during build, need to explicitly add build path + # to LD_LIBRARY_PATH so we can load libsagittarius.so as required to + # build extensions + export ${platformLdLibraryPath}="$(pwd)/build" + ''; + nativeBuildInputs = [ pkgconfig cmake ]; + + buildInputs = [ libffi boehmgc openssl zlib ] ++ stdenv.lib.optional odbcSupport libiodbc; + + meta = with stdenv.lib; { + description = "An R6RS/R7RS Scheme system"; + longDescription = '' + Sagittarius Scheme is a free Scheme implementation supporting + R6RS/R7RS specification. + + Features: + + - Builtin CLOS. + - Common Lisp like reader macro. + - Cryptographic libraries. + - Customisable cipher and hash algorithm. + - Custom codec mechanism. + - CL like keyword lambda syntax (taken from Gauche). + - Constant definition form. (define-constant form). + - Builtin regular expression + - mostly works O(n) + - Replaceable reader + ''; + homepage = "https://bitbucket.org/ktakashi/sagittarius-scheme"; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ abbe ]; + }; +} diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 9f58d819bb0cf..779788785d027 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1279,4 +1279,7 @@ self: super: { # https://github.com/sol/hpack/issues/366 hpack = dontCheck super.hpack; + # QuickCheck >=2.3 && <2.13, hspec >=2.1 && <2.7 + graphviz = dontCheck super.graphviz; + } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml index a8f462571f0fe..d6344717dfa29 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml @@ -4100,7 +4100,6 @@ broken-packages: - Dao - dao - dapi - - darcs - darcs-benchmark - darcs-beta - darcs-buildpackage @@ -5248,7 +5247,6 @@ broken-packages: - graphql - graphql-api - graphtype - - graphviz - graql - grasp - gray-code diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index e1c70c608dddd..62e2ff6c53bf6 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -61840,8 +61840,6 @@ self: { ''; description = "a distributed, interactive, smart revision control system"; license = stdenv.lib.licenses.gpl2; - hydraPlatforms = stdenv.lib.platforms.none; - broken = true; }) {inherit (pkgs) curl;}; "darcs-benchmark" = callPackage @@ -99289,8 +99287,6 @@ self: { benchmarkHaskellDepends = [ base criterion deepseq text ]; description = "Bindings to Graphviz for graph visualisation"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; - broken = true; }) {inherit (pkgs) graphviz;}; "graql" = callPackage diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix index 9c35d33735054..29692c41c9304 100644 --- a/pkgs/development/libraries/libwnck/3.x.nix +++ b/pkgs/development/libraries/libwnck/3.x.nix @@ -1,31 +1,78 @@ -{ stdenv, fetchurl, pkgconfig, libX11, gtk3, intltool, gobject-introspection, gnome3 }: +{ stdenv +, fetchurl +, fetchpatch +, meson +, ninja +, pkgconfig +, gtk-doc +, docbook_xsl +, docbook_xml_dtd_412 +, libX11 +, glib +, gtk3 +, pango +, cairo +, libXres +, libstartup_notification +, gettext +, gobject-introspection +, gnome3 +}: -let +stdenv.mkDerivation rec{ pname = "libwnck"; - version = "3.30.0"; -in stdenv.mkDerivation rec{ - name = "${pname}-${version}"; + version = "3.32.0"; + + outputs = [ "out" "dev" "devdoc" ]; + outputBin = "dev"; src = fetchurl { - url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; - sha256 = "0f9lvhm3w25046dqq8xyg7nzggxpmdriwrb661nng05a8qk0svdc"; + url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"; }; - outputs = [ "out" "dev" "devdoc" ]; - outputBin = "dev"; + patches = [ + # https://gitlab.gnome.org/GNOME/libwnck/issues/139 + (fetchpatch { + url = https://gitlab.gnome.org/GNOME/libwnck/commit/0d9ff7db63af568feef8e8c566e249058ccfcb4e.patch; + sha256 = "18f78aayq9jma54v2qz3rm2clmz1cfq5bngxw8p4zba7hplyqsl9"; + }) + # https://gitlab.gnome.org/GNOME/libwnck/merge_requests/12 + ./fix-pc-file.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + gettext + gobject-introspection + gtk-doc + docbook_xsl + docbook_xml_dtd_412 + ]; - configureFlags = [ "--enable-introspection" ]; + buildInputs = [ + libX11 + libstartup_notification + pango + cairo + libXres + ]; - nativeBuildInputs = [ pkgconfig intltool gobject-introspection ]; - propagatedBuildInputs = [ libX11 gtk3 ]; + propagatedBuildInputs = [ + glib + gtk3 + ]; - PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR = "${placeholder "dev"}/share/gir-1.0"; - PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "${placeholder "out"}/lib/girepository-1.0"; + mesonFlags = [ + "-Dgtk_doc=true" + ]; passthru = { updateScript = gnome3.updateScript { packageName = pname; - attrPath = "gnome3.${pname}"; + attrPath = "${pname}${stdenv.lib.versions.major version}"; }; }; diff --git a/pkgs/development/libraries/libwnck/fix-pc-file.patch b/pkgs/development/libraries/libwnck/fix-pc-file.patch new file mode 100644 index 0000000000000..42017a993b518 --- /dev/null +++ b/pkgs/development/libraries/libwnck/fix-pc-file.patch @@ -0,0 +1,24 @@ +diff --git a/meson.build b/meson.build +index 28799d8..047e523 100644 +--- a/meson.build ++++ b/meson.build +@@ -72,11 +72,15 @@ + pc_conf = configuration_data() + pc_conf.set('prefix', get_option('prefix')) + pc_conf.set('exec_prefix', '${prefix}') +-pc_conf.set('libdir', '${exec_prefix}/' + get_option('libdir')) +-pc_conf.set('includedir', '${prefix}/' + get_option('includedir')) +-pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE) ++pc_conf.set('libdir', '${exec_prefix}' / get_option('libdir')) ++pc_conf.set('includedir', '${prefix}' / get_option('includedir')) ++if conf.has('HAVE_' + STARTUP_NOTIFICATION_PACKAGE.to_upper().underscorify()) ++ pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE) ++endif + pc_conf.set('X11_PACKAGE', X11_PACKAGE) +-pc_conf.set('XRES_PACKAGE', XRES_PACKAGE) ++if conf.has('HAVE_' + XRES_PACKAGE.to_upper().underscorify()) ++ pc_conf.set('XRES_PACKAGE', XRES_PACKAGE) ++endif + pc_conf.set('VERSION', meson.project_version()) + + foreach pc: [PACKAGE_NAME, PACKAGE_NAME + '-uninstalled'] diff --git a/pkgs/development/libraries/ptex/default.nix b/pkgs/development/libraries/ptex/default.nix index aa17771ec9f2e..b4571d07fbf35 100644 --- a/pkgs/development/libraries/ptex/default.nix +++ b/pkgs/development/libraries/ptex/default.nix @@ -1,36 +1,27 @@ -{ stdenv, fetchFromGitHub, zlib, python, cmake }: +{ stdenv, fetchFromGitHub, zlib, python, cmake, pkg-config }: stdenv.mkDerivation rec { - name = "ptex-${version}"; - version = "2.3.0"; + pname = "ptex"; + version = "2.3.2"; src = fetchFromGitHub { owner = "wdas"; repo = "ptex"; rev = "v${version}"; - sha256 = "0nfz0y66bmi6xckn1whi4sfd8i3ibln212fgm4img2z98b6vccyg"; + sha256 = "1c3pdqszn4y3d86qzng8b0hqdrchnl39adq5ab30wfnrgl2hnm4z"; }; outputs = [ "bin" "dev" "out" "lib" ]; - buildInputs = [ zlib python cmake ]; + buildInputs = [ zlib python cmake pkg-config ]; enableParallelBuilding = true; - buildPhase = '' - mkdir -p $out - - make prefix=$out - - mkdir -p $bin/bin - mkdir -p $dev/include - mkdir -p $lib/lib - ''; - - installPhase = '' - make install - mv $out/bin $bin/ + # Can be removed in the next release + # https://github.com/wdas/ptex/pull/42 + patchPhase = '' + echo v${version} >version ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/pth/default.nix b/pkgs/development/libraries/pth/default.nix index c315cb8f72b43..b2173ec21ee12 100644 --- a/pkgs/development/libraries/pth/default.nix +++ b/pkgs/development/libraries/pth/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { preConfigure = stdenv.lib.optionalString stdenv.isAarch32 '' configureFlagsArray=("CFLAGS=-DJB_SP=8 -DJB_PC=9") + '' + stdenv.lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' + configureFlagsArray+=("ac_cv_check_sjlj=ssjlj") ''; meta = with stdenv.lib; { @@ -17,6 +19,5 @@ stdenv.mkDerivation rec { homepage = https://www.gnu.org/software/pth; license = licenses.lgpl21Plus; platforms = platforms.all; - broken = stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isAarch64; }; } diff --git a/pkgs/development/tools/misc/blackmagic/default.nix b/pkgs/development/tools/misc/blackmagic/default.nix index 281463528354e..ddc15f856b539 100644 --- a/pkgs/development/tools/misc/blackmagic/default.nix +++ b/pkgs/development/tools/misc/blackmagic/default.nix @@ -1,28 +1,30 @@ { stdenv, lib, fetchFromGitHub -, gcc-arm-embedded, binutils-arm-embedded, libftdi +, gcc-arm-embedded, libftdi1 , python, pythonPackages }: with lib; stdenv.mkDerivation rec { - name = "blackmagic-${version}"; - version = "1.6.1"; + pname = "blackmagic"; + version = "unstable-2019-08-13"; + # `git describe --always` + firmwareVersion = "v1.6.1-317-gc9c8b08"; src = fetchFromGitHub { owner = "blacksphere"; repo = "blackmagic"; - rev = "29386aee140e5e99a958727358f60980418b4c88"; - sha256 = "05x19y80mixk6blpnfpfngy5d41jpjvdqgjzkmhv1qc03bhyhc82"; + rev = "c9c8b089f716c31433432f5ee54c5c206e4945cf"; + sha256 = "0175plba7h3r1p584ygkjlvg2clvxa2m0xfdcb2v8jza2vzc8ywd"; fetchSubmodules = true; }; nativeBuildInputs = [ - gcc-arm-embedded binutils-arm-embedded + gcc-arm-embedded ]; buildInputs = [ - libftdi + libftdi1 python pythonPackages.intelhex ]; @@ -30,7 +32,7 @@ stdenv.mkDerivation rec { postPatch = '' # Prevent calling out to `git' to generate a version number: substituteInPlace src/Makefile \ - --replace '`git describe --always --dirty`' '${version}' + --replace '$(shell git describe --always --dirty)' '${firmwareVersion}' # Fix scripts that generate headers: for f in $(find scripts libopencm3/scripts -type f); do @@ -41,6 +43,8 @@ stdenv.mkDerivation rec { buildPhase = "${stdenv.shell} ${./helper.sh}"; installPhase = ":"; # buildPhase does this. + enableParallelBuilding = true; + meta = { description = "In-application debugger for ARM Cortex microcontrollers"; longDescription = '' @@ -56,7 +60,7 @@ stdenv.mkDerivation rec { ''; homepage = https://github.com/blacksphere/blackmagic; license = licenses.gpl3Plus; - maintainers = with maintainers; [ pjones ]; + maintainers = with maintainers; [ pjones emily ]; platforms = platforms.unix; }; } diff --git a/pkgs/development/tools/misc/blackmagic/helper.sh b/pkgs/development/tools/misc/blackmagic/helper.sh index b4c7558885bb9..991d0249e169f 100755 --- a/pkgs/development/tools/misc/blackmagic/helper.sh +++ b/pkgs/development/tools/misc/blackmagic/helper.sh @@ -10,6 +10,8 @@ out=${out:-/tmp} ################################################################################ export CFLAGS=$NIX_CFLAGS_COMPILE +export MAKEFLAGS="\ + ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}}" ################################################################################ PRODUCTS="blackmagic.bin blackmagic.hex blackmagic_dfu.bin blackmagic_dfu.hex" diff --git a/pkgs/misc/drivers/utsushi/default.nix b/pkgs/misc/drivers/utsushi/default.nix new file mode 100644 index 0000000000000..328e8ce456250 --- /dev/null +++ b/pkgs/misc/drivers/utsushi/default.nix @@ -0,0 +1,154 @@ +{ stdenv, fetchurl, autoreconfHook, boost, gtkmm2 +, pkg-config, libtool, udev, libjpeg, file, texlive +, libusb, libtiff, imagemagick, sane-backends, tesseract }: + +/* +Alternatively, this package could use the "community source" at +https://gitlab.com/utsushi/utsushi/ +Epson provides proprietary plugins for networking, ocr and some more +scanner models. Those are not (yet ?) packaged here. +*/ + +stdenv.mkDerivation rec { + pname = "utsushi"; + version = "3.57.0"; + + src = fetchurl { + url = "http://support.epson.net/linux/src/scanner/imagescanv3/common/imagescan_${version}.orig.tar.gz"; + sha256 = "0qy6n6nbisbvy0q3idj7hpmj9i85cd0a18klfd8nsqsa2nkg57ny"; + }; + + nativeBuildInputs = [ + pkg-config + autoreconfHook + libtool + ]; + + buildInputs = [ + boost + libusb + libtiff + libjpeg + udev + imagemagick + sane-backends + gtkmm2 + file + tesseract + ]; + + patches = [ + ./patches/absolute-path-to-convert.patch + ./patches/print-errors.patch + ./patches/absolute_path_for_tesseract.patch + ]; + + postPatch = '' + # remove vendored dependencies + rm -r upstream/boost + # create fake udev and sane config + mkdir -p $out/etc/{sane.d,udev/rules.d} + touch $out/etc/sane.d/dll.conf + ''; + + configureFlags = [ + "--with-boost-libdir=${boost}/lib" + "--with-sane-confdir=${placeholder "out"}/etc/sane.d" + "--with-udev-confdir=${placeholder "out"}/etc/udev" + "--with-sane" + "--with-gtkmm" + "--with-jpeg" + "--with-magick" + "--with-sane" + "--with-tiff" + ]; + + installFlags = [ "SANE_BACKENDDIR=${placeholder "out"}/lib/sane" ]; + + enableParallelBuilding = true; + + meta = { + description = "SANE utsushi backend for some Epson scanners"; + longDescription = '' + ImageScanV3 (aka utsushi) scanner driver. + Non-free plugins are not included so no network support. + To use the SANE backend, in /etc/nixos/configuration.nix: + + hardware.sane = { + enable = true; + extraBackends = [ pkgs.utsushi ]; + }; + services.udev.packages = [ pkgs.utsushi ]; + + Supported hardware: + - DS-40 + - DS-70 + - DS-80W + - DS-410 + - DS-510 + - DS-520 + - DS-530 + - DS-535 + - DS-535H + - DS-560 + - DS-575W + - DS-760 + - DS-775 + - DS-780N + - DS-860 + - DS-1630 + - DS-5500 + - DS-6500 + - DS-7500 + - DS-50000 + - DS-60000 + - DS-70000 + - EP-10VA Series + - EP-808A Series + - EP-978A3 Series + - ES-50 + - ES-55R + - ES-60W + - ES-65WR + - ES-300WR + - ES-400 + - ES-500WR + - ES-8500 + - ET-2500 Series + - ET-2550 Series + - ET-4500 Series + - ET-4550 Series + - Expression 1640XL + - FF-680W + - L220/L360 Series + - L365/L366 Series + - L380 Series + - L455 Series + - L565/L566 Series + - L655 Series + - PX-M840FX + - PX-M860F + - PX-M884F + - PX-M7050 Series + - PX-M7050FX Series + - WF-4720 + - WF-6530 Series + - WF-6590 Series + - WF-8510/8590 Series + - WF-R8590 Series + - XP-220 Series + - XP-230 Series + - XP-235 Series + - XP-332 335 Series + - XP-430 Series + - XP-432 435 Series + - XP-530 Series + - XP-540 + - XP-630 Series + - XP-640 + - XP-830 Series + - XP-960 Series + ''; + license = stdenv.lib.licenses.gpl3Plus; + }; +} diff --git a/pkgs/misc/drivers/utsushi/patches/absolute-path-to-convert.patch b/pkgs/misc/drivers/utsushi/patches/absolute-path-to-convert.patch new file mode 100644 index 0000000000000..2bc9422b061e7 --- /dev/null +++ b/pkgs/misc/drivers/utsushi/patches/absolute-path-to-convert.patch @@ -0,0 +1,166 @@ +Index: utsushi-0.57.0/configure.ac +=================================================================== +--- utsushi-0.57.0.orig/configure.ac ++++ utsushi-0.57.0/configure.ac +@@ -221,6 +221,9 @@ AS_IF([test xno != x$enable_code_coverag + [AC_MSG_ERROR([code coverage support requires a GNU C/C++ compiler])]) + ]) + AM_PROG_AR ++AC_PATH_PROG([AWK],[awk]) ++AC_DEFINE_UNQUOTED([AWK], ["$AWK"], ++ [Path to awk.]) + + PKG_PROG_PKG_CONFIG + +@@ -379,27 +382,31 @@ AM_CONDITIONAL([have_libmagick_pp], [tes + AS_IF([test xno != "x$with_magick"], + AS_CASE("x$with_magick", + [xGraphicsMagick], +- [AC_CHECK_PROGS([MAGICK_CONVERT], [gm]) +- AS_IF([test xgm != x$MAGICK_CONVERT], ++ [[AC_PATH_PROG(MAGICK_CONVERT, gm)] ++ AS_IF([test x == x$MAGICK_CONVERT], + [AC_MSG_ERROR([$with_magick requested but not found])]) + AC_DEFINE([HAVE_GRAPHICS_MAGICK], [1]) +- MAGICK_CONVERT="gm convert" ++ HAVE_MAGICK=1 ++ MAGICK_CONVERT="$MAGICK_CONVERT convert" + ], + [xImageMagick], +- [AC_CHECK_PROGS([MAGICK_CONVERT], [convert]) +- AS_IF([test xconvert != x$MAGICK_CONVERT], ++ [[AC_PATH_PROG(MAGICK_CONVERT, convert)] ++ AS_IF([test x == x$MAGICK_CONVERT], + [AC_MSG_ERROR([$with_magick requested but not found])]) + AC_DEFINE([HAVE_IMAGE_MAGICK], [1]) ++ HAVE_MAGICK=1 + ], + [xyes|xcheck], +- [AC_CHECK_PROGS([MAGICK_CONVERT], [gm convert]) ++ [[AC_PATH_PROGS([MAGICK_CONVERT], [gm convert])] + AS_CASE(x$MAGICK_CONVERT, +- [xgm], ++ [x*gm], + [AC_DEFINE([HAVE_GRAPHICS_MAGICK], [1]) +- MAGICK_CONVERT="gm convert" ++ HAVE_MAGICK=1 ++ MAGICK_CONVERT="$MAGICK_CONVERT convert" + ], +- [xconvert], ++ [x*convert], + [AC_DEFINE([HAVE_IMAGE_MAGICK], [1]) ++ HAVE_MAGICK=1 + ], + [dnl default case + AS_IF([test xcheck != "x$with_magick"], +@@ -410,7 +417,7 @@ AS_IF([test xno != "x$with_magick"], + AC_MSG_ERROR([unknown value: --with-magick=$with_magick]) + ])) + AC_DEFINE_UNQUOTED([MAGICK_CONVERT], ["$MAGICK_CONVERT"]) +-AM_CONDITIONAL([have_magick], [test x != "x$MAGICK_CONVERT"]) ++AM_CONDITIONAL([have_magick], [test x != "x$HAVE_MAGICK"]) + + AS_IF([test xno != "x$with_gtkmm"], + [PKG_CHECK_MODULES([LIBGTKMM], [gtkmm-2.4 >= 2.20], +Index: utsushi-0.57.0/filters/magick.cpp +=================================================================== +--- utsushi-0.57.0.orig/filters/magick.cpp ++++ utsushi-0.57.0/filters/magick.cpp +@@ -81,19 +81,18 @@ chomp (char *str) + } + + bool +-magick_version_before_(const char *magick, const char *cutoff) ++magick_version_before_(const char *cutoff) + { + FILE *fp = NULL; + int errc = 0; + +- if (0 == strcmp ("GraphicsMagick", magick)) +- fp = popen ("gm convert -version" +- "| awk '/^GraphicsMagick/{print $2}'", "r"); +- if (fp) errc = errno; +- +- if (0 == strcmp ("ImageMagick", magick)) +- fp = popen ("convert -version" +- "| awk '/^Version:/{print $3}'", "r"); ++#if HAVE_GRAPHICS_MAGICK ++ fp = popen (MAGICK_CONVERT " -version" ++ "| " AWK " '/^GraphicsMagick/{print $2}'", "r"); ++#elif HAVE_IMAGE_MAGICK ++ fp = popen (MAGICK_CONVERT " -version" ++ "| " AWK " '/^Version:/{print $3}'", "r"); ++#endif + if (fp) errc = errno; + + if (fp) +@@ -106,42 +105,32 @@ magick_version_before_(const char *magic + + if (version) + { +- log::debug ("found %1%-%2%") % magick % version; ++ log::debug ("found " MAGICK_CONVERT "version %1%") % version; + return (0 > strverscmp (version, cutoff)); + } + } + + if (errc) +- log::alert ("failure checking %1% version: %2%") +- % magick ++ log::alert ("failure checking " MAGICK_CONVERT " version: %1%") + % strerror (errc); + + return false; + } + + bool +-graphics_magick_version_before_(const char *cutoff) +-{ +- return magick_version_before_("GraphicsMagick", cutoff); +-} +- +-bool +-image_magick_version_before_(const char *cutoff) +-{ +- return magick_version_before_("ImageMagick", cutoff); +-} +- +-bool + auto_orient_is_usable () + { + static int usable = -1; + + if (-1 == usable) + { +- if (HAVE_GRAPHICS_MAGICK) // version -auto-orient was added +- usable = !graphics_magick_version_before_("1.3.18"); +- if (HAVE_IMAGE_MAGICK) // version known to work +- usable = !image_magick_version_before_("6.7.8-9"); ++#if HAVE_GRAPHICS_MAGICK ++ // version -auto-orient was added ++ usable = !magick_version_before_("1.3.18"); ++#elif HAVE_IMAGE_MAGICK ++ // version known to work ++ usable = !magick_version_before_("6.7.8-9"); ++#endif + if (-1 == usable) + usable = false; + usable = (usable ? 1 : 0); +@@ -392,7 +381,7 @@ magick::arguments (const context& ctx) + if (color_correction_) + { + if (HAVE_IMAGE_MAGICK +- && !image_magick_version_before_("6.6.1-0")) ++ && !magick_version_before_("6.6.1-0")) + argv += " -color-matrix"; + else + argv += " -recolor"; +@@ -416,7 +405,7 @@ magick::arguments (const context& ctx) + size_t mat_size = ((HAVE_IMAGE_MAGICK) ? 6 : 5); + + if (HAVE_IMAGE_MAGICK +- && !image_magick_version_before_("6.6.1-0")) ++ && !magick_version_before_("6.6.1-0")) + argv += " -color-matrix"; + else + argv += " -recolor"; diff --git a/pkgs/misc/drivers/utsushi/patches/absolute_path_for_tesseract.patch b/pkgs/misc/drivers/utsushi/patches/absolute_path_for_tesseract.patch new file mode 100644 index 0000000000000..d4d4449792103 --- /dev/null +++ b/pkgs/misc/drivers/utsushi/patches/absolute_path_for_tesseract.patch @@ -0,0 +1,56 @@ +Index: utsushi-0.57.0/filters/reorient.cpp +=================================================================== +--- utsushi-0.57.0.orig/filters/reorient.cpp ++++ utsushi-0.57.0/filters/reorient.cpp +@@ -96,8 +96,8 @@ chomp (char *str) + bool + tesseract_version_before_(const char *cutoff) + { +- FILE *fp = popen ("tesseract --version 2>&1" +- "| awk '/^tesseract/{ print $2 }'", "r"); ++ FILE *fp = popen (TESSERACT " --version 2>&1" ++ "| " AWK " '/^tesseract/{ print $2 }'", "r"); + int errc = errno; + + if (fp) +@@ -126,7 +126,7 @@ tesseract_version_before_(const char *cu + bool + have_tesseract_language_pack_(const char *lang) + { +- std::string cmd("tesseract --list-langs 2>&1" ++ std::string cmd(TESSERACT " --list-langs 2>&1" + "| sed -n '/^"); + cmd += lang; + cmd += "$/p'"; +@@ -291,7 +291,7 @@ reorient::reorient () + + if (found) + { +- if (have_tesseract_()) engine_ = "tesseract"; ++ if (have_tesseract_()) engine_ = TESSERACT; + if (have_ocr_engine_()) engine_ = abs_path_name; + } + freeze_options (); // initializes option tracking member variables +Index: utsushi-0.57.0/configure.ac +=================================================================== +--- utsushi-0.57.0.orig/configure.ac ++++ utsushi-0.57.0/configure.ac +@@ -196,6 +196,8 @@ AC_DEFINE([HAVE_IMAGE_MAGICK_PP], + [0], [Define to 1 if ImageMagick's C++ API is usable]) + AC_DEFINE([MAGICK_CONVERT], + [], [Define to an appropriate command-line invocation for convert]) ++AC_DEFINE([TESSERACT], ++ [], [Define to an appropriate command-line invocation for tesseract]) + AC_DEFINE([WITH_INCLUDED_BOOST], + [0], [Define to 1 if using the included Boost sources]) + +@@ -419,6 +421,9 @@ AS_IF([test xno != "x$with_magick"], + AC_DEFINE_UNQUOTED([MAGICK_CONVERT], ["$MAGICK_CONVERT"]) + AM_CONDITIONAL([have_magick], [test x != "x$HAVE_MAGICK"]) + ++AC_PATH_PROG([TESSERACT], [tesseract], [tesseract]) ++AC_DEFINE_UNQUOTED([TESSERACT], ["$TESSERACT"]) ++ + AS_IF([test xno != "x$with_gtkmm"], + [PKG_CHECK_MODULES([LIBGTKMM], [gtkmm-2.4 >= 2.20], + [AC_DEFINE([HAVE_LIBGTKMM], [1])], diff --git a/pkgs/misc/drivers/utsushi/patches/print-errors.patch b/pkgs/misc/drivers/utsushi/patches/print-errors.patch new file mode 100644 index 0000000000000..06660ebde9885 --- /dev/null +++ b/pkgs/misc/drivers/utsushi/patches/print-errors.patch @@ -0,0 +1,15 @@ +Index: utsushi-0.57.0/lib/log.cpp +=================================================================== +--- utsushi-0.57.0.orig/lib/log.cpp ++++ utsushi-0.57.0/lib/log.cpp +@@ -26,8 +26,8 @@ + + namespace utsushi { + +-log::priority log::threshold = log::FATAL; +-log::category log::matching = log::NOTHING; ++log::priority log::threshold = log::ERROR; ++log::category log::matching = log::ALL; + + template<> + std::basic_ostream< char >& diff --git a/pkgs/misc/drivers/utsushi/patches/series b/pkgs/misc/drivers/utsushi/patches/series new file mode 100644 index 0000000000000..de0964c758b13 --- /dev/null +++ b/pkgs/misc/drivers/utsushi/patches/series @@ -0,0 +1,3 @@ +absolute-path-to-convert.patch +print-errors.patch +absolute_path_for_tesseract.patch diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix index 2633c43d69926..44bc7ec3ced1d 100644 --- a/pkgs/misc/vim-plugins/vim-utils.nix +++ b/pkgs/misc/vim-plugins/vim-utils.nix @@ -188,7 +188,8 @@ let vam ? null, pathogen ? null, plug ? null, - customRC ? "" + customRC ? "", + beforePlugins ? "", }: let @@ -341,6 +342,8 @@ let " minimal setup, generated by NIX set nocompatible + ${beforePlugins} + ${vamImpl} ${pathogenImpl} ${plugImpl} diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix index b8fec2f416a25..d4a23f3ed0720 100644 --- a/pkgs/os-specific/linux/evdi/default.nix +++ b/pkgs/os-specific/linux/evdi/default.nix @@ -1,14 +1,14 @@ { stdenv, fetchFromGitHub, kernel, libdrm }: stdenv.mkDerivation rec { - name = "evdi-${version}"; - version = "1.6.1"; + pname = "evdi"; + version = "1.6.2"; src = fetchFromGitHub { owner = "DisplayLink"; - repo = "evdi"; + repo = pname; rev = "v${version}"; - sha256 = "1h98w1yfqsrjfhpnyfnggpkxs9yayw441nmfkllmzhzfnsd31fp7"; + sha256 = "0ajjsh1fw7w0k28r6qq7kh3qcr87gzzjp8s890algbglynlafzfw"; }; nativeBuildInputs = kernel.moduleBuildDependencies; diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl index f886fcfdc3584..26fc07202bb11 100644 --- a/pkgs/os-specific/linux/kernel/generate-config.pl +++ b/pkgs/os-specific/linux/kernel/generate-config.pl @@ -28,7 +28,7 @@ open ANSWERS, "<$ENV{KERNEL_CONFIG}" or die "Could not open answer file"; while (<ANSWERS>) { chomp; s/#.*//; - if (/^\s*([A-Za-z0-9_]+)(\?)?\s+(\S+)\s*$/) { + if (/^\s*([A-Za-z0-9_]+)(\?)?\s+(.*\S)\s*$/) { $answers{$1} = $3; $requiredAnswers{$1} = !(defined $2); } elsif (!/^\s*$/) { diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix index 303df98d44ae3..7984e357c82c0 100644 --- a/pkgs/os-specific/linux/nfs-utils/default.nix +++ b/pkgs/os-specific/linux/nfs-utils/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, fetchpatch, lib, pkgconfig, utillinux, libcap, libtirpc, libevent , sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers -, python3 +, python3, buildPackages }: let @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { # put it in the "lib" output, and the headers in "dev" outputs = [ "out" "dev" "lib" "man" ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig buildPackages.stdenv.cc ]; buildInputs = [ libtirpc libcap libevent sqlite lvm2 diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index ce2f788338e35..03e11d1a8ed93 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, autoreconfHook, utillinux, nukeReferences, coreutils -, perl +, perl, buildPackages , configFile ? "all" # Userspace dependencies @@ -43,53 +43,43 @@ let postPatch = optionalString buildKernel '' patchShebangs scripts - '' + optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace config/user-libtirpc.m4 \ - --replace /usr/include/tirpc ${libtirpc}/include/tirpc - ''; - - nativeBuildInputs = [ autoreconfHook nukeReferences ] - ++ optional buildKernel (kernel.moduleBuildDependencies ++ [ perl ]); - buildInputs = optionals buildUser [ zlib libuuid python3 attr ] - ++ optionals (buildUser) [ openssl ] - ++ optional stdenv.hostPlatform.isMusl [ libtirpc ]; - - # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work - NIX_CFLAGS_LINK = "-lgcc_s"; - - hardeningDisable = [ "fortify" "stackprotector" "pic" ]; - - preConfigure = '' - substituteInPlace ./module/zfs/zfs_ctldir.c --replace "umount -t zfs" "${utillinux}/bin/umount -t zfs" - substituteInPlace ./module/zfs/zfs_ctldir.c --replace "mount -t zfs" "${utillinux}/bin/mount -t zfs" - substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount" "${utillinux}/bin/umount" - substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/mount" "${utillinux}/bin/mount" + # The arrays must remain the same length, so we repeat a flag that is + # already part of the command and therefore has no effect. + substituteInPlace ./module/zfs/zfs_ctldir.c --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \ + --replace '"/usr/bin/env", "mount"' '"${utillinux}/bin/mount", "-n"' + '' + optionalString buildUser '' + substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount" "${utillinux}/bin/umount" \ + --replace "/bin/mount" "${utillinux}/bin/mount" substituteInPlace ./lib/libshare/nfs.c --replace "/usr/sbin/exportfs" "${nfs-utils}/bin/exportfs" - substituteInPlace ./cmd/ztest/ztest.c --replace "/usr/sbin/ztest" "$out/sbin/ztest" - substituteInPlace ./cmd/ztest/ztest.c --replace "/usr/sbin/zdb" "$out/sbin/zdb" substituteInPlace ./config/user-systemd.m4 --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d" substituteInPlace ./config/zfs-build.m4 --replace "\$sysconfdir/init.d" "$out/etc/init.d" substituteInPlace ./etc/zfs/Makefile.am --replace "\$(sysconfdir)" "$out/etc" substituteInPlace ./cmd/zed/Makefile.am --replace "\$(sysconfdir)" "$out/etc" - substituteInPlace ./module/Makefile.in --replace "/bin/cp" "cp" substituteInPlace ./etc/systemd/system/zfs-share.service.in \ --replace "/bin/rm " "${coreutils}/bin/rm " - for f in ./udev/rules.d/* - do - substituteInPlace "$f" --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id" - done substituteInPlace ./cmd/vdev_id/vdev_id \ --replace "PATH=/bin:/sbin:/usr/bin:/usr/sbin" \ "PATH=${makeBinPath [ coreutils gawk gnused gnugrep systemd ]}" - - ./autogen.sh - configureFlagsArray+=("--libexecdir=$out/libexec") + '' + optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace config/user-libtirpc.m4 \ + --replace /usr/include/tirpc ${libtirpc}/include/tirpc ''; + nativeBuildInputs = [ autoreconfHook nukeReferences ] + ++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]); + buildInputs = optionals buildUser [ zlib libuuid attr ] + ++ optionals (buildUser) [ openssl python3 ] + ++ optional stdenv.hostPlatform.isMusl libtirpc; + + # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work + NIX_CFLAGS_LINK = "-lgcc_s"; + + hardeningDisable = [ "fortify" "stackprotector" "pic" ]; + configureFlags = [ "--with-config=${configFile}" - "--with-python=${python3.interpreter}" + (withFeatureAs buildUser "python" python3.interpreter) ] ++ optionals buildUser [ "--with-dracutdir=$(out)/lib/dracut" "--with-udevdir=$(out)/lib/udev" @@ -97,13 +87,16 @@ let "--with-systemdpresetdir=$(out)/etc/systemd/system-preset" "--with-systemdgeneratordir=$(out)/lib/systemd/system-generator" "--with-mounthelperdir=$(out)/bin" + "--libexecdir=$(out)/libexec" "--sysconfdir=/etc" "--localstatedir=/var" "--enable-systemd" - ] ++ optionals buildKernel [ + ] ++ optionals buildKernel ([ "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; + ] ++ kernel.makeFlags); + + makeFlags = optionals buildKernel kernel.makeFlags; enableParallelBuilding = true; @@ -112,9 +105,10 @@ let "DEFAULT_INITCONF_DIR=\${out}/default" ]; - postInstall = '' - # Prevent kernel modules from depending on the Linux -dev output. - nuke-refs $(find $out -name "*.ko") + postInstall = optionalString buildKernel '' + # Add reference that cannot be detected due to compressed kernel module + mkdir -p "$out/nix-support" + echo "${utillinux}" >> "$out/nix-support/extra-refs" '' + optionalString buildUser '' # Remove provided services as they are buggy rm $out/etc/systemd/system/zfs-import-*.service @@ -174,7 +168,6 @@ in { # incompatibleKernelVersion = "4.19"; # this package should point to a version / git revision compatible with the latest kernel release - # This is now "stable". Move to zfsStable after it's tested more. version = "0.8.1"; sha256 = "0wlbziijx08a9bmbyq4gfz4by9l5jrx44g18i99qnfm78k2q8a84"; diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix new file mode 100644 index 0000000000000..8785e052224dc --- /dev/null +++ b/pkgs/servers/sql/mysql/8.0.x.nix @@ -0,0 +1,73 @@ +{ lib, stdenv, fetchurl, bison, cmake, pkgconfig +, boost, icu, libedit, libevent, lz4, ncurses, openssl, protobuf, re2, readline, zlib +, numactl, perl, cctools, CoreServices, developer_cmds +}: + +let +self = stdenv.mkDerivation rec { + name = "mysql-8.0.17"; + + src = fetchurl { + url = "https://dev.mysql.com/get/Downloads/MySQL-${self.mysqlVersion}/${name}.tar.gz"; + sha256 = "1mjrlxn8vigi69r0r674j2dibdnkaar01ji5965gsyx7k60z7qy6"; + }; + + patches = [ + ./abi-check.patch + ./libutils.patch + ]; + + nativeBuildInputs = [ bison cmake pkgconfig ]; + + buildInputs = [ + boost icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib + ] ++ lib.optionals stdenv.isLinux [ + numactl + ] ++ lib.optionals stdenv.isDarwin [ + cctools CoreServices developer_cmds + ]; + + outputs = [ "out" "static" ]; + + cmakeFlags = [ + "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12" # For std::shared_timed_mutex. + "-DCMAKE_SKIP_BUILD_RPATH=OFF" # To run libmysql/libmysql_api_test during build. + "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin. + "-DWITH_ROUTER=OFF" # It may be packaged separately. + "-DWITH_SYSTEM_LIBS=ON" + "-DWITH_UNIT_TESTS=OFF" + "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" + "-DMYSQL_DATADIR=/var/lib/mysql" + "-DINSTALL_INFODIR=share/mysql/docs" + "-DINSTALL_MANDIR=share/man" + "-DINSTALL_PLUGINDIR=lib/mysql/plugin" + "-DINSTALL_INCLUDEDIR=include/mysql" + "-DINSTALL_DOCREADMEDIR=share/mysql" + "-DINSTALL_SUPPORTFILESDIR=share/mysql" + "-DINSTALL_MYSQLSHAREDIR=share/mysql" + "-DINSTALL_MYSQLTESTDIR=" + "-DINSTALL_DOCDIR=share/mysql/docs" + "-DINSTALL_SHAREDIR=share/mysql" + ]; + + postInstall = '' + moveToOutput "lib/*.a" $static + so=${stdenv.hostPlatform.extensions.sharedLibrary} + ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so + ''; + + passthru = { + client = self; + connector-c = self; + server = self; + mysqlVersion = "8.0"; + }; + + meta = with lib; { + homepage = "https://www.mysql.com/"; + description = "The world's most popular open source database"; + license = licenses.gpl2; + maintainers = with maintainers; [ orivej ]; + platforms = platforms.unix; + }; +}; in self diff --git a/pkgs/servers/sql/mysql/abi-check.patch b/pkgs/servers/sql/mysql/abi-check.patch new file mode 100644 index 0000000000000..de45d9c3ea217 --- /dev/null +++ b/pkgs/servers/sql/mysql/abi-check.patch @@ -0,0 +1,18 @@ +MySQL ABI check assumes that with -nostdinc any standard #include terminates +preprocessing, but we do not provide that: +https://github.com/NixOS/nixpkgs/issues/44530 + +"#error" does not terminate preprocessing, so we #include a non-existent file instead. + +--- a/cmake/do_abi_check.cmake ++++ b/cmake/do_abi_check.cmake +@@ -68,1 +68,1 @@ FOREACH(file ${ABI_HEADERS}) +- -E -nostdinc -dI -DMYSQL_ABI_CHECK -I${SOURCE_DIR}/include ++ -E -nostdinc -dI -DMYSQL_ABI_CHECK -I${SOURCE_DIR}/include/nostdinc -I${SOURCE_DIR}/include +@@ -74,1 +74,1 @@ FOREACH(file ${ABI_HEADERS}) +- COMMAND sed -e "/^# /d" ++ COMMAND sed -e "/^# /d" -e "/^#include <-nostdinc>$/d" +--- /dev/null ++++ b/include/nostdinc/stdint.h +@@ -0,0 +1,1 @@ ++#include <-nostdinc> diff --git a/pkgs/servers/sql/mysql/libutils.patch b/pkgs/servers/sql/mysql/libutils.patch new file mode 100644 index 0000000000000..fa1a35e12f233 --- /dev/null +++ b/pkgs/servers/sql/mysql/libutils.patch @@ -0,0 +1,5 @@ +--- a/cmake/libutils.cmake ++++ b/cmake/libutils.cmake +@@ -345 +345 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES) +- COMMAND /usr/bin/libtool -static -o $<TARGET_FILE:${TARGET}> ++ COMMAND libtool -static -o $<TARGET_FILE:${TARGET}> diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix index b74b2fc43f303..e9458520bb49e 100644 --- a/pkgs/shells/zsh/default.nix +++ b/pkgs/shells/zsh/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, ncurses, pcre }: +{ stdenv, fetchurl, ncurses, pcre, buildPackages }: let version = "5.7.1"; @@ -7,7 +7,6 @@ let url = "mirror://sourceforge/zsh/zsh-${version}-doc.tar.xz"; sha256 = "1d1r88n1gfdavx4zy3svl1gljrvzim17jb2r834hafg2a016flrh"; }; - in stdenv.mkDerivation { @@ -61,7 +60,11 @@ else fi fi EOF - $out/bin/zsh -c "zcompile $out/etc/zprofile" + ${if stdenv.hostPlatform == stdenv.buildPlatform then '' + $out/bin/zsh -c "zcompile $out/etc/zprofile" + '' else '' + ${stdenv.lib.getBin buildPackages.zsh}/bin/zsh -c "zcompile $out/etc/zprofile" + ''} mv $out/etc/zprofile $out/etc/zprofile_zwc_is_used ''; # XXX: patch zsh to take zwc if newer _or equal_ diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix index 02b37784eaa96..e5e26169b7453 100644 --- a/pkgs/tools/backup/bacula/default.nix +++ b/pkgs/tools/backup/bacula/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { "--with-logdir=/var/log/bacula" "--with-working-dir=/var/lib/bacula" "--mandir=\${out}/share/man" - ]; + ] ++ stdenv.lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "ac_cv_func_setpgrp_void=yes"; installFlags = [ "logdir=\${out}/logdir" diff --git a/pkgs/tools/compression/zsync/default.nix b/pkgs/tools/compression/zsync/default.nix index 89016b3ff40ff..830e5f10ef6d4 100644 --- a/pkgs/tools/compression/zsync/default.nix +++ b/pkgs/tools/compression/zsync/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1wjslvfy76szf0mgg2i9y9q30858xyjn6v2acc24zal76d1m778b"; }; + makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ]; + meta = { homepage = http://zsync.moria.org.uk/; description = "File distribution system using the rsync algorithm"; diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix index e571f53339902..1fe58f9450411 100644 --- a/pkgs/tools/misc/youtube-dl/default.nix +++ b/pkgs/tools/misc/youtube-dl/default.nix @@ -18,11 +18,11 @@ buildPythonPackage rec { # The websites youtube-dl deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2019.08.02"; + version = "2019.08.13"; src = fetchurl { url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz"; - sha256 = "101b6jrf6ckbxrn76ppvgdyrb25p7d247kn8qgq7n476sfnkfg2p"; + sha256 = "0b94hrhbqa7jhn91pxsbphg2ylwkpkknb2y4v4sczp7rjvgmjgdj"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix index 6aa357dacb64e..afa6cef1524dd 100644 --- a/pkgs/tools/networking/axel/default.nix +++ b/pkgs/tools/networking/axel/default.nix @@ -1,22 +1,22 @@ { stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive -, pkgconfig, gettext, libssl }: +, pkgconfig, gettext, libssl, txt2man }: stdenv.mkDerivation rec { pname = "axel"; - version = "2.17.3"; + version = "2.17.5"; src = fetchFromGitHub { owner = "axel-download-accelerator"; repo = pname; rev = "v${version}"; - sha256 = "0kdd2y92plv240ba2j3xrm0f8xygvm1ijghnric4whsnxvmgym7h"; + sha256 = "0kwfbwh9g2227icgykgwa057vll5rkgac3df0pby530bivqzzzlw"; }; - nativeBuildInputs = [ autoreconfHook pkgconfig autoconf-archive ]; + nativeBuildInputs = [ autoreconfHook pkgconfig autoconf-archive txt2man ]; buildInputs = [ gettext libssl ]; - installFlags = [ "ETCDIR=$(out)/etc" ]; + installFlags = [ "ETCDIR=${placeholder "out"}/etc" ]; meta = with stdenv.lib; { description = "Console downloading program with some features for parallel connections for faster downloading"; diff --git a/pkgs/tools/security/sequoia-tool/default.nix b/pkgs/tools/security/sequoia-tool/default.nix deleted file mode 100644 index 00472c1a3aa4f..0000000000000 --- a/pkgs/tools/security/sequoia-tool/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchFromGitLab, rustPlatform, darwin -, pkgconfig, capnproto, clang, libclang, nettle, openssl, sqlite }: - -rustPlatform.buildRustPackage rec { - pname = "sequoia-tool"; - version = "0.9.0"; - - src = fetchFromGitLab { - owner = "sequoia-pgp"; - repo = "sequoia"; - rev = "v${version}"; - sha256 = "13dzwdzz33dy2lgnznsv8wqnw2501f2ggrkfwpqy5x6d1kgms8rj"; - }; - - nativeBuildInputs = [ pkgconfig clang libclang ]; - buildInputs = [ capnproto nettle openssl sqlite ] - ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; - - LIBCLANG_PATH = libclang + "/lib"; - - cargoBuildFlags = [ "--package=sequoia-tool" ]; - - cargoSha256 = "1zcnkpzcar3a2fk2rn3i3nb70b59ds9fpfa44f15r3aaxajsdhdi"; - - meta = with stdenv.lib; { - description = "A command-line frontend for Sequoia, an implementation of OpenPGP"; - homepage = https://sequoia-pgp.org/; - license = licenses.gpl3; - maintainers = with maintainers; [ minijackson ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix new file mode 100644 index 0000000000000..5d9ffca69375e --- /dev/null +++ b/pkgs/tools/security/sequoia/default.nix @@ -0,0 +1,91 @@ +{ stdenv, fetchFromGitLab, lib, darwin +, git, nettle, llvmPackages, cargo, rustc +, rustPlatform, pkgconfig, glib +, openssl, sqlite, capnproto +, ensureNewerSourcesForZipFilesHook, pythonSupport ? true, pythonPackages ? null +}: + +assert pythonSupport -> pythonPackages != null; + +rustPlatform.buildRustPackage rec { + pname = "sequoia"; + version = "0.9.0"; + + src = fetchFromGitLab { + owner = "sequoia-pgp"; + repo = pname; + rev = "v${version}"; + sha256 = "13dzwdzz33dy2lgnznsv8wqnw2501f2ggrkfwpqy5x6d1kgms8rj"; + }; + + cargoSha256 = "1zcnkpzcar3a2fk2rn3i3nb70b59ds9fpfa44f15r3aaxajsdhdi"; + + nativeBuildInputs = [ + pkgconfig + cargo + rustc + git + llvmPackages.libclang + llvmPackages.clang + ensureNewerSourcesForZipFilesHook + ] ++ + lib.optionals pythonSupport [ pythonPackages.setuptools ] + ; + + checkInputs = lib.optionals pythonSupport [ + pythonPackages.pytest + pythonPackages.pytestrunner + ]; + + buildInputs = [ + openssl + sqlite + nettle + capnproto + ] + ++ lib.optionals pythonSupport [ pythonPackages.python pythonPackages.cffi ] + ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ] + ; + + makeFlags = [ + "PREFIX=${placeholder ''out''}" + ]; + + buildFlags = [ + "build-release" + ]; + + LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; + + postPatch = '' + # otherwise, the check fails because we delete the `.git` in the unpack phase + substituteInPlace openpgp-ffi/Makefile \ + --replace 'git grep' 'grep -R' + # Without this, the check fails + substituteInPlace openpgp-ffi/examples/Makefile \ + --replace '-O0 -g -Wall -Werror' '-g' + substituteInPlace ffi/examples/Makefile \ + --replace '-O0 -g -Wall -Werror' '-g' + ''; + + preInstall = lib.optionalString pythonSupport '' + export installFlags="PYTHONPATH=$PYTHONPATH:$out/${pythonPackages.python.sitePackages}" + '' + lib.optionalString (!pythonSupport) '' + export installFlags="PYTHON=disable" + ''; + + # Don't use buildRustPackage phases, only use it for rust deps setup + configurePhase = null; + buildPhase = null; + doCheck = true; + checkPhase = null; + installPhase = null; + + meta = with stdenv.lib; { + description = "A cool new OpenPGP implementation"; + homepage = "https://sequoia-pgp.org/"; + license = licenses.gpl3; + maintainers = with maintainers; [ minijackson doronbehar ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42681c56dacd8..c560fa67271b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5953,7 +5953,9 @@ in seqdiag = with python3Packages; toPythonApplication seqdiag; - sequoia-tool = callPackage ../tools/security/sequoia-tool { inherit (llvmPackages) libclang; }; + sequoia = callPackage ../tools/security/sequoia { + pythonPackages = python3Packages; + }; sewer = callPackage ../tools/admin/sewer { }; @@ -8264,6 +8266,8 @@ in inherit (darwin.apple_sdk.frameworks) CoreServices Security; }; + sagittarius-scheme = callPackage ../development/compilers/sagittarius-scheme {}; + sbclBootstrap = callPackage ../development/compilers/sbcl/bootstrap.nix {}; sbcl = callPackage ../development/compilers/sbcl {}; @@ -9107,11 +9111,7 @@ in bison = bison3; yacc = bison; # TODO: move to aliases.nix - blackmagic = callPackage ../development/tools/misc/blackmagic { - stdenv = gcc6Stdenv; - gcc-arm-embedded = pkgsCross.arm-embedded.buildPackages.gcc; - binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils; - }; + blackmagic = callPackage ../development/tools/misc/blackmagic { }; bloaty = callPackage ../development/tools/bloaty { }; @@ -14786,6 +14786,12 @@ in boost = boost159; }; + mysql80 = callPackage ../servers/sql/mysql/8.0.x.nix { + inherit (darwin) cctools developer_cmds; + inherit (darwin.apple_sdk.frameworks) CoreServices; + boost = boost169; # Configure checks for specific version. + }; + mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { }; mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { }; @@ -20481,6 +20487,10 @@ in dropbox-cli = callPackage ../applications/networking/dropbox/cli.nix { }; + maestral = callPackage ../applications/networking/maestral { }; + + maestral-gui = libsForQt5.callPackage ../applications/networking/maestral { withGui = true; }; + insync = callPackage ../applications/networking/insync { }; libstrangle = callPackage ../tools/X11/libstrangle { @@ -23704,6 +23714,8 @@ in epkowa = callPackage ../misc/drivers/epkowa { }; + utsushi = callPackage ../misc/drivers/utsushi { }; + idsk = callPackage ../tools/filesystems/idsk { }; igraph = callPackage ../development/libraries/igraph { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 43fb2661f5cdd..eada8bf669eca 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4705,6 +4705,11 @@ in { seqdiag = callPackage ../development/python-modules/seqdiag { }; + sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override { + pythonPackages = self; + pythonSupport = true; + })); + safe = callPackage ../development/python-modules/safe { }; sampledata = callPackage ../development/python-modules/sampledata { }; |