diff --git a/doc/Makefile b/doc/Makefile index c6aed62a9396..91b62fe138bc 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -9,8 +9,10 @@ debug: .PHONY: format format: - find . -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \ - xmlformat --config-file "$$XMLFORMAT_CONFIG" -i {} + find . -iname '*.xml' -type f | while read f; do \ + echo $$f ;\ + xmlformat --config-file "$$XMLFORMAT_CONFIG" -i $$f ;\ + done .PHONY: fix-misc-xml fix-misc-xml: diff --git a/doc/coding-conventions.xml b/doc/coding-conventions.xml index a8a4557b461c..d2c7a1baae9c 100644 --- a/doc/coding-conventions.xml +++ b/doc/coding-conventions.xml @@ -814,7 +814,7 @@ args.stdenv.mkDerivation (args // { There are multiple ways to fetch a package source in nixpkgs. The general - guideline is that you should package sources with a high degree of + guideline is that you should package reproducible sources with a high degree of availability. Right now there is only one fetcher which has mirroring support and that is fetchurl. Note that you should also prefer protocols which have a corresponding proxy environment variable. @@ -876,6 +876,123 @@ src = fetchFromGitHub { +
+ Obtaining source hash + + + Preferred source hash type is sha256. There are several ways to get it. + + + + + + Prefetch URL (with nix-prefetch-XXX + URL, where + XXX is one of url, + git, hg, cvs, + bzr, svn). Hash is printed to + stdout. + + + + + Prefetch by package source (with nix-prefetch-url + '<nixpkgs>' -A PACKAGE.src, + where PACKAGE is package attribute name). Hash + is printed to stdout. + + + This works well when you've upgraded existing package version and want to + find out new hash, but is useless if package can't be accessed by + attribute or package has multiple sources (.srcs, + architecture-dependent sources, etc). + + + + + Upstream provided hash: use it when upstream provides + sha256 or sha512 (when upstream + provides md5, don't use it, compute + sha256 instead). + + + A little nuance is that nix-prefetch-* tools produce + hash encoded with base32, but upstream usually provides + hexadecimal (base16) encoding. Fetchers understand both + formats. Nixpkgs does not standardize on any one format. + + + You can convert between formats with nix-hash, for example: + +$ nix-hash --type sha256 --to-base32 HASH + + + + + + Extracting hash from local source tarball can be done with + sha256sum. Use nix-prefetch-url + file:///path/to/tarball if you want base32 hash. + + + + + Fake hash: set fake hash in package expression, perform build and extract + correct hash from error Nix prints. + + + For package updates it is enough to change one symbol to make hash fake. + For new packages, you can use lib.fakeSha256, + lib.fakeSha512 or any other fake hash. + + + This is last resort method when reconstructing source URL is non-trivial + and nix-prefetch-url -A isn't applicable (for example, + + one of kodi dependencies). The easiest way then + would be replace hash with a fake one and rebuild. Nix build will fail and + error message will contain desired hash. + + This method has security problems. Check below for details. + + + +
+ Obtaining hashes securely + + Let's say Man-in-the-Middle (MITM) sits close to your network. Then instead of fetching + source you can fetch malware, and instead of source hash you get hash of malware. Here are + security considerations for this scenario: + + + + + http:// URLs are not secure to prefetch hash from; + + + + + hashes from upstream (in method 3) should be obtained via secure protocol; + + + + + https:// URLs are secure in methods 1, 2, 3; + + + + + https:// URLs are not secure in method 5. When obtaining hashes + with fake hash method, TLS checks are disabled. So + refetch source hash from several different networks to exclude MITM scenario. + Alternatively, use fake hash method to make Nix error, but instead of extracting + hash from error, extract https:// URL and prefetch it + with method 1. + + + +
+
Patches diff --git a/nixos/lib/make-squashfs.nix b/nixos/lib/make-squashfs.nix index 7ab84e47f53b..ee76c9c5bf24 100644 --- a/nixos/lib/make-squashfs.nix +++ b/nixos/lib/make-squashfs.nix @@ -3,6 +3,9 @@ , # The root directory of the squashfs filesystem is filled with the # closures of the Nix store paths listed here. storeContents ? [] +, # Compression parameters. + # For zstd compression you can use "zstd -Xcompression-level 6". + comp ? "xz -Xdict-size 100%" }: stdenv.mkDerivation { @@ -20,6 +23,6 @@ stdenv.mkDerivation { # Generate the squashfs image. mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \ - -keep-as-directory -all-root -b 1048576 -comp xz -Xdict-size 100% + -keep-as-directory -all-root -b 1048576 -comp ${comp} ''; } diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 1f005b2cf044..dfff6c720d79 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -5,14 +5,6 @@ with lib; let cfg = config.services.xserver.desktopManager.gnome3; - # Remove packages of ys from xs, based on their names - removePackagesByName = xs: ys: - let - pkgName = drv: (builtins.parseDrvName drv.name).name; - ysNames = map pkgName ys; - in - filter (x: !(builtins.elem (pkgName x) ysNames)) xs; - # Prioritize nautilus by default when opening directories mimeAppsList = pkgs.writeTextFile { name = "gnome-mimeapps"; @@ -167,7 +159,7 @@ in { "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" "${pkgs.gnome3.gvfs}/lib/gio/modules" ]; environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath - ++ (removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [ + ++ (pkgs.gnome3.removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [ pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ ]; diff --git a/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixos/modules/services/x11/desktop-managers/lxqt.nix index 896f70c86ebb..686bbd0dcf98 100644 --- a/nixos/modules/services/x11/desktop-managers/lxqt.nix +++ b/nixos/modules/services/x11/desktop-managers/lxqt.nix @@ -3,15 +3,6 @@ with lib; let - - # Remove packages of ys from xs, based on their names - removePackagesByName = xs: ys: - let - pkgName = drv: (builtins.parseDrvName drv.name).name; - ysNames = map pkgName ys; - in - filter (x: !(builtins.elem (pkgName x) ysNames)) xs; - xcfg = config.services.xserver; cfg = xcfg.desktopManager.lxqt; @@ -60,7 +51,7 @@ in environment.systemPackages = pkgs.lxqt.preRequisitePackages ++ pkgs.lxqt.corePackages ++ - (removePackagesByName + (pkgs.gnome3.removePackagesByName pkgs.lxqt.optionalPackages config.environment.lxqt.excludePackages); diff --git a/nixos/modules/services/x11/desktop-managers/mate.nix b/nixos/modules/services/x11/desktop-managers/mate.nix index db83aaf3c19f..4d2fafd14961 100644 --- a/nixos/modules/services/x11/desktop-managers/mate.nix +++ b/nixos/modules/services/x11/desktop-managers/mate.nix @@ -4,14 +4,6 @@ with lib; let - # Remove packages of ys from xs, based on their names - removePackagesByName = xs: ys: - let - pkgName = drv: (builtins.parseDrvName drv.name).name; - ysNames = map pkgName ys; - in - filter (x: !(builtins.elem (pkgName x) ysNames)) xs; - addToXDGDirs = p: '' if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} @@ -96,7 +88,7 @@ in environment.systemPackages = pkgs.mate.basePackages ++ - (removePackagesByName + (pkgs.gnome3.removePackagesByName pkgs.mate.extraPackages config.environment.mate.excludePackages); diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index 23e0584cb7f0..a1465766f8bf 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -158,9 +158,9 @@ in runCommand '' mkdir -p $out/{bin,share/pixmaps} - # TODO: Rename preview -> beta (and add -stable suffix?): echo -n "$startScript" > $out/bin/${pname} chmod +x $out/bin/${pname} + ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${drvName}.png ln -s ${desktopItem}/share/applications $out/share/applications '' diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 745e36892fc4..125538e54cfc 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -23,8 +23,15 @@ let sha256Hash = "1f7lllj85fia02hgy4ksbqh80sdcml16fv1g892jc6lwykjrdw5y"; }; in rec { - # Old alias - preview = beta; + # Old alias (TODO @primeos: Remove after 19.03 is branched off): + preview = throw '' + The attributes "android-studio-preview" and "androidStudioPackages.preview" + are now deprecated and will be removed soon, please use + "androidStudioPackages.beta" instead. This attribute corresponds to the + beta channel, if you want the latest release you can use + "androidStudioPackages.dev" or "androidStudioPackages.canary" instead + (currently, there is no difference between both channels). + ''; # Attributes are named by their corresponding release channels @@ -35,7 +42,7 @@ in rec { beta = mkStudio (betaVersion // { channel = "beta"; - pname = "android-studio-preview"; + pname = "android-studio-beta"; }); dev = mkStudio (latestVersion // { diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 1bc7f1688ea8..a3580b1afa7a 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -11,13 +11,13 @@ let neovim = stdenv.mkDerivation rec { name = "neovim-unwrapped-${version}"; - version = "0.3.3"; + version = "0.3.4"; src = fetchFromGitHub { owner = "neovim"; repo = "neovim"; rev = "v${version}"; - sha256 = "0jf39br0c7kkvmc8b5n9b3lgy9cmf5sv1gghzafc8qk54bqymy2f"; + sha256 = "07ncvgp6xfhiwc6hd7qf7zk28n3yj47p26qj1ji29vqkwnk28y3s"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index d9b928f111ae..1444d53da077 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -4,14 +4,14 @@ with stdenv.lib; pythonPackages.buildPythonPackage rec { pname = "neovim-remote"; - version = "2.1.3"; + version = "2.1.4"; disabled = !pythonPackages.isPy3k; src = fetchFromGitHub { owner = "mhinz"; repo = "neovim-remote"; rev = "v${version}"; - sha256 = "0nx987af29ajlpwnwfc3z8gplxv69gj53s4bzm6pwwsfbhfakdah"; + sha256 = "1s438cbyyzgg96b6639wk1ny6d6p2ywcba41l3r027wzyl7wrn8v"; }; propagatedBuildInputs = with pythonPackages; [ pynvim psutil ]; diff --git a/pkgs/applications/misc/coursera-dl/default.nix b/pkgs/applications/misc/coursera-dl/default.nix index a6afee13e47b..0601514546f2 100644 --- a/pkgs/applications/misc/coursera-dl/default.nix +++ b/pkgs/applications/misc/coursera-dl/default.nix @@ -22,6 +22,11 @@ in pythonPackages.buildPythonApplication rec { checkInputs = with pythonPackages; [ pytest mock ]; + postPatch = '' + substituteInPlace requirements.txt \ + --replace '==' '>=' + ''; + preConfigure = '' export LC_ALL=en_US.utf-8 ''; diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix index 51b6fb1d69c9..ece9c1089fad 100644 --- a/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -1,14 +1,15 @@ { darkMode ? false, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk_pixbuf, libnotify, libxcb, nspr, nss, pango -, systemd, xorg }: +, systemd, xorg, at-spi2-atk }: let - version = "3.3.3"; + version = "3.3.7"; rpath = stdenv.lib.makeLibraryPath [ alsaLib + at-spi2-atk atk cairo cups @@ -47,7 +48,7 @@ let if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb"; - sha256 = "01x4anbm62y49zfkyfvxih5rk8g2qi32ppb8j2a5pwssyw4wqbfi"; + sha256 = "1q3866iaby8rqim8h2m398wzi0isnnlsxirlq63fzz7a4g1hnc8p"; } else throw "Slack is not supported on ${stdenv.hostPlatform.system}"; diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix index 6d03f2276d0e..3afabb8bafb1 100644 --- a/pkgs/applications/networking/mailreaders/mutt/default.nix +++ b/pkgs/applications/networking/mailreaders/mutt/default.nix @@ -27,15 +27,15 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "mutt-${version}"; - version = "1.11.1"; + version = "1.11.2"; src = fetchurl { url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz"; - sha256 = "01fvn5h7l9rkwx6qz46svl4hmww108v4bmcywiw3prb26q0l2lbh"; + sha256 = "08w7lbhj5ba2zkjcd0cxkgfiy9y82yhg731xjg9i9292kz1x8p6s"; }; patches = optional smimeSupport (fetchpatch { - url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.11.1-2/debian/patches/misc/smime.rc.patch"; + url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.11.2-2/debian/patches/misc/smime.rc.patch"; sha256 = "1rl27qqwl4nw321ll5jcvfmkmz4fkvcsh5vihjcrhzzyf6vz8wmj"; }); diff --git a/pkgs/applications/networking/mpop/default.nix b/pkgs/applications/networking/mpop/default.nix index 912c23f107d9..4a54fcf427ef 100644 --- a/pkgs/applications/networking/mpop/default.nix +++ b/pkgs/applications/networking/mpop/default.nix @@ -3,12 +3,12 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "1.4.1"; + version = "1.4.2"; name = "mpop-${version}"; src = fetchurl { url = "https://marlam.de/mpop/releases/${name}.tar.xz"; - sha256 = "1b9mj6yfa8vg5flxw1xb8xalifjg87dghbg523i6fbr7679zl9iy"; + sha256 = "1rx5mhgqkm7swbynrhbsz32v85h0rydb4kqfgfs9jrznd9d14m2d"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/science/math/gap/default.nix b/pkgs/applications/science/math/gap/default.nix index f6a9f58b1762..e12353878149 100644 --- a/pkgs/applications/science/math/gap/default.nix +++ b/pkgs/applications/science/math/gap/default.nix @@ -5,11 +5,60 @@ , makeWrapper , m4 , gmp -# don't remove any packages -- results in a ~1.3G size increase -# see https://github.com/NixOS/nixpkgs/pull/38754 for a discussion -, keepAllPackages ? true +# one of +# - "minimal" (~400M): +# Install the bare minimum of packages required by gap to start. +# This is likely to break a lot of stuff. Do not expect upstream support with +# this configuration. +# - "standard" (~700M): +# Install the "standard packages" which gap autoloads by default. These +# packages are effectively considered a part of gap. +# - "full" (~1.7G): +# Install all available packages. This takes a lot of space. +, packageSet ? "standard" +# Kept for backwards compatibility. Overrides packageSet to "full". +, keepAllPackages ? false }: +let + # packages absolutely required for gap to start + # `*` represents the version where applicable + requiredPackages = [ + "GAPDoc-*" + "primgrp-*" + "SmallGrp-*" + "transgrp" + ]; + # packages autoloaded by default if available + autoloadedPackages = [ + "atlasrep" + "autpgrp-*" + "alnuth-*" + "crisp-*" + "ctbllib" + "FactInt-*" + "fga" + "irredsol-*" + "laguna-*" + "polenta-*" + "polycyclic-*" + "resclasses-*" + "sophus-*" + "tomlib-*" + ]; + standardPackages = requiredPackages ++ autoloadedPackages; + keepAll = keepAllPackages || (packageSet == "full"); + packagesToKeep = requiredPackages ++ lib.optionals (packageSet == "standard") autoloadedPackages; + # Generate bash script that removes all packages from the `pkg` subdirectory + # that are not on the whitelist. The whitelist consists of strings expected by + # `find`'s `-name`. + removeNonWhitelistedPkgs = whitelist: '' + find pkg -type d -maxdepth 1 -mindepth 1 \ + '' + (lib.concatStringsSep "\n" (map (str: "-not -name '${str}' \\") whitelist)) + '' + -exec echo "Removing package {}" \; \ + -exec rm -r '{}' \; + ''; +in stdenv.mkDerivation rec { pname = "gap"; # https://www.gap-system.org/Releases/ @@ -21,14 +70,8 @@ stdenv.mkDerivation rec { }; # remove all non-essential packages (which take up a lot of space) - preConfigure = '' + preConfigure = lib.optionalString (!keepAll) (removeNonWhitelistedPkgs packagesToKeep) + '' patchShebangs . - '' + lib.optionalString (!keepAllPackages) '' - find pkg -type d -maxdepth 1 -mindepth 1 \ - -not -name 'GAPDoc-*' \ - -not -name 'autpgrp*' \ - -exec echo "Removing package {}" \; \ - -exec rm -r {} \; ''; configureFlags = [ "--with-gmp=system" ]; @@ -107,7 +150,16 @@ stdenv.mkDerivation rec { popd ''; - installPhase = '' + installTargets = [ + "install-libgap" + "install-headers" + ]; + + # full `make install` is not yet implemented, just for libgap and headers + postInstall = '' + # Install config.h, which is not currently handled by `make install-headers` + cp gen/config.h "$out/include/gap" + mkdir -p "$out/bin" "$out/share/gap/" mkdir -p "$out/share/gap" @@ -129,6 +181,7 @@ stdenv.mkDerivation rec { [ raskin chrisjefferson + timokau ]; platforms = platforms.all; # keeping all packages increases the package size considerably, wchich diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix index 9ec8d5cd83e5..8354629cab55 100644 --- a/pkgs/applications/science/math/sage/env-locations.nix +++ b/pkgs/applications/science/math/sage/env-locations.nix @@ -7,7 +7,7 @@ , graphs , elliptic_curves , polytopes_db -, gap-libgap-compatible +, gap , ecl , combinatorial_designs , jmol @@ -35,7 +35,7 @@ writeTextFile rec { export GRAPHS_DATA_DIR='${graphs}/share/graphs' export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves' export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes' - export GAP_ROOT_DIR='${gap-libgap-compatible}/share/gap/build-dir' + export GAP_ROOT_DIR='${gap}/share/gap/build-dir' export ECLDIR='${ecl}/lib/ecl-${ecl.version}/' export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs" export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona" diff --git a/pkgs/applications/science/math/sage/patches/dont-test-guess-gaproot.patch b/pkgs/applications/science/math/sage/patches/dont-test-guess-gaproot.patch deleted file mode 100644 index 32b877428d51..000000000000 --- a/pkgs/applications/science/math/sage/patches/dont-test-guess-gaproot.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/sage/libs/gap/util.pyx b/src/sage/libs/gap/util.pyx -index 5ff67107c1..1318df86fd 100644 ---- a/src/sage/libs/gap/util.pyx -+++ b/src/sage/libs/gap/util.pyx -@@ -165,7 +165,7 @@ def _guess_gap_root(): - EXAMPLES:: - - sage: from sage.libs.gap.util import _guess_gap_root -- sage: _guess_gap_root() -+ sage: _guess_gap_root() # not tested (not necessary on nixos) - The gap-4.5.5.spkg (or later) seems to be not installed! - ... - """ diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix index d5e057d53357..8fd69f62171a 100644 --- a/pkgs/applications/science/math/sage/sage-env.nix +++ b/pkgs/applications/science/math/sage/sage-env.nix @@ -14,8 +14,7 @@ , python3 , pkg-config , pari -, gap-libgap-compatible -, libgap +, gap , ecl , maxima-ecl , singular @@ -70,8 +69,7 @@ let binutils.bintools pkg-config pari - gap-libgap-compatible - libgap + gap ecl maxima-ecl singular @@ -118,7 +116,7 @@ writeTextFile rec { # set dependent vars, like JUPYTER_CONFIG_DIR source "${sagelib.src}/src/bin/sage-env" - export PATH="${runtimepath}:$orig_path" # sage-env messes with PATH + export PATH="$RUNTIMEPATH_PREFIX:${runtimepath}:$orig_path" # sage-env messes with PATH export SAGE_LOGS="$TMPDIR/sage-logs" export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}" @@ -133,7 +131,7 @@ writeTextFile rec { export LDFLAGS='${ lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [ flint - libgap + gap glpk gmp mpfr @@ -153,7 +151,7 @@ writeTextFile rec { gmp.dev glpk flint - libgap + gap pynac mpfr.dev ]) diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix index 43ab175ce143..c4760764a437 100644 --- a/pkgs/applications/science/math/sage/sage-src.nix +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -9,14 +9,14 @@ # all get the same sources with the same patches applied. stdenv.mkDerivation rec { - version = "8.5"; + version = "8.6"; name = "sage-src-${version}"; src = fetchFromGitHub { owner = "sagemath"; repo = "sage"; rev = version; - sha256 = "08mb9626phsls2phdzqxsnp2df5pn5qr72m0mm4nncby26pwn19c"; + sha256 = "1vs3pbgbqpg0qnwr018bqsdmm7crgjp310cx8zwh7za3mv1cw5j3"; }; # Patches needed because of particularities of nix or the way this is packaged. @@ -46,8 +46,6 @@ stdenv.mkDerivation rec { # tests) are also run. That is necessary to test dochtml individually. See # https://trac.sagemath.org/ticket/26110 for an upstream discussion. ./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch - - ./patches/dont-test-guess-gaproot.patch ]; # Patches needed because of package updates. We could just pin the versions of @@ -60,12 +58,13 @@ stdenv.mkDerivation rec { # Fetch a diff between `base` and `rev` on sage's git server. # Used to fetch trac tickets by setting the `base` to the last release and the # `rev` to the last commit of the ticket. - fetchSageDiff = { base, rev, ...}@args: ( + fetchSageDiff = { base, rev, name ? "sage-diff-${base}-${rev}.patch", ...}@args: ( fetchpatch ({ - url = "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}"; + inherit name; + url = "https://git.sagemath.org/sage.git/rawdiff?id2=${base}&id=${rev}"; # We don't care about sage's own build system (which builds all its dependencies). # Exclude build system changes to avoid conflicts. - excludes = [ "build/*" ]; + excludes = [ "/build/*" ]; } // builtins.removeAttrs args [ "rev" "base" ]) ); in [ @@ -82,21 +81,6 @@ stdenv.mkDerivation rec { # https://trac.sagemath.org/ticket/26315 ./patches/giac-1.5.0.patch - # https://trac.sagemath.org/ticket/26326 - # needs to be split because there is a merge commit in between - (fetchSageDiff { - name = "networkx-2.2-1.patch"; - base = "8.4"; - rev = "68f5ad068184745b38ba6716bf967c8c956c52c5"; - sha256 = "112b5ywdqgyzgvql2jj5ss8la9i8rgnrzs8vigsfzg4shrcgh9p6"; - }) - (fetchSageDiff { - name = "networkx-2.2-2.patch"; - base = "626485bbe5f33bf143d6dfba4de9c242f757f59b~1"; - rev = "db10d327ade93711da735a599a67580524e6f7b4"; - sha256 = "09v87id25fa5r9snfn4mv79syhc77jxfawj5aizmdpwdmpgxjk1f"; - }) - # https://trac.sagemath.org/ticket/26442 (fetchSageDiff { name = "cypari2-2.0.3.patch"; diff --git a/pkgs/applications/science/math/sage/sage-with-env.nix b/pkgs/applications/science/math/sage/sage-with-env.nix index c5db392f1036..18060f342a92 100644 --- a/pkgs/applications/science/math/sage/sage-with-env.nix +++ b/pkgs/applications/science/math/sage/sage-with-env.nix @@ -6,8 +6,7 @@ , pkg-config , three , singular -, libgap -, gap-libgap-compatible +, gap , giac , maxima-ecl , pari @@ -35,8 +34,7 @@ let three pynac giac - libgap - gap-libgap-compatible + gap pari gmp gfan diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix index 03b1ecd2c0b7..a754a2745098 100644 --- a/pkgs/applications/science/math/sage/sagelib.nix +++ b/pkgs/applications/science/math/sage/sagelib.nix @@ -20,7 +20,7 @@ , jinja2 , lcalc , lrcalc -, libgap +, gap , linbox , m4ri , m4rie @@ -88,7 +88,7 @@ buildPythonPackage rec { glpk gsl lcalc - libgap + gap libmpc linbox lrcalc diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix index f5127094bc9d..67baa98d21ec 100644 --- a/pkgs/applications/version-management/mercurial/default.nix +++ b/pkgs/applications/version-management/mercurial/default.nix @@ -4,7 +4,7 @@ let # if you bump version, update pkgs.tortoisehg too or ping maintainer - version = "4.8.1"; + version = "4.8.2"; name = "mercurial-${version}"; inherit (python2Packages) docutils hg-git dulwich python; in python2Packages.buildPythonApplication { @@ -13,7 +13,7 @@ in python2Packages.buildPythonApplication { src = fetchurl { url = "https://mercurial-scm.org/release/${name}.tar.gz"; - sha256 = "08gsn0s5802bs8ks77xqg7c8dwpbsh8df47kvb1gn14ivrf5z928"; + sha256 = "1cpx8nf6vcqz92kx6b5c4900pcay8zb89gvy8y33prh5rywjq83c"; }; inherit python; # pass it so that the same version can be used in hg2git diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index 71401c8ead36..8d75797516d3 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -3,6 +3,22 @@ lib.makeScope pkgs.newScope (self: with self; { updateScript = callPackage ./update.nix { }; + /* Remove packages of packagesToRemove from packages, based on their names + + Type: + removePackagesByName :: [package] -> [package] -> [package] + + Example: + removePackagesByName [ nautilus file-roller ] [ file-roller totem ] + => [ nautilus ] + */ + removePackagesByName = packages: packagesToRemove: + let + pkgName = drv: (builtins.parseDrvName drv.name).name; + namesToRemove = map pkgName packagesToRemove; + in + lib.filter (x: !(builtins.elem (pkgName x) namesToRemove)) packages; + maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar hedning ]; corePackages = with gnome3; [ diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix index 5fdd6bea4640..fc77e163e8f9 100644 --- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix +++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix @@ -1,13 +1,15 @@ { mkDerivation, extra-cmake-modules, gettext, kdoctools, python, - kcoreaddons, knotifications, kwayland, kwidgetsaddons + kcoreaddons, knotifications, kwayland, kwidgetsaddons, + cups, pcre, pipewire }: mkDerivation { name = "xdg-desktop-portal-kde"; nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ]; buildInputs = [ + cups pcre pipewire kcoreaddons knotifications kwayland kwidgetsaddons ]; } diff --git a/pkgs/development/interpreters/erlang/R21.nix b/pkgs/development/interpreters/erlang/R21.nix index b787f3f44f54..28166dfc0b0a 100644 --- a/pkgs/development/interpreters/erlang/R21.nix +++ b/pkgs/development/interpreters/erlang/R21.nix @@ -1,8 +1,8 @@ { mkDerivation }: mkDerivation rec { - version = "21.2"; - sha256 = "0v9smdp2vxkpsz65a6ypwzl12fqdfrsi7k29f5i7af0v27r308cm"; + version = "21.2.3"; + sha256 = "1v47c7bddbp31y6f8yzdjyvgcx9sskxql33k7cs0p5fmr05hhxws"; prePatch = '' substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10' diff --git a/pkgs/development/libraries/liburcu/default.nix b/pkgs/development/libraries/liburcu/default.nix index 58da13044523..0cc18d82720b 100644 --- a/pkgs/development/libraries/liburcu/default.nix +++ b/pkgs/development/libraries/liburcu/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, perl }: stdenv.mkDerivation rec { - version = "0.10.1"; + version = "0.10.2"; name = "liburcu-${version}"; src = fetchurl { url = "https://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2"; - sha256 = "01pbg67qy5hcssy2yi0ckqapzfclgdq93li2rmzw4pa3wh5j42cw"; + sha256 = "1k31faqz9plx5dwxq8g1fnczxda1is4s1x4ph0gjrq3gmy6qixmk"; }; checkInputs = [ perl ]; diff --git a/pkgs/development/libraries/readline/8.0.nix b/pkgs/development/libraries/readline/8.0.nix new file mode 100644 index 000000000000..eefef9727663 --- /dev/null +++ b/pkgs/development/libraries/readline/8.0.nix @@ -0,0 +1,66 @@ +{ fetchurl, stdenv, ncurses +}: + +stdenv.mkDerivation rec { + name = "readline-${version}"; + version = "8.0p${toString (builtins.length upstreamPatches)}"; + + src = fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz"; + sha256 = "0qg4924hf4hg0r0wbx2chswsr08734536fh5iagkd3a7f4czafg3"; + }; + + outputs = [ "out" "dev" "man" "doc" "info" ]; + + propagatedBuildInputs = [ncurses]; + + patchFlags = "-p0"; + + upstreamPatches = + (let + patch = nr: sha256: + fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline80-${nr}"; + inherit sha256; + }; + in + import ./readline-8.0-patches.nix patch); + + patches = + [ ./link-against-ncurses.patch + ./no-arch_only-6.3.patch + ] + ++ upstreamPatches; + + # Don't run the native `strip' when cross-compiling. + dontStrip = stdenv.hostPlatform != stdenv.buildPlatform; + bash_cv_func_sigsetjmp = if stdenv.isCygwin then "missing" else null; + + meta = with stdenv.lib; { + description = "Library for interactive line editing"; + + longDescription = '' + The GNU Readline library provides a set of functions for use by + applications that allow users to edit command lines as they are + typed in. Both Emacs and vi editing modes are available. The + Readline library includes additional functions to maintain a + list of previously-entered command lines, to recall and perhaps + reedit those lines, and perform csh-like history expansion on + previous commands. + + The history facilities are also placed into a separate library, + the History library, as part of the build process. The History + library may be used without Readline in applications which + desire its capabilities. + ''; + + homepage = https://savannah.gnu.org/projects/readline/; + + license = licenses.gpl3Plus; + + maintainers = with maintainers; [ vanschelven dtzWill ]; + + platforms = platforms.unix; + branch = "8.0"; + }; +} diff --git a/pkgs/development/libraries/readline/readline-8.0-patches.nix b/pkgs/development/libraries/readline/readline-8.0-patches.nix new file mode 100644 index 000000000000..b8019fb33502 --- /dev/null +++ b/pkgs/development/libraries/readline/readline-8.0-patches.nix @@ -0,0 +1,4 @@ +# Automatically generated by `update-patch-set.sh'; do not edit. + +patch: [ +] diff --git a/pkgs/development/python-modules/aniso8601/default.nix b/pkgs/development/python-modules/aniso8601/default.nix index 163e2c9b2099..4f6602395300 100644 --- a/pkgs/development/python-modules/aniso8601/default.nix +++ b/pkgs/development/python-modules/aniso8601/default.nix @@ -1,9 +1,9 @@ { stdenv, buildPythonPackage, fetchPypi -, dateutil }: +, dateutil, mock, isPy3k }: buildPythonPackage rec { pname = "aniso8601"; - version = "4.0.1"; + version = "4.1.0"; meta = with stdenv.lib; { description = "Parses ISO 8601 strings."; @@ -13,8 +13,10 @@ buildPythonPackage rec { propagatedBuildInputs = [ dateutil ]; + checkInputs = stdenv.lib.optional (!isPy3k) mock; + src = fetchPypi { inherit pname version; - sha256 = "15cwnadw2xdczdi13k9grrgqq67hxgys4l155dqsl2zh3glhsmp7"; + sha256 = "1x49k287ky1spv3msc9fwmc7ydyw6rlcr14nslgcmpjfn3pgzh03"; }; } diff --git a/pkgs/development/python-modules/base58/default.nix b/pkgs/development/python-modules/base58/default.nix index 43b2761f6bca..aafd73b8d8d5 100644 --- a/pkgs/development/python-modules/base58/default.nix +++ b/pkgs/development/python-modules/base58/default.nix @@ -1,17 +1,15 @@ -{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, pyhamcrest }: +{ stdenv, fetchPypi, buildPythonPackage, pytest, pyhamcrest }: buildPythonPackage rec { pname = "base58"; - version = "1.0.0"; + version = "1.0.3"; - src = fetchFromGitHub { - owner = "keis"; - repo = "base58"; - rev = "v${version}"; - sha256 = "0f8isdpvbgw0sqn9bj7hk47y8akpvdl8sn6rkszla0xb92ywj0f6"; + src = fetchPypi { + inherit pname version; + sha256 = "9a793c599979c497800eb414c852b80866f28daaed5494703fc129592cc83e60"; }; - buildInputs = [ pytest pyhamcrest ]; + checkInputs = [ pytest pyhamcrest ]; checkPhase = '' pytest ''; diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix index 62e63a8e5b31..7d53f56a5a0a 100644 --- a/pkgs/development/python-modules/configargparse/default.nix +++ b/pkgs/development/python-modules/configargparse/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "ConfigArgParse"; - version = "0.13.0"; + version = "0.14.0"; src = fetchPypi { inherit pname version; - sha256 = "e6441aa58e23d3d122055808e5e2220fd742dff6e1e51082d2a4e4ed145dd788"; + sha256 = "149fy4zya0rsnlkvxbbq43cyr8lscb5k4pj1m6n7f1grwcmzwbif"; }; # no tests in tarball diff --git a/pkgs/development/python-modules/jaraco_classes/default.nix b/pkgs/development/python-modules/jaraco_classes/default.nix index 35c70c3c0330..dadbb8104659 100644 --- a/pkgs/development/python-modules/jaraco_classes/default.nix +++ b/pkgs/development/python-modules/jaraco_classes/default.nix @@ -2,10 +2,10 @@ buildPythonPackage rec { pname = "jaraco.classes"; - version = "1.5"; + version = "2.0"; src = fetchPypi { inherit pname version; - sha256 = "002zsifikv6qwigkjlij7jhyvbwv6793m8h9ckbkx2jizmgc80fi"; + sha256 = "1xfal9085bjh4fv57d6v9ibr5wf4llj73gp1ybdlqd2bralc9hnw"; }; doCheck = false; buildInputs = [ setuptools_scm ]; diff --git a/pkgs/development/python-modules/perf/default.nix b/pkgs/development/python-modules/perf/default.nix index 558886ce6228..6c209ba8da02 100644 --- a/pkgs/development/python-modules/perf/default.nix +++ b/pkgs/development/python-modules/perf/default.nix @@ -15,11 +15,11 @@ buildPythonPackage rec { pname = "perf"; - version = "1.5.1"; + version = "1.6.0"; src = fetchPypi { inherit pname version; - sha256 = "5aae76e58bd3edd0c50adcc7c16926ebb9ed8c0e5058b435a30d58c6bb0394a8"; + sha256 = "1vrv83v8rhyl51yaxlqzw567vz5a9qwkymk3vqvcl5sa2yd3mzgp"; }; checkInputs = [ nose psutil ] ++ diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix index bf18ce5d75cf..79524b64d703 100644 --- a/pkgs/development/web/postman/default.nix +++ b/pkgs/development/web/postman/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "postman-${version}"; - version = "6.3.0"; + version = "6.7.1"; src = fetchurl { url = "https://dl.pstmn.io/download/version/${version}/linux64"; - sha256 = "09m511y977478567lc28mhy68b99ssajzhirc1c4anxnvvs7s6fa"; + sha256 = "1x8jj0xs67wi0qj6x22h54crndml6fl8a128s57v058fyxji6brx"; name = "${name}.tar.gz"; }; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index ab4b1cc2fc96..1466b51b2616 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -320,6 +320,7 @@ let SQUASHFS_LZO = yes; SQUASHFS_XZ = yes; SQUASHFS_LZ4 = yes; + SQUASHFS_ZSTD = whenAtLeast "4.14" yes; # Native Language Support modules, needed by some filesystems NLS = yes; diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index 6b314195bf88..efcf6c0d5bf2 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.93"; + version = "4.14.94"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1b8v4962b0j9fkipqldp0agss2hgvlhn24krw619f27p0jr5y4mv"; + sha256 = "1w933hd1ffd62znsha5z9qgjpsnh03f3r01f4b69l814n25m2a77"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix index bb3850e5a6d0..fc51cb2bf698 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.19.15"; + version = "4.19.16"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0v9nbkxc017ydcah5q0yhrlq1f7awc33m6w4gpif2f0wvxfimxkq"; + sha256 = "1pqvn6dsh0xhdpawz4ag27vkw1abvb6sn3869i4fbrz33ww8i86q"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.20.nix b/pkgs/os-specific/linux/kernel/linux-4.20.nix index d21f5ed4c8c5..f7636ae02d56 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.20.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.20.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.20.2"; + version = "4.20.3"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0sc60xj10r4pmlxisc57fy4f5pr7wgkgc96qc46cyj656fcbhjgb"; + sha256 = "0ibz33xgmvyvaql2jbl9kagv13nar9pjar7pawxyga04hh9bvhdr"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index 7f5be8957aff..58cbd8fe4f22 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.4.170"; + version = "4.4.171"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "04fia71k7hi9kmxmrqsdsi4nl6jw7vn1wkmdyh63hm89yz8dmy64"; + sha256 = "187g9x2zd738s1ric8zl205b7xipvr0l5i045clnhqwl5bd78h7x"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 5001b063e334..09f6ccc1325a 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.150"; + version = "4.9.151"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1r0pf44j523a142skgcy97ia32r46gg3ivzg1ziy8cxll9xigk4l"; + sha256 = "0p22xla6yq1zwhypfh1zkp0n12wjz5m806lmv8scwkbyh2amb5hm"; }; } // (args.argsOverride or {})) diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix index 36f326d5590b..fb343d1a05c4 100644 --- a/pkgs/servers/http/tengine/default.nix +++ b/pkgs/servers/http/tengine/default.nix @@ -10,12 +10,12 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "2.2.2"; + version = "2.2.3"; name = "tengine-${version}"; src = fetchurl { - url = "https://github.com/alibaba/tengine/archive/${name}.tar.gz"; - sha256 = "1vq73wsldvj7rc61ag85pvnaacrrq9rs0pfqv71z5iyvb5r3bxc2"; + url = "https://github.com/alibaba/tengine/archive/${version}.tar.gz"; + sha256 = "0x12mfs0q7lihpl335ad222a1a2sdkqzj5q8zbybzr20frixjs42"; }; buildInputs = diff --git a/pkgs/servers/nats-streaming-server/default.nix b/pkgs/servers/nats-streaming-server/default.nix index 8270fa398214..cc73b2e1f6f2 100644 --- a/pkgs/servers/nats-streaming-server/default.nix +++ b/pkgs/servers/nats-streaming-server/default.nix @@ -4,7 +4,7 @@ with lib; buildGoPackage rec { name = "nats-streaming-server-${version}"; - version = "0.11.0"; + version = "0.11.2"; rev = "v${version}"; goPackagePath = "github.com/nats-io/nats-streaming-server"; @@ -13,7 +13,7 @@ buildGoPackage rec { inherit rev; owner = "nats-io"; repo = "nats-streaming-server"; - sha256 = "0skkx3f7dpbf6nqpsbsk8ssn8hl55s9k76a5y5ksyqar5bdxvds5"; + sha256 = "1jd9c5yw3xxp5hln1g8w48l4cslhxbv0k2af47g6pya09kwknqkq"; }; meta = { diff --git a/pkgs/shells/bash/5.0.nix b/pkgs/shells/bash/5.0.nix new file mode 100644 index 000000000000..b78282ab6e4c --- /dev/null +++ b/pkgs/shells/bash/5.0.nix @@ -0,0 +1,126 @@ +{ stdenv, buildPackages +, fetchurl, binutils ? null, bison, utillinux + +# patch for cygwin requires readline support +, interactive ? stdenv.isCygwin, readline80 ? null +, withDocs ? false, texinfo ? null +}: + +with stdenv.lib; + +assert interactive -> readline80 != null; +assert withDocs -> texinfo != null; +assert stdenv.hostPlatform.isDarwin -> binutils != null; + +let + upstreamPatches = import ./bash-5.0-patches.nix (nr: sha256: fetchurl { + url = "mirror://gnu/bash/bash-5.0-patches/bash50-${nr}"; + inherit sha256; + }); +in + +stdenv.mkDerivation rec { + name = "bash-${optionalString interactive "interactive-"}${version}-p${toString (builtins.length upstreamPatches)}"; + version = "5.0"; + + src = fetchurl { + url = "mirror://gnu/bash/bash-${version}.tar.gz"; + sha256 = "0kgvfwqdcd90waczf4gx39xnrxzijhjrzyzv7s8v4w31qqm0za5l"; + }; + + hardeningDisable = [ "format" ]; + + outputs = [ "out" "dev" "man" "doc" "info" ]; + + NIX_CFLAGS_COMPILE = '' + -DSYS_BASHRC="/etc/bashrc" + -DSYS_BASH_LOGOUT="/etc/bash_logout" + -DDEFAULT_PATH_VALUE="/no-such-path" + -DSTANDARD_UTILS_PATH="/no-such-path" + -DNON_INTERACTIVE_LOGIN_SHELLS + -DSSH_SOURCE_BASHRC + ''; + + patchFlags = "-p0"; + + patches = upstreamPatches; + + configureFlags = [ + (if interactive then "--with-installed-readline" else "--disable-readline") + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "bash_cv_job_control_missing=nomissing" + "bash_cv_sys_named_pipes=nomissing" + "bash_cv_getcwd_malloc=yes" + ] ++ optionals stdenv.hostPlatform.isCygwin [ + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--with-installed-readline" + "bash_cv_dev_stdin=present" + "bash_cv_dev_fd=standard" + "bash_cv_termcap_lib=libncurses" + ] ++ optionals (stdenv.hostPlatform.libc == "musl") [ + "--without-bash-malloc" + "--disable-nls" + ]; + + # Note: Bison is needed because the patches above modify parse.y. + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ bison ] + ++ optional withDocs texinfo + ++ optional stdenv.hostPlatform.isDarwin binutils; + + buildInputs = optional interactive readline80; + + enableParallelBuilding = true; + + makeFlags = optional stdenv.hostPlatform.isCygwin [ + "LOCAL_LDFLAGS=-Wl,--export-all,--out-implib,libbash.dll.a" + "SHOBJ_LIBS=-lbash" + ]; + + checkInputs = [ utillinux ]; + doCheck = false; # dependency cycle, needs to be interactive + + postInstall = '' + ln -s bash "$out/bin/sh" + rm -f $out/lib/bash/Makefile.inc + ''; + + postFixup = if interactive + then '' + substituteInPlace "$out/bin/bashbug" \ + --replace '${stdenv.shell}' "$out/bin/bash" + '' + # most space is taken by locale data + else '' + rm -rf "$out/share" "$out/bin/bashbug" + ''; + + meta = with stdenv.lib; { + homepage = https://www.gnu.org/software/bash/; + description = + "GNU Bourne-Again Shell, the de facto standard shell on Linux" + + (if interactive then " (for interactive use)" else ""); + + longDescription = '' + Bash is the shell, or command language interpreter, that will + appear in the GNU operating system. Bash is an sh-compatible + shell that incorporates useful features from the Korn shell + (ksh) and C shell (csh). It is intended to conform to the IEEE + POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers + functional improvements over sh for both programming and + interactive use. In addition, most sh scripts can be run by + Bash without modification. + ''; + + license = licenses.gpl3Plus; + + platforms = platforms.all; + + maintainers = with maintainers; [ peti dtzWill ]; + }; + + passthru = { + shellPath = "/bin/bash"; + }; +} diff --git a/pkgs/shells/bash/bash-5.0-patches.nix b/pkgs/shells/bash/bash-5.0-patches.nix new file mode 100644 index 000000000000..b8019fb33502 --- /dev/null +++ b/pkgs/shells/bash/bash-5.0-patches.nix @@ -0,0 +1,4 @@ +# Automatically generated by `update-patch-set.sh'; do not edit. + +patch: [ +] diff --git a/pkgs/tools/networking/ocserv/default.nix b/pkgs/tools/networking/ocserv/default.nix index d6458128b04f..63a74c3ddb61 100644 --- a/pkgs/tools/networking/ocserv/default.nix +++ b/pkgs/tools/networking/ocserv/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { name = "ocserv-${version}"; - version = "0.12.1"; + version = "0.12.2"; src = fetchFromGitLab { owner = "openconnect"; repo = "ocserv"; rev = "ocserv_${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "0jn91a50r3ryj1ph9fzxwy2va877b0b37ahargxzn7biccd8nh0y"; + sha256 = "13lijg5qkkpn35laaimpw9l5g2dnnbmqn74lpcknmp6nm6j2wvci"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bd15935e748..e65be0be0b2a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6524,6 +6524,11 @@ in any-nix-shell = callPackage ../shells/any-nix-shell { }; bash = lowPrio (callPackage ../shells/bash/4.4.nix { }); + bash_5 = lowPrio (callPackage ../shells/bash/5.0.nix { }); + bashInteractive_5 = lowPrio (callPackage ../shells/bash/5.0.nix { + interactive = true; + withDocs = true; + }); # WARNING: this attribute is used by nix-shell so it shouldn't be removed/renamed bashInteractive = callPackage ../shells/bash/4.4.nix { @@ -10817,33 +10822,6 @@ in libgadu = callPackage ../development/libraries/libgadu { }; - gap-libgap-compatible = let - version = "4r8p6"; - pkgVer = "2016_11_12-14_25"; - in - (gap.override { keepAllPackages = false; }).overrideAttrs (oldAttrs: { - name = "libgap-${oldAttrs.pname}-${version}"; - inherit version; - src = fetchurl { - url = "https://www.gap-system.org/pub/gap/gap48/tar.bz2/gap${version}_${pkgVer}.tar.bz2"; - sha256 = "19n2p1mdg33s2x9rs51iak7rgndc1cwr56jyqnah0g1ydgg1yh6b"; - }; - patches = [ - # don't install any packages by default (needed for interop with libgap, probably obsolete with 4r10 - (fetchpatch { - url = "https://git.sagemath.org/sage.git/plain/build/pkgs/gap/patches/nodefaultpackages.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; - sha256 = "1xwj766m3axrxbkyx13hy3q8s2wkqxy3m6mgpwq3c3n4vk3v416v"; - }) - - # fix infinite loop in writeandcheck() when writing an error message fails. - (fetchpatch { - url = "https://git.sagemath.org/sage.git/plain/build/pkgs/gap/patches/writeandcheck.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; - sha256 = "1r1511x4kc2i2mbdq1b61rb6p3misvkf1v5qy3z6fmn6vqwziaz1"; - }) - ]; - }); - libgap = callPackage ../development/libraries/libgap { }; - libgda = callPackage ../development/libraries/libgda { }; libgdamm = callPackage ../development/libraries/libgdamm { }; @@ -12397,6 +12375,8 @@ in readline70 = callPackage ../development/libraries/readline/7.0.nix { }; + readline80 = callPackage ../development/libraries/readline/8.0.nix { }; + readosm = callPackage ../development/libraries/readosm { }; lambdabot = callPackage ../development/tools/haskell/lambdabot { @@ -16048,7 +16028,7 @@ in androidStudioPackages = recurseIntoAttrs (callPackage ../applications/editors/android-studio { }); android-studio = androidStudioPackages.stable; - android-studio-preview = androidStudioPackages.beta; + android-studio-preview = androidStudioPackages.preview; animbar = callPackage ../applications/graphics/animbar { }; @@ -22002,7 +21982,9 @@ in gap = callPackage ../applications/science/math/gap { }; - gap-minimal = lowPrio (gap.override { keepAllPackages = false; }); + gap-minimal = lowPrio (gap.override { packageSet = "minimal"; }); + + gap-full = lowPrio (gap.override { packageSet = "full"; }); geogebra = callPackage ../applications/science/math/geogebra { }; diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index cb425b14e1d4..3cfa8f6e6d66 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -409,6 +409,40 @@ let }; }; + phpstan = pkgs.stdenv.mkDerivation rec { + name = "phpstan-${version}"; + version = "0.11"; + + src = pkgs.fetchurl { + url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar"; + sha256 = "09p3cg5ii862p2l44fcv7hh400nsmxvwn1jjr929y21p01wsjhkp"; + }; + + phases = [ "installPhase" ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + + installPhase = '' + mkdir -p $out/bin + install -D $src $out/libexec/phpstan/phpstan.phar + makeWrapper ${php}/bin/php $out/bin/phpstan \ + --add-flags "$out/libexec/phpstan/phpstan.phar" + ''; + + meta = with pkgs.lib; { + description = "PHP Static Analysis Tool"; + longDescription = '' + PHPStan focuses on finding errors in your code without actually running + it. It catches whole classes of bugs even before you write tests for the + code. It moves PHP closer to compiled languages in the sense that the + correctness of each line of the code can be checked before you run the + actual line. + ''; + license = licenses.mit; + homepage = https://github.com/phpstan/phpstan; + maintainers = with maintainers; [ etu ]; + }; + }; + psysh = pkgs.stdenv.mkDerivation rec { name = "psysh-${version}"; version = "0.9.8";