Merge branch 'master' into staging

This commit is contained in:
Jan Tojnar 2019-01-17 21:49:16 +01:00
commit af3758e0b5
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
47 changed files with 546 additions and 181 deletions

View file

@ -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:

View file

@ -814,7 +814,7 @@ args.stdenv.mkDerivation (args // {
<para>
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 <literal>fetchurl</literal>. Note that you should also
prefer protocols which have a corresponding proxy environment variable.
@ -876,6 +876,123 @@ src = fetchFromGitHub {
</itemizedlist>
</para>
</section>
<section xml:id="sec-source-hashes">
<title>Obtaining source hash</title>
<para>
Preferred source hash type is sha256. There are several ways to get it.
</para>
<orderedlist>
<listitem>
<para>
Prefetch URL (with <literal>nix-prefetch-<replaceable>XXX</replaceable>
<replaceable>URL</replaceable></literal>, where
<replaceable>XXX</replaceable> is one of <literal>url</literal>,
<literal>git</literal>, <literal>hg</literal>, <literal>cvs</literal>,
<literal>bzr</literal>, <literal>svn</literal>). Hash is printed to
stdout.
</para>
</listitem>
<listitem>
<para>
Prefetch by package source (with <literal>nix-prefetch-url
'&lt;nixpkgs&gt;' -A <replaceable>PACKAGE</replaceable>.src</literal>,
where <replaceable>PACKAGE</replaceable> is package attribute name). Hash
is printed to stdout.
</para>
<para>
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 (<literal>.srcs</literal>,
architecture-dependent sources, etc).
</para>
</listitem>
<listitem>
<para>
Upstream provided hash: use it when upstream provides
<literal>sha256</literal> or <literal>sha512</literal> (when upstream
provides <literal>md5</literal>, don't use it, compute
<literal>sha256</literal> instead).
</para>
<para>
A little nuance is that <literal>nix-prefetch-*</literal> tools produce
hash encoded with <literal>base32</literal>, but upstream usually provides
hexadecimal (<literal>base16</literal>) encoding. Fetchers understand both
formats. Nixpkgs does not standardize on any one format.
</para>
<para>
You can convert between formats with nix-hash, for example:
<screen>
$ nix-hash --type sha256 --to-base32 <replaceable>HASH</replaceable>
</screen>
</para>
</listitem>
<listitem>
<para>
Extracting hash from local source tarball can be done with
<literal>sha256sum</literal>. Use <literal>nix-prefetch-url
file:///path/to/tarball </literal> if you want base32 hash.
</para>
</listitem>
<listitem>
<para>
Fake hash: set fake hash in package expression, perform build and extract
correct hash from error Nix prints.
</para>
<para>
For package updates it is enough to change one symbol to make hash fake.
For new packages, you can use <literal>lib.fakeSha256</literal>,
<literal>lib.fakeSha512</literal> or any other fake hash.
</para>
<para>
This is last resort method when reconstructing source URL is non-trivial
and <literal>nix-prefetch-url -A</literal> isn't applicable (for example,
<link xlink:href="https://github.com/NixOS/nixpkgs/blob/d2ab091dd308b99e4912b805a5eb088dd536adb9/pkgs/applications/video/kodi/default.nix#L73">
one of <literal>kodi</literal> dependencies</link>). 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.
</para>
<warning><para>This method has security problems. Check below for details.</para></warning>
</listitem>
</orderedlist>
<section xml:id="sec-source-hashes-security">
<title>Obtaining hashes securely</title>
<para>
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:
</para>
<itemizedlist>
<listitem>
<para>
<literal>http://</literal> URLs are not secure to prefetch hash from;
</para>
</listitem>
<listitem>
<para>
hashes from upstream (in method 3) should be obtained via secure protocol;
</para>
</listitem>
<listitem>
<para>
<literal>https://</literal> URLs are secure in methods 1, 2, 3;
</para>
</listitem>
<listitem>
<para>
<literal>https://</literal> 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 <literal>https://</literal> URL and prefetch it
with method 1.
</para>
</listitem>
</itemizedlist>
</section>
</section>
<section xml:id="sec-patches">
<title>Patches</title>

View file

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

View file

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

View file

@ -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);

View file

@ -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);

View file

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

View file

@ -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 // {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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

View file

@ -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"

View file

@ -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!
...
"""

View file

@ -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
])

View file

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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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; [

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,4 @@
# Automatically generated by `update-patch-set.sh'; do not edit.
patch: [
]

View file

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

View file

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

View file

@ -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

View file

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

View file

@ -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 ] ++

View file

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

View file

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

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 {}))

View file

@ -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 =

View file

@ -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 = {

126
pkgs/shells/bash/5.0.nix Normal file
View file

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

View file

@ -0,0 +1,4 @@
# Automatically generated by `update-patch-set.sh'; do not edit.
patch: [
]

View file

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

View file

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

View file

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