Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2020-05-10 09:43:48 +02:00
commit 303adc7697
132 changed files with 936 additions and 344 deletions

@ -9,7 +9,7 @@
Several versions of the Python interpreter are available on Nix, as well as a
high amount of packages. The attribute `python` refers to the default
interpreter, which is currently CPython 2.7. It is also possible to refer to
specific versions, e.g. `python35` refers to CPython 3.5, and `pypy` refers to
specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to
the default PyPy interpreter.
Python is used a lot, and in different ways. This affects also how it is
@ -25,10 +25,10 @@ however, are in separate sets, with one set per interpreter version.
The interpreters have several common attributes. One of these attributes is
`pkgs`, which is a package set of Python libraries for this specific
interpreter. E.g., the `toolz` package corresponding to the default interpreter
is `python.pkgs.toolz`, and the CPython 3.5 version is `python35.pkgs.toolz`.
is `python.pkgs.toolz`, and the CPython 3.8 version is `python38.pkgs.toolz`.
The main package set contains aliases to these package sets, e.g.
`pythonPackages` refers to `python.pkgs` and `python35Packages` to
`python35.pkgs`.
`pythonPackages` refers to `python.pkgs` and `python38Packages` to
`python38.pkgs`.
#### Installing Python and packages
@ -50,7 +50,7 @@ to create an environment with `python.buildEnv` or `python.withPackages` where
the interpreter and other executables are able to find each other and all of the
modules.
In the following examples we create an environment with Python 3.5, `numpy` and
In the following examples we create an environment with Python 3.8, `numpy` and
`toolz`. As you may imagine, there is one limitation here, and that's that
you can install only one environment at a time. You will notice the complaints
about collisions when you try to install a second environment.
@ -61,7 +61,7 @@ Create a file, e.g. `build.nix`, with the following expression
```nix
with import <nixpkgs> {};
python35.withPackages (ps: with ps; [ numpy toolz ])
python38.withPackages (ps: with ps; [ numpy toolz ])
```
and install it in your profile with
```shell
@ -79,7 +79,7 @@ Nixpkgs set, e.g. using `config.nix`,
{ # ...
packageOverrides = pkgs: with pkgs; {
myEnv = python35.withPackages (ps: with ps; [ numpy toolz ]);
myEnv = python38.withPackages (ps: with ps; [ numpy toolz ]);
};
}
```
@ -101,7 +101,7 @@ environment system-wide.
{ # ...
environment.systemPackages = with pkgs; [
(python35.withPackages(ps: with ps; [ numpy toolz ]))
(python38.withPackages(ps: with ps; [ numpy toolz ]))
];
}
```
@ -118,7 +118,7 @@ recommended method is to create an environment with `python.buildEnv` or
`python.withPackages` and load that. E.g.
```sh
$ nix-shell -p 'python35.withPackages(ps: with ps; [ numpy toolz ])'
$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
```
opens a shell from which you can launch the interpreter
@ -131,7 +131,7 @@ The other method, which is not recommended, does not create an environment and
requires you to list the packages directly,
```sh
$ nix-shell -p python35.pkgs.numpy python35.pkgs.toolz
$ nix-shell -p python38.pkgs.numpy python38.pkgs.toolz
```
Again, it is possible to launch the interpreter from the shell. The Python
@ -140,14 +140,14 @@ that specific interpreter.
##### Load environment from `.nix` expression
As explained in the Nix manual, `nix-shell` can also load an
expression from a `.nix` file. Say we want to have Python 3.5, `numpy`
expression from a `.nix` file. Say we want to have Python 3.8, `numpy`
and `toolz`, like before, in an environment. Consider a `shell.nix` file
with
```nix
with import <nixpkgs> {};
(python35.withPackages (ps: [ps.numpy ps.toolz])).env
(python38.withPackages (ps: [ps.numpy ps.toolz])).env
```
Executing `nix-shell` gives you again a Nix shell from which you can run Python.
@ -158,7 +158,7 @@ What's happening here?
imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
brings all attributes of `nixpkgs` in the local scope. These attributes form
the main package set.
2. Then we create a Python 3.5 environment with the `withPackages` function.
2. Then we create a Python 3.8 environment with the `withPackages` function.
3. The `withPackages` function expects us to provide a function as an argument
that takes the set of all python packages and returns a list of packages to
include in the environment. Here, we select the packages `numpy` and `toolz`
@ -170,7 +170,7 @@ To combine this with `mkShell` you can:
with import <nixpkgs> {};
let
pythonEnv = python35.withPackages (ps: [
pythonEnv = python38.withPackages (ps: [
ps.numpy
ps.toolz
]);
@ -188,13 +188,13 @@ option, with which you can execute a command in the `nix-shell`. We can
e.g. directly open a Python shell
```sh
$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3"
$ nix-shell -p python38Packages.numpy python38Packages.toolz --run "python3"
```
or run a script
```sh
$ nix-shell -p python35Packages.numpy python35Packages.toolz --run "python3 myscript.py"
$ nix-shell -p python38Packages.numpy python38Packages.toolz --run "python3 myscript.py"
```
##### `nix-shell` as shebang
@ -231,11 +231,11 @@ building Python libraries is `buildPythonPackage`. Let's see how we can build th
buildPythonPackage rec {
pname = "toolz";
version = "0.7.4";
version = "0.10.0";
src = fetchPypi {
inherit pname version;
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
};
doCheck = false;
@ -260,8 +260,8 @@ information. The output of the function is a derivation.
An expression for `toolz` can be found in the Nixpkgs repository. As explained
in the introduction of this Python section, a derivation of `toolz` is available
for each interpreter version, e.g. `python35.pkgs.toolz` refers to the `toolz`
derivation corresponding to the CPython 3.5 interpreter.
for each interpreter version, e.g. `python38.pkgs.toolz` refers to the `toolz`
derivation corresponding to the CPython 3.8 interpreter.
The above example works when you're directly working on
`pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
you will want to test a Nix expression outside of the Nixpkgs tree.
@ -273,13 +273,13 @@ and adds it along with a `numpy` package to a Python environment.
with import <nixpkgs> {};
( let
my_toolz = python35.pkgs.buildPythonPackage rec {
my_toolz = python38.pkgs.buildPythonPackage rec {
pname = "toolz";
version = "0.7.4";
version = "0.10.0";
src = python35.pkgs.fetchPypi {
src = python38.pkgs.fetchPypi {
inherit pname version;
sha256 = "43c2c9e5e7a16b6c88ba3088a9bfc82f7db8e13378be7c78d6c14a5f8ed05afd";
sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
};
doCheck = false;
@ -290,12 +290,12 @@ with import <nixpkgs> {};
};
};
in python35.withPackages (ps: [ps.numpy my_toolz])
in python38.withPackages (ps: [ps.numpy my_toolz])
).env
```
Executing `nix-shell` will result in an environment in which you can use
Python 3.5 and the `toolz` package. As you can see we had to explicitly mention
Python 3.8 and the `toolz` package. As you can see we had to explicitly mention
for which Python version we want to build a package.
So, what did we do here? Well, we took the Nix expression that we used earlier
@ -435,7 +435,7 @@ If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
is a local source, and if the local source has a `setup.py`, then development
mode is activated.
In the following example we create a simple environment that has a Python 3.5
In the following example we create a simple environment that has a Python 3.8
version of our package in it, as well as its dependencies and other packages we
like to have in the environment, all specified with `propagatedBuildInputs`.
Indeed, we can just add any package we like to have in our environment to
@ -443,7 +443,7 @@ Indeed, we can just add any package we like to have in our environment to
```nix
with import <nixpkgs> {};
with python35Packages;
with python38Packages;
buildPythonPackage rec {
name = "mypackage";
@ -505,9 +505,9 @@ with import <nixpkgs> {};
( let
toolz = callPackage /path/to/toolz/release.nix {
buildPythonPackage = python35Packages.buildPythonPackage;
buildPythonPackage = python38Packages.buildPythonPackage;
};
in python35.withPackages (ps: [ ps.numpy toolz ])
in python38.withPackages (ps: [ ps.numpy toolz ])
).env
```
@ -515,8 +515,8 @@ Important to remember is that the Python version for which the package is made
depends on the `python` derivation that is passed to `buildPythonPackage`. Nix
tries to automatically pass arguments when possible, which is why generally you
don't explicitly define which `python` derivation should be used. In the above
example we use `buildPythonPackage` that is part of the set `python35Packages`,
and in this case the `python35` interpreter is automatically used.
example we use `buildPythonPackage` that is part of the set `python38Packages`,
and in this case the `python38` interpreter is automatically used.
## Reference
@ -662,7 +662,7 @@ following are specific to `buildPythonPackage`:
variables which will be available when the binary is run. For example,
`makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`.
* `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this
defaults to `"python3.5-"` for Python 3.5, etc., and in case of applications
defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications
to `""`.
* `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages
in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`).
@ -960,7 +960,7 @@ has security implications and is relevant for those using Python in a
When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will
have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1`
and [PYTHONHASHSEED=0](https://docs.python.org/3.5/using/cmdline.html#envvar-PYTHONHASHSEED).
and [PYTHONHASHSEED=0](https://docs.python.org/3.8/using/cmdline.html#envvar-PYTHONHASHSEED).
Both are also exported in `nix-shell`.
@ -1014,7 +1014,7 @@ with import <nixpkgs> {};
packageOverrides = self: super: {
pandas = super.pandas.overridePythonAttrs(old: {name="foo";});
};
in pkgs.python35.override {inherit packageOverrides;};
in pkgs.python38.override {inherit packageOverrides;};
in python.withPackages(ps: [ps.pandas])).env
```
@ -1036,7 +1036,7 @@ with import <nixpkgs> {};
packageOverrides = self: super: {
scipy = super.scipy_0_17;
};
in (pkgs.python35.override {inherit packageOverrides;}).withPackages (ps: [ps.blaze])
in (pkgs.python38.override {inherit packageOverrides;}).withPackages (ps: [ps.blaze])
).env
```
@ -1049,12 +1049,12 @@ If you want the whole of Nixpkgs to use your modifications, then you can use
```nix
let
pkgs = import <nixpkgs> {};
newpkgs = import pkgs.path { overlays = [ (pkgsself: pkgssuper: {
python27 = let
packageOverrides = self: super: {
numpy = super.numpy_1_10;
newpkgs = import pkgs.path { overlays = [ (self: super: {
python38 = let
packageOverrides = python-self: python-super: {
numpy = python-super.numpy_1_18.3;
};
in pkgssuper.python27.override {inherit packageOverrides;};
in super.python38.override {inherit packageOverrides;};
} ) ]; };
in newpkgs.inkscape
```

@ -1662,6 +1662,12 @@
}
];
};
cyplo = {
email = "nixos@cyplo.dev";
github = "cyplo";
githubId = 217899;
name = "Cyryl Płotnicki";
};
d-goldin = {
email = "dgoldin+github@protonmail.ch";
github = "d-goldin";
@ -7624,12 +7630,6 @@
githubId = 1141680;
name = "Thane Gill";
};
the-kenny = {
email = "moritz@tarn-vedra.de";
github = "the-kenny";
githubId = 31167;
name = "Moritz Ulrich";
};
thedavidmeister = {
email = "thedavidmeister@gmail.com";
github = "thedavidmeister";

@ -0,0 +1,43 @@
{ maintainer }:
# based on update.nix
# nix-build build.nix --argstr maintainer <yourname>
let
pkgs = import ./../../default.nix {};
maintainer_ = pkgs.lib.maintainers.${maintainer};
packagesWith = cond: return: set:
(pkgs.lib.flatten
(pkgs.lib.mapAttrsToList
(name: pkg:
let
result = builtins.tryEval
(
if pkgs.lib.isDerivation pkg && cond name pkg
then [ (return name pkg) ]
else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false
then packagesWith cond return pkg
else [ ]
);
in
if result.success then result.value
else [ ]
)
set
)
);
in
packagesWith
(name: pkg:
(
if builtins.hasAttr "maintainers" pkg.meta
then (
if builtins.isList pkg.meta.maintainers
then builtins.elem maintainer_ pkg.meta.maintainers
else maintainer_ == pkg.meta.maintainers
)
else false
)
)
(name: pkg: pkg)
pkgs

@ -37,7 +37,7 @@ in
# If there is any package configured in modulePackages, we generate the
# loaders.cache based on that and set the environment variable
# GDK_PIXBUF_MODULE_FILE to point to it.
config = mkIf (cfg.modulePackages != [] || pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform) {
config = mkIf (cfg.modulePackages != []) {
environment.variables = {
GDK_PIXBUF_MODULE_FILE = "${loadersCache}";
};

@ -60,6 +60,5 @@ stdenv.mkDerivation rec {
homepage = "http://audacityteam.org/";
license = licenses.gpl2Plus;
platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
maintainers = with maintainers; [ the-kenny ];
};
}

@ -1,23 +1,41 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook,
fltk, jansson, rtmidi, libsamplerate, libsndfile,
jack2, alsaLib, libpulseaudio,
libXpm, libXinerama, libXcursor }:
{ stdenv
, fetchFromGitHub
, autoreconfHook
, fltk
, jansson
, rtmidi
, libsamplerate
, libsndfile
, jack2
, alsaLib
, libpulseaudio
, libXpm
, libXinerama
, libXcursor
, catch2
, nlohmann_json
}:
stdenv.mkDerivation rec {
pname = "giada";
version = "0.16.1";
version = "0.16.2.2";
src = fetchFromGitHub {
owner = "monocasual";
repo = pname;
rev = "v${version}";
sha256 = "0b3lhjs6myml5r5saky15523sbc3qr43r9rh047vhsiafmqdvfq1";
sha256 = "0rpg5qmw3b76xcra869shb8fwk5wfzpzw216n96hxa5s6k69cm0p";
};
configureFlags = [ "--target=linux" ];
configureFlags = [
"--target=linux"
"--enable-system-catch"
];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
fltk
libsndfile
@ -30,9 +48,16 @@ stdenv.mkDerivation rec {
libpulseaudio
libXinerama
libXcursor
catch2
nlohmann_json
];
meta = with lib; {
postPatch = ''
sed -i 's:"deps/json/single_include/nlohmann/json\.hpp":<nlohmann/json.hpp>:' \
src/core/{conf,init,midiMapConf,patch}.cpp
'';
meta = with stdenv.lib; {
description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
homepage = "https://giadamusic.com/";
license = licenses.gpl3;

@ -16,6 +16,5 @@ stdenv.mkDerivation rec {
homepage = "http://streamripper.sourceforge.net/";
description = "Application that lets you record streaming mp3 to your hard drive";
license = licenses.gpl2;
maintainers = with maintainers; [ the-kenny ];
};
}

@ -5,7 +5,7 @@
with stdenv.lib;
let
version = "0.19.0.1";
version = "0.19.1";
majorMinorVersion = versions.majorMinor version;
desktop = fetchurl {
@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
urls = [ "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
"https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
];
sha256 = "7ac9f972249a0a16ed01352ca2a199a5448fe87a4ea74923404a40b4086de284";
sha256 = "f2591d555b8e8c2e1bd780e40d53a91e165d8b3c7e0391ae2d24a0c0f23a7cc0";
};
nativeBuildInputs =
@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
'';
homepage = "http://www.bitcoin.org/";
homepage = "https://bitcoin.org/";
maintainers = with maintainers; [ roconnor AndersonTorres ];
license = licenses.mit;
platforms = platforms.unix;

@ -123,7 +123,7 @@ stdenv.mkDerivation rec {
description = "The extensible, customizable GNU text editor";
homepage = "https://www.gnu.org/software/emacs/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lovek323 peti the-kenny jwiegley ];
maintainers = with maintainers; [ lovek323 peti jwiegley ];
platforms = platforms.all;
longDescription = ''

@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
description = "The extensible, customizable GNU text editor";
homepage = "https://www.gnu.org/software/emacs/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lovek323 peti the-kenny jwiegley adisbladis ];
maintainers = with maintainers; [ lovek323 peti jwiegley adisbladis ];
platforms = platforms.all;
longDescription = ''

@ -84,6 +84,5 @@ stdenv.mkDerivation {
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
license = licenses.asl20;
maintainers = with maintainers; [ the-kenny ];
};
}

@ -99,7 +99,6 @@ stdenv.mkDerivation {
homepage = "http://www.imagemagick.org/";
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ the-kenny ];
license = licenses.asl20;
};
}

@ -126,7 +126,6 @@ mkDerivation rec {
description = "Photo Management Program";
license = licenses.gpl2;
homepage = "https://www.digikam.org";
maintainers = with maintainers; [ the-kenny ];
platforms = platforms.linux;
};
}

@ -80,7 +80,6 @@ mkDerivation rec {
homepage = "http://openscad.org/";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers;
[ bjornfor raskin the-kenny gebner ];
maintainers = with stdenv.lib.maintainers; [ bjornfor raskin gebner ];
};
}

@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
description = "RAW converter and digital photo processing software";
homepage = "http://www.rawtherapee.com/";
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ jcumming mahe the-kenny ];
maintainers = with stdenv.lib.maintainers; [ jcumming mahe ];
platforms = with stdenv.lib.platforms; linux;
};
}

@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
configurePhase = "";
buildPhase = "";
patches = [ ./numpy-cast.patch ];
installPhase = ''
@ -69,6 +69,5 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/daid/Cura";
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -25,6 +25,5 @@ stdenv.mkDerivation {
homepage = "https://github.com/Ultimaker/CuraEngine";
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -39,6 +39,5 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/wb2osz/direwolf/";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = [ maintainers.the-kenny ];
};
}

@ -1,4 +1,5 @@
{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps,
{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, qemu, unzip, zip,
coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk,
python36Packages, qt5, runtimeShell, stdenv, utillinux, wrapQtAppsHook }:
# Note: Multibootusb is tricky to maintain. It relies on the
@ -19,17 +20,30 @@ python36Packages.buildPythonApplication rec {
nativeBuildInputs = [
wrapQtAppsHook
autoPatchelfHook
unzip
zip
];
runTimeDeps = [
coreutils
gnugrep
which
parted
utillinux
qemu
p7zip
gnused
mtools
procps
e2fsprogs
gptfdisk
];
buildInputs = [
libxcb
mtools
p7zip
parted
procps
python36Packages.python
qt5.full
utillinux
];
src = fetchFromGitHub {
@ -52,6 +66,20 @@ python36Packages.buildPythonApplication rec {
python36Packages.six
];
# multibootusb ships zips with various versions of syslinux, we need to patchelf them
postPatch = ''
for zip in $(find . -name "*.zip"); do
zip=$(readlink -f $zip)
target="$(mktemp -d)"
pushd $target
unzip $zip
rm $zip
autoPatchelf .
zip -r $zip *
popd
done
'';
postInstall = ''
# This script doesn't work and it doesn't add much anyway
rm $out/bin/multibootusb-pkexec
@ -69,6 +97,9 @@ python36Packages.buildPythonApplication rec {
# Then, add the installed scripts/ directory to the python path
--prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages"
# Add some runtime dependencies
--prefix "PATH" ":" "${stdenv.lib.makeBinPath runTimeDeps}"
# Finally, move to directory that contains data
--run "cd $out/share/${pname}"
)

@ -74,6 +74,7 @@ in stdenv.mkDerivation rec {
Comment=PDF viewer
Exec=$bin/bin/mupdf-x11 %f
Terminal=false
MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;application/epub+zip
EOF
'';

@ -85,6 +85,6 @@ stdenv.mkDerivation rec {
homepage = "https://slic3r.org/";
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ bjornfor the-kenny ];
maintainers = with maintainers; [ bjornfor ];
};
}

@ -64,7 +64,6 @@ stdenv.mkDerivation {
homepage = "https://www.dropbox.com";
description = "Command line client for the dropbox daemon";
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
# NOTE: Dropbox itself only works on linux, so this is ok.
platforms = stdenv.lib.platforms.linux;
};

@ -2,14 +2,14 @@
buildGoModule rec {
pname = "ipfs";
version = "0.5.0";
version = "0.5.1";
rev = "v${version}";
src = fetchFromGitHub {
owner = "ipfs";
repo = "go-ipfs";
inherit rev;
sha256 = "0dbyvs49wyqj46c8hvz0fr4vpgfrdj1h8blniwzjf0jabgvw8nik";
sha256 = "11l55hlbixv1i25d3n216pkrwgcgac99fa88lyy3dailvminqxw7";
};
postPatch = ''
@ -23,7 +23,7 @@ buildGoModule rec {
passthru.tests.ipfs = nixosTests.ipfs;
modSha256 = "00xgsvpl47miy6paxl8yn6p76h6ssccackh50z0l4r5s7wcc25q8";
modSha256 = "13mpva3r6r2amw08g0bdggbxn933jjimngkvzgq1q5dksp4mivfk";
meta = with stdenv.lib; {
description = "A global, versioned, peer-to-peer filesystem";

@ -78,7 +78,7 @@ let
on https://nixos.org/nixpkgs/manual/#sec-weechat .
'';
license = stdenv.lib.licenses.gpl3;
maintainers = with stdenv.lib.maintainers; [ lovek323 the-kenny lheckemann ma27 ];
maintainers = with stdenv.lib.maintainers; [ lovek323 lheckemann ma27 ];
platforms = stdenv.lib.platforms.unix;
};
}

@ -91,6 +91,6 @@ stdenv.mkDerivation rec {
homepage = "http://www.mutt.org";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ the-kenny rnhmjoj ];
maintainers = with maintainers; [ rnhmjoj ];
};
}

@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
description = "Mail indexer";
homepage = "https://notmuchmail.org/";
license = licenses.gpl3;
maintainers = with maintainers; [ flokli puckipedia the-kenny ];
maintainers = with maintainers; [ flokli puckipedia ];
platforms = platforms.unix;
};
}

@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
'';
platforms = platforms.all;
maintainers = with maintainers; [ the-kenny jwiegley ];
maintainers = with maintainers; [ jwiegley ];
};
}

@ -20,6 +20,5 @@ python2.pkgs.buildPythonApplication rec {
homepage = "https://chirp.danplanet.com/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ maintainers.the-kenny ];
};
}

@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor the-kenny ];
maintainers = with maintainers; [ bjornfor ];
};
}

@ -43,6 +43,6 @@ mkDerivation rec {
# it's currently unknown which version of the BSD license that is.
license = licenses.gpl3Plus;
platforms = platforms.linux; # should work on Darwin / macOS too
maintainers = with maintainers; [ bjornfor the-kenny fpletz ];
maintainers = with maintainers; [ bjornfor fpletz ];
};
}

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
homepage = "http://greatscottgadgets.com/hackrf/";
license = licenses.gpl2;
platforms = platforms.all;
maintainers = with maintainers; [ sjmackenzie the-kenny ];
maintainers = with maintainers; [ sjmackenzie ];
};
}

@ -39,6 +39,5 @@ stdenv.mkDerivation {
homepage = "https://github.com/EliasOenal/multimon-ng";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ the-kenny ];
};
}

@ -1,18 +1,18 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, libminc, bicpl, itk, fftwFloat, gsl }:
{ stdenv, fetchFromGitHub, cmake, pkgconfig, libminc, bicpl, itk4, fftwFloat, gsl }:
stdenv.mkDerivation rec {
pname = "EZminc";
name = "${pname}-unstable-2019-07-25";
name = "${pname}-unstable-2019-03-12";
src = fetchFromGitHub {
owner = "BIC-MNI";
repo = pname;
rev = "9591edd5389a5bda2c1f606816c7cdb35c065adf";
sha256 = "02k87qbpx0f48l2lbcjmlqx82py684z3sfi29va5icfg3hjd6j7b";
rev = "5e3333ee356f914d34d66d33ea8df809c7f7fa51";
sha256 = "0wy8cppf5xpgfqvgb3mqs1cjh81n6qzkk6zxv29wvng8nar9wsy4";
};
nativeBuildInputs = [ cmake pkgconfig ];
buildInputs = [ itk libminc bicpl fftwFloat gsl ];
buildInputs = [ itk4 libminc bicpl fftwFloat gsl ];
cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/"
"-DEZMINC_BUILD_TOOLS=TRUE"

@ -1,35 +1,27 @@
{ stdenv, fetchurl, fetchpatch, openssl, zlib, asciidoc, libxml2, libxslt
{ stdenv, fetchurl, openssl, zlib, asciidoc, libxml2, libxslt
, docbook_xsl, pkgconfig, luajit
, coreutils, gnused, groff, docutils
, gzip, bzip2, xz
, gzip, bzip2, lzip, xz, zstd
, python, wrapPython, pygments, markdown
}:
stdenv.mkDerivation rec {
pname = "cgit";
version = "1.2.1";
version = "1.2.3";
src = fetchurl {
url = "https://git.zx2c4.com/cgit/snapshot/${pname}-${version}.tar.xz";
sha256 = "1gw2j5xc5qdx2hwiwkr8h6kgya7v9d9ff9j32ga1dys0cca7qm1w";
sha256 = "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss";
};
# cgit is tightly coupled with git and needs a git source tree to build.
# IMPORTANT: Remember to check which git version cgit needs on every version
# bump (look for "GIT_VER" in the top-level Makefile).
gitSrc = fetchurl {
url = "mirror://kernel/software/scm/git/git-2.18.0.tar.xz";
sha256 = "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b";
url = "mirror://kernel/software/scm/git/git-2.25.1.tar.xz";
sha256 = "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2";
};
patches = [
(fetchpatch {
name = "prevent-dos-limit-path-length.patch";
url = "https://git.zx2c4.com/cgit/patch/?id=54c407a74a35d4ee9ffae94cc5bc9096c9f7f54a";
sha256 = "1qlbpqsc293lmc9hzwf1j4jr5qlv8cm1r249v3yij5s4wki1595j";
})
];
nativeBuildInputs = [ pkgconfig ] ++ [ python wrapPython ];
buildInputs = [
openssl zlib asciidoc libxml2 libxslt docbook_xsl luajit
@ -39,7 +31,9 @@ stdenv.mkDerivation rec {
postPatch = ''
sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \
-e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \
-e 's|"lzip"|"${lzip}/bin/lzip"|' \
-e 's|"xz"|"${xz.bin}/bin/xz"|' \
-e 's|"zstd"|"${zstd}/bin/zstd"|' \
-i ui-snapshot.c
substituteInPlace filters/html-converters/man2html \

@ -343,6 +343,6 @@ stdenv.mkDerivation {
'';
platforms = stdenv.lib.platforms.all;
maintainers = with stdenv.lib.maintainers; [ peti the-kenny wmertens globin ];
maintainers = with stdenv.lib.maintainers; [ peti wmertens globin ];
};
}

@ -37,7 +37,7 @@ buildGoPackage rec {
description = "Command-line wrapper for git that makes you better at GitHub";
license = licenses.mit;
homepage = "https://hub.github.com/";
maintainers = with maintainers; [ the-kenny globin ];
maintainers = with maintainers; [ globin ];
platforms = with platforms; unix;
};
}

@ -30,7 +30,6 @@ stdenv.mkDerivation {
description = "A patch manager implemented on top of Git";
homepage = "http://procode.org/stgit/";
license = licenses.gpl2;
maintainers = with maintainers; [ the-kenny ];
platforms = platforms.unix;
};
}

@ -34,8 +34,6 @@ stdenv.mkDerivation {
homepage = "https://github.com/nirvdrum/svn2git";
description = "Tool for importing Subversion repositories into git";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.the-kenny ];
platforms = stdenv.lib.platforms.unix;
};
}

@ -2,13 +2,13 @@
buildGoPackage rec {
pname = "git-lfs";
version = "2.10.0";
version = "2.11.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "git-lfs";
repo = "git-lfs";
sha256 = "1y5ryk0iz5g5sqaw79ml6fr5kvjgzcah481pk5qmnb2ipb1xlng9";
sha256 = "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5";
};
goPackagePath = "github.com/git-lfs/git-lfs";

@ -1,5 +1,6 @@
{ stdenv, buildGoPackage, fetchurl, makeWrapper
, git, bash, gzip, openssh, pam
, fetchpatch
, sqliteSupport ? true
, pamSupport ? true
}:
@ -8,11 +9,11 @@ with stdenv.lib;
buildGoPackage rec {
pname = "gitea";
version = "1.11.4";
version = "1.11.5";
src = fetchurl {
url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
sha256 = "18k6kcdq0ijpzgay2aq1w95qkgfvrn1dgh4cxyj9c4i0pwb3ar7f";
sha256 = "0iqxwg53wjwi4vpq2h6fwmniazsi4cf68fcjrs459qbz4d6x8xa9";
};
unpackPhase = ''
@ -22,7 +23,13 @@ buildGoPackage rec {
sourceRoot = "source";
patches = [ ./static-root-path.patch ];
patches = [
./static-root-path.patch
(fetchpatch {
url = "https://github.com/go-gitea/gitea/commit/1830d0ed5f4a67e3360ecbb55933b5540b6affce.patch";
sha256 = "163531pcki28qfs56l64vv4xxaavxgksf038da1sn21j5l2jm81i";
})
];
postPatch = ''
patchShebangs .

@ -1,4 +1,4 @@
{ lib, fetchFromGitHub, buildGoPackage, btrfs-progs, go-md2man, utillinux }:
{ lib, fetchFromGitHub, buildGoPackage, btrfs-progs, go-md2man, installShellFiles, utillinux }:
with lib;
@ -18,7 +18,7 @@ buildGoPackage rec {
goPackagePath = "github.com/containerd/containerd";
outputs = [ "out" "man" ];
nativeBuildInputs = [ go-md2man utillinux ];
nativeBuildInputs = [ go-md2man installShellFiles utillinux ];
buildInputs = [ btrfs-progs ];
@ -39,14 +39,7 @@ buildGoPackage rec {
done
make man
manRoot="$man/share/man"
mkdir -p "$manRoot"
for manFile in man/*; do
manName="$(basename "$manFile")" # "docker-build.1"
number="$(echo $manName | rev | cut -d'.' -f1 | rev)"
mkdir -p "$manRoot/man$number"
gzip -c "$manFile" > "$manRoot/man$number/$manName.gz"
done
installManPage man/*.[1-9]
'';
meta = {

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, pkgconfig
{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig
, go-md2man, go, containerd, runc, docker-proxy, tini, libtool
, sqlite, iproute, lvm2, systemd
, btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git
@ -78,7 +78,7 @@ rec {
sha256 = sha256;
};
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ installShellFiles pkgconfig ];
buildInputs = [
makeWrapper removeReferencesTo go-md2man go libtool
] ++ optionals (stdenv.isLinux) [
@ -147,9 +147,9 @@ rec {
--prefix PATH : "$out/libexec/docker:$extraPath"
# completion (cli)
install -Dm644 ./components/cli/contrib/completion/bash/docker $out/share/bash-completion/completions/docker
install -Dm644 ./components/cli/contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
install -Dm644 ./components/cli/contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
installShellCompletion --bash ./components/cli/contrib/completion/bash/docker
installShellCompletion --fish ./components/cli/contrib/completion/fish/docker.fish
installShellCompletion --zsh ./components/cli/contrib/completion/zsh/_docker
# Include contributed man pages (cli)
# Generate man pages from cobra commands
@ -163,16 +163,7 @@ rec {
echo "Generate legacy manpages"
./man/md2man-all.sh -q
manRoot="$man/share/man"
mkdir -p "$manRoot"
for manDir in ./man/man?; do
manBase="$(basename "$manDir")" # "man1"
for manFile in "$manDir"/*; do
manName="$(basename "$manFile")" # "docker-build.1"
mkdir -p "$manRoot/$manBase"
gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
done
done
installManPage man/*/*.[1-9]
'';
preFixup = ''

@ -1,7 +1,7 @@
{ fetchurl, stdenv }:
let
version = "0.20.0";
version = "0.21.1";
suffix = {
x86_64-linux = "x86_64";
@ -15,13 +15,13 @@ let
};
firecracker-bin = fetchbin "firecracker" {
x86_64-linux = "073pp4q5dnyr126k8k7qdkqclqx18hj12app4gj2is0413gia8z9";
aarch64-linux = "1w5f522imq5dnjrdidnrq7jlwcdrsiz32shv9bh66dhy336sd8qw";
x86_64-linux = "0g4fja3bz1fsyz8vj99199yblkn46ygf33ldwd1ssw8f957vbwnb";
aarch64-linux = "1qyppcxnh7f42fs4px5rvkk6lza57h2sq9naskvqn5zy4vsvq89s";
};
jailer-bin = fetchbin "jailer" {
x86_64-linux = "0falk6y9y0pimgav1yg6ydn6wsslz0my01qd9by8ipk3f3776531";
aarch64-linux = "1j4x4p4zz1ydvpzbbmxszyqv28qbl4v3hiwdj2f67f1jn1cv9l7z";
x86_64-linux = "0x89pfmqci9d3i9fi9b9zm94yr2v7pq7kp3drlb952jkdfj0njyk";
aarch64-linux = "03fx9sk88jm23wqm8fraqd1ccfhbqvc310mkfv1f5p2ykhq2ahrk";
};
in

@ -39,7 +39,7 @@ buildGoPackage rec {
installPhase = ''
install -Dm755 runc $out/bin/runc
installManPage man/*/*
installManPage man/*/*.[1-9]
'';
meta = with lib; {

@ -43,6 +43,5 @@ stdenv.mkDerivation rec {
homepage = "https://herbstluftwm.org/";
license = stdenv.lib.licenses.bsd2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -97,7 +97,6 @@ stdenv.mkDerivation {
description = "A tiling window manager for X11";
homepage = "https://github.com/stumpwm/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ the-kenny ];
platforms = platforms.linux;
broken = true; # 2018-04-11
};

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "1.047";
version = "1.051";
in
fetchzip {
name = "recursive-${version}";
@ -14,7 +14,7 @@ fetchzip {
unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
'';
sha256 = "0v50m6hiv19f7i4idi987j1six6493y6hj3r9djifg075v9adxx9";
sha256 = "1cqlljbzvrxamswcqx8jbr61q4kji7yil5ic1mh60x4yfsk9x5wn";
meta = with lib; {
homepage = "https://recursive.design/";

@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
stdenv.mkDerivation rec {
pname = "matcha";
version = "2020-04-08";
pname = "matcha-gtk-theme";
version = "2020-05-09";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "0gmdscw9gv19k80ciai6zziih2nccr5snz5na48gr4k5rhq9mzqx";
sha256 = "0fp3ijynyvncy2byjjyba573p81x2pl2hdzv17mg40r8d5mjlkww";
};
buildInputs = [ gdk-pixbuf librsvg ];
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "A stylish Design theme for GTK based desktop environments";
description = "A stylish flat Design theme for GTK based desktop environments";
homepage = "https://vinceliuice.github.io/theme-matcha";
license = licenses.gpl3;
platforms = platforms.unix;

@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
makeFlags = [ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" ];
uuid = "arc-menu@linxgem33.com";
meta = with stdenv.lib; {
description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
license = licenses.gpl2Plus;

@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
"INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
];
uuid = "dash-to-dock@micxgx.gmail.com";
meta = with stdenv.lib; {
description = "A dock for the Gnome Shell";
homepage = "https://micheleg.github.io/dash-to-dock/";

@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
uuid = "dash-to-panel@jderose9.github.com";
meta = with stdenv.lib; {
description = "An icon taskbar for Gnome Shell";
license = licenses.gpl2;

@ -73,6 +73,8 @@ stdenv.mkDerivation rec {
done
'';
uuid = "gsconnect@andyholmes.github.io";
meta = with stdenv.lib; {
description = "KDE Connect implementation for Gnome Shell";
homepage = "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki";

@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
uuid = "no-title-bar@franglais125.gmail.com";
meta = with stdenv.lib; {
description = "Integrates maximized windows with the top panel";
homepage = "https://github.com/franglais125/no-title-bar";

@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
mv *.js metadata.json dbus.xml schemas locale "$extensions_dir"
'';
uuid = "pidgin@muffinmad";
meta = with stdenv.lib; {
homepage = "https://github.com/muffinmad/pidgin-im-gnome-shell-extension";
description = "Make Pidgin IM conversations appear in the Gnome Shell message tray";

@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ];
uuid = "TopIcons@phocean.net";
meta = with stdenv.lib; {
description = "Brings all icons back to the top panel, so that it's easier to keep track of apps running in the backround";
license = licenses.gpl2;

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-window-is-ready-remover";
version = "unstable-2020-03-25";
version = "1.02";
src = fetchFromGitHub {
owner = "nunofarruca";
repo = "WindowIsReady_Remover";
rev = "a9f9b3a060a6ba8eec71332f39dc2569b6e93761";
sha256 = "0l6cg9kz2plbvsqhgwfajknzw9yv3mg9gxdbsk147gbh2arnp6v3";
rev = "v${version}";
sha256 = "1xaf95gn0if44avvkjxyf8fl29y28idn9shnrks0m9k67jcwv8ns";
};
uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "GNOME Shell extension removing window is ready notification";
homepage = "https://github.com/nunofarruca/WindowIsReady_Remover";
license = licenses.unfree;
license = licenses.asl20;
};
}

@ -40,7 +40,7 @@ python2Packages.buildPythonApplication rec {
description = "Command line toolkit for working with Arduino hardware";
homepage = "http://inotool.org/";
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ antono the-kenny ];
maintainers = with stdenv.lib.maintainers; [ antono ];
platforms = stdenv.lib.platforms.linux;
};
}

@ -24,6 +24,5 @@ stdenv.mkDerivation rec {
homepage = "http://avra.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ the-kenny ];
};
}

@ -63,7 +63,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://www.call-cc.org/";
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
description = "A portable compiler for the Scheme programming language";
longDescription = ''

@ -22,6 +22,6 @@ eggDerivation {
homepage = "https://github.com/the-kenny/egg2nix";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
};
}

@ -45,7 +45,7 @@ stdenv.mkDerivation {
meta = {
homepage = "http://www.call-cc.org/";
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
platforms = stdenv.lib.platforms.linux; # Maybe other non-darwin Unix
description = "A portable compiler for the Scheme programming language";
longDescription = ''

@ -24,6 +24,6 @@ eggDerivation {
homepage = "https://github.com/the-kenny/egg2nix";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ the-kenny corngood ];
maintainers = with stdenv.lib.maintainers; [ corngood ];
};
}

@ -0,0 +1,285 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langAda ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langGo ? false
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man)
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null
, gnatboot ? null
, enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
, libcCross ? null
, threadsCross ? null # for MinGW
, crossStageStatic ? false
, # Strip kills static libs of other archs (hence no cross)
stripped ? stdenv.hostPlatform == stdenv.buildPlatform
&& stdenv.targetPlatform == stdenv.hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, buildPackages
}:
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
# Make sure we get GNU sed.
assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
assert langAda -> gnatboot != null;
# threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
with stdenv.lib;
with builtins;
let majorVersion = "10";
version = "${majorVersion}.1.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
/* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a";
});
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
stdenv.mkDerivation ({
pname = "${crossNameAddon}${name}${if stripped then "" else "-debug"}";
inherit version;
builder = ../builder.sh;
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2";
};
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
libc_dev = stdenv.cc.libc_dev;
hardeningDisable = [ "format" "pie" ];
# This should kill all the stdinc frameworks that gcc and friends like to
# insert into default search paths.
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
substituteInPlace gcc/config/darwin-c.c \
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
'';
postPatch = ''
configureScripts=$(find . -name configure)
for configureScript in $configureScripts; do
patchShebangs $configureScript
done
'' + (
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
libc = if libcCross != null then libcCross else stdenv.cc.libc;
in
(
'' echo "fixing the \`GLIBC_DYNAMIC_LINKER', \`UCLIBC_DYNAMIC_LINKER', and \`MUSL_DYNAMIC_LINKER' macros..."
for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
do
grep -q _DYNAMIC_LINKER "$header" || continue
echo " fixing \`$header'..."
sed -i "$header" \
-e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
done
''
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
''
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
''
)
else "")
+ stdenv.lib.optionalString targetPlatform.isAvr ''
makeFlagsArray+=(
'LIMITS_H_TEST=false'
)
'';
inherit noSysDirs staticCompiler crossStageStatic
libcCross crossMingw;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl);
# For building runtime libs
depsBuildTarget =
if hostPlatform == buildPlatform then [
targetPackages.stdenv.cc.bintools # newly-built gcc will be used
] else assert targetPlatform == hostPlatform; [ # build != host == target
stdenv.cc
];
buildInputs = [
gmp mpfr libmpc libelf
targetPackages.stdenv.cc.bintools # For linking code at run-time
] ++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
++ (optional hostPlatform.isDarwin gnused)
++ (optional langAda gnatboot)
;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib;
inherit version hostPlatform gnatboot langAda langGo;
};
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags = import ../common/configure-flags.nix {
inherit
stdenv
targetPackages
crossStageStatic libcCross
version
gmp mpfr libmpc libelf isl
enableLTO
enableMultilib
enablePlugin
enableShared
langC
langCC
langFortran
langAda
langGo
langObjC
langObjCpp
;
};
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
installTargets = optional stripped "install-strip";
# https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
# library headers and binaries, regarless of the language being compiled.
#
# Likewise, the LTO code doesn't find zlib.
#
# Cross-compiling, we need gcc not to read ./specs in order to build the g++
# compiler (after the specs for the cross-gcc are created). Having
# LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
inherit
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
;
passthru = {
inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
isGNU = true;
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = "https://gcc.gnu.org/";
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
libraries for these languages (libstdc++, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
'';
maintainers = with stdenv.lib.maintainers; [ synthetica ];
platforms =
stdenv.lib.platforms.linux ++
stdenv.lib.platforms.freebsd ++
stdenv.lib.platforms.illumos ++
stdenv.lib.platforms.darwin;
};
}
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
makeFlags = [ "all-gcc" "all-target-libgcc" ];
installTargets = "install-gcc install-target-libgcc";
}
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

@ -25,6 +25,5 @@ stdenv.mkDerivation {
homepage = "https://www.gnu.org/software/gforth/";
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.all;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
description = "An open-source COBOL compiler";
homepage = "https://sourceforge.net/projects/open-cobol/";
license = licenses.gpl3;
maintainers = with maintainers; [ ericsagnes the-kenny ];
maintainers = with maintainers; [ ericsagnes ];
platforms = with platforms; linux ++ darwin;
};
}

@ -1,15 +1,62 @@
{ stdenvNoCC, fetchurl, qemu, expect, writeScript, ncurses }:
{ stdenvNoCC, fetchurl, qemu, expect, writeScript, writeScriptBin, ncurses, bash, coreutils }:
let
# We execute the installer in qemu-user, because otherwise the
# installer fails to open itself due to a failed stat() call. This
# seems like an incompatibility of new Linux kernels to run this
# ancient binary.
performInstall = writeScript "perform-ow-install" ''
# We execute all OpenWatcom binaries in qemu-user, because otherwise
# some binaries (most notably the installer itself and wlib) fail to
# use the stat() systemcall. The failure mode is that it returns
# EOVERFLOW for completely legitimate requests. This seems like an
# incompatibility of new Linux kernels to run this ancient binary.
wrapLegacyBinary = writeScript "wrapLegacyBinary" ''
#!${bash}/bin/bash
set -eu
if [ $# -ne 2 ]; then
echo "Usage: $0 unwrapped-binary wrapped-binary"
exit 1
fi
IN="$(${coreutils}/bin/realpath $1)"
OUT="$2"
ARGV0="$(basename $2)"
cat > "$OUT" <<EOF
#!${bash}/bin/bash
TERMINFO=${ncurses}/share/terminfo TERM=vt100 exec ${qemu}/bin/qemu-i386 -0 $ARGV0 $IN "\$@"
EOF
chmod +x "$OUT"
'';
wrapInPlace = writeScriptBin "wrapInPlace" ''
#!${bash}/bin/bash
set -eu
if [ $# -ne 1 ]; then
echo "Usage: $0 unwrapped-binary"
exit 1
fi
TARGET="$1"
mv "$TARGET" "$TARGET-unwrapped"
chmod +x "$TARGET-unwrapped"
exec ${wrapLegacyBinary} "$TARGET-unwrapped" "$TARGET"
'';
# Do a scripted installation of OpenWatcom with its original installer.
#
# If maintaining this expect script turns out to be too much of a
# hassle, we can switch to just using `unzip' on the installer and
# the correct file permissions manually.
performInstall = writeScriptBin "performInstall" ''
#!${expect}/bin/expect -f
spawn env TERMINFO=${ncurses}/share/terminfo TERM=vt100 ${qemu}/bin/qemu-i386 [lindex $argv 0]
spawn [lindex $argv 0]
# Wait for button saying "I agree" with escape sequences.
expect "gree"
@ -46,15 +93,23 @@ stdenvNoCC.mkDerivation rec {
sha256 = "1wzkvc6ija0cjj5mcyjng5b7hnnc5axidz030c0jh05pgvi4nj7p";
};
nativeBuildInputs = [ wrapInPlace performInstall ];
dontUnpack = true;
dontBuild = true;
dontConfigure = true;
installPhase = ''
cp ${src} install-bin
chmod +x install-bin
buildPhase = ''
cp ${src} install-bin-unwrapped
wrapInPlace install-bin-unwrapped
'';
${performInstall} install-bin
installPhase = ''
performInstall ./install-bin-unwrapped
for e in $(find $out/binl -type f -executable); do
echo "Wrapping $e"
wrapInPlace "$e"
done
'';
meta = with stdenvNoCC.lib; {

@ -73,6 +73,6 @@ in
license = licenses.epl10;
platforms = platforms.unix;
maintainers = with maintainers; [ the-kenny havvy couchemar ankhers filalex77 ];
maintainers = with maintainers; [ havvy couchemar ankhers filalex77 ];
};
})

@ -122,7 +122,7 @@ in stdenv.mkDerivation ({
'';
platforms = platforms.unix;
maintainers = with maintainers; [ the-kenny sjmackenzie couchemar gleber ];
maintainers = with maintainers; [ sjmackenzie couchemar gleber ];
license = licenses.asl20;
} // meta);
}

@ -113,7 +113,9 @@ let
unwrapped = php;
tests = nixosTests.php;
inherit (php-packages) packages extensions;
inherit (php) meta;
meta = php.meta // {
outputsToInstall = [ "out" ];
};
};
paths = [ php ];
postBuild = ''

@ -6,7 +6,6 @@ stdenv.mkDerivation {
meta = {
homepage = "http://s48.org/";
description = "Scheme 48";
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = with stdenv.lib.platforms; unix;
license = stdenv.lib.licenses.bsd3;
};

@ -1,14 +1,15 @@
{ stdenv, fetchFromGitHub, cmake, libX11, libuuid, xz, vtk, darwin }:
{ stdenv, fetchFromGitHub, cmake, makeWrapper
, pkgconfig, libX11, libuuid, xz, vtk, Cocoa }:
stdenv.mkDerivation rec {
pname = "itk";
version = "5.0.1";
version = "5.1.0";
src = fetchFromGitHub {
owner = "InsightSoftwareConsortium";
repo = "ITK";
rev = "v${version}";
sha256 = "0dcjsn5frjnrphfgw8alnd2ahrvicpx2a2ngb5ixaa9anaicz9z1";
sha256 = "0rvkp00xj1js60021jv2ydyl74wvbyb205gm9d7hf8gy2q456hgl";
};
cmakeFlags = [
@ -23,12 +24,16 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
nativeBuildInputs = [ cmake xz ];
buildInputs = [ libX11 libuuid vtk ] ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
nativeBuildInputs = [ cmake xz makeWrapper ];
buildInputs = [ libX11 libuuid vtk ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
postInstall = ''
wrapProgram "$out/bin/h5c++" --prefix PATH ":" "${pkgconfig}/bin"
'';
meta = {
description = "Insight Segmentation and Registration Toolkit";
homepage = "http://www.itk.org/";
homepage = "https://www.itk.org/";
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [viric];
};

@ -0,0 +1,20 @@
{ stdenv, fetchurl, intltool }:
stdenv.mkDerivation rec {
pname = "pxlib";
version = "0.6.8";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "1yafwz4z5h30hqvk51wpgbjlmq9f2z2znvfim87ydrfrqfjmi6sz";
};
nativeBuildInputs = [ intltool ];
meta = with stdenv.lib; {
description = "Library to read and write Paradox files";
homepage = "http://pxlib.sourceforge.net/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.winpat ];
};
}

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, itk, python3 }:
{ stdenv, fetchFromGitHub, fetchpatch, cmake, itk, python3 }:
stdenv.mkDerivation rec {
pname = "elastix";
@ -11,10 +11,24 @@ stdenv.mkDerivation rec {
sha256 = "1zrl7rz4lwsx88b2shnl985f3a97lmp4ksbd437h9y0hfjq8l0lj";
};
patches = [
(fetchpatch {
name = "itk-5.1-compat.patch";
url = "https://github.com/SuperElastix/elastix/commit/402e9a26f22f805b8f2db00c00e59f75fa1783ad.patch";
sha256 = "1il6gc1lgy78i0w6gkkppr61nh6g0yjspbfk19hcz20778m5jhz9";
})
(fetchpatch {
name = "fix-osx-build.patch";
url = "https://github.com/SuperElastix/elastix/commit/52e1dc3928046f9fbb85d4b2ecd0d5175fa9695d.patch";
sha256 = "1hf7kgx1jv497pf0x5wj79sy1wncxcvhrkix9w086lcr8zwxvn9q";
})
];
nativeBuildInputs = [ cmake python3 ];
buildInputs = [ itk ];
doCheck = true;
doCheck = !stdenv.isDarwin; # usual dynamic linker issues
preCheck = "
export LD_LIBRARY_PATH=$(pwd)/bin
@ -24,7 +38,7 @@ stdenv.mkDerivation rec {
homepage = "http://elastix.isi.uu.nl/";
description = "Image registration toolkit based on ITK";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.linux;
platforms = platforms.x86_64; # libitkpng linker issues with ITK 5.1
license = licenses.asl20;
};
}

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, git, swig, lua, itk, tcl, tk }:
{ stdenv, fetchFromGitHub, cmake, git, swig, lua, itk4, tcl, tk }:
stdenv.mkDerivation rec {
pname = "simpleitk";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake git swig ];
buildInputs = [ lua itk ];
buildInputs = [ lua itk4 ];
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_CXX_FLAGS='-Wno-attributes'" ];

@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
++ optional enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" ];
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-7.0|' ./Parallel/Core/CMakeLists.txt
sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
'';

@ -1,13 +1,21 @@
{ stdenv, buildPythonPackage, fetchPypi, flask, events
, pymongo, simplejson, cerberus, werkzeug }:
{ stdenv
, buildPythonPackage
, fetchPypi
, flask
, events
, pymongo
, simplejson
, cerberus
, setuptools
}:
buildPythonPackage rec {
pname = "Eve";
version = "1.0";
version = "1.1";
src = fetchPypi {
inherit pname version;
sha256 = "ebde455e631b8eb9d38783eedfbd7e416b4477cce3d9988880eb3e477256a11e";
sha256 = "1a7i7x77p5wjqfzmgn30m9sz2mcz06k4qf5af6a45109lafcq0bv";
};
propagatedBuildInputs = [
@ -16,13 +24,10 @@ buildPythonPackage rec {
flask
pymongo
simplejson
werkzeug
setuptools
];
postPatch = ''
substituteInPlace setup.py \
--replace "werkzeug==0.15.4" "werkzeug"
'';
pythonImportsCheck = [ "eve" ];
# tests call a running mongodb instance
doCheck = false;

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "Flask-WTF";
version = "0.14.2";
version = "0.14.3";
src = fetchPypi {
inherit pname version;
sha256 = "0dncc5as2k61b28k8kal5yh3prmv7zya1jz7kvci7ximzmfda52x";
sha256 = "086pvg2x69n0nczcq7frknfjd8am1zdy8qqpva1sanwb02hf65yl";
};
propagatedBuildInputs = [ flask wtforms nose ];

@ -2,6 +2,7 @@
, buildPythonPackage
, fetchFromGitHub
, pytest
, matplotlib
, mock
, pytorch
, pynvml
@ -11,24 +12,24 @@
buildPythonPackage rec {
pname = "ignite";
version = "0.2.1";
version = "0.3.0";
src = fetchFromGitHub {
owner = "pytorch";
repo = pname;
rev = "v${version}";
sha256 = "15k6dd11yxn4923llcpmw4srl1by5ljhh7aw5pnkn4n4qpywh6cm";
sha256 = "0i863kxi1r1hspj19lhn6r8256vdazjcyvis0s33fgzrf7kxi08x";
};
checkInputs = [ pytest mock ];
checkPhase = ''
pytest -k 'not visdom and not tensorboard and not mlflow and not polyaxon' tests/
'';
# these packages are not currently in nixpkgs
checkInputs = [ pytest matplotlib mock ];
propagatedBuildInputs = [ pytorch scikitlearn tqdm pynvml ];
# Some packages are not in NixPkgs; other tests try to build distributed
# models, which doesn't work in the sandbox.
checkPhase = ''
pytest -k 'not visdom and not tensorboard and not mlflow and not polyaxon and not conftest and not engines and not distrib_' tests/
'';
meta = with lib; {
description = "High-level training library for PyTorch";
homepage = "https://pytorch.org/ignite";

@ -22,6 +22,5 @@ buildPythonPackage rec {
description = "Application that generates RSS feeds for podcast episodes from local audio files";
homepage = "https://github.com/jakubroztocil/podcats";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ the-kenny ];
};
}

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "pyroute2";
version = "0.5.11";
version = "0.5.12";
src = fetchPypi {
inherit pname version;
sha256 = "1wjamijkg2pp9mgj5k4qw3jl2i3ajikkps0zp5c52wcxm3qmks85";
sha256 = "1lry042qsamdzyw6zpmdld0v14g6cl05jsr9qdb7h5wnahf80mq1";
};
# requires root priviledges

@ -1,23 +1,25 @@
{ stdenv, fetchurl, fetchgit, buildPythonPackage, python, pythonOlder,
{ stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null, magma ? null,
mklSupport ? false, mkl ? null,
mklDnnSupport ? true, useSystemNccl ? true,
openMPISupport ? false, openmpi ? null,
buildNamedTensor ? false,
buildBinaries ? false,
buildDocs ? false,
cudaArchList ? null,
fetchFromGitHub, lib, numpy, pyyaml, cffi, click, typing, cmake, hypothesis, numactl,
numpy, pyyaml, cffi, click, typing, cmake, oneDNN, hypothesis, numactl, psutil,
linkFarm, symlinkJoin,
# virtual pkg that consistently instantiates blas across nixpkgs
# See https://github.com/NixOS/nixpkgs/pull/83888
blas,
# ninja (https://ninja-build.org) must be available to run C++ extensions tests,
ninja,
# dependencies for torch.utils.tensorboard
tensorboardSupport ? true, pillow, six, future, tensorflow-tensorboard,
pillow, six, future, tensorflow-tensorboard, protobuf,
utillinux, which, isPy3k }:
assert !openMPISupport || openmpi != null;
assert !tensorboardSupport || tensorflow-tensorboard != null;
# assert that everything needed for cuda is present and that the correct cuda versions are used
assert !cudaSupport || cudatoolkit != null;
@ -28,17 +30,11 @@ assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
let
hasDependency = dep: pkg: lib.lists.any (inp: inp == dep) pkg.buildInputs;
matchesCudatoolkit = hasDependency cudatoolkit;
matchesMkl = hasDependency mkl;
in
# confirm that cudatoolkits are sync'd across dependencies
assert !(openMPISupport && cudaSupport) || matchesCudatoolkit openmpi;
assert !cudaSupport || matchesCudatoolkit magma;
# confirm that mkl is sync'd across dependencies
assert !mklSupport || mkl != null;
assert !(mklSupport && cudaSupport) || matchesMkl magma;
assert !mklSupport || (numpy.blasImplementation == "mkl" && numpy.blas == mkl);
let
cudatoolkit_joined = symlinkJoin {
name = "${cudatoolkit.name}-unsplit";
@ -108,7 +104,7 @@ let
"LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
in buildPythonPackage rec {
version = "1.2.0";
version = "1.4.1";
pname = "pytorch";
disabled = !isPy3k;
@ -122,11 +118,9 @@ in buildPythonPackage rec {
repo = "pytorch";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "1biyq2p48chakf2xw7hazzqmr5ps1nx475ql8vkmxjg5zaa071cz";
sha256 = "1aa1il4f98pswfj20cv27yfb91l1jcq4515i7mvq7sh5647yzwms";
};
dontUseCmakeConfigure = true;
preConfigure = lib.optionalString cudaSupport ''
export TORCH_CUDA_ARCH_LIST="${lib.strings.concatStringsSep ";" final_cudaArchList}"
export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++
@ -134,6 +128,44 @@ in buildPythonPackage rec {
export CUDNN_INCLUDE_DIR=${cudnn}/include
'';
patches = [
# Prevents a race condition which would be introduced by pull 30333.
# See https://github.com/pytorch/pytorch/issues/32277
# Can be removed >1.5.0.
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/30332.patch";
sha256 = "1v9dwbhz3rdxcx6sz8y8j9n3bj6nqs78b1r8yg89yc15n6l4cqx2";
})
# Fixes errors with gcc-9 compilation. Cherry-picked on advice from ezyang.
# See https://github.com/pytorch/pytorch/issues/32277
# Can be removed >1.5.0.
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/pytorch/pytorch/pull/30333.patch";
sha256 = "139413fl37h2fnil0cv99a67mqqnsh02k74b92by1qyr6pcfyg3q";
})
];
# Use pytorch's custom configurations
dontUseCmakeConfigure = true;
BUILD_NAMEDTENSOR = true;
BUILD_DOCS = buildDocs;
USE_MKL = blas.implementation == "mkl";
# Unlike MKL, MKLDNN is FOSS, so we enable support for it by default. Note
# that this was renamed to dnnl and then renamed again to oneDNN upstream, but
# pytorch still calls it by the old name mkldnn.
USE_MKLDNN = mklDnnSupport;
USE_MKLDNN_CBLAS = mklDnnSupport;
preBuild = ''
export MAX_JOBS=$NIX_BUILD_CORES
${python.interpreter} setup.py build --cmake-only
${cmake}/bin/cmake build
'';
preFixup = ''
function join_by { local IFS="$1"; shift; echo "$*"; }
function strip2 {
@ -155,8 +187,7 @@ in buildPythonPackage rec {
PYTORCH_BUILD_VERSION = version;
PYTORCH_BUILD_NUMBER = 0;
BUILD_NAMEDTENSOR = buildNamedTensor; # experimental feature
USE_SYSTEM_NCCL=true; # don't build pytorch's third_party NCCL
USE_SYSTEM_NCCL=useSystemNccl; # don't build pytorch's third_party NCCL
# Suppress a weird warning in mkl-dnn, part of ideep in pytorch
# (upstream seems to have fixed this in the wrong place?)
@ -165,7 +196,7 @@ in buildPythonPackage rec {
#
# Also of interest: pytorch ignores CXXFLAGS uses CFLAGS for both C and C++:
# https://github.com/pytorch/pytorch/blob/v1.2.0/setup.py#L17
NIX_CFLAGS_COMPILE = lib.optionals (numpy.blas == mkl) [ "-Wno-error=array-bounds" ];
NIX_CFLAGS_COMPILE = lib.optionals (blas.implementation == "mkl") [ "-Wno-error=array-bounds" ];
nativeBuildInputs = [
cmake
@ -174,9 +205,8 @@ in buildPythonPackage rec {
ninja
] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
buildInputs = [
numpy.blas
] ++ lib.optionals cudaSupport [ cudnn magma nccl ]
buildInputs = [ blas blas.provider oneDNN ]
++ lib.optionals cudaSupport [ cudnn magma nccl ]
++ lib.optionals stdenv.isLinux [ numactl ];
propagatedBuildInputs = [
@ -184,23 +214,37 @@ in buildPythonPackage rec {
click
numpy
pyyaml
] ++ lib.optionals openMPISupport [ openmpi ]
++ lib.optional (pythonOlder "3.5") typing
++ lib.optionals tensorboardSupport [pillow six future tensorflow-tensorboard];
# the following are required for tensorboard support
pillow six future tensorflow-tensorboard protobuf
] ++ lib.optionals openMPISupport [ openmpi ];
checkInputs = [ hypothesis ninja ];
checkInputs = [ hypothesis ninja psutil ];
doCheck = false; # tests take a long time for channel release, so doCheck should be overridden only when developing
checkPhase = "${cudaStubEnv}python test/run_test.py"
+ " --exclude utils" # utils requires git, which is not allowed in the check phase
# Tests take a long time and may be flaky, so just sanity-check imports
doCheck = false;
pythonImportsCheck = [
"torch"
];
# Other tests which have been disabled in previous nix derivations of pytorch.
# --exclude dataloader sparse torch utils thd_distributed distributed cpp_extensions
;
checkPhase = with lib.versions; with lib.strings; concatStringsSep " " [
cudaStubEnv
"${python.interpreter} test/run_test.py"
"--exclude"
(concatStringsSep " " [
"utils" # utils requires git, which is not allowed in the check phase
# "dataloader" # psutils correctly finds and triggers multiprocessing, but is too sandboxed to run -- resulting in numerous errors
# ^^^^^^^^^^^^ NOTE: while test_dataloader does return errors, these are acceptable errors and do not interfere with the build
# tensorboard has acceptable failures for pytorch 1.3.x due to dependencies on tensorboard-plugins
(optionalString (majorMinor version == "1.3" ) "tensorboard")
])
];
postInstall = ''
mkdir $dev
cp -r $out/${python.sitePackages}/torch/lib $dev/lib
cp -r $out/${python.sitePackages}/torch/include $dev/include
cp -r $out/${python.sitePackages}/torch/share $dev/share
'';
postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
@ -233,6 +277,6 @@ in buildPythonPackage rec {
homepage = "https://pytorch.org/";
license = lib.licenses.bsd3;
platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
maintainers = with lib.maintainers; [ teh thoughtpolice stites tscholak ]; # tscholak esp. for darwin-related builds
maintainers = with lib.maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
};
}

@ -16,6 +16,5 @@ buildPythonPackage rec {
description = "The official Todoist Python API library";
homepage = "https://todoist-python.readthedocs.io/en/latest/";
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -48,6 +48,5 @@ stdenv.mkDerivation rec {
description = "Project automation for Clojure";
license = stdenv.lib.licenses.epl10;
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -36,7 +36,6 @@ stdenv.mkDerivation {
'';
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.the-kenny ];
license = stdenv.lib.licenses.asl20;
};
}

@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2;
description = "A Device Firmware Update based USB programmer for Atmel chips with a USB bootloader";
homepage = "http://dfu-programmer.sourceforge.net/";
maintainers = [ maintainers.the-kenny ];
platforms = platforms.unix;
};
}

@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
homepage = "https://sourceforge.net/projects/stm32flash/";
license = stdenv.lib.licenses.gpl2;
platforms = platforms.all; # Should work on all platforms
maintainers = with maintainers; [ the-kenny elitak ];
maintainers = with maintainers; [ elitak ];
};
}

@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
description = "Firmware uploader for the Teensy microcontroller boards";
homepage = "https://www.pjrc.com/teensy/";
license = licenses.gpl3;
maintainers = with maintainers; [ the-kenny ];
platforms = platforms.unix;
};
}

@ -0,0 +1,27 @@
{ stdenv, fetchurl, pkgconfig, perl, perlPackages, pxlib }:
stdenv.mkDerivation rec {
pname = "pxview";
version = "0.2.5";
src = fetchurl {
url = "mirror://sourceforge/pxlib/${pname}_${version}.orig.tar.gz";
sha256 = "1kpdqs6lvnyj02v9fbz1s427yqhgrxp7zw63rzfgiwd4iqp75139";
};
buildInputs = [ pxlib perl ] ++ (with perlPackages; [ libxml_perl ]);
nativeBuildInputs = [ pkgconfig ];
configureFlags = [ "--with-pxlib=${pxlib.out}" ];
# https://sourceforge.net/p/pxlib/bugs/12/
LDFLAGS = "-lm";
hardeningDisable = [ "format" ];
meta = with stdenv.lib; {
description = "Program to convert Paradox databases";
homepage = "http://pxlib.sourceforge.net/pxview/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.winpat ];
};
}

@ -20,7 +20,6 @@ buildGoPackage rec {
description = "websocket command line tool";
homepage = "https://github.com/hashrocket/ws";
license = licenses.mit;
maintainers = [ maintainers.the-kenny ];
platforms = platforms.unix;
};
}

