Merge branch 'staging-next'

This commit is contained in:
Vladimír Čunát 2019-01-13 00:39:38 +01:00
commit 570d84a01e
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
226 changed files with 2164 additions and 2740 deletions

View File

@ -38,7 +38,7 @@ in {
firmwareLinuxNonfree firmwareLinuxNonfree
intel2200BGFirmware intel2200BGFirmware
rtl8192su-firmware rtl8192su-firmware
] ++ optional (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) raspberrypiWirelessFirmware ] ++ optional (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) raspberrypiWirelessFirmware
++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [ ++ optionals (versionOlder config.boot.kernelPackages.kernel.version "4.13") [
rtl8723bs-firmware rtl8723bs-firmware
]; ];

View File

@ -5,7 +5,7 @@
let let
extlinux-conf-builder = extlinux-conf-builder =
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix { import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs; pkgs = pkgs.buildPackages;
}; };
in in
{ {
@ -15,13 +15,6 @@ in
./sd-image.nix ./sd-image.nix
]; ];
assertions = lib.singleton {
assertion = pkgs.stdenv.hostPlatform.system == "aarch64-linux"
&& pkgs.stdenv.hostPlatform.system == pkgs.stdenv.buildPlatform.system;
message = "sd-image-aarch64.nix can be only built natively on Aarch64 / ARM64; " +
"it cannot be cross compiled";
};
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;

View File

@ -5,7 +5,7 @@
let let
extlinux-conf-builder = extlinux-conf-builder =
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix { import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs; pkgs = pkgs.buildPackages;
}; };
in in
{ {
@ -15,13 +15,6 @@ in
./sd-image.nix ./sd-image.nix
]; ];
assertions = lib.singleton {
assertion = pkgs.stdenv.hostPlatform.system == "armv7l-linux"
&& pkgs.stdenv.hostPlatform.system == pkgs.stdenv.buildPlatform.system;
message = "sd-image-armv7l-multiplatform.nix can be only built natively on ARMv7; " +
"it cannot be cross compiled";
};
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;

View File

@ -5,7 +5,7 @@
let let
extlinux-conf-builder = extlinux-conf-builder =
import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix { import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs; pkgs = pkgs.buildPackages;
}; };
in in
{ {
@ -15,13 +15,6 @@ in
./sd-image.nix ./sd-image.nix
]; ];
assertions = lib.singleton {
assertion = pkgs.stdenv.hostPlatform.system == "armv6l-linux"
&& pkgs.stdenv.hostPlatform.system == pkgs.stdenv.buildPlatform.system;
message = "sd-image-raspberrypi.nix can be only built natively on ARMv6; " +
"it cannot be cross compiled";
};
boot.loader.grub.enable = false; boot.loader.grub.enable = false;
boot.loader.generic-extlinux-compatible.enable = true; boot.loader.generic-extlinux-compatible.enable = true;

View File

@ -7,8 +7,8 @@ let
generationsDirBuilder = pkgs.substituteAll { generationsDirBuilder = pkgs.substituteAll {
src = ./generations-dir-builder.sh; src = ./generations-dir-builder.sh;
isExecutable = true; isExecutable = true;
inherit (pkgs) bash; inherit (pkgs.buildPackages) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep]; path = with pkgs.buildPackages; [coreutils gnused gnugrep];
inherit (config.boot.loader.generationsDir) copyKernels; inherit (config.boot.loader.generationsDir) copyKernels;
}; };

View File

@ -8,7 +8,7 @@ let
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout; timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
builder = import ./extlinux-conf-builder.nix { inherit pkgs; }; builder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
in in
{ {
options = { options = {

View File

@ -7,8 +7,8 @@ let
initScriptBuilder = pkgs.substituteAll { initScriptBuilder = pkgs.substituteAll {
src = ./init-script-builder.sh; src = ./init-script-builder.sh;
isExecutable = true; isExecutable = true;
inherit (pkgs) bash; inherit (pkgs.buildPackages) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep]; path = with pkgs.buildPackages; [coreutils gnused gnugrep];
}; };
in in

View File

@ -19,7 +19,7 @@ let
blCfg = config.boot.loader; blCfg = config.boot.loader;
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout; timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
isAarch64 = pkgs.stdenv.isAarch64; isAarch64 = pkgs.stdenv.hostPlatform.isAarch64;
optional = pkgs.stdenv.lib.optionalString; optional = pkgs.stdenv.lib.optionalString;
configTxt = configTxt =
@ -97,7 +97,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
assertions = singleton { assertions = singleton {
assertion = !pkgs.stdenv.isAarch64 || cfg.version == 3; assertion = !pkgs.stdenv.hostPlatform.isAarch64 || cfg.version == 3;
message = "Only Raspberry Pi 3 supports aarch64."; message = "Only Raspberry Pi 3 supports aarch64.";
}; };

View File

@ -1,7 +1,7 @@
{ pkgs, version, configTxt }: { pkgs, version, configTxt }:
let let
isAarch64 = pkgs.stdenv.isAarch64; isAarch64 = pkgs.stdenv.hostPlatform.isAarch64;
uboot = uboot =
if version == 0 then if version == 0 then
@ -18,18 +18,17 @@ let
extlinuxConfBuilder = extlinuxConfBuilder =
import ../generic-extlinux-compatible/extlinux-conf-builder.nix { import ../generic-extlinux-compatible/extlinux-conf-builder.nix {
inherit pkgs; pkgs = pkgs.buildPackages;
}; };
in in
pkgs.substituteAll { pkgs.substituteAll {
src = ./uboot-builder.sh; src = ./uboot-builder.sh;
isExecutable = true; isExecutable = true;
inherit (pkgs) bash; inherit (pkgs.buildPackages) bash;
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep]; path = with pkgs.buildPackages; [coreutils gnused gnugrep];
firmware = pkgs.raspberrypifw; firmware = pkgs.raspberrypifw;
inherit uboot; inherit uboot;
inherit configTxt; inherit configTxt;
inherit extlinuxConfBuilder; inherit extlinuxConfBuilder;
inherit version; inherit version;
} }

View File

@ -12,7 +12,7 @@ let
isExecutable = true; isExecutable = true;
inherit (pkgs) python3; inherit (pkgs.buildPackages) python3;
systemd = config.systemd.package; systemd = config.systemd.package;

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ buildInputs = [
alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext
xorg.xproto xorg.xorgproto
]; ];
patchPhase = "sed -i '41,43d' libbristolaudio/audioEngineJack.c"; # disable alsa/iatomic patchPhase = "sed -i '41,43d' libbristolaudio/audioEngineJack.c"; # disable alsa/iatomic

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, xorg, xproto, cairo, lv2, pkgconfig }: { stdenv, fetchFromGitHub, xorg, xorgproto, cairo, lv2, pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ buildInputs = [
xorg.libX11 xproto cairo lv2 xorg.libX11 xorgproto cairo lv2
]; ];
installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ]; installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];

View File

@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
for program in ingenams ingenish for program in ingenams ingenish
do do
wrapProgram $out/bin/$program \ wrapProgram $out/bin/$program \
--prefix PYTHONPATH : $out/lib/python${python.majorVersion}/site-packages:$PYTHONPATH --prefix PYTHONPATH : $out/${python.sitePackages}:$PYTHONPATH
done done
''; '';

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, alsaLib, libX11, libXi, libXtst, xextproto }: { stdenv, fetchurl, alsaLib, libX11, libXi, libXtst, xorgproto }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mid2key-r1"; name = "mid2key-r1";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
unpackPhase = "tar xvzf $src"; unpackPhase = "tar xvzf $src";
buildInputs = [ alsaLib libX11 libXi libXtst xextproto ]; buildInputs = [ alsaLib libX11 libXi libXtst xorgproto ];
buildPhase = "make"; buildPhase = "make";

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "ed-${version}"; name = "ed-${version}";
version = "1.14.2"; version = "1.15";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/ed/${name}.tar.lz"; url = "mirror://gnu/ed/${name}.tar.lz";
sha256 = "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm"; sha256 = "0x6ivy5k0d7dy5z9g8q8nipr89m4qbk2ink2898qq43smp08ji5d";
}; };
nativeBuildInputs = [ lzip ]; nativeBuildInputs = [ lzip ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, cmake, pkgconfig, gtk2, freetype, fontconfig, lcms, { stdenv, fetchurl, cmake, pkgconfig, gtk2, freetype, fontconfig, lcms,
flex, libtiff, libjpeg, libpng, libexif, zlib, perlPackages, libX11, flex, libtiff, libjpeg, libpng, libexif, zlib, perlPackages, libX11,
pythonPackages, gettext, intltool, babl, gegl, pythonPackages, gettext, intltool, babl, gegl,
glib, makedepend, xf86vidmodeproto, xineramaproto, libXmu, openexr, glib, makedepend, xorgproto, libXmu, openexr,
libGLU_combined, libXext, libXpm, libXau, libXxf86vm, pixman, libpthreadstubs, fltk } : libGLU_combined, libXext, libXpm, libXau, libXxf86vm, pixman, libpthreadstubs, fltk } :
let let
@ -16,7 +16,7 @@ in stdenv.mkDerivation rec {
buildInputs = [ libpng gtk2 freetype fontconfig lcms flex libtiff libjpeg buildInputs = [ libpng gtk2 freetype fontconfig lcms flex libtiff libjpeg
libexif zlib libX11 python pygtk gettext intltool babl libexif zlib libX11 python pygtk gettext intltool babl
gegl glib makedepend xf86vidmodeproto xineramaproto libXmu openexr libGLU_combined gegl glib makedepend xorgproto libXmu openexr libGLU_combined
libXext libXpm libXau libXxf86vm pixman libpthreadstubs fltk libXext libXpm libXau libXxf86vm pixman libpthreadstubs fltk
] ++ (with perlPackages; [ perl XMLParser ]); ] ++ (with perlPackages; [ perl XMLParser ]);

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, aalib, gsl, libpng, libX11, xproto, libXext { stdenv, fetchurl, aalib, gsl, libpng, libX11, xorgproto, libXext
, xextproto, libXt, zlib, gettext, intltool, perl }: , libXt, zlib, gettext, intltool, perl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xaos-${version}"; name = "xaos-${version}";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
buildInputs = [ buildInputs = [
aalib gsl libpng libX11 xproto libXext xextproto aalib gsl libpng libX11 xorgproto libXext
libXt zlib gettext intltool perl libXt zlib gettext intltool perl
]; ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, makeDesktopItem { stdenv, fetchurl, makeDesktopItem
, ghostscript, atk, gtk2, glib, fontconfig, freetype , ghostscript, atk, gtk2, glib, fontconfig, freetype
, libgnomecanvas, libgnomeprint, libgnomeprintui , libgnomecanvas, libgnomeprint, libgnomeprintui
, pango, libX11, xproto, zlib, poppler , pango, libX11, xorgproto, zlib, poppler
, autoconf, automake, libtool, pkgconfig}: , autoconf, automake, libtool, pkgconfig}:
let let
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
ghostscript atk gtk2 glib fontconfig freetype ghostscript atk gtk2 glib fontconfig freetype
libgnomecanvas libgnomecanvas
pango libX11 xproto zlib poppler pango libX11 xorgproto zlib poppler
] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
libgnomeprint libgnomeprintui libgnomeprint libgnomeprintui
]; ];

View File

@ -51,10 +51,10 @@ stdenv.mkDerivation rec {
"-DWITH_SYSTEM_OPENJPEG=ON" "-DWITH_SYSTEM_OPENJPEG=ON"
"-DWITH_PLAYER=ON" "-DWITH_PLAYER=ON"
"-DWITH_OPENSUBDIV=ON" "-DWITH_OPENSUBDIV=ON"
"-DPYTHON_LIBRARY=python${python.majorVersion}m" "-DPYTHON_LIBRARY=${python.libPrefix}"
"-DPYTHON_LIBPATH=${python}/lib" "-DPYTHON_LIBPATH=${python}/lib"
"-DPYTHON_INCLUDE_DIR=${python}/include/python${python.majorVersion}m" "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}"
"-DPYTHON_VERSION=${python.majorVersion}" "-DPYTHON_VERSION=${python.pythonVersion}"
"-DWITH_PYTHON_INSTALL=OFF" "-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_PYTHON_INSTALL_NUMPY=OFF" "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
] ]
@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
] ]
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON"; ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}m"; NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
# Since some dependencies are built with gcc 6, we need gcc 6's # Since some dependencies are built with gcc 6, we need gcc 6's
# libstdc++ in our RPATH. Sigh. # libstdc++ in our RPATH. Sigh.
@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
postInstall = optionalString enableNumpy postInstall = optionalString enableNumpy
'' ''
wrapProgram $out/bin/blender \ wrapProgram $out/bin/blender \
--prefix PYTHONPATH : ${pythonPackages.numpy}/lib/python${python.majorVersion}/site-packages --prefix PYTHONPATH : ${pythonPackages.numpy}/${python.sitePackages}
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -4,13 +4,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "clipmenu-${version}"; name = "clipmenu-${version}";
version = "5.5.0"; version = "5.6.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cdown"; owner = "cdown";
repo = "clipmenu"; repo = "clipmenu";
rev = version; rev = version;
sha256 = "15if7bwqviyynbrcwrn04r418cfnxf2mkmq112696np24bggvljg"; sha256 = "13hyarzazh6j33d808h3s5yk320wqzivc0ni9xm8kalvn4k3a0bq";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, makeWrapper { stdenv, fetchFromGitHub, makeWrapper
, pkgconfig, which, perl, libXrandr , pkgconfig, which, perl, libXrandr
, cairo, dbus, systemd, gdk_pixbuf, glib, libX11, libXScrnSaver , cairo, dbus, systemd, gdk_pixbuf, glib, libX11, libXScrnSaver
, libXinerama, libnotify, libxdg_basedir, pango, xproto, librsvg, dunstify ? false , libXinerama, libnotify, libxdg_basedir, pango, xorgproto, librsvg, dunstify ? false
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
cairo dbus gdk_pixbuf glib libX11 libXScrnSaver cairo dbus gdk_pixbuf glib libX11 libXScrnSaver
libXinerama libnotify libxdg_basedir pango xproto librsvg libXrandr libXinerama libnotify libxdg_basedir pango xorgproto librsvg libXrandr
]; ];
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];