@ -195,6 +195,6 @@ buildPythonApplication rec {
license = licenses.agpl3Plus;
broken = stdenv.hostPlatform.isAarch64;
platforms = platforms.mesaPlatforms;
maintainers = with maintainers; [ oxij the-kenny Profpatsch enzime ];
maintainers = with maintainers; [ oxij Profpatsch enzime ];
};
}

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A model-airplane flight simulator";
maintainers = with stdenv.lib.maintainers; [ raskin the-kenny ];
maintainers = with stdenv.lib.maintainers; [ raskin ];
platforms = [ "i686-linux" "x86_64-linux" ];
license = stdenv.lib.licenses.gpl2;
};

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Tool to manage dwarves in a running game of Dwarf Fortress";
maintainers = with maintainers; [ the-kenny abbradar bendlas numinit jonringer ];
maintainers = with maintainers; [ abbradar bendlas numinit jonringer ];
license = licenses.mit;
platforms = platforms.unix;
homepage = "https://github.com/Dwarf-Therapist/Dwarf-Therapist";

@ -96,6 +96,6 @@ stdenv.mkDerivation {
inherit homepage;
license = licenses.unfreeRedistributable;
platforms = attrNames platforms;
maintainers = with maintainers; [ a1russell robbinch roconnor the-kenny abbradar numinit shazow ];
maintainers = with maintainers; [ a1russell robbinch roconnor abbradar numinit shazow ];
};
}