View File

@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
gnome2.vte glib pango gnome2.gtk cairo gdk_pixbuf atk freetype xorg.libX11 gnome2.vte glib pango gnome2.gtk cairo gdk_pixbuf atk freetype xorg.libX11
xorg.xproto xorg.kbproto xorg.libXext xorg.xextproto makeWrapper pkgconfig xorg.xorgproto xorg.libXext makeWrapper pkgconfig
]; ];
buildPhase = '' buildPhase = ''

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xextproto, libXtst }: { stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xorgproto, libXtst }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "keepassx-${version}"; name = "keepassx-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
patches = [ ./random.patch ]; patches = [ ./random.patch ];
buildInputs = [ bzip2 qt4 libX11 xextproto libXtst ]; buildInputs = [ bzip2 qt4 libX11 xorgproto libXtst ];
nativeBuildInputs = [ qmake4Hook ]; nativeBuildInputs = [ qmake4Hook ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, libX11, libXft, libXi, inputproto, libSM, libICE { stdenv, fetchurl, libX11, libXft, libXi, xorgproto, libSM, libICE
, freetype, pkgconfig, which }: , freetype, pkgconfig, which }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "mrxvt-0.5.4"; name = "mrxvt-0.5.4";
buildInputs = buildInputs =
[ libX11 libXft libXi inputproto libSM libICE freetype pkgconfig which ]; [ libX11 libXft libXi xorgproto libSM libICE freetype pkgconfig which ];
configureFlags = [ configureFlags = [
"--with-x" "--with-x"

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl { stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl
, wxGTK31, libXi, libXt, libXtst, xercesc, xextproto , wxGTK31, libXi, libXt, libXtst, xercesc, xorgproto
, qrencode, libuuid, libyubikey, yubikey-personalization , qrencode, libuuid, libyubikey, yubikey-personalization
}: }:
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake pkgconfig zip ]; nativeBuildInputs = [ cmake pkgconfig zip ];
buildInputs = [ buildInputs = [
gettext perl qrencode libuuid gettext perl qrencode libuuid
libXi libXt libXtst wxGTK31 xercesc xextproto libXi libXt libXtst wxGTK31 xercesc xorgproto
libyubikey yubikey-personalization libyubikey yubikey-personalization
]; ];
cmakeFlags = [ cmakeFlags = [

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, freetype, libXrender, libXft, xextproto { stdenv, fetchFromGitHub, freetype, libXrender, libXft, xorgproto
, xinput, libXi, libXext, libXtst, libXpm, libX11, xproto, autoreconfHook , xinput, libXi, libXext, libXtst, libXpm, libX11, autoreconfHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
freetype libXrender libXft libXext libXtst libXpm libX11 freetype libXrender libXft libXext libXtst libXpm libX11
libXi xextproto xinput xproto libXi xorgproto xinput
]; ];
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ xorg.libXaw xorg.xproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE [ xorg.libXaw xorg.xorgproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE
ncurses freetype fontconfig pkgconfig xorg.libXft xorg.luit makeWrapper ncurses freetype fontconfig pkgconfig xorg.libXft xorg.luit makeWrapper
]; ];

View File

@ -92,8 +92,8 @@ stdenv.mkDerivation rec {
dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor dbus dbus-glib pango freetype fontconfig xorg.libXi xorg.libXcursor
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
libnotify xorg.pixman yasm libGLU_combined libnotify xorg.pixman yasm libGLU_combined
xorg.libXScrnSaver xorg.scrnsaverproto xorg.libXScrnSaver xorg.xorgproto
xorg.libXext xorg.xextproto sqlite unzip makeWrapper xorg.libXext sqlite unzip makeWrapper
libevent libstartup_notification libvpx /* cairo */ libevent libstartup_notification libvpx /* cairo */
icu libpng jemalloc glib icu libpng jemalloc glib
] ]

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, firefox, libX11, xproto }: { stdenv, fetchurl, firefox, libX11, xorgproto }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mozplugger-${version}"; name = "mozplugger-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19"; sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19";
}; };
buildInputs = [ firefox libX11 xproto ]; buildInputs = [ firefox libX11 xorgproto ];
installPhase = '' installPhase = ''
mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7" mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7"

View File

@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
libpulseaudio sqlite unzip which yasm zip zlib libpulseaudio sqlite unzip which yasm zip zlib
] ++ (with xorg; [ ] ++ (with xorg; [
libX11 libXext libXft libXi libXrender libXScrnSaver libX11 libXext libXft libXi libXrender libXScrnSaver
libXt pixman scrnsaverproto xextproto libXt pixman xorgproto
]); ]);
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,8 +1,8 @@
{ stdenv, glib, fetchurl, fetchpatch, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool { stdenv, glib, fetchurl, fetchpatch, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
, perlPackages, evolution-data-server, gnome-doc-utils, avahi, autoreconfHook , perlPackages, evolution-data-server, gnome-doc-utils, avahi, autoreconfHook
, libsigcxx, gtk, dbus-glib, libnotify, libXext, xextproto, gnome3, boost, libsecret , libsigcxx, gtk, dbus-glib, libnotify, libXext, xorgproto, gnome3, boost, libsecret
, pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib , pkgconfig, libxml2, unixODBC, db, nspr, nss, zlib
, libXrandr, randrproto, which, libxslt, libtasn1, gmp, nettle, sqlite, makeWrapper }: , libXrandr, which, libxslt, libtasn1, gmp, nettle, sqlite, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ekiga-4.0.1"; name = "ekiga-4.0.1";
@ -14,10 +14,10 @@ stdenv.mkDerivation rec {
buildInputs = [ cyrus_sasl gettext openldap ptlib opal libXv rarian intltool buildInputs = [ cyrus_sasl gettext openldap ptlib opal libXv rarian intltool
evolution-data-server gnome-doc-utils avahi evolution-data-server gnome-doc-utils avahi
libsigcxx gtk dbus-glib libnotify libXext xextproto sqlite libsigcxx gtk dbus-glib libnotify libXext xorgproto sqlite
gnome3.libsoup glib gnome3.defaultIconTheme boost gnome3.libsoup glib gnome3.defaultIconTheme boost
autoreconfHook pkgconfig libxml2 videoproto unixODBC db nspr autoreconfHook pkgconfig libxml2 unixODBC db nspr
nss zlib libsecret libXrandr randrproto which libxslt libtasn1 nss zlib libsecret libXrandr which libxslt libtasn1
gmp nettle makeWrapper ] gmp nettle makeWrapper ]
++ (with perlPackages; [ perl XMLParser ]); ++ (with perlPackages; [ perl XMLParser ]);

View File

@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
++ optionals pythonPluginSupport [ "-I${python}/include/${python.libPrefix}" ]; ++ optionals pythonPluginSupport [ "-I${python}/include/${python.libPrefix}" ];
LDFLAGS = [ ] LDFLAGS = [ ]
++ optionals pythonPluginSupport [ "-L${python}/lib" "-lpython${python.majorVersion}m" ]; ++ optionals pythonPluginSupport [ "-L${python}/lib" "-l${python.libPrefix}" ];
meta = { meta = {
description = "A console based XMPP client"; description = "A console based XMPP client";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, enchant, qt4, zlib, sox, libX11, xproto, libSM { stdenv, fetchurl, enchant, qt4, zlib, sox, libX11, xorgproto, libSM
, libICE, qca2, pkgconfig, which, glib , libICE, qca2, pkgconfig, which, glib
, libXScrnSaver, scrnsaverproto , libXScrnSaver
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
}; };
buildInputs = buildInputs =
[ enchant qt4 zlib sox libX11 xproto libSM libICE [ enchant qt4 zlib sox libX11 xorgproto libSM libICE
qca2 pkgconfig which glib scrnsaverproto libXScrnSaver qca2 pkgconfig which glib libXScrnSaver
]; ];
NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto"; NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto";

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub { stdenv, fetchFromGitHub
, qt4, qmake4Hook, openssl , qt4, qmake4Hook, openssl
, xproto, libX11, libXScrnSaver, scrnsaverproto , xorgproto, libX11, libXScrnSaver
, xz, zlib , xz, zlib
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
qt4 openssl xproto libX11 libXScrnSaver scrnsaverproto xz zlib qt4 openssl xorgproto libX11 libXScrnSaver xz zlib
]; ];
# hack: needed to fix build issues in # hack: needed to fix build issues in

View File

@ -37,8 +37,8 @@ in stdenv.mkDerivation rec {
dbus dbus-glib pango freetype fontconfig xorg.libXi dbus dbus-glib pango freetype fontconfig xorg.libXi
xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
nspr nss libnotify xorg.pixman yasm libGLU_combined nspr nss libnotify xorg.pixman yasm libGLU_combined
xorg.libXScrnSaver xorg.scrnsaverproto xorg.libXScrnSaver xorg.xorgproto
xorg.libXext xorg.xextproto sqlite unzip xorg.libXext sqlite unzip
hunspell libevent libstartup_notification /* cairo */ hunspell libevent libstartup_notification /* cairo */
icu libpng jemalloc icu libpng jemalloc
] ]

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl { stdenv, fetchurl
, xproto, motif, libX11, libXt, libXpm, bison , xorgproto, motif, libX11, libXt, libXpm, bison
, flex, automake, autoconf, libtool , flex, automake, autoconf, libtool
}: }:
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ libtool automake autoconf flex ]; nativeBuildInputs = [ libtool automake autoconf flex ];
buildInputs = [ xproto motif xproto libX11 libXt libXpm bison ]; buildInputs = [ xorgproto motif libX11 libXt libXpm bison ];
sourceRoot = "alliance/src/"; sourceRoot = "alliance/src/";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xproto, gccmakedep }: { stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xorgproto, gccmakedep }:
let let
libiconvInc = stdenv.lib.optionalString stdenv.isLinux "${glibc.dev}/include"; libiconvInc = stdenv.lib.optionalString stdenv.isLinux "${glibc.dev}/include";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ which yacc flex imake gccmakedep ]; nativeBuildInputs = [ which yacc flex imake gccmakedep ];
buildInputs = [ tcl tk libX11 xproto ]; buildInputs = [ tcl tk libX11 xorgproto ];
dontUseImakeConfigure = true; dontUseImakeConfigure = true;
patchPhase = '' patchPhase = ''

View File

@ -4,7 +4,7 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "golly-${version}"; pname = "golly";
version = "2.8.99.2.20161122"; version = "2.8.99.2.20161122";
#src = fetchurl { #src = fetchurl {
# url="mirror://sourceforge/project/golly/golly/golly-2.8/golly-2.8-src.tar.gz"; # url="mirror://sourceforge/project/golly/golly/golly-2.8/golly-2.8-src.tar.gz";
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
makeFlags=[ makeFlags=[
"AM_LDFLAGS=" "AM_LDFLAGS="
]; ];
NIX_LDFLAGS="-lpython${python2.majorVersion} -lperl -ldl -lGL"; NIX_LDFLAGS="-l${python2.libPrefix} -lperl -ldl -lGL";
preConfigure='' preConfigure=''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")" export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")"
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE

View File

@ -1,8 +1,7 @@
{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}: {stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
baseName="golly"; pname = "golly";
version = "3.2"; version = "3.2";
name="${baseName}-${version}";
src = fetchurl { src = fetchurl {
sha256 = "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd"; sha256 = "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd";
@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
makeFlags=[ makeFlags=[
"AM_LDFLAGS=" "AM_LDFLAGS="
]; ];
NIX_LDFLAGS="-lpython${python2.majorVersion} -lperl"; NIX_LDFLAGS="-l${python2.libPrefix} -lperl";
preConfigure='' preConfigure=''
export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")" export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")"
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE

View File

@ -2,7 +2,7 @@
, pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394 , pkgconfig, faad2, faac, a52dec, alsaLib, fftw, lame, libavc1394
, libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg , libiec61883, libraw1394, libsndfile, libvorbis, libogg, libjpeg
, libtiff, freetype, mjpegtools, x264, gettext, openexr , libtiff, freetype, mjpegtools, x264, gettext, openexr
, libXext, libXxf86vm, libXv, libXi, libX11, libXft, xextproto, libtheora, libpng , libXext, libXxf86vm, libXv, libXi, libX11, libXft, xorgproto, libtheora, libpng
, libdv, libuuid, file, nasm, perl , libdv, libuuid, file, nasm, perl
, fontconfig, intltool }: , fontconfig, intltool }:
@ -30,7 +30,7 @@ stdenv.mkDerivation {
a52dec alsaLib fftw lame libavc1394 libiec61883 a52dec alsaLib fftw lame libavc1394 libiec61883
libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype libraw1394 libsndfile libvorbis libogg libjpeg libtiff freetype
mjpegtools x264 gettext openexr mjpegtools x264 gettext openexr
libXext libXxf86vm libXv libXi libX11 libXft xextproto libXext libXxf86vm libXv libXi libX11 libXft xorgproto
libtheora libpng libdv libuuid libtheora libpng libdv libuuid
nasm nasm
perl perl

View File

@ -4,10 +4,10 @@
, boost, avahi, lame, autoreconfHook , boost, avahi, lame, autoreconfHook
, gettext, pcre-cpp, yajl, fribidi, which , gettext, pcre-cpp, yajl, fribidi, which
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre , openssl, gperf, tinyxml2, taglib, libssh, swig, jre
, libX11, xproto, inputproto, libxml2 , libX11, xorgproto, libxml2
, libXt, libXmu, libXext, xextproto , libXt, libXmu, libXext
, libXinerama, libXrandr, randrproto , libXinerama, libXrandr
, libXtst, libXfixes, fixesproto, systemd , libXtst, libXfixes, systemd
, alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl , alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl
, libjpeg, jasper, libpng, libtiff , libjpeg, jasper, libpng, libtiff
, libmpeg2, libsamplerate, libmad , libmpeg2, libsamplerate, libmad
@ -123,8 +123,8 @@ in stdenv.mkDerivation rec {
boost libmicrohttpd boost libmicrohttpd
gettext pcre-cpp yajl fribidi libva libdrm gettext pcre-cpp yajl fribidi libva libdrm
openssl gperf tinyxml2 taglib libssh swig jre openssl gperf tinyxml2 taglib libssh swig jre
libX11 xproto inputproto libXt libXmu libXext xextproto libX11 xorgproto libXt libXmu libXext
libXinerama libXrandr randrproto libXtst libXfixes fixesproto libXinerama libXrandr libXtst libXfixes
alsaLib libGLU_combined glew fontconfig freetype ftgl alsaLib libGLU_combined glew fontconfig freetype ftgl
libjpeg jasper libpng libtiff wayland libjpeg jasper libpng libtiff wayland
libmpeg2 libsamplerate libmad libmpeg2 libsamplerate libmad

View File

@ -1,5 +1,5 @@
{stdenv, fetchurl, ncurses, libjpeg, libX11, libXt, alsaLib, aalib, libXft, xproto, libv4l {stdenv, fetchurl, ncurses, libjpeg, libX11, libXt, alsaLib, aalib, libXft, xorgproto, libv4l
, libFS, fontsproto, libXaw, libXpm, libXext, libSM, libICE, perl, xextproto, linux}: , libFS, libXaw, libXpm, libXext, libSM, libICE, perl, linux}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xawtv-3.105"; name = "xawtv-3.105";
@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
makeFlags = "SUID_ROOT= DESTDIR=\$(out) PREFIX="; makeFlags = "SUID_ROOT= DESTDIR=\$(out) PREFIX=";
buildInputs = [ncurses libjpeg libX11 libXt libXft xproto libFS perl alsaLib aalib buildInputs = [ncurses libjpeg libX11 libXt libXft xorgproto libFS perl alsaLib aalib
fontsproto libXaw libXpm libXext libSM libICE xextproto libv4l]; libXaw libXpm libXext libSM libICE libv4l];
meta = { meta = {
description = "TV application for Linux with apps and tools such as a teletext browser"; description = "TV application for Linux with apps and tools such as a teletext browser";

View File

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ xineLib libpng readline ncurses curl lirc libjpeg [ xineLib libpng readline ncurses curl lirc libjpeg
xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.inputproto xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.xorgproto
xorg.libXinerama xorg.libXi xorg.libXft xorg.libXinerama xorg.libXi xorg.libXft
]; ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, lib, fetchpatch, iasl, dev86, pam, libxslt, libxml2 { stdenv, fetchurl, lib, fetchpatch, iasl, dev86, pam, libxslt, libxml2
, libX11, xproto, libXext, libXcursor, libXmu, qt5, libIDL, SDL, libcap , libX11, xorgproto, libXext, libXcursor, libXmu, qt5, libIDL, SDL, libcap
, libpng, glib, lvm2, libXrandr, libXinerama, libopus , libpng, glib, lvm2, libXrandr, libXinerama, libopus
, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43 , pkgconfig, which, docbook_xsl, docbook_xml_dtd_43
, alsaLib, curl, libvpx, nettools, dbus , alsaLib, curl, libvpx, nettools, dbus
@ -35,7 +35,7 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ]; nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ];
buildInputs = buildInputs =
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor libIDL [ iasl dev86 libxslt libxml2 xorgproto libX11 libXext libXcursor libIDL
libcap glib lvm2 alsaLib curl libvpx pam makeself perl libcap glib lvm2 alsaLib curl libvpx pam makeself perl
libXmu libpng libopus python ] libXmu libpng libopus python ]
++ optional javaBindings jdk ++ optional javaBindings jdk

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, libX11, libXext, libXrandr, libXrender, { stdenv, fetchurl, libX11, libXext, libXrandr, libXrender,
xproto, xextproto, randrproto, renderproto, kbproto, patches ? [] }: xorgproto, patches ? [] }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "evilwm-1.1.1"; name = "evilwm-1.1.1";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ libX11 libXext libXrandr libXrender buildInputs = [ libX11 libXext libXrandr libXrender
xproto xextproto randrproto renderproto kbproto ]; xorgproto ];
prePatch = ''substituteInPlace ./Makefile --replace /usr $out \ prePatch = ''substituteInPlace ./Makefile --replace /usr $out \
--replace "CC = gcc" "#CC = gcc"''; --replace "CC = gcc" "#CC = gcc"'';

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, pkgconfig { stdenv, fetchurl, pkgconfig
, freetype, fribidi , freetype, fribidi
, libXext, libXft, libXpm, libXrandr, libXrender, xextproto , libXext, libXft, libXpm, libXrandr, libXrender, xorgproto
, libXinerama , libXinerama
, imlib2 }: , imlib2 }:
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xextproto libXinerama imlib2 ]; buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xorgproto libXinerama imlib2 ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb, xcbutilkeysyms { stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb, xcbutilkeysyms
, xorg , i3ipc-glib , glib , xorg , i3ipc-glib , glib
}: }:
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libxcb xcbutilkeysyms xproto xorg.libX11.dev i3ipc-glib glib.dev ]; buildInputs = [ libxcb xcbutilkeysyms xorgproto xorg.libX11.dev i3ipc-glib glib.dev ];
# Makefile has no rule for 'install' # Makefile has no rule for 'install'
installPhase = '' installPhase = ''

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb { stdenv, fetchFromGitHub, pkgconfig, xorgproto, libxcb
, autoreconfHook, json-glib, gtk-doc, which , autoreconfHook, json-glib, gtk-doc, which
, gobject-introspection , gobject-introspection
}: }:
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook which pkgconfig ]; nativeBuildInputs = [ autoreconfHook which pkgconfig ];
buildInputs = [ libxcb json-glib gtk-doc xproto gobject-introspection ]; buildInputs = [ libxcb json-glib gtk-doc xorgproto gobject-introspection ];
preAutoreconf = '' preAutoreconf = ''

View File

@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, pkgconfig, automake, autoconf, libtool, { stdenv, fetchFromGitHub, pkgconfig, automake, autoconf, libtool,
gettext, which, xorg, libX11, libXext, libXinerama, libXpm, libXft, gettext, which, xorg, libX11, libXext, libXinerama, libXpm, libXft,
libXau, libXdmcp, libXmu, libpng, libjpeg, expat, xproto, xextproto, libXau, libXdmcp, libXmu, libpng, libjpeg, expat, xorgproto,
xineramaproto, librsvg, freetype, fontconfig }: librsvg, freetype, fontconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "jwm-${version}"; name = "jwm-${version}";
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig automake autoconf libtool gettext which ]; nativeBuildInputs = [ pkgconfig automake autoconf libtool gettext which ];
buildInputs = [ libX11 libXext libXinerama libXpm libXft xorg.libXrender buildInputs = [ libX11 libXext libXinerama libXpm libXft xorg.libXrender
libXau libXdmcp libXmu libpng libjpeg expat xproto xextproto xineramaproto libXau libXdmcp libXmu libpng libjpeg expat xorgproto
librsvg freetype fontconfig ]; librsvg freetype fontconfig ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -2,7 +2,7 @@
, freetype, fribidi , freetype, fribidi
, libSM, libICE, libXt, libXaw, libXmu , libSM, libICE, libXt, libXaw, libXmu
, libXext, libXft, libXpm, libXrandr , libXext, libXft, libXpm, libXrandr
, libXrender, xextproto, libXinerama }: , libXrender, xorgproto, libXinerama }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext
libXft libXpm libXrandr libXrender xextproto libXinerama ]; libXft libXpm libXrandr libXrender xorgproto libXinerama ];
src = fetchurl { src = fetchurl {
url = "http://ftp.debian.org/debian/pool/main/o/oroborus/oroborus_${version}.tar.gz"; url = "http://ftp.debian.org/debian/pool/main/o/oroborus/oroborus_${version}.tar.gz";

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig, perl, autoconf, automake { stdenv, fetchurl, pkgconfig, perl, autoconf, automake
, libX11, inputproto, libXt, libXpm, libXft, libXtst, xextproto, libXi , libX11, xorgproto, libXt, libXpm, libXft, libXtst, libXi
, libXrandr, fontconfig, freetype, readline , libXrandr, fontconfig, freetype, readline
}: }:
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ perl [ perl
libX11 inputproto libXt libXpm libXft libXtst xextproto libXi libXrandr libX11 xorgproto libXt libXpm libXft libXtst libXi libXrandr
fontconfig freetype readline ]; fontconfig freetype readline ];
postInstall = '' postInstall = ''

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, libX11, xproto }: { stdenv, fetchurl, libX11, xorgproto }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "stalonetray-${version}"; name = "stalonetray-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n"; sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n";
}; };
buildInputs = [ libX11 xproto ]; buildInputs = [ libX11 xorgproto ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

View File

@ -1,4 +1,4 @@
{stdenv, fetchgit, xproto, libX11, libXft, customConfig ? null, patches ? [] }: {stdenv, fetchgit, xorgproto, libX11, libXft, customConfig ? null, patches ? [] }:
with stdenv.lib; with stdenv.lib;
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
cp ${builtins.toFile "config.h" customConfig} ./config.h cp ${builtins.toFile "config.h" customConfig} ./config.h
''; '';
buildInputs = [ xproto libX11 libXft ]; buildInputs = [ xorgproto libX11 libXft ];
makeFlags = [ makeFlags = [
"PREFIX=$(out)" "PREFIX=$(out)"

View File

@ -257,9 +257,8 @@ rec {
# X.org. # X.org.
xorg = [ xorg = [
http://xorg.freedesktop.org/releases/ https://xorg.freedesktop.org/releases/
http://ftp.gwdg.de/pub/x11/x.org/pub/ https://ftp.x.org/archive/
http://ftp.x.org/pub/ # often incomplete (e.g. files missing from X.org 7.4)
]; ];
# Apache mirrors (see http://www.apache.org/mirrors/). # Apache mirrors (see http://www.apache.org/mirrors/).

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, pkgconfig, xproto}: {stdenv, fetchurl, pkgconfig, xorgproto}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "rgb"; pname = "rgb";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [pkgconfig]; nativeBuildInputs = [pkgconfig];
buildInputs = [xproto]; buildInputs = [xorgproto];
meta = { meta = {
inherit version; inherit version;
description = "X11 colorname to RGB mapping database"; description = "X11 colorname to RGB mapping database";

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa_noglu buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa_noglu
giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.printproto gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.xorgproto
xorg.libX11 udev systemd ]; xorg.libX11 udev systemd ];
propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xproto, libxfce4util, xfce4-panel, libxfce4ui, libxfcegui4, xfconf, gtk, hicolor-icon-theme }: { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, libxfcegui4, xfconf, gtk, hicolor-icon-theme }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool glib exo libXtst xproto libxfce4util libxfce4ui xfce4-panel libxfcegui4 xfconf gtk hicolor-icon-theme ]; buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel libxfcegui4 xfconf gtk hicolor-icon-theme ];
meta = { meta = {
homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}"; homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk, hicolor-icon-theme }: { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk, hicolor-icon-theme }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
name = "${p_name}-${ver_maj}.${ver_min}"; name = "${p_name}-${ver_maj}.${ver_min}";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ intltool glib exo libXtst xproto libxfce4util libxfce4ui xfce4-panel xfconf gtk hicolor-icon-theme ]; buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk hicolor-icon-theme ];
meta = { meta = {
homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}"; homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";

View File

@ -2,7 +2,7 @@
stdenv, fetchurl stdenv, fetchurl
, fpc , fpc
, gtk2, glib, pango, atk, gdk_pixbuf , gtk2, glib, pango, atk, gdk_pixbuf
, libXi, inputproto, libX11, xproto, libXext, xextproto , libXi, xorgproto, libX11, libXext
, makeWrapper , makeWrapper
}: }:
let let
@ -15,8 +15,8 @@ let
name = "lazarus-${version}"; name = "lazarus-${version}";
}; };
buildInputs = [ buildInputs = [
fpc gtk2 glib libXi inputproto fpc gtk2 glib libXi xorgproto
libX11 xproto libXext xextproto pango atk libX11 libXext pango atk
stdenv.cc makeWrapper gdk_pixbuf stdenv.cc makeWrapper gdk_pixbuf
]; ];
in in

View File

@ -16,8 +16,8 @@
, zip ? null, unzip ? null, pkgconfig ? null , zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null , gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null , libXrender ? null, xorgproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null , libXrandr ? null, libXi ? null
, x11Support ? langJava , x11Support ? langJava
, enableMultilib ? false , enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
@ -89,7 +89,7 @@ let version = "4.8.5";
xlibs = [ xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto xorgproto
]; ];
javaAwtGtk = langJava && x11Support; javaAwtGtk = langJava && x11Support;

View File

@ -16,8 +16,8 @@
, zip ? null, unzip ? null, pkgconfig ? null , zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null , gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null , libXrender ? null, xorgproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null , libXrandr ? null, libXi ? null
, x11Support ? langJava , x11Support ? langJava
, enableMultilib ? false , enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
@ -94,7 +94,7 @@ let version = "4.9.4";
xlibs = [ xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto xorgproto
]; ];
javaAwtGtk = langJava && x11Support; javaAwtGtk = langJava && x11Support;

View File

@ -16,8 +16,8 @@
, zip ? null, unzip ? null, pkgconfig ? null , zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null , gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null , libXrender ? null, xorgproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null , libXrandr ? null, libXi ? null
, x11Support ? langJava , x11Support ? langJava
, enableMultilib ? false , enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
@ -81,7 +81,7 @@ let version = "5.5.0";
xlibs = [ xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto xorgproto
]; ];
javaAwtGtk = langJava && x11Support; javaAwtGtk = langJava && x11Support;

View File

@ -16,8 +16,8 @@
, zip ? null, unzip ? null, pkgconfig ? null , zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null , gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null , libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null , libXrender ? null, xorgproto ? null
, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null , libXrandr ? null, libXi ? null
, x11Support ? langJava , x11Support ? langJava
, enableMultilib ? false , enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins , enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
@ -78,7 +78,7 @@ let version = "6.5.0";
xlibs = [ xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xproto renderproto xextproto inputproto randrproto xorgproto
]; ];
javaAwtGtk = langJava && x11Support; javaAwtGtk = langJava && x11Support;

View File

@ -37,7 +37,7 @@ assert langGo -> langCC;
with stdenv.lib; with stdenv.lib;
with builtins; with builtins;
let version = "7.3.0"; let version = "7.4.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform; inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@ -138,7 +138,7 @@ stdenv.mkDerivation ({
src = fetchurl { src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz"; url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "0p71bij6bfhzyrs8676a8jmpjsfz392s2rg862sdnsk30jpacb43"; sha256 = "0lgy170b0pp60j9cczqkmaqyjjb584vfamj4c30swd7k0j6y5pgd";
}; };
inherit patches; inherit patches;