@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Flight simulator";
maintainers = with maintainers; [ raskin the-kenny ];
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
hydraPlatforms = []; # disabled from hydra because it's so big
license = licenses.gpl2;

@ -89,6 +89,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.openttd.org/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ jcumming the-kenny fpletz ];
maintainers = with maintainers; [ jcumming fpletz ];
};
}

@ -1,6 +1,6 @@
{ stdenv, fetchgit, qt5, box2d, which, cmake, gettext }:
{ stdenv, mkDerivation, fetchgit, qt5, box2d, which, cmake, gettext }:
stdenv.mkDerivation rec {
mkDerivation rec {
pname = "tbe";
version = "0.9.3.1";

@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
description = "A script to install DLLs needed to work around problems in Wine";
license = stdenv.lib.licenses.lgpl21;
homepage = "https://github.com/Winetricks/winetricks";
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = with stdenv.lib.platforms; linux;
};
}

@ -38,7 +38,6 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.the-kenny ];
repositories.git = git;
};
}

@ -24,6 +24,5 @@ stdenv.mkDerivation {
description = "A simple tool to automatically mount removable drives using UDisks2 and D-Bus";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
};
}

@ -7,11 +7,11 @@ assert stdenv.lib.versionOlder kernel.version "5.6";
stdenv.mkDerivation rec {
pname = "wireguard";
version = "1.0.20200429";
version = "1.0.20200506";
src = fetchzip {
url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
sha256 = "161srq06qa6ag2lycqz19mfms4ha2pmwn778jhvi96729rmivjkd";
sha256 = "05dphmcxm3lg860r5bj1b995avh43d1pap8p18p4ig4kv2r2g9nq";
};
hardeningDisable = [ "pic" ];

Some files were not shown because too many files have changed in this diff Show More