View File

@ -1,6 +1,6 @@
{ stdenv, fetchgit, mpfr, m4, binutils, emacs, zlib, which { stdenv, fetchgit, mpfr, m4, binutils, emacs, zlib, which
, texinfo, libX11, xproto, inputproto, libXi, gmp, readline, strace , texinfo, libX11, xorgproto, libXi, gmp, readline, strace
, libXext, xextproto, libXt, libXaw, libXmu } : , libXext, libXt, libXaw, libXmu } :
assert stdenv ? cc ; assert stdenv ? cc ;
assert stdenv.cc.isGNU ; assert stdenv.cc.isGNU ;
@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
mpfr m4 binutils emacs gmp mpfr m4 binutils emacs gmp
libX11 xproto inputproto libXi libX11 xorgproto libXi
libXext xextproto libXt libXaw libXmu libXext libXt libXaw libXmu
zlib which texinfo readline strace zlib which texinfo readline strace
]; ];

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, mpfr, m4, binutils, emacs, zlib, which { stdenv, fetchurl, mpfr, m4, binutils, emacs, zlib, which
, texinfo, libX11, xproto, inputproto, libXi, gmp , texinfo, libX11, xorgproto, libXi, gmp
, libXext, xextproto, libXt, libXaw, libXmu } : , libXext, libXt, libXaw, libXmu } :
assert stdenv ? cc ; assert stdenv ? cc ;
assert stdenv.cc.isGNU ; assert stdenv.cc.isGNU ;
@ -23,8 +23,8 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
mpfr m4 binutils emacs gmp mpfr m4 binutils emacs gmp
libX11 xproto inputproto libXi libX11 xorgproto libXi
libXext xextproto libXt libXaw libXmu libXext libXt libXaw libXmu
zlib which texinfo zlib which texinfo
]; ];

View File

@ -9,7 +9,7 @@ let
name = "clang-${version}"; name = "clang-${version}";
unpackPhase = '' unpackPhase = ''
unpackFile ${fetch "cfe" "0mdsbgj3p7mayhzm8hclzl3i46r2lwa8fr1cz399f9km3iqi40jm"} unpackFile ${fetch "cfe" "067lwggnbg0w1dfrps790r5l6k8n5zwhlsw7zb6zvmfpwpfn4nx4"}
mv cfe-${version}* clang mv cfe-${version}* clang
sourceRoot=$PWD/clang sourceRoot=$PWD/clang
unpackFile ${clang-tools-extra_src} unpackFile ${clang-tools-extra_src}

View File

@ -3,7 +3,7 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "compiler-rt-${version}"; name = "compiler-rt-${version}";
inherit version; inherit version;
src = fetch "compiler-rt" "1mkhqvs8cxbfmprkzwyq7lmnzr1sv45znzf0arbgb19crzipzv5x"; src = fetch "compiler-rt" "065ybd8fsc4h2hikbdyricj6pyv4r7r7kpcikhb2y5zf370xybkq";
nativeBuildInputs = [ cmake python llvm ]; nativeBuildInputs = [ cmake python llvm ];
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;

View File

@ -5,7 +5,7 @@
}: }:
let let
release_version = "7.0.0"; release_version = "7.0.1";
version = release_version; # differentiating these is important for rc's version = release_version; # differentiating these is important for rc's
fetch = name: sha256: fetchurl { fetch = name: sha256: fetchurl {
@ -13,7 +13,7 @@ let
inherit sha256; inherit sha256;
}; };
clang-tools-extra_src = fetch "clang-tools-extra" "1glxl7bnr4k3j16s8xy8r9cl0llyg524f50591g1ig23ij65lz4k"; clang-tools-extra_src = fetch "clang-tools-extra" "1v9vc7id1761qm7mywlknsp810232iwyz8rd4y5km4h7pg9cg4sc";
tools = stdenv.lib.makeExtensible (tools: let tools = stdenv.lib.makeExtensible (tools: let
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python isl release_version version fetch; }); callPackage = newScope (tools // { inherit stdenv cmake libxml2 python isl release_version version fetch; });

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libc++-${version}"; name = "libc++-${version}";
src = fetch "libcxx" "1w1l472p03csgz76p70pn9yk7h0nw5hj1av44ysnakigp8jjcd4v"; src = fetch "libcxx" "1wdrxg365ig0kngx52pd0n820sncp24blb0zpalc579iidhh4002";
postUnpack = '' postUnpack = ''
unpackFile ${libcxxabi.src} unpackFile ${libcxxabi.src}

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation { stdenv.mkDerivation {
name = "libc++abi-${version}"; name = "libc++abi-${version}";
src = fetch "libcxxabi" "0pr4xfx61r5mwmvhg4j9pb6df6vvha1gyf6rwkm14x9rzxcwficv"; src = fetch "libcxxabi" "1n6yx0949l9bprh75dffchahn8wplkm79ffk4f2ap9vw2lx90s41";
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind; buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;

View File

@ -9,7 +9,7 @@
stdenv.mkDerivation { stdenv.mkDerivation {
name = "lld-${version}"; name = "lld-${version}";
src = fetch "lld" "173z50vx5mlsaiqmbz7asxy2297z4xivrfxrdfncvx23wp2lgkzv"; src = fetch "lld" "0ca0qygrk87lhjk6cpv1wbmdfnficqqjsda3k7b013idvnralsc8";
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ llvm libxml2 ]; buildInputs = [ llvm libxml2 ];

View File

@ -17,7 +17,7 @@
stdenv.mkDerivation { stdenv.mkDerivation {
name = "lldb-${version}"; name = "lldb-${version}";
src = fetch "lldb" "0cmah36ybyfws0z2ikq9fqn5k4kvjci7vgk97ddx4xwrwkzdixkz"; src = fetch "lldb" "10k9lyk3i72j9hca523r9pz79qp7d8q7jqnjy0i3saj1bgknpd3n";
postPatch = '' postPatch = ''
# Fix up various paths that assume llvm and clang are installed in the same place # Fix up various paths that assume llvm and clang are installed in the same place

View File

@ -22,7 +22,7 @@
let let
inherit (stdenv.lib) optional optionals optionalString; inherit (stdenv.lib) optional optionals optionalString;
src = fetch "llvm" "08p27wv1pr9ql2zc3f3qkkymci46q7myvh8r5ijippnbwr2gihcb"; src = fetch "llvm" "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3";
# Used when creating a version-suffixed symlink of libLLVM.dylib # Used when creating a version-suffixed symlink of libLLVM.dylib
shortVersion = with stdenv.lib; shortVersion = with stdenv.lib;

View File

@ -9,7 +9,7 @@
stdenv.mkDerivation { stdenv.mkDerivation {
name = "openmp-${version}"; name = "openmp-${version}";
src = fetch "openmp" "1zrqlaxr954sp8lcr7g8m0z0pr8xyq4i6p11x6gcamjm5xijnrih"; src = fetch "openmp" "030dkg5cypd7j9hq0mcqb5gs31lxwmzfq52j81l7v9ldcy5bf5mz";
nativeBuildInputs = [ cmake perl ]; nativeBuildInputs = [ cmake perl ];
buildInputs = [ llvm ]; buildInputs = [ llvm ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nasm-${version}"; name = "nasm-${version}";
version = "2.14.01"; version = "2.14.02";
src = fetchurl { src = fetchurl {
url = "https://www.nasm.us/pub/nasm/releasebuilds/${version}/${name}.tar.bz2"; url = "https://www.nasm.us/pub/nasm/releasebuilds/${version}/${name}.tar.bz2";
sha256 = "1v9fazd3in0rphnw5ck58wqnl8dis4dyqpsqgjsm4h9jjj0vylvz"; sha256 = "1g409sr1kj7v1089s9kv0i4azvddkcwcypnbakfryyi71b3jdz9l";
}; };
nativeBuildInputs = [ perl ]; nativeBuildInputs = [ perl ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl { stdenv, fetchurl
, ncurses , ncurses
, libX11, xproto, buildEnv , libX11, xorgproto, buildEnv
}: }:
let let
useX11 = stdenv.isi686 || stdenv.isx86_64; useX11 = stdenv.isi686 || stdenv.isx86_64;
x11deps = [ libX11 xproto ]; x11deps = [ libX11 xorgproto ];
inherit (stdenv.lib) optionals; inherit (stdenv.lib) optionals;
baseOcamlBranch = "4.07"; baseOcamlBranch = "4.07";

View File

@ -11,7 +11,7 @@ let
in in
{ stdenv, fetchurl, ncurses, buildEnv { stdenv, fetchurl, ncurses, buildEnv
, libX11, xproto, useX11 ? safeX11 stdenv , libX11, xorgproto, useX11 ? safeX11 stdenv
, flambdaSupport ? false , flambdaSupport ? false
}: }:
@ -25,7 +25,7 @@ let
in in
let let
x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; }; x11env = buildEnv { name = "x11env"; paths = [libX11 xorgproto]; };
x11lib = x11env + "/lib"; x11lib = x11env + "/lib";
x11inc = x11env + "/include"; x11inc = x11env + "/include";
in in
@ -48,7 +48,7 @@ stdenv.mkDerivation (args // rec {
buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt"; buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
buildInputs = optional (!stdenv.lib.versionAtLeast version "4.07") ncurses buildInputs = optional (!stdenv.lib.versionAtLeast version "4.07") ncurses
++ optionals useX11 [ libX11 xproto ]; ++ optionals useX11 [ libX11 xorgproto ];
installTargets = "install" + optionalString useNativeCompilers " installopt"; installTargets = "install" + optionalString useNativeCompilers " installopt";
preConfigure = optionalString (!stdenv.lib.versionAtLeast version "4.04") '' preConfigure = optionalString (!stdenv.lib.versionAtLeast version "4.04") ''
CAT=$(type -tp cat) CAT=$(type -tp cat)

View File

@ -4,7 +4,7 @@
# by default # by default
# - full: contains base plus modules in withModules # - full: contains base plus modules in withModules
{ stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11 { stdenv, fetchurl, libsigsegv, gettext, ncurses, readline, libX11
, libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto , libXau, libXt, pcre, zlib, libXpm, xorgproto, libXext
, libffi , libffi
, libffcall , libffcall
, coreutils , coreutils
@ -21,7 +21,7 @@
}: }:
assert x11Support -> (libX11 != null && libXau != null && libXt != null assert x11Support -> (libX11 != null && libXau != null && libXt != null
&& libXpm != null && xproto != null && libXext != null && xextproto != null); && libXpm != null && xorgproto != null && libXext != null);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
v = "2.49"; v = "2.49";
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional (ffcallAvailable && (libffi != null)) libffi ++ stdenv.lib.optional (ffcallAvailable && (libffi != null)) libffi
++ stdenv.lib.optional ffcallAvailable libffcall ++ stdenv.lib.optional ffcallAvailable libffcall
++ stdenv.lib.optionals x11Support [ ++ stdenv.lib.optionals x11Support [
libX11 libXau libXt libXpm xproto libXext xextproto libX11 libXau libXt libXpm xorgproto libXext
]; ];
patches = [ patches = [

View File

@ -4,7 +4,7 @@
# by default # by default
# - full: contains base plus modules in withModules # - full: contains base plus modules in withModules
{ stdenv, fetchhg, libsigsegv, gettext, ncurses, readline, libX11 { stdenv, fetchhg, libsigsegv, gettext, ncurses, readline, libX11
, libXau, libXt, pcre, zlib, libXpm, xproto, libXext, xextproto , libXau, libXt, pcre, zlib, libXpm, xorgproto, libXext
, libffi, libffcall, automake , libffi, libffcall, automake
, coreutils , coreutils
# build options # build options
@ -20,7 +20,7 @@
}: }:
assert x11Support -> (libX11 != null && libXau != null && libXt != null assert x11Support -> (libX11 != null && libXau != null && libXt != null
&& libXpm != null && xproto != null && libXext != null && xextproto != null); && libXpm != null && xorgproto != null && libXext != null);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
v = "2.50pre20171114"; v = "2.50pre20171114";
@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional (ffcallAvailable && (libffi != null)) libffi ++ stdenv.lib.optional (ffcallAvailable && (libffi != null)) libffi
++ stdenv.lib.optional ffcallAvailable libffcall ++ stdenv.lib.optional ffcallAvailable libffcall
++ stdenv.lib.optionals x11Support [ ++ stdenv.lib.optionals x11Support [
libX11 libXau libXt libXpm xproto libXext xextproto libX11 libXau libXt libXpm xorgproto libXext
]; ];
# First, replace port 9090 (rather low, can be used) # First, replace port 9090 (rather low, can be used)

View File

@ -1,4 +1,4 @@
{stdenv, fetchurl, libX11, xproto, indent, readline, gsl, freeglut, libGLU_combined, SDL {stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU_combined, SDL
, blas, libbfd, intltool, gettext, zlib, libSM}: , blas, libbfd, intltool, gettext, zlib, libSM}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
libX11 libSM xproto indent readline gsl freeglut libGLU_combined SDL blas libbfd libX11 libSM xorgproto indent readline gsl freeglut libGLU_combined SDL blas libbfd
intltool gettext zlib intltool gettext zlib
]; ];

View File

@ -1,7 +1,6 @@
# This function provides generic bits to install a Python wheel. # This function provides generic bits to install a Python wheel.
{ python { python
, bootstrapped-pip
}: }:
{ buildInputs ? [] { buildInputs ? []
@ -10,7 +9,7 @@
, ... } @ attrs: , ... } @ attrs:
attrs // { attrs // {
buildInputs = buildInputs ++ [ bootstrapped-pip ]; buildInputs = buildInputs ++ [ python.pythonForBuild.pkgs.bootstrapped-pip ];
configurePhase = attrs.configurePhase or '' configurePhase = attrs.configurePhase or ''
runHook preConfigure runHook preConfigure
@ -24,7 +23,7 @@ attrs // {
export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH" export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
pushd dist pushd dist
${bootstrapped-pip}/bin/pip install *.whl --no-index --prefix=$out --no-cache ${toString installFlags} --build tmpbuild ${python.pythonForBuild.pkgs.bootstrapped-pip}/bin/pip install *.whl --no-index --prefix=$out --no-cache ${toString installFlags} --build tmpbuild
popd popd
runHook postInstall runHook postInstall

View File

@ -2,7 +2,6 @@
{ lib { lib
, python , python
, bootstrapped-pip
}: }:
{ {
@ -26,13 +25,13 @@ in attrs // {
buildPhase = attrs.buildPhase or '' buildPhase = attrs.buildPhase or ''
runHook preBuild runHook preBuild
cp ${setuppy} nix_run_setup cp ${setuppy} nix_run_setup
${python.interpreter} nix_run_setup ${lib.optionalString (setupPyBuildFlags != []) ("build_ext " + (lib.concatStringsSep " " setupPyBuildFlags))} bdist_wheel ${python.pythonForBuild.interpreter} nix_run_setup ${lib.optionalString (setupPyBuildFlags != []) ("build_ext " + (lib.concatStringsSep " " setupPyBuildFlags))} bdist_wheel
runHook postBuild runHook postBuild
''; '';
installCheckPhase = attrs.checkPhase or '' installCheckPhase = attrs.checkPhase or ''
runHook preCheck runHook preCheck
${python.interpreter} nix_run_setup test ${python.pythonForBuild.interpreter} nix_run_setup test
runHook postCheck runHook postCheck
''; '';
@ -47,9 +46,9 @@ in attrs // {
if test -e setup.py; then if test -e setup.py; then
tmp_path=$(mktemp -d) tmp_path=$(mktemp -d)
export PATH="$tmp_path/bin:$PATH" export PATH="$tmp_path/bin:$PATH"
export PYTHONPATH="$tmp_path/${python.sitePackages}:$PYTHONPATH" export PYTHONPATH="$tmp_path/${python.pythonForBuild.sitePackages}:$PYTHONPATH"
mkdir -p $tmp_path/${python.sitePackages} mkdir -p $tmp_path/${python.pythonForBuild.sitePackages}
${bootstrapped-pip}/bin/pip install -e . --prefix $tmp_path >&2 ${python.pythonForBuild.pkgs.bootstrapped-pip}/bin/pip install -e . --prefix $tmp_path >&2
fi fi
${postShellHook} ${postShellHook}
''; '';

View File

@ -10,17 +10,16 @@
, ensureNewerSourcesForZipFilesHook , ensureNewerSourcesForZipFilesHook
, toPythonModule , toPythonModule
, namePrefix , namePrefix
, bootstrapped-pip
, flit , flit
, writeScript , writeScript
, update-python-libraries , update-python-libraries
}: }:
let let
setuptools-specific = import ./build-python-package-setuptools.nix { inherit lib python bootstrapped-pip; }; setuptools-specific = import ./build-python-package-setuptools.nix { inherit lib python; };
flit-specific = import ./build-python-package-flit.nix { inherit python flit; }; flit-specific = import ./build-python-package-flit.nix { inherit python flit; };
wheel-specific = import ./build-python-package-wheel.nix { }; wheel-specific = import ./build-python-package-wheel.nix { };
common = import ./build-python-package-common.nix { inherit python bootstrapped-pip; }; common = import ./build-python-package-common.nix { inherit python; };
mkPythonDerivation = import ./mk-python-derivation.nix { mkPythonDerivation = import ./mk-python-derivation.nix {
inherit lib config python wrapPython setuptools unzip ensureNewerSourcesForZipFilesHook; inherit lib config python wrapPython setuptools unzip ensureNewerSourcesForZipFilesHook;
inherit toPythonModule namePrefix writeScript update-python-libraries; inherit toPythonModule namePrefix writeScript update-python-libraries;

View File

@ -1,7 +1,9 @@
{ stdenv, buildPackages, fetchurl { stdenv, fetchurl, fetchpatch
, bzip2 , bzip2
, expat
, libffi
, gdbm , gdbm
, fetchpatch , db
, ncurses , ncurses
, openssl , openssl
, readline , readline
@ -10,15 +12,16 @@
, zlib , zlib
, callPackage , callPackage
, self , self
, db
, expat
, libffi
, CF, configd, coreutils , CF, configd, coreutils
, python-setup-hook , python-setup-hook
# Some proprietary libs assume UCS2 unicode, especially on darwin :( # Some proprietary libs assume UCS2 unicode, especially on darwin :(
, ucsEncoding ? 4 , ucsEncoding ? 4
# For the Python package set # For the Python package set
, packageOverrides ? (self: super: {}) , packageOverrides ? (self: super: {})
, buildPackages
, sourceVersion
, sha256
, passthruFun
}: }:
assert x11Support -> tcl != null assert x11Support -> tcl != null
@ -29,16 +32,26 @@ assert x11Support -> tcl != null
with stdenv.lib; with stdenv.lib;
let let
majorVersion = "2.7";
minorVersion = "15"; pythonForBuild = buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"};
minorVersionSuffix = "";
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}"; passthru = passthruFun rec {
libPrefix = "python${majorVersion}"; inherit self sourceVersion packageOverrides;
sitePackages = "lib/${libPrefix}/site-packages"; implementation = "cpython";
libPrefix = "python${pythonVersion}";
executable = libPrefix;
pythonVersion = with sourceVersion; "${major}.${minor}";
sitePackages = "lib/${libPrefix}/site-packages";
inherit pythonForBuild;
} // {
inherit ucsEncoding;
};
version = with sourceVersion; "${major}.${minor}.${patch}${suffix}";
src = fetchurl { src = fetchurl {
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz"; url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz";
sha256 = "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92"; inherit sha256;
}; };
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
@ -191,12 +204,11 @@ let
# Build the basic Python interpreter without modules that have # Build the basic Python interpreter without modules that have
# external dependencies. # external dependencies.
in stdenv.mkDerivation ({ in with passthru; stdenv.mkDerivation ({
name = "python-${version}"; pname = "python";
pythonVersion = majorVersion; inherit version;
inherit majorVersion version src patches buildInputs nativeBuildInputs inherit src patches buildInputs nativeBuildInputs preConfigure configureFlags;
preConfigure configureFlags;
LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH; inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
@ -215,7 +227,7 @@ in stdenv.mkDerivation ({
'' ''
# needed for some packages, especially packages that backport # needed for some packages, especially packages that backport
# functionality to 2.x from 3.x # functionality to 2.x from 3.x
for item in $out/lib/python${majorVersion}/test/*; do for item in $out/lib/${libPrefix}/test/*; do
if [[ "$item" != */test_support.py* if [[ "$item" != */test_support.py*
&& "$item" != */test/support && "$item" != */test/support
&& "$item" != */test/regrtest.py* ]]; then && "$item" != */test/regrtest.py* ]]; then
@ -224,9 +236,9 @@ in stdenv.mkDerivation ({
echo $item echo $item
fi fi
done done
touch $out/lib/python${majorVersion}/test/__init__.py touch $out/lib/${libPrefix}/test/__init__.py
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb
ln -s $out/lib/python${majorVersion}/pdb.py $out/bin/pdb${majorVersion} ln -s $out/lib/${libPrefix}/pdb.py $out/bin/pdb${sourceVersion.major}.${sourceVersion.minor}
ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz} ln -s $out/share/man/man1/{python2.7.1.gz,python.1.gz}
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484 # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
@ -249,21 +261,7 @@ in stdenv.mkDerivation ({
cp libpython2.7.dll.a $out/lib cp libpython2.7.dll.a $out/lib
''; '';
passthru = let inherit passthru;
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {
python = self;
overrides = packageOverrides;
};
in rec {
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch ucsEncoding;
executable = libPrefix;
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
isPy2 = true;
isPy27 = true;
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,212 +0,0 @@
{ stdenv, fetchurl, fetchpatch
, bzip2
, expat
, libffi
, gdbm
, lzma
, ncurses
, openssl
, readline
, sqlite
, tcl ? null, tk ? null, tix ? null, libX11 ? null, xproto ? null, x11Support ? false
, zlib
, callPackage
, self
, CF, configd
, python-setup-hook
# For the Python package set
, packageOverrides ? (self: super: {})
}:
assert x11Support -> tcl != null
&& tk != null
&& xproto != null
&& libX11 != null;
with stdenv.lib;
let
majorVersion = "3.5";
minorVersion = "6";
minorVersionSuffix = "";
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
libPrefix = "python${majorVersion}";
sitePackages = "lib/${libPrefix}/site-packages";
buildInputs = filter (p: p != null) [
zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
++ optionals x11Support [ tcl tk libX11 xproto ]
++ optionals stdenv.isDarwin [ CF configd ];
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
inherit majorVersion version;
inherit buildInputs;
src = fetchurl {
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
sha256 = "0pqmf51zy2lzhbaj4yya2py2qr653j9152d0rg3p7wi1yl2dwp7m";
};
NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
# This way python doesn't try to update them when we freeze timestamps in nix store.
DETERMINISTIC_BUILD=1;
# Determinism: We fix the hashes of str, bytes and datetime objects.
PYTHONHASHSEED=0;
prePatch = optionalString stdenv.isDarwin ''
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' '
'';
patches = [
./no-ldconfig.patch
./ld_library_path.patch
] ++ optionals stdenv.isDarwin [
# Fix for https://bugs.python.org/issue24658
(fetchpatch {
url = "https://bugs.python.org/file45178/issue24658-3-3.6.diff";
sha256 = "1x060hs80nl34mcl2ji2i7l4shxkmxwgq8h8lcmav8rjqqz1nb4a";
})
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
extraPrefix = "";
})
];
postPatch = ''
# Determinism
substituteInPlace "Lib/py_compile.py" --replace "source_stats['mtime']" "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])"
# Determinism. This is done unconditionally
substituteInPlace "Lib/importlib/_bootstrap_external.py" --replace "source_mtime = int(st['mtime'])" "source_mtime = 1"
'' + optionalString (x11Support && (tix != null)) ''
substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
'';
CPPFLAGS="${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}";
LDFLAGS="${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}";
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}";
configureFlags = [
"--enable-shared"
"--with-threads"
"--without-ensurepip"
"--with-system-expat"
"--with-system-ffi"
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity
substituteInPlace ./setup.py --replace $i /no-such-path
done
${optionalString stdenv.isDarwin ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6
''
+ optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"
''}
'';
setupHook = python-setup-hook sitePackages;
postInstall = ''
# needed for some packages, especially packages that backport functionality
# to 2.x from 3.x
for item in $out/lib/python${majorVersion}/test/*; do
if [[ "$item" != */test_support.py*
&& "$item" != */test/support
&& "$item" != */test/libregrtest
&& "$item" != */test/regrtest.py* ]]; then
rm -rf "$item"
else
echo $item
fi
done
touch $out/lib/python${majorVersion}/test/__init__.py
ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}"
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
# Determinism: Windows installers were not deterministic.
# We're also not interested in building Windows installers.
find "$out" -name 'wininst*.exe' | xargs -r rm -f
# Use Python3 as default python
ln -s "$out/bin/idle3" "$out/bin/idle"
ln -s "$out/bin/pydoc3" "$out/bin/pydoc"
ln -s "$out/bin/python3" "$out/bin/python"
ln -s "$out/bin/python3-config" "$out/bin/python-config"
ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc"
# Get rid of retained dependencies on -dev packages, and remove
# some $TMPDIR references to improve binary reproducibility.
# Note that the .pyc file of _sysconfigdata.py should be regenerated!
for i in $out/lib/python${majorVersion}/_sysconfigdata.py $out/lib/python${majorVersion}/config-${majorVersion}m/Makefile; do
sed -i $i -e "s|-I/nix/store/[^ ']*||g" -e "s|-L/nix/store/[^ ']*||g" -e "s|$TMPDIR|/no-such-path|g"
done
# Determinism: rebuild all bytecode
# We exclude lib2to3 because that's Python 2 code which fails
# We rebuild three times, once for each optimization level
find $out -name "*.py" | $out/bin/python -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | $out/bin/python -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | $out/bin/python -OO -m compileall -q -f -x "lib2to3" -i -
'';
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {
python = self;
overrides = packageOverrides;
};
in rec {
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
isPy3 = true;
isPy35 = true;
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";
longDescription = ''
Python is a remarkably powerful dynamic programming language that
is used in a wide variety of application domains. Some of its key
distinguishing features include: clear, readable syntax; strong
introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting
hierarchical packages; exception-based error handling; and very
high level dynamic data types.
'';
license = licenses.psfl;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ fridh ];
};
}

View File

@ -1,228 +0,0 @@
{ stdenv, fetchurl, fetchpatch, buildPackages
, bzip2
, expat
, libffi
, gdbm
, lzma
, ncurses
, openssl
, readline
, sqlite
, tcl ? null, tk ? null, tix ? null, libX11 ? null, xproto ? null, x11Support ? false
, zlib
, callPackage
, self
, CF, configd
, python-setup-hook
# For the Python package set
, packageOverrides ? (self: super: {})
}:
assert x11Support -> tcl != null
&& tk != null
&& xproto != null
&& libX11 != null;
with stdenv.lib;
let
majorVersion = "3.6";
minorVersion = "8";
minorVersionSuffix = "";
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
libPrefix = "python${majorVersion}";
sitePackages = "lib/${libPrefix}/site-packages";
buildInputs = filter (p: p != null) [
zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
++ optionals x11Support [ tcl tk libX11 xproto ]
++ optionals stdenv.isDarwin [ CF configd ];
nativeBuildInputs =
optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.python3;
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
inherit majorVersion version;
inherit buildInputs nativeBuildInputs;
src = fetchurl {
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
sha256 = "14qi6n5gpcjnwy165wi9hkfcmbadc95ny6bxxldknxwmx50n4i1m";
};
NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
# This way python doesn't try to update them when we freeze timestamps in nix store.
DETERMINISTIC_BUILD=1;
# Determinism: We fix the hashes of str, bytes and datetime objects.
PYTHONHASHSEED=0;
prePatch = optionalString stdenv.isDarwin ''
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' '
'';
patches = [
./no-ldconfig.patch
] ++ optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file48016/python-3.x-distutils-C++.patch";
sha256 = "1h18lnpx539h5lfxyk379dxwr8m2raigcjixkf133l4xy3f4bzi2";
})
];
postPatch = ''
# Determinism
substituteInPlace "Lib/py_compile.py" --replace "source_stats['mtime']" "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])"
# Determinism. This is done unconditionally
substituteInPlace "Lib/importlib/_bootstrap_external.py" --replace "source_mtime = int(st['mtime'])" "source_mtime = 1"
'' + optionalString (x11Support && (tix != null)) ''
substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
'';
CPPFLAGS="${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}";
LDFLAGS="${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}";
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}";
configureFlags = [
"--enable-shared"
"--with-threads"
"--without-ensurepip"
"--with-system-expat"
"--with-system-ffi"
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_buggy_getaddrinfo=no"
# Assume little-endian IEEE 754 floating point when cross compiling
"ac_cv_little_endian_double=yes"
"ac_cv_big_endian_double=no"
"ac_cv_mixed_endian_double=no"
"ac_cv_x87_double_rounding=yes"
"ac_cv_tanh_preserves_zero_sign=yes"
# Generally assume that things are present and work
"ac_cv_posix_semaphores_enabled=yes"
"ac_cv_broken_sem_getvalue=no"
"ac_cv_wchar_t_signed=yes"
"ac_cv_rshift_extends_sign=yes"
"ac_cv_broken_nice=no"
"ac_cv_broken_poll=no"
"ac_cv_working_tzset=yes"
"ac_cv_have_long_long_format=yes"
"ac_cv_have_size_t_format=yes"
"ac_cv_computed_gotos=yes"
"ac_cv_file__dev_ptmx=yes"
"ac_cv_file__dev_ptc=yes"
]
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity
substituteInPlace ./setup.py --replace $i /no-such-path
done
${optionalString stdenv.isDarwin ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6
''
+ optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"
''}
'';
setupHook = python-setup-hook sitePackages;
postInstall = ''
# needed for some packages, especially packages that backport functionality
# to 2.x from 3.x
for item in $out/lib/python${majorVersion}/test/*; do
if [[ "$item" != */test_support.py*
&& "$item" != */test/support
&& "$item" != */test/libregrtest
&& "$item" != */test/regrtest.py* ]]; then
rm -rf "$item"
else
echo $item
fi
done
touch $out/lib/python${majorVersion}/test/__init__.py
ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}"
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
# Determinism: Windows installers were not deterministic.
# We're also not interested in building Windows installers.
find "$out" -name 'wininst*.exe' | xargs -r rm -f
# Use Python3 as default python
ln -s "$out/bin/idle3" "$out/bin/idle"
ln -s "$out/bin/pydoc3" "$out/bin/pydoc"
ln -s "$out/bin/python3" "$out/bin/python"
ln -s "$out/bin/python3-config" "$out/bin/python-config"
ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc"
# Get rid of retained dependencies on -dev packages, and remove
# some $TMPDIR references to improve binary reproducibility.
# Note that the .pyc file of _sysconfigdata.py should be regenerated!
for i in $out/lib/python${majorVersion}/_sysconfigdata*.py $out/lib/python${majorVersion}/config-${majorVersion}m*/Makefile; do
sed -i $i -e "s|-I/nix/store/[^ ']*||g" -e "s|-L/nix/store/[^ ']*||g" -e "s|$TMPDIR|/no-such-path|g"
done
'' + optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
# Determinism: rebuild all bytecode
# We exclude lib2to3 because that's Python 2 code which fails
# We rebuild three times, once for each optimization level
find $out -name "*.py" | $out/bin/python -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | $out/bin/python -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | $out/bin/python -OO -m compileall -q -f -x "lib2to3" -i -
'';
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {
python = self;
overrides = packageOverrides;
};
in rec {
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
isPy3 = true;
isPy36 = true;
is_py3k = true; # deprecated
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true;
doCheck = false; # expensive, and fails
meta = {
homepage = http://python.org;
description = "A high-level dynamically-typed programming language";
longDescription = ''
Python is a remarkably powerful dynamic programming language that
is used in a wide variety of application domains. Some of its key
distinguishing features include: clear, readable syntax; strong
introspection capabilities; intuitive object orientation; natural
expression of procedural code; full modularity, supporting
hierarchical packages; exception-based error handling; and very
high level dynamic data types.
'';
license = licenses.psfl;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ fridh kragniz ];
};
}

View File

@ -8,7 +8,7 @@
, openssl , openssl
, readline , readline
, sqlite , sqlite
, tcl ? null, tk ? null, tix ? null, libX11 ? null, xproto ? null, x11Support ? false , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false
, zlib , zlib
, callPackage , callPackage
, self , self
@ -18,66 +18,85 @@
# For the Python package set # For the Python package set
, packageOverrides ? (self: super: {}) , packageOverrides ? (self: super: {})
, buildPackages , buildPackages
, sourceVersion
, sha256
, passthruFun
, bash
}: }:
assert x11Support -> tcl != null assert x11Support -> tcl != null
&& tk != null && tk != null
&& xproto != null && xorgproto != null
&& libX11 != null; && libX11 != null;
with stdenv.lib; with stdenv.lib;
let let
majorVersion = "3.7";
minorVersion = "2"; passthru = passthruFun rec {
minorVersionSuffix = ""; inherit self sourceVersion packageOverrides;
version = "${majorVersion}.${minorVersion}${minorVersionSuffix}"; implementation = "cpython";
libPrefix = "python${majorVersion}"; libPrefix = "python${pythonVersion}";
sitePackages = "lib/${libPrefix}/site-packages"; executable = libPrefix;
pythonVersion = with sourceVersion; "${major}.${minor}";
sitePackages = "lib/${libPrefix}/site-packages";
inherit pythonForBuild;
};
version = with sourceVersion; "${major}.${minor}.${patch}${suffix}";
nativeBuildInputs = [
nukeReferences
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
buildPackages.stdenv.cc
pythonForBuild
];
buildInputs = filter (p: p != null) [ buildInputs = filter (p: p != null) [
zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl nukeReferences ] zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
++ optionals x11Support [ tcl tk libX11 xproto ] ++ optionals x11Support [ tcl tk libX11 xorgproto ]
++ optionals stdenv.isDarwin [ CF configd ]; ++ optionals stdenv.isDarwin [ CF configd ];
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
pythonForBuild = if stdenv.hostPlatform == stdenv.buildPlatform then
pythonForBuild = buildPackages.${"python${sourceVersion.major}${sourceVersion.minor}"};
pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then
"$out/bin/python" "$out/bin/python"
else else pythonForBuild.interpreter;
buildPackages.python37.interpreter;
in stdenv.mkDerivation {
name = "python3-${version}";
pythonVersion = majorVersion;
inherit majorVersion version;
inherit buildInputs; in with passthru; stdenv.mkDerivation {
pname = "python3";
inherit version;
nativeBuildInputs = inherit buildInputs nativeBuildInputs;
optionals (stdenv.hostPlatform != stdenv.buildPlatform)
[ buildPackages.stdenv.cc buildPackages.python37 ];
src = fetchurl { src = fetchurl {
url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz"; url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz";
sha256 = "1fzi9d2gibh0wzwidyckzbywsxcsbckgsl05ryxlifxia77fhgyq"; inherit sha256;
}; };
NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
# Determinism: We fix the hashes of str, bytes and datetime objects.
PYTHONHASHSEED=0;
prePatch = optionalString stdenv.isDarwin '' prePatch = optionalString stdenv.isDarwin ''
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"' substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' ' substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' '
''; '';
patches = [ patches = [
./no-ldconfig.patch # Disable the use of ldconfig in ctypes.util.find_library (since
# ldconfig doesn't work on NixOS), and don't use
# ctypes.util.find_library during the loading of the uuid module
# (since it will do a futile invocation of gcc (!) to find
# libuuid, slowing down program startup a lot).
(./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch")
] ++ optionals isPy35 [
# Backports support for LD_LIBRARY_PATH from 3.6
./3.5/ld_library_path.patch
] ++ optionals isPy37 [
# Fix darwin build https://bugs.python.org/issue34027 # Fix darwin build https://bugs.python.org/issue34027
(fetchpatch { (fetchpatch {
url = https://bugs.python.org/file47666/darwin-libutil.patch; url = https://bugs.python.org/file47666/darwin-libutil.patch;
sha256 = "0242gihnw3wfskl4fydp2xanpl8k5q7fj4dp7dbbqf46a4iwdzpa"; sha256 = "0242gihnw3wfskl4fydp2xanpl8k5q7fj4dp7dbbqf46a4iwdzpa";
}) })
] ++ optionals hasDistutilsCxxPatch [ ] ++ optionals (isPy3k && hasDistutilsCxxPatch) [
# Fix for http://bugs.python.org/issue1222585 # Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which # Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++ # only works for GCC and Apple Clang. This makes distutils to call C++
@ -93,9 +112,12 @@ in stdenv.mkDerivation {
substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
''; '';
CPPFLAGS="${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}"; CPPFLAGS = "${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}";
LDFLAGS="${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}"; LDFLAGS = "${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}";
LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}"; LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}";
NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
# Determinism: We fix the hashes of str, bytes and datetime objects.
PYTHONHASHSEED=0;
configureFlags = [ configureFlags = [
"--enable-shared" "--enable-shared"
@ -125,16 +147,25 @@ in stdenv.mkDerivation {
"ac_cv_computed_gotos=yes" "ac_cv_computed_gotos=yes"
"ac_cv_file__dev_ptmx=yes" "ac_cv_file__dev_ptmx=yes"
"ac_cv_file__dev_ptc=yes" "ac_cv_file__dev_ptc=yes"
] ++ optionals stdenv.hostPlatform.isLinux [
# Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms.
"ac_cv_func_lchmod=no"
]; ];
preConfigure = '' preConfigure = ''
for i in /usr /sw /opt /pkg; do # improve purity for i in /usr /sw /opt /pkg; do # improve purity
substituteInPlace ./setup.py --replace $i /no-such-path substituteInPlace ./setup.py --replace $i /no-such-path
done done
${optionalString stdenv.isDarwin '' '' + optionalString stdenv.isDarwin ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2" export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6 export MACOSX_DEPLOYMENT_TARGET=10.6
''} '' + optionalString (isPy3k && pythonOlder "3.7") ''
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
# This way python does not try to update them when we freeze timestamps in nix store.
export DETERMINISTIC_BUILD=1;
'' + optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"
''; '';
setupHook = python-setup-hook sitePackages; setupHook = python-setup-hook sitePackages;
@ -142,7 +173,7 @@ in stdenv.mkDerivation {
postInstall = '' postInstall = ''
# needed for some packages, especially packages that backport functionality # needed for some packages, especially packages that backport functionality
# to 2.x from 3.x # to 2.x from 3.x
for item in $out/lib/python${majorVersion}/test/*; do for item in $out/lib/${libPrefix}/test/*; do
if [[ "$item" != */test_support.py* if [[ "$item" != */test_support.py*
&& "$item" != */test/support && "$item" != */test/support
&& "$item" != */test/libregrtest && "$item" != */test/libregrtest
@ -152,9 +183,9 @@ in stdenv.mkDerivation {
echo $item echo $item
fi fi
done done
touch $out/lib/python${majorVersion}/test/__init__.py touch $out/lib/${libPrefix}/test/__init__.py
ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}" ln -s "$out/include/${executable}m" "$out/include/${executable}"
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484 # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
@ -173,45 +204,40 @@ in stdenv.mkDerivation {
# Get rid of retained dependencies on -dev packages, and remove # Get rid of retained dependencies on -dev packages, and remove
# some $TMPDIR references to improve binary reproducibility. # some $TMPDIR references to improve binary reproducibility.
# Note that the .pyc file of _sysconfigdata.py should be regenerated! # Note that the .pyc file of _sysconfigdata.py should be regenerated!
for i in $out/lib/python${majorVersion}/_sysconfigdata*.py $out/lib/python${majorVersion}/config-${majorVersion}m*/Makefile; do for i in $out/lib/${libPrefix}/_sysconfigdata*.py $out/lib/${libPrefix}/config-${sourceVersion.major}${sourceVersion.minor}*/Makefile; do
sed -i $i -e "s|$TMPDIR|/no-such-path|g" sed -i $i -e "s|$TMPDIR|/no-such-path|g"
nuke-refs $i
done done
# Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668 # Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668
find $out/lib/python*/config-*-* -type f -print -exec nuke-refs '{}' + find $out/lib/python*/config-* -type f -print -exec nuke-refs '{}' +
find $out/lib -name '_sysconfigdata_m*.py*' -print -exec nuke-refs '{}' + find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs '{}' +
# Determinism: rebuild all bytecode # Determinism: rebuild all bytecode
# We exclude lib2to3 because that's Python 2 code which fails # We exclude lib2to3 because that's Python 2 code which fails
# We rebuild three times, once for each optimization level # We rebuild three times, once for each optimization level
# Python 3.7 implements PEP 552, introducing support for deterministic bytecode. # Python 3.7 implements PEP 552, introducing support for deterministic bytecode.
# This is automatically used when `SOURCE_DATE_EPOCH` is set. # This is automatically used when `SOURCE_DATE_EPOCH` is set.
find $out -name "*.py" | ${pythonForBuild} -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuild} -O -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuild} -OO -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
'';
preFixup = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
# Ensure patch-shebangs uses shebangs of host interpreter.
export PATH=${stdenv.lib.makeBinPath [ "$out" bash ]}:$PATH
''; '';
# Enforce that we don't have references to the OpenSSL -dev package, which we # Enforce that we don't have references to the OpenSSL -dev package, which we
# explicitly specify in our configure flags above. # explicitly specify in our configure flags above.
disallowedReferences = [ openssl.dev ]; disallowedReferences = [
openssl.dev
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# Ensure we don't have references to build-time packages.
# These typically end up in shebangs.
pythonForBuild buildPackages.bash
];
passthru = let inherit passthru;
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {
python = self;
overrides = packageOverrides;
};
in rec {
inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
isPy3 = true;
isPy37 = true;
is_py3k = true; # deprecated
interpreter = "${self}/bin/${executable}";
};
enableParallelBuilding = true; enableParallelBuilding = true;
@ -229,6 +255,6 @@ in stdenv.mkDerivation {
''; '';
license = licenses.psfl; license = licenses.psfl;
platforms = with platforms; linux ++ darwin; platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ fridh kragniz ]; maintainers = with maintainers; [ fridh ];
}; };
} }

View File

@ -0,0 +1,156 @@
{ pkgs, lib }:
with pkgs;
(let
# Common passthru for all Python interpreters.
passthruFun =
{ implementation
, libPrefix
, executable
, sourceVersion
, pythonVersion
, packageOverrides
, sitePackages
, pythonForBuild
, self
}: let
pythonPackages = callPackage ../../../top-level/python-packages.nix {
python = self;
overrides = packageOverrides;
};
in rec {
isPy27 = pythonVersion == "2.7";
isPy33 = pythonVersion == "3.3"; # TODO: remove
isPy34 = pythonVersion == "3.4"; # TODO: remove
isPy35 = pythonVersion == "3.5";
isPy36 = pythonVersion == "3.6";
isPy37 = pythonVersion == "3.7";
isPy2 = lib.strings.substring 0 1 pythonVersion == "2";
isPy3 = lib.strings.substring 0 1 pythonVersion == "3";
isPy3k = isPy3;
isPyPy = interpreter == "pypy";
buildEnv = callPackage ./wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ./with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
interpreter = "${self}/bin/${executable}";
inherit executable implementation libPrefix pythonVersion sitePackages;
inherit sourceVersion;
pythonAtLeast = lib.versionAtLeast pythonVersion;
pythonOlder = lib.versionOlder pythonVersion;
inherit pythonForBuild;
};
in {
python27 = callPackage ./cpython/2.7 {
self = python27;
sourceVersion = {
major = "2";
minor = "7";
patch = "15";
suffix = "";
};
sha256 = "0x2mvz9dp11wj7p5ccvmk9s0hzjk2fa1m462p395l4r6bfnb3n92";
inherit (darwin) CF configd;
inherit passthruFun;
};
python35 = callPackage ./cpython {
self = python35;
sourceVersion = {
major = "3";
minor = "5";
patch = "6";
suffix = "";
};
sha256 = "0pqmf51zy2lzhbaj4yya2py2qr653j9152d0rg3p7wi1yl2dwp7m";
inherit (darwin) CF configd;
inherit passthruFun;
};
python36 = callPackage ./cpython {
self = python36;
sourceVersion = {
major = "3";
minor = "6";
patch = "8";
suffix = "";
};
sha256 = "14qi6n5gpcjnwy165wi9hkfcmbadc95ny6bxxldknxwmx50n4i1m";
inherit (darwin) CF configd;
inherit passthruFun;
};
python37 = callPackage ./cpython {
self = python37;
sourceVersion = {
major = "3";
minor = "7";
patch = "2";
suffix = "";
};
sha256 = "1fzi9d2gibh0wzwidyckzbywsxcsbckgsl05ryxlifxia77fhgyq";
inherit (darwin) CF configd;
inherit passthruFun;
};
pypy27 = callPackage ./pypy {
self = pypy27;
sourceVersion = {
major = "6";
minor = "0";
patch = "0";
};
sha256 = "1qjwpc8n68sxxlfg36s5vn1h2gdfvvd6lxvr4lzbvfwhzrgqahsw";
pythonVersion = "2.7";
db = db.override { dbmSupport = true; };
python = python27;
inherit passthruFun;
};
pypy35 = callPackage ./pypy {
self = pypy35;
sourceVersion = {
major = "6";
minor = "0";
patch = "0";
};
sha256 = "0lwq8nn0r5yj01bwmkk5p7xvvrp4s550l8184mkmn74d3gphrlwg";
pythonVersion = "3.5";
db = db.override { dbmSupport = true; };
python = python27;
inherit passthruFun;
};
pypy27_prebuilt = callPackage ./pypy/prebuilt.nix {
# Not included at top-level
self = pythonInterpreters.pypy27_prebuilt;
sourceVersion = {
major = "6";
minor = "0";
patch = "0";
};
sha256 = "0rxgnp3fm18b87ln8bbjr13g2fsf4ka4abkaim6m03y9lwmr9gvc"; # linux64
pythonVersion = "2.7";
inherit passthruFun;
ncurses = ncurses5;
};
pypy35_prebuilt = callPackage ./pypy/prebuilt.nix {
# Not included at top-level
self = pythonInterpreters.pypy35_prebuilt;
sourceVersion = {
major = "6";
minor = "0";
patch = "0";
};
sha256 = "0j3h08s7wpglghasmym3baycpif5jshvmk9rpav4pwwy5clzmzsc"; # linux64
pythonVersion = "3.5";
inherit passthruFun;
ncurses = ncurses5;
};
})

View File

@ -77,7 +77,7 @@ let self = toPythonModule (python.stdenv.mkDerivation (builtins.removeAttrs attr
buildInputs = [ wrapPython ] buildInputs = [ wrapPython ]
++ lib.optional (lib.hasSuffix "zip" (attrs.src.name or "")) unzip ++ lib.optional (lib.hasSuffix "zip" (attrs.src.name or "")) unzip
++ lib.optional catchConflicts setuptools # If we no longer propagate setuptools # ++ lib.optional catchConflicts setuptools # If we no longer propagate setuptools
++ buildInputs ++ buildInputs
++ pythonPath; ++ pythonPath;
@ -100,9 +100,12 @@ let self = toPythonModule (python.stdenv.mkDerivation (builtins.removeAttrs attr
# Check if we have two packages with the same name in the closure and fail. # Check if we have two packages with the same name in the closure and fail.
# If this happens, something went wrong with the dependencies specs. # If this happens, something went wrong with the dependencies specs.
# Intentionally kept in a subdirectory, see catch_conflicts/README.md. # Intentionally kept in a subdirectory, see catch_conflicts/README.md.
${python.interpreter} ${./catch_conflicts}/catch_conflicts.py ${python.pythonForBuild.interpreter} ${./catch_conflicts}/catch_conflicts.py
'' + attrs.postFixup or ''''; '' + attrs.postFixup or '''';
# Python packages built through cross-compilation are always for the host platform.
disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ];
meta = { meta = {
# default to python's platforms # default to python's platforms
platforms = python.meta.platforms; platforms = python.meta.platforms;

View File

@ -1,136 +0,0 @@
{ stdenv, substituteAll, fetchurl
, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi
, sqlite, openssl, ncurses, python, expat, tcl, tk, tix, xlibsWrapper, libX11
, makeWrapper, callPackage, self, gdbm, db
, python-setup-hook
# For the Python package set
, packageOverrides ? (self: super: {})
}:
assert zlibSupport -> zlib != null;
let
version = "6.0.0";
pythonVersion = "2.7";
libPrefix = "pypy${pythonVersion}";
sitePackages = "site-packages";
pythonForPypy = python.withPackages (ppkgs: [ ppkgs.pycparser ]);
in stdenv.mkDerivation rec {
name = "pypy-${version}";
inherit version pythonVersion;
src = fetchurl {
url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2";
sha256 = "1qjwpc8n68sxxlfg36s5vn1h2gdfvvd6lxvr4lzbvfwhzrgqahsw";
};
nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [
bzip2 openssl pythonForPypy libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 gdbm db
] ++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc
++ stdenv.lib.optional zlibSupport zlib;
hardeningDisable = stdenv.lib.optional stdenv.isi686 "pic";
C_INCLUDE_PATH = stdenv.lib.makeSearchPathOutput "dev" "include" buildInputs;
LIBRARY_PATH = stdenv.lib.makeLibraryPath buildInputs;
LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath (stdenv.lib.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs);
patches = [
(substituteAll {
src = ./tk_tcl_paths.patch;
inherit tk tcl;
tk_dev = tk.dev;
tcl_dev = tcl;
tk_libprefix = tk.libPrefix;
tcl_libprefix = tcl.libPrefix;
})
];
postPatch = ''
substituteInPlace "lib-python/2.7/lib-tk/Tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
# hint pypy to find nix ncurses
substituteInPlace pypy/module/_minimal_curses/fficurses.py \
--replace "/usr/include/ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
--replace "ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
--replace "ncurses/term.h" "${ncurses.dev}/include/term.h" \
--replace "libraries=['curses']" "libraries=['ncurses']"
sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite.dev}/include'], library_dirs=['${sqlite.out}/lib']@" lib_pypy/_sqlite3_build.py
'';
buildPhase = ''
${pythonForPypy.interpreter} rpython/bin/rpython \
--make-jobs="$NIX_BUILD_CORES" \
-Ojit \
--batch pypy/goal/targetpypystandalone.py
'';
setupHook = python-setup-hook sitePackages;
doCheck = true;
checkPhase = ''
export TERMINFO="${ncurses.out}/share/terminfo/";
export TERM="xterm";
export HOME="$TMPDIR";
# disable shutils because it assumes gid 0 exists
# disable socket because it has two actual network tests that fail
# disable test_urllib2net, test_urllib2_localnet, and test_urllibnet because they require networking (example.com)
./pypy-c ./pypy/test_all.py --pypy=./pypy-c -k 'not ( test_urllib2net or test_urllibnet or test_urllib2_localnet or test_socket or test_shutil )' lib-python
'';
installPhase = ''
mkdir -p $out/{bin,include,lib,pypy-c}
cp -R {include,lib_pypy,lib-python,pypy-c} $out/pypy-c
cp libpypy-c.so $out/lib/
ln -s $out/pypy-c/pypy-c $out/bin/pypy
chmod +x $out/bin/pypy
# other packages expect to find stuff according to libPrefix
ln -s $out/pypy-c/include $out/include/${libPrefix}
ln -s $out/pypy-c/lib-python/${pythonVersion} $out/lib/${libPrefix}
# We must wrap the original, not the symlink.
# PyPy uses argv[0] to find its standard library, and while it knows
# how to follow symlinks, it doesn't know about wrappers. So, it
# will think the wrapper is the original. As long as the wrapper has
# the same path as the original, this is OK.
wrapProgram "$out/pypy-c/pypy-c" \
--set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$out/lib" \
--set LIBRARY_PATH "${LIBRARY_PATH}:$out/lib"
# verify cffi modules
$out/bin/pypy -c "import Tkinter;import sqlite3;import curses"
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
'';
passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec {
inherit zlibSupport libPrefix sitePackages;
executable = "pypy";
isPypy = true;
isPy2 = true;
isPy27 = true;
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
interpreter = "${self}/bin/${executable}";
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
};
enableParallelBuilding = true; # almost no parallelization without STM
meta = with stdenv.lib; {
homepage = http://pypy.org/;
description = "Fast, compliant alternative implementation of the Python language (2.7.13)";
license = licenses.mit;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ ];
};
}

View File

@ -1,17 +0,0 @@
--- pypy-pypy-84a2f3e6a7f8.org/lib_pypy/_tkinter/tklib_build.py 2017-10-03 11:49:20.000000000 +0100
+++ pypy-pypy-84a2f3e6a7f8/lib_pypy/_tkinter/tklib_build.py 2017-11-21 13:20:51.398607530 +0000
@@ -24,11 +24,11 @@
else:
# On some Linux distributions, the tcl and tk libraries are
# stored in /usr/include, so we must check this case also
- libdirs = []
+ libdirs = ["@tcl@/lib", "@tk@/lib"]
found = False
for _ver in ['', '8.6', '8.5']:
- incdirs = ['/usr/include/tcl' + _ver]
- linklibs = ['tcl' + _ver, 'tk' + _ver]
+ incdirs = ['@tcl_dev@/include', '@tk_dev@/include']
+ linklibs = ['@tcl_libprefix@', '@tk_libprefix@']
if os.path.isdir(incdirs[0]):
found = True
break

View File

@ -5,38 +5,54 @@
, python-setup-hook , python-setup-hook
# For the Python package set # For the Python package set
, packageOverrides ? (self: super: {}) , packageOverrides ? (self: super: {})
, sourceVersion
, pythonVersion
, sha256
, passthruFun
}: }:
assert zlibSupport -> zlib != null; assert zlibSupport -> zlib != null;
let with stdenv.lib;
version = "6.0.0";
pythonVersion = "3.5";
libPrefix = "pypy${pythonVersion}";
sitePackages = "site-packages";
let
isPy3k = substring 0 1 pythonVersion == "3";
passthru = passthruFun rec {
inherit self sourceVersion pythonVersion packageOverrides;
implementation = "pypy";
libPrefix = "pypy${pythonVersion}";
executable = "pypy${if isPy3k then "3" else ""}";
pythonForBuild = self; # No cross-compiling for now.
sitePackages = "site-packages";
};
pname = passthru.executable;
version = with sourceVersion; "${major}.${minor}.${patch}";
pythonForPypy = python.withPackages (ppkgs: [ ppkgs.pycparser ]); pythonForPypy = python.withPackages (ppkgs: [ ppkgs.pycparser ]);
in stdenv.mkDerivation rec { in with passthru; stdenv.mkDerivation rec {
name = "pypy3-${version}"; inherit pname version;
inherit version pythonVersion;
src = fetchurl { src = fetchurl {
url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2"; url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2";
sha256 = "0lwq8nn0r5yj01bwmkk5p7xvvrp4s550l8184mkmn74d3gphrlwg"; inherit sha256;
}; };
nativeBuildInputs = [ pkgconfig makeWrapper ]; nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [ buildInputs = [
bzip2 openssl pythonForPypy libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 gdbm db lzma bzip2 openssl pythonForPypy libffi ncurses expat sqlite tk tcl xlibsWrapper libX11 gdbm db
] ++ stdenv.lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ] ++ optionals isPy3k [
++ stdenv.lib.optional zlibSupport zlib; lzma
] ++ optionals (stdenv ? cc && stdenv.cc.libc != null) [
stdenv.cc.libc
] ++ optionals zlibSupport [
zlib
];
hardeningDisable = stdenv.lib.optional stdenv.isi686 "pic"; hardeningDisable = optional stdenv.isi686 "pic";
C_INCLUDE_PATH = stdenv.lib.makeSearchPathOutput "dev" "include" buildInputs; C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" buildInputs;
LIBRARY_PATH = stdenv.lib.makeLibraryPath buildInputs; LIBRARY_PATH = makeLibraryPath buildInputs;
LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath (stdenv.lib.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs); LD_LIBRARY_PATH = makeLibraryPath (filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs);
patches = [ patches = [
(substituteAll { (substituteAll {
@ -50,7 +66,7 @@ in stdenv.mkDerivation rec {
]; ];
postPatch = '' postPatch = ''
substituteInPlace "lib-python/3/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" substituteInPlace "lib-python/${if isPy3k then "3/tkinter/tix.py" else "2.7/lib-tk/Tix.py"}" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
# hint pypy to find nix ncurses # hint pypy to find nix ncurses
substituteInPlace pypy/module/_minimal_curses/fficurses.py \ substituteInPlace pypy/module/_minimal_curses/fficurses.py \
@ -72,60 +88,63 @@ in stdenv.mkDerivation rec {
setupHook = python-setup-hook sitePackages; setupHook = python-setup-hook sitePackages;
doCheck = true; doCheck = true;
checkPhase = '' checkPhase = let
disabledTests = [
# disable shutils because it assumes gid 0 exists
"test_shutil"
# disable socket because it has two actual network tests that fail
"test_socket"
] ++ optionals (!isPy3k) [
# disable test_urllib2net, test_urllib2_localnet, and test_urllibnet because they require networking (example.com)
"test_urllib2net"
"test_urllibnet"
"test_urllib2_localnet"
] ++ optionals isPy3k [
# disable asyncio due to https://github.com/NixOS/nix/issues/1238
"test_asyncio"
# disable os due to https://github.com/NixOS/nixpkgs/issues/10496
"test_os"
# disable pathlib due to https://bitbucket.org/pypy/pypy/pull-requests/594
"test_pathlib"
# disable tarfile because it assumes gid 0 exists
"test_tarfile"
];
in ''
export TERMINFO="${ncurses.out}/share/terminfo/"; export TERMINFO="${ncurses.out}/share/terminfo/";
export TERM="xterm"; export TERM="xterm";
export HOME="$TMPDIR"; export HOME="$TMPDIR";
# disable asyncio due to https://github.com/NixOS/nix/issues/1238
# disable os due to https://github.com/NixOS/nixpkgs/issues/10496 ${pythonForPypy.interpreter} ./pypy/test_all.py --pypy=./${executable}-c -k 'not (${concatStringsSep " or " disabledTests})' lib-python
# disable pathlib due to https://bitbucket.org/pypy/pypy/pull-requests/594
# disable shutils because it assumes gid 0 exists
# disable socket because it has two actual network tests that fail
# disable tarfile because it assumes gid 0 exists
${pythonForPypy.interpreter} ./pypy/test_all.py --pypy=./pypy3-c -k 'not ( test_asyncio or test_os or test_pathlib or test_shutil or test_socket or test_tarfile )' lib-python
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/{bin,include,lib,pypy3-c} mkdir -p $out/{bin,include,lib,${executable}-c}
cp -R {include,lib_pypy,lib-python,pypy3-c} $out/pypy3-c cp -R {include,lib_pypy,lib-python,${executable}-c} $out/${executable}-c
cp libpypy3-c.so $out/lib/ cp lib${executable}-c.so $out/lib/
ln -s $out/pypy3-c/pypy3-c $out/bin/pypy3 ln -s $out/${executable}-c/${executable}-c $out/bin/${executable}
# other packages expect to find stuff according to libPrefix # other packages expect to find stuff according to libPrefix
ln -s $out/pypy3-c/include $out/include/${libPrefix} ln -s $out/${executable}/include $out/include/${libPrefix}
ln -s $out/pypy3-c/lib-python/3 $out/lib/${libPrefix} ln -s $out/${executable}-c/lib-python/${if isPy3k then "3" else pythonVersion} $out/lib/${libPrefix}
# We must wrap the original, not the symlink. # We must wrap the original, not the symlink.
# PyPy uses argv[0] to find its standard library, and while it knows # PyPy uses argv[0] to find its standard library, and while it knows
# how to follow symlinks, it doesn't know about wrappers. So, it # how to follow symlinks, it doesn't know about wrappers. So, it
# will think the wrapper is the original. As long as the wrapper has # will think the wrapper is the original. As long as the wrapper has
# the same path as the original, this is OK. # the same path as the original, this is OK.
wrapProgram "$out/pypy3-c/pypy3-c" \ wrapProgram "$out/${executable}-c/${executable}-c" \
--set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$out/lib" \ --set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$out/lib" \
--set LIBRARY_PATH "${LIBRARY_PATH}:$out/lib" --set LIBRARY_PATH "${LIBRARY_PATH}:$out/lib"
# verify cffi modules # verify cffi modules
$out/bin/pypy3 -c "import tkinter;import sqlite3;import curses;import lzma" $out/bin/${executable} -c ${if isPy3k then "'import tkinter;import sqlite3;import curses;import lzma'" else "'import Tkinter;import sqlite3;import curses'"}
# Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484 # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
''; '';
passthru = let inherit passthru;
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec {
inherit zlibSupport libPrefix sitePackages;
executable = "pypy3";
isPypy = true;
isPy3 = true;
isPy35 = true;
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
interpreter = "${self}/bin/${executable}";
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
pkgs = pythonPackages;
};
enableParallelBuilding = true; # almost no parallelization without STM enableParallelBuilding = true; # almost no parallelization without STM
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,123 @@
{ stdenv
, fetchurl
, python-setup-hook
, self
, which
# Dependencies
, bzip2
, zlib
, openssl
, expat
, libffi
, ncurses
, tcl
, tk
# For the Python package set
, packageOverrides ? (self: super: {})
, sourceVersion
, pythonVersion
, sha256
, passthruFun
}:
# This version of PyPy is primarily added to speed-up translation of
# our PyPy source build when developing that expression.
with stdenv.lib;
let
isPy3k = majorVersion == "3";
passthru = passthruFun rec {
inherit self sourceVersion pythonVersion packageOverrides;
implementation = "pypy";
libPrefix = "pypy${pythonVersion}";
executable = "pypy${if isPy3k then "3" else ""}";
pythonForBuild = self; # Not possible to cross-compile with.
sitePackages = "site-packages";
};
pname = "${passthru.executable}_prebuilt";
version = with sourceVersion; "${major}.${minor}.${patch}";
majorVersion = substring 0 1 pythonVersion;
setupHook = python-setup-hook sitePackages;
deps = [
bzip2
zlib
openssl
expat
libffi
ncurses
tcl
tk
];
in with passthru; stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url= "https://bitbucket.org/pypy/pypy/downloads/pypy${majorVersion}-v${version}-linux64.tar.bz2";
inherit sha256;
};
buildInputs = [ which ];
installPhase = ''
mkdir -p $out/lib
echo "Moving files to $out"
mv -t $out bin include lib-python lib_pypy site-packages
mv $out/bin/libpypy*-c.so $out/lib/
rm $out/bin/*.debug
echo "Patching binaries"
interpreter=$(patchelf --print-interpreter $(readlink -f $(which patchelf)))
patchelf --set-interpreter $interpreter \
--set-rpath $out/lib \
$out/bin/pypy*
pushd $out
find {lib,lib_pypy*} -name "*.so" -exec patchelf --replace-needed "libbz2.so.1.0" "libbz2.so.1" {} \;
find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${stdenv.lib.makeLibraryPath deps} {} \;
echo "Removing bytecode"
find . -name "__pycache__" -type d -depth -exec rm -rf {} \;
popd
'';
doInstallCheck = true;
# Check whether importing of (extension) modules functions
installCheckPhase = let
modules = [
"ssl"
"sys"
"curses"
] ++ optionals (!isPy3k) [
"Tkinter"
] ++ optionals isPy3k [
"tkinter"
];
imports = concatMapStringsSep "; " (x: "import ${x}") modules;
in ''
echo "Testing whether we can import modules"
$out/bin/${executable} -c '${imports}'
'';
setupHook = python-setup-hook sitePackages;
donPatchElf = true;
dontStrip = true;
inherit passthru;
meta = with stdenv.lib; {
homepage = http://pypy.org/;
description = "Fast, compliant alternative implementation of the Python language (3.5.3)";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
};
}

View File

@ -9,7 +9,8 @@ makeSetupHook {
deps = makeWrapper; deps = makeWrapper;
substitutions.sitePackages = python.sitePackages; substitutions.sitePackages = python.sitePackages;
substitutions.executable = python.interpreter; substitutions.executable = python.interpreter;
substitutions.python = python; substitutions.python = python.pythonForBuild;
substitutions.pythonHost = python;
substitutions.magicalSedExpression = let substitutions.magicalSedExpression = let
# Looks weird? Of course, it's between single quoted shell strings. # Looks weird? Of course, it's between single quoted shell strings.
# NOTE: Order DOES matter here, so single character quotes need to be # NOTE: Order DOES matter here, so single character quotes need to be

View File

@ -16,8 +16,8 @@ buildPythonPath() {
declare -A pythonPathsSeen=() declare -A pythonPathsSeen=()
program_PYTHONPATH= program_PYTHONPATH=
program_PATH= program_PATH=
pythonPathsSeen["@python@"]=1 pythonPathsSeen["@pythonHost@"]=1
addToSearchPath program_PATH @python@/bin addToSearchPath program_PATH @pythonHost@/bin
for path in $pythonPath; do for path in $pythonPath; do
_addToPythonPath $path _addToPythonPath $path
done done
@ -53,7 +53,13 @@ wrapPythonProgramsIn() {
# Strip suffix, like "3" or "2.7m" -- we don't have any choice on which # Strip suffix, like "3" or "2.7m" -- we don't have any choice on which
# Python to use besides one with this hook anyway. # Python to use besides one with this hook anyway.
if head -n1 "$f" | grep -q '#!.*/env.*\(python\|pypy\)'; then if head -n1 "$f" | grep -q '#!.*/env.*\(python\|pypy\)'; then
sed -i "$f" -e "1 s^.*/env[ ]*\(python\|pypy\)[^ ]*^#! @executable@^" sed -i "$f" -e "1 s^.*/env[ ]*\(python\|pypy\)[^ ]*^#!@executable@^"
fi
if head -n1 "$f" | grep -q '#!.*'; then
# Cross-compilation hack: ensure shebangs are for the host
echo "Rewriting $(head -n 1 $f) to #!@pythonHost@"
sed -i "$f" -e "1 s^#!@python@^#!@pythonHost@^"
fi fi
# catch /python and /.python-wrapped # catch /python and /.python-wrapped

View File

@ -1,7 +1,7 @@
{ stdenv, config, libGLSupported, fetchurl, pkgconfig, pruneLibtoolFiles { stdenv, config, libGLSupported, fetchurl, pkgconfig, pruneLibtoolFiles
, openglSupport ? libGLSupported, libGL , openglSupport ? libGLSupported, libGL
, alsaSupport ? stdenv.isLinux, alsaLib , alsaSupport ? stdenv.isLinux, alsaLib
, x11Support ? !stdenv.isCygwin, libX11, xproto, libICE, libXi, libXScrnSaver, libXcursor, libXinerama, libXext, libXxf86vm, libXrandr , x11Support ? !stdenv.isCygwin, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor, libXinerama, libXext, libXxf86vm, libXrandr
, waylandSupport ? stdenv.isLinux, wayland, wayland-protocols, libxkbcommon , waylandSupport ? stdenv.isLinux, wayland, wayland-protocols, libxkbcommon
, dbusSupport ? stdenv.isLinux, dbus , dbusSupport ? stdenv.isLinux, dbus
, udevSupport ? false, udev , udevSupport ? false, udev
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
# Propagated for #include <GLES/gl.h> in SDL_opengles.h. # Propagated for #include <GLES/gl.h> in SDL_opengles.h.
++ optional openglSupport libGL ++ optional openglSupport libGL
# Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h. # Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h.
++ optionals x11Support [ libX11 xproto ]; ++ optionals x11Support [ libX11 xorgproto ];
dlopenBuildInputs = [ ] dlopenBuildInputs = [ ]
++ optional alsaSupport alsaLib ++ optional alsaSupport alsaLib

View File

@ -1,8 +1,8 @@
{ stdenv, fetchFromGitHub, fetchpatch, texinfo, libXext, xextproto, libX11, xproto { stdenv, fetchFromGitHub, fetchpatch, texinfo, libXext, xorgproto, libX11
, libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis , libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
, libXxf86dga, libXxf86misc, xf86dgaproto, xf86miscproto , libXxf86dga, libXxf86misc
, xf86vidmodeproto, libXxf86vm, openal, libGLU_combined, kbproto, libjpeg, flac , libXxf86vm, openal, libGLU_combined, libjpeg, flac
, inputproto, libXi, fixesproto, libXfixes, freetype, libopus, libtheora , libXi, libXfixes, freetype, libopus, libtheora
, physfs, enet, pkgconfig, gtk2, pcre, libpulseaudio, libpthreadstubs , physfs, enet, pkgconfig, gtk2, pcre, libpulseaudio, libpthreadstubs
, libXdmcp , libXdmcp
}: }:
@ -19,11 +19,11 @@ stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
texinfo libXext xextproto libX11 xproto libXpm libXt libXcursor texinfo libXext xorgproto libX11 libXpm libXt libXcursor
alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal libGLU_combined libXxf86vm openal libGLU_combined
kbproto libjpeg flac libjpeg flac
inputproto libXi fixesproto libXfixes libXi libXfixes
enet libtheora freetype physfs libopus pkgconfig gtk2 pcre libXdmcp enet libtheora freetype physfs libopus pkgconfig gtk2 pcre libXdmcp
libpulseaudio libpthreadstubs libpulseaudio libpthreadstubs
]; ];

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, texinfo, libXext, xextproto, libX11, xproto { stdenv, fetchurl, texinfo, libXext, xorgproto, libX11
, libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis , libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
, libXxf86dga, libXxf86misc, xf86dgaproto, xf86miscproto , libXxf86dga, libXxf86misc
, xf86vidmodeproto, libXxf86vm, openal, libGLU_combined }: , libXxf86vm, openal, libGLU_combined }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "allegro-${version}"; name = "allegro-${version}";
@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
]; ];
buildInputs = [ buildInputs = [
texinfo libXext xextproto libX11 xproto libXpm libXt libXcursor texinfo libXext xorgproto libX11 libXpm libXt libXcursor
alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
xf86dgaproto xf86miscproto xf86vidmodeproto libXxf86vm openal libGLU_combined libXxf86vm openal libGLU_combined
]; ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

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