mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-27 05:43:50 +03:00
Merge master into staging
This commit is contained in:
commit
f8701caafc
@ -202,7 +202,7 @@ rec {
|
||||
callPackage = self.newScope {};
|
||||
overrideScope = g:
|
||||
makeScope newScope
|
||||
(self_: let super = f self_; in super // g super self_);
|
||||
(lib.fixed-points.extends f g);
|
||||
packages = f;
|
||||
};
|
||||
in self;
|
||||
|
@ -50,7 +50,7 @@ in
|
||||
|
||||
package = mkOption {
|
||||
internal = true;
|
||||
type = types.path;
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
The input method method package.
|
||||
|
@ -40,15 +40,8 @@ with lib;
|
||||
'';
|
||||
|
||||
services.udev.packages = [ pkgs.udisks2 ];
|
||||
|
||||
systemd.services.udisks2 = {
|
||||
description = "Udisks2 service";
|
||||
serviceConfig = {
|
||||
Type = "dbus";
|
||||
BusName = "org.freedesktop.UDisks2";
|
||||
ExecStart = "${pkgs.udisks2}/libexec/udisks2/udisksd --no-debug";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.packages = [ pkgs.udisks2 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ let
|
||||
IPv4 = true
|
||||
IPv6 = true
|
||||
SSL = ${boolToString confOpts.useSSL}
|
||||
${lib.optionalString (confOpts.uriPrefix != null) "URIPrefix = ${confOpts.uriPrefix}"}
|
||||
</Listener>
|
||||
|
||||
<User ${confOpts.userName}>
|
||||
@ -310,6 +311,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
uriPrefix = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/znc/";
|
||||
description = ''
|
||||
An optional URI prefix for the ZNC web interface. Can be
|
||||
used to make ZNC available behind a reverse proxy.
|
||||
'';
|
||||
};
|
||||
|
||||
extraZncConf = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
|
90
pkgs/applications/audio/pulseeffects/default.nix
Normal file
90
pkgs/applications/audio/pulseeffects/default.nix
Normal file
@ -0,0 +1,90 @@
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkgconfig
|
||||
, libxml2
|
||||
, desktop-file-utils
|
||||
, wrapGAppsHook
|
||||
, gst_all_1
|
||||
, pulseaudio
|
||||
, gtk3
|
||||
, glib
|
||||
, glibmm
|
||||
, gtkmm3
|
||||
, lilv
|
||||
, lv2
|
||||
, serd
|
||||
, sord
|
||||
, sratom
|
||||
, libbs2b
|
||||
, boost
|
||||
, calf
|
||||
, zam-plugins
|
||||
, rubberband
|
||||
, mda_lv2
|
||||
}:
|
||||
|
||||
let
|
||||
lv2Plugins = [
|
||||
calf # limiter, compressor exciter, bass enhancer and others
|
||||
mda_lv2 # loudness
|
||||
];
|
||||
ladspaPlugins = [
|
||||
rubberband # pitch shifting
|
||||
zam-plugins # maximizer
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "pulseeffects-${version}";
|
||||
version = "4.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wwmm";
|
||||
repo = "pulseeffects";
|
||||
rev = "v${version}";
|
||||
sha256 = "1f89msg8hzaf1pa9w3gaifb88dm0ca2wd81jlz3vr98hm7kxd85k";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pulseaudio
|
||||
glib
|
||||
glibmm
|
||||
gtk3
|
||||
gtkmm3
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-bad
|
||||
lilv lv2 serd sord sratom
|
||||
libbs2b
|
||||
boost
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--set LV2_PATH "${stdenv.lib.makeSearchPath "lib/lv2" lv2Plugins}"
|
||||
--set LADSPA_PATH "${stdenv.lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
|
||||
homepage = https://github.com/wwmm/pulseeffects;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ jtojnar ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -2,14 +2,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ghostwriter";
|
||||
version = "1.6.2";
|
||||
version = "1.7.0";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wereturtle";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0251563zy0q69fzfacvalpx43y15cshb0bhshyd4w37061gh1c12";
|
||||
sha256 = "00nlk5gazlfnndanhhjj5hlvkkp9yfx5mj6jq0jz37mk8mn6rzln";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake pkgconfig ];
|
||||
|
@ -5,12 +5,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.27.0";
|
||||
version = "3.27.1";
|
||||
name = "calibre-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||
sha256 = "1367fhgqynh6ic318wppv4m7343ghvdgazm4qq2jqli8y1gxdfbz";
|
||||
sha256 = "0hmdlnwrfql2b675xmjf50hnnrrkv5jbky0ssdpyfjfa5vxya2bh";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -20,6 +20,14 @@ let
|
||||
sha256 = "1lvb14qclrx0qf6qqx8a8hkx5akk5lk3dvcqz8760v9hya52pnfv";
|
||||
};
|
||||
});
|
||||
|
||||
guessit = super.guessit.overridePythonAttrs (old: rec {
|
||||
version = "2.1.4";
|
||||
src = old.src.override {
|
||||
inherit version;
|
||||
sha256 = "90e6f9fb49246ad27f34f8b9984357e22562ccc3059241cbc08b4fac1d401c56";
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
in
|
||||
@ -48,7 +56,7 @@ buildPythonApplication rec {
|
||||
chardet beautifulsoup4 html5lib
|
||||
PyRSS2Gen pynzb rpyc jinja2
|
||||
jsonschema requests dateutil
|
||||
pathpy guessit_2_0 APScheduler
|
||||
pathpy guessit APScheduler
|
||||
terminaltables colorclass
|
||||
cherrypy flask flask-restful
|
||||
flask-restplus flask-compress
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
buildGo110Package rec {
|
||||
name = "gomuks-${version}";
|
||||
version = "2018-05-16";
|
||||
version = "2018-07-10";
|
||||
|
||||
goPackagePath = "maunium.net/go/gomuks";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tulir";
|
||||
repo = "gomuks";
|
||||
rev = "512ca88804268bf58a754e8a02be556f953db317";
|
||||
sha256 = "1bpgjkpvqqks3ljw9s0hm5pgscjs4rjy8rfpl2444m4rbpz1xvmr";
|
||||
rev = "68db26bcace31297471641fe95f8882e301f5699";
|
||||
sha256 = "0dagdvsvn8nwqsvjbqk1c6gg2q1m40869nayrkwm3ndg2xkfdpm6";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, bazel }:
|
||||
{ stdenv, bazel, enableNixHacks ? true }:
|
||||
|
||||
args@{ name, bazelFlags ? [], bazelTarget, buildAttrs, fetchAttrs, ... }:
|
||||
|
||||
@ -17,14 +17,15 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
||||
nativeBuildInputs = fFetchAttrs.nativeBuildInputs or [] ++ [ bazel ];
|
||||
|
||||
preHook = fFetchAttrs.preHook or "" + ''
|
||||
export bazelOut="$NIX_BUILD_TOP/output"
|
||||
export bazelOut="$(echo ''${NIX_BUILD_TOP}/output | sed -e 's,//,/,g')"
|
||||
export bazelUserRoot="$(echo ''${NIX_BUILD_TOP}/tmp | sed -e 's,//,/,g')"
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
'';
|
||||
|
||||
buildPhase = fFetchAttrs.buildPhase or ''
|
||||
runHook preBuild
|
||||
|
||||
bazel --output_base="$bazelOut" fetch $bazelFlags $bazelTarget
|
||||
bazel --output_base="$bazelOut" --output_user_root="$bazelUserRoot" fetch $bazelFlags $bazelTarget
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
@ -52,10 +53,11 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
||||
outputHash = fetchAttrs.sha256;
|
||||
});
|
||||
|
||||
nativeBuildInputs = fBuildAttrs.nativeBuildInputs or [] ++ [ (bazel.override { enableNixHacks = true; }) ];
|
||||
nativeBuildInputs = fBuildAttrs.nativeBuildInputs or [] ++ [ (if enableNixHacks then (bazel.override { enableNixHacks = true; }) else bazel) ];
|
||||
|
||||
preHook = fBuildAttrs.preHook or "" + ''
|
||||
export bazelOut="$NIX_BUILD_TOP/output"
|
||||
export bazelUserRoot="$NIX_BUILD_TOP/tmp"
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
'';
|
||||
|
||||
@ -71,7 +73,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
|
||||
buildPhase = fBuildAttrs.buildPhase or ''
|
||||
runHook preBuild
|
||||
|
||||
bazel --output_base="$bazelOut" build -j $NIX_BUILD_CORES $bazelFlags $bazelTarget
|
||||
bazel --output_base="$bazelOut" --output_user_root="$bazelUserRoot" build -j $NIX_BUILD_CORES $bazelFlags $bazelTarget
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mate-user-guide-${version}";
|
||||
version = "1.20.1";
|
||||
version = "1.21.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://pub.mate-desktop.org/releases/${mate.getRelease version}/${name}.tar.xz";
|
||||
sha256 = "1k99cjg54wlipy5bfiv6v6za6gdzmilfvlvb0ingv4p51jp4iddr";
|
||||
sha256 = "0ayg570000calzpj51dwhh5mil11s0nrhl21c0si3sxr8f5cld6q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ itstool intltool libxml2 ];
|
||||
|
@ -510,8 +510,14 @@ self: super: {
|
||||
doctest-prop = dontCheck super.doctest-prop;
|
||||
|
||||
# Depends on itself for testing
|
||||
doctest-discover = addBuildTool super.doctest-discover (dontCheck super.doctest-discover);
|
||||
tasty-discover = addBuildTool super.tasty-discover (dontCheck super.tasty-discover);
|
||||
doctest-discover = addBuildTool super.doctest-discover
|
||||
(if pkgs.buildPlatform != pkgs.hostPlatform
|
||||
then self.buildHaskellPackages.doctest-discover
|
||||
else dontCheck super.doctest-discover);
|
||||
tasty-discover = addBuildTool super.tasty-discover
|
||||
(if pkgs.buildPlatform != pkgs.hostPlatform
|
||||
then self.buildHaskellPackages.tasty-discover
|
||||
else dontCheck super.tasty-discover);
|
||||
|
||||
# generic-deriving bound is too tight
|
||||
aeson = doJailbreak super.aeson;
|
||||
@ -597,7 +603,7 @@ self: super: {
|
||||
# Install icons, metadata and cli program.
|
||||
bustle = overrideCabal super.bustle (drv: {
|
||||
buildDepends = [ pkgs.libpcap ];
|
||||
buildTools = with pkgs; [ gettext perl help2man intltool ];
|
||||
buildTools = with pkgs.buildPackages; [ gettext perl help2man intltool ];
|
||||
patches = [
|
||||
# Add missing gio-unix-2.0 dependency
|
||||
(pkgs.fetchpatch {
|
||||
@ -665,7 +671,7 @@ self: super: {
|
||||
# Need newer versions of their dependencies than the ones we have in LTS-11.x.
|
||||
cabal2nix = super.cabal2nix.overrideScope (self: super: { hpack = self.hpack_0_28_2; hackage-db = self.hackage-db_2_0_1; });
|
||||
dbus-hslogger = super.dbus-hslogger.overrideScope (self: super: { dbus = self.dbus_1_0_1; });
|
||||
graphviz = (addBuildTool super.graphviz pkgs.graphviz).overrideScope (self: super: { wl-pprint-text = self.wl-pprint-text_1_2_0_0; base-compat = self.base-compat_0_10_4; });
|
||||
graphviz = (addBuildTool super.graphviz pkgs.buildPackages.graphviz).overrideScope (self: super: { wl-pprint-text = self.wl-pprint-text_1_2_0_0; base-compat = self.base-compat_0_10_4; });
|
||||
status-notifier-item = super.status-notifier-item.overrideScope (self: super: { dbus = self.dbus_1_0_1; });
|
||||
|
||||
# https://github.com/bos/configurator/issues/22
|
||||
@ -698,8 +704,8 @@ self: super: {
|
||||
jsaddle = dontCheck super.jsaddle;
|
||||
|
||||
# Tools that use gtk2hs-buildtools now depend on them in a custom-setup stanza
|
||||
cairo = addBuildTool super.cairo self.gtk2hs-buildtools;
|
||||
pango = disableHardening (addBuildTool super.pango self.gtk2hs-buildtools) ["fortify"];
|
||||
cairo = addBuildTool super.cairo self.buildHaskellPackages.gtk2hs-buildtools;
|
||||
pango = disableHardening (addBuildTool super.pango self.buildHaskellPackages.gtk2hs-buildtools) ["fortify"];
|
||||
gtk =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then appendConfigureFlag super.gtk "-fhave-quartz-gtk"
|
||||
|
@ -39,7 +39,7 @@ self: super: {
|
||||
# Build jailbreak-cabal with the latest version of Cabal.
|
||||
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_1_24_2_0; };
|
||||
|
||||
gtk2hs-buildtools = super.gtk2hs-buildtools.override { Cabal = self.Cabal_1_24_2_0; };
|
||||
gtk2hs-buildtools = super.gtk2hs-buildtools.override { Cabal = self.buildHaskellPackages.Cabal_1_24_2_0; };
|
||||
|
||||
# https://github.com/mrkkrp/megaparsec/issues/282
|
||||
megaparsec = addBuildDepend (dontCheck super.megaparsec) self.fail;
|
||||
|
@ -23,9 +23,9 @@ self: super:
|
||||
};
|
||||
in stage1 // stage2 // {
|
||||
|
||||
network = addBuildTools super.network (pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.libiconv);
|
||||
zlib = addBuildTools super.zlib (pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.libiconv);
|
||||
unix-compat = addBuildTools super.unix-compat (pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.libiconv);
|
||||
network = addBuildTools super.network (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
zlib = addBuildTools super.zlib (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
unix-compat = addBuildTools super.unix-compat (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
|
||||
# LLVM is not supported on this GHC; use the latest one.
|
||||
inherit (pkgs) llvmPackages;
|
||||
@ -121,7 +121,7 @@ self: super:
|
||||
});
|
||||
|
||||
ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
|
||||
setupHaskellDepends = (drv.setupHaskellDepends or []) ++ [ self.Cabal_1_24_2_0 ];
|
||||
setupHaskellDepends = (drv.setupHaskellDepends or []) ++ [ self.buildHaskellPackages.Cabal_1_24_2_0 ];
|
||||
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
|
||||
isLibrary = true;
|
||||
});
|
||||
|
@ -138,10 +138,10 @@ self: super: builtins.intersectAttrs super {
|
||||
else super.x509-system;
|
||||
|
||||
# https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216
|
||||
gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.gtk2hs-buildtools) pkgs.glib) ["fortify"];
|
||||
glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.gtk2hs-buildtools) pkgs.glib) ["fortify"];
|
||||
gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
|
||||
glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
|
||||
gtk3 = disableHardening (super.gtk3.override { inherit (pkgs) gtk3; }) ["fortify"];
|
||||
gtk = disableHardening (addPkgconfigDepend (addBuildTool super.gtk self.gtk2hs-buildtools) pkgs.gtk2) ["fortify"];
|
||||
gtk = disableHardening (addPkgconfigDepend (addBuildTool super.gtk self.buildHaskellPackages.gtk2hs-buildtools) pkgs.gtk2) ["fortify"];
|
||||
gtksourceview2 = addPkgconfigDepend super.gtksourceview2 pkgs.gtk2;
|
||||
gtk-traymanager = addPkgconfigDepend super.gtk-traymanager pkgs.gtk3;
|
||||
|
||||
@ -305,7 +305,7 @@ self: super: builtins.intersectAttrs super {
|
||||
|
||||
# https://github.com/edwinb/EpiVM/issues/13
|
||||
# https://github.com/edwinb/EpiVM/issues/14
|
||||
epic = addExtraLibraries (addBuildTool super.epic self.happy) [pkgs.boehmgc pkgs.gmp];
|
||||
epic = addExtraLibraries (addBuildTool super.epic self.buildHaskellPackages.happy) [pkgs.boehmgc pkgs.gmp];
|
||||
|
||||
# https://github.com/ekmett/wl-pprint-terminfo/issues/7
|
||||
wl-pprint-terminfo = addExtraLibrary super.wl-pprint-terminfo pkgs.ncurses;
|
||||
@ -469,10 +469,10 @@ self: super: builtins.intersectAttrs super {
|
||||
io-streams = enableCabalFlag super.io-streams "NoInteractiveTests";
|
||||
|
||||
# requires autotools to build
|
||||
secp256k1 = addBuildTools super.secp256k1 [ pkgs.autoconf pkgs.automake pkgs.libtool ];
|
||||
secp256k1 = addBuildTools super.secp256k1 [ pkgs.buildPackages.autoconf pkgs.buildPackages.automake pkgs.buildPackages.libtool ];
|
||||
|
||||
# tests require git
|
||||
hapistrano = addBuildTool super.hapistrano pkgs.git;
|
||||
hapistrano = addBuildTool super.hapistrano pkgs.buildPackages.git;
|
||||
|
||||
# This propagates this to everything depending on haskell-gi-base
|
||||
haskell-gi-base = addBuildDepend super.haskell-gi-base pkgs.gobjectIntrospection;
|
||||
|
@ -182,12 +182,14 @@ let
|
||||
depsBuildBuild = [ nativeGhc ];
|
||||
nativeBuildInputs = [ ghc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
|
||||
setupHaskellDepends ++
|
||||
buildTools ++ libraryToolDepends ++ executableToolDepends;
|
||||
buildTools ++ libraryToolDepends ++ executableToolDepends ++
|
||||
optionals doCheck testToolDepends ++
|
||||
optionals doBenchmark benchmarkToolDepends;
|
||||
propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends ++ libraryFrameworkDepends;
|
||||
otherBuildInputs = extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++ executableFrameworkDepends ++
|
||||
allPkgconfigDepends ++
|
||||
optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends ++ testFrameworkDepends) ++
|
||||
optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends ++ benchmarkFrameworkDepends);
|
||||
optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testFrameworkDepends) ++
|
||||
optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkFrameworkDepends);
|
||||
|
||||
allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
|
||||
|
||||
|
@ -382,4 +382,23 @@ rec {
|
||||
allPkgconfigDepends;
|
||||
};
|
||||
|
||||
# Utility to convert a directory full of `cabal2nix`-generated files into a
|
||||
# package override set
|
||||
#
|
||||
# packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet
|
||||
packagesFromDirectory =
|
||||
{ directory, ... }:
|
||||
|
||||
self: super:
|
||||
let
|
||||
haskellPaths = builtins.attrNames (builtins.readDir directory);
|
||||
|
||||
toKeyVal = file: {
|
||||
name = builtins.replaceStrings [ ".nix" ] [ "" ] file;
|
||||
|
||||
value = self.callPackage (directory + "/${file}") { };
|
||||
};
|
||||
|
||||
in
|
||||
builtins.listToAttrs (map toKeyVal haskellPaths);
|
||||
}
|
||||
|
@ -97,7 +97,20 @@ let
|
||||
};
|
||||
in stdenv.lib.makeOverridable drvScope (auto // manualArgs);
|
||||
|
||||
mkScope = scope: pkgs // pkgs.xorg // pkgs.gnome2 // { inherit stdenv; } // scope;
|
||||
mkScope = scope: let
|
||||
ps = pkgs.__splicedPackages;
|
||||
scopeSpliced = pkgs.splicePackages {
|
||||
pkgsBuildBuild = scope.buildHaskellPackages.buildHaskellPackages;
|
||||
pkgsBuildHost = scope.buildHaskellPackages;
|
||||
pkgsBuildTarget = {};
|
||||
pkgsHostHost = {};
|
||||
pkgsHostTarget = scope;
|
||||
pkgsTargetTarget = {};
|
||||
} // {
|
||||
# Don't splice these
|
||||
inherit (scope) ghc buildHaskellPackages;
|
||||
};
|
||||
in ps // ps.xorg // ps.gnome2 // { inherit stdenv; } // scopeSpliced;
|
||||
defaultScope = mkScope self;
|
||||
callPackage = drv: args: callPackageWithScope defaultScope drv args;
|
||||
|
||||
@ -150,7 +163,7 @@ let
|
||||
|
||||
in package-set { inherit pkgs stdenv callPackage; } self // {
|
||||
|
||||
inherit mkDerivation callPackage haskellSrc2nix hackage2nix;
|
||||
inherit mkDerivation callPackage haskellSrc2nix hackage2nix buildHaskellPackages;
|
||||
|
||||
inherit (haskellLib) packageSourceOverrides;
|
||||
|
||||
|
@ -65,6 +65,11 @@ in stdenv.mkDerivation {
|
||||
|
||||
patches = [
|
||||
./no-ldconfig.patch
|
||||
# Fix darwin build https://bugs.python.org/issue34027
|
||||
(fetchpatch {
|
||||
url = https://bugs.python.org/file47666/darwin-libutil.patch;
|
||||
sha256 = "0242gihnw3wfskl4fydp2xanpl8k5q7fj4dp7dbbqf46a4iwdzpa";
|
||||
})
|
||||
] ++ optionals hasDistutilsCxxPatch [
|
||||
# Fix for http://bugs.python.org/issue1222585
|
||||
# Upstream distutils is calling C compiler to compile C++ code, which
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }:
|
||||
|
||||
let
|
||||
version = "52.8.1";
|
||||
version = "52.9.0";
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "spidermonkey-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
|
||||
sha256 = "0yyg9405y19n22x1gybyl7vp6zglbl5h749rsvgv9bm4x5zlnys8";
|
||||
sha256 = "1mlx34fgh1kaqamrkl5isf0npch3mm6s4lz3jsjb7hakiijhj7f0";
|
||||
};
|
||||
|
||||
buildInputs = [ readline icu zlib nspr ];
|
||||
|
@ -1,18 +1,19 @@
|
||||
{stdenv, fetchurl}:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gf2x-${version}";
|
||||
version = "1.1";
|
||||
version = "1.2";
|
||||
|
||||
# or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
|
||||
src = fetchurl {
|
||||
url = "https://gforge.inria.fr/frs/download.php/file/30873/gf2x-1.1.tar.gz";
|
||||
sha256 = "17w4b39j9dvri5s278pxi8ha7mf47j87kq1lr802l4408rh02gqd";
|
||||
# find link to latest version (with file id) here: https://gforge.inria.fr/projects/gf2x/
|
||||
url = "https://gforge.inria.fr/frs/download.php/file/36934/gf2x-1.2.tar.gz";
|
||||
sha256 = "0d6vh1mxskvv3bxl6byp7gxxw3zzpkldrxnyajhnl05m0gx7yhk1";
|
||||
};
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
description = ''Routines for fast arithmetic in GF(2)[x]'';
|
||||
license = stdenv.lib.licenses.gpl2Plus;
|
||||
maintainers = [stdenv.lib.maintainers.raskin];
|
||||
platforms = ["x86_64-linux"];
|
||||
homepage = http://gf2x.gforge.inria.fr;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -1,8 +1,9 @@
|
||||
{ stdenv, fetchurl, fetchpatch, meson, ninja, gettext
|
||||
, pkgconfig, python, gst-plugins-base, orc
|
||||
, faacSupport ? false, faac ? null
|
||||
, faad2, libass, libkate, libmms
|
||||
, libmodplug, mpeg2dec
|
||||
, faad2, libass, libkate, libmms, librdf, ladspaH
|
||||
, libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
|
||||
, libbs2b, libmodplug, mpeg2dec
|
||||
, openjpeg, libopus, librsvg
|
||||
, wildmidi, fluidsynth, libvdpau, wayland
|
||||
, libwebp, xvidcore, gnutls, mjpegtools
|
||||
@ -42,6 +43,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0hy0rcn35alq65yqwri4fqjz2hf3nyyg5c7rnndk51msmqjxpprk";
|
||||
})
|
||||
./fix_pkgconfig_includedir.patch
|
||||
# Enable bs2b compilation
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=794346
|
||||
(fetchurl {
|
||||
url = https://bugzilla.gnome.org/attachment.cgi?id=369724;
|
||||
sha256 = "1716mp0h2866ab33w607isvfhv1zwyj71qb4jrkx5v0h276v1pwr";
|
||||
})
|
||||
];
|
||||
|
||||
src = fetchurl {
|
||||
@ -56,6 +63,10 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [
|
||||
gst-plugins-base orc
|
||||
faad2 libass libkate libmms
|
||||
libnice webrtc-audio-processing # webrtc
|
||||
libbs2b
|
||||
ladspaH librdf # ladspa plug-in
|
||||
lilv lv2 serd sord sratom # lv2 plug-in
|
||||
libmodplug mpeg2dec
|
||||
openjpeg libopus librsvg
|
||||
fluidsynth libvdpau
|
||||
|
34
pkgs/development/ocaml-modules/iri/default.nix
Normal file
34
pkgs/development/ocaml-modules/iri/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ stdenv, fetchFromGitLab, ocaml, findlib
|
||||
, sedlex, uunf, uutf
|
||||
}:
|
||||
|
||||
if !stdenv.lib.versionAtLeast ocaml.version "4.03"
|
||||
then throw "iri is not available for OCaml ${ocaml.version}"
|
||||
else
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.4.0";
|
||||
name = "ocaml${ocaml.version}-iri-${version}";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "framagit.org";
|
||||
owner = "zoggy";
|
||||
repo = "ocaml-iri";
|
||||
rev = version;
|
||||
sha256 = "0fsmfmzmyggm0h77a7mb0n41vqi6q4ln1xzsv72zbvysa7l8w84q";
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml findlib ];
|
||||
|
||||
propagatedBuildInputs = [ sedlex uunf uutf ];
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
||||
meta = {
|
||||
description = "IRI (RFC3987) native OCaml implementation";
|
||||
license = stdenv.lib.licenses.lgpl3;
|
||||
maintainers = [ stdenv.lib.maintainers.vbgl ];
|
||||
inherit (src.meta) homepage;
|
||||
inherit (ocaml.meta) platforms;
|
||||
};
|
||||
}
|
@ -1,11 +1,9 @@
|
||||
{ stdenv, buildOcaml, fetchFromGitHub, ocaml-migrate-parsetree }:
|
||||
{ stdenv, fetchFromGitHub, ocaml, findlib, ocaml-migrate-parsetree }:
|
||||
|
||||
buildOcaml rec {
|
||||
name = "ppx_tools_versioned";
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ocaml${ocaml.version}-ppx_tools_versioned-${version}";
|
||||
version = "5.1";
|
||||
|
||||
minimumSupportedOcamlVersion = "4.02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "let-def";
|
||||
repo = "ppx_tools_versioned";
|
||||
@ -13,6 +11,8 @@ buildOcaml rec {
|
||||
sha256 = "1c7kvca67qpyr4hiy492yik5x31lmkhyhy5wpl0l0fbx7fr7l624";
|
||||
};
|
||||
|
||||
buildInputs = [ ocaml findlib ];
|
||||
|
||||
propagatedBuildInputs = [ ocaml-migrate-parsetree ];
|
||||
|
||||
createFindlibDestdir = true;
|
||||
|
@ -1,31 +0,0 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pytestrunner
|
||||
, dateutil
|
||||
, babelfish
|
||||
, rebulk
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "guessit";
|
||||
version = "3.0.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "bf17e78783cf13bf903750770de4c3bb6c9ca89baafedb1612794660b6ebe32b";
|
||||
};
|
||||
|
||||
# Tests require more packages.
|
||||
doCheck = false;
|
||||
buildInputs = [ pytestrunner ];
|
||||
propagatedBuildInputs = [
|
||||
dateutil babelfish rebulk
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = https://pypi.python.org/pypi/guessit;
|
||||
license = lib.licenses.lgpl3;
|
||||
description = "A library for guessing information from video files";
|
||||
};
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
{ stdenv, buildBazelPackage, lib, fetchFromGitHub, git, jre, makeWrapper }:
|
||||
|
||||
buildBazelPackage rec {
|
||||
name = "bazel-deps-${version}";
|
||||
version = "2018-05-31";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/johnynek/bazel-deps";
|
||||
description = "Generate bazel dependencies for maven artifacts";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.uri-canva ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "johnynek";
|
||||
repo = "bazel-deps";
|
||||
rev = "dd7d0086d3a61c1d5c3370a0300824d0c75946e4";
|
||||
sha256 = "1h9ddgk6vn0bhnnkwwz4n1iqv2rcdj521dxhdwj5wwpndbciw855";
|
||||
};
|
||||
|
||||
bazelTarget = "//src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar";
|
||||
|
||||
buildInputs = [ git makeWrapper ];
|
||||
|
||||
fetchAttrs = {
|
||||
preInstall = ''
|
||||
# Remove all built in external workspaces, Bazel will recreate them when building
|
||||
rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker,local_*,\@local_*}
|
||||
# For each external workspace, remove all files that aren't referenced by Bazel
|
||||
# Many of these files are non-hermetic (for example .git/refs/remotes/origin/HEAD)
|
||||
files_to_delete=()
|
||||
for workspace in $(find $bazelOut/external -maxdepth 2 -name "WORKSPACE" -print0 | xargs -0L1 dirname); do
|
||||
workspaceOut="$NIX_BUILD_TOP/workspaces/$(basename workspace)/output"
|
||||
workspaceUserRoot="$NIX_BUILD_TOP/workspaces/$(basename workspace)/tmp"
|
||||
rm -rf $workspace/.git
|
||||
if ! targets_and_files=$(cd "$workspace" && bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" query '//...:*' 2> /dev/null | sort -u); then
|
||||
continue
|
||||
fi
|
||||
if ! targets=$(cd "$workspace" && bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" query '//...:all' 2> /dev/null | sort -u); then
|
||||
continue
|
||||
fi
|
||||
mapfile -t referenced_files < <(comm -23 <(printf '%s' "$targets_and_files") <(printf '%s' "$targets") | sed -e 's,^//:,,g' | sed -e 's,^//,,g' | sed -e 's,:,/,g')
|
||||
referenced_files+=( "WORKSPACE" )
|
||||
for referenced_file in "''${referenced_files[@]}"; do
|
||||
# Some of the referenced files are symlinks to non-referenced files.
|
||||
# The symlink targets have deterministic contents, but non-deterministic
|
||||
# paths. Copy them to the referenced path, which is deterministic.
|
||||
if target=$(readlink "$workspace/$referenced_file"); then
|
||||
rm "$workspace/$referenced_file"
|
||||
cp -a "$target" "$workspace/$referenced_file"
|
||||
fi
|
||||
done
|
||||
mapfile -t workspace_files_to_delete < <(find "$workspace" -type f -or -type l | sort -u | comm -23 - <(printf "$workspace/%s\n" "''${referenced_files[@]}" | sort -u))
|
||||
for workspace_file_to_delete in "''${workspace_files_to_delete[@]}"; do
|
||||
files_to_delete+=("$workspace_file_to_delete")
|
||||
done
|
||||
# We're running bazel in many different workspaces in a loop. Letting the
|
||||
# daemon shut down on its own would leave several daemons alive at the
|
||||
# same time, using up a lot of memory. Shut them down explicitly instead.
|
||||
bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" shutdown 2> /dev/null
|
||||
done
|
||||
for file_to_delete in "''${files_to_delete[@]}"; do
|
||||
rm "$file_to_delete"
|
||||
done
|
||||
find . -type d -empty -delete
|
||||
'';
|
||||
|
||||
sha256 = "0fh9jjwk3aq0kklhl9zyy8hj8gjm1y1fy4ygjinm0469w9jdgc3g";
|
||||
};
|
||||
|
||||
buildAttrs = {
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps
|
||||
cp gen_maven_deps.sh $out/bin
|
||||
wrapProgram "$out/bin/gen_maven_deps.sh" --set JAVA_HOME "${jre}" --prefix PATH : ${lib.makeBinPath [ jre ]}
|
||||
cp bazel-bin/src/scala/com/github/johnynek/bazel_deps/parseproject_deploy.jar $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps
|
||||
'';
|
||||
};
|
||||
}
|
@ -1,13 +1,13 @@
|
||||
{ runCommand, lib, sdk, platformName, writeText }:
|
||||
{ runCommand, lib, sdks, xcodePlatform, writeText }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib.generators) toPlist;
|
||||
|
||||
Info = {
|
||||
CFBundleIdentifier = platformName;
|
||||
CFBundleIdentifier = "com.apple.platform.${lib.toLower xcodePlatform}";
|
||||
Type = "Platform";
|
||||
Name = "macosx";
|
||||
Name = lib.toLower xcodePlatform;
|
||||
};
|
||||
|
||||
Version = {
|
||||
@ -285,14 +285,18 @@ let
|
||||
|
||||
in
|
||||
|
||||
runCommand "MacOSX.platform" {} ''
|
||||
install -D ${writeText "Info.plist" (toPlist {} Info)} $out/Info.plist
|
||||
install -D ${writeText "version.plist" (toPlist {} Version)} $out/version.plist
|
||||
install -D ${writeText "Architectures.xcspec" (toPlist {} Architectures)} $out/Developer/Library/Xcode/Specifications/Architectures.xcspec
|
||||
install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $out/Developer/Library/Xcode/Specifications/PackageTypes.xcspec
|
||||
install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $out/Developer/Library/Xcode/Specifications/ProductTypes.xcspec
|
||||
runCommand "Platforms" {} ''
|
||||
platform=$out/${xcodePlatform}.platform
|
||||
|
||||
mkdir -p $out/Developer/SDKs/
|
||||
cd $out/Developer/SDKs/
|
||||
cp -r ${sdk} ${sdk.name}
|
||||
install -D ${writeText "Info.plist" (toPlist {} Info)} $platform/Info.plist
|
||||
install -D ${writeText "version.plist" (toPlist {} Version)} $platform/version.plist
|
||||
install -D ${writeText "Architectures.xcspec" (toPlist {} Architectures)} $platform/Developer/Library/Xcode/Specifications/Architectures.xcspec
|
||||
install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec
|
||||
install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec
|
||||
|
||||
# per-platform bins go here
|
||||
mkdir -p $platform/usr/bin
|
||||
|
||||
mkdir -p $platform/Developer
|
||||
ln -s ${sdks} $platform/Developer/SDKs
|
||||
''
|
@ -1,11 +1,8 @@
|
||||
{ runCommand, lib, toolchainName, sdkName, writeText }:
|
||||
{ runCommand, lib, toolchainName, sdkName, writeText, version, xcodePlatform }:
|
||||
|
||||
let
|
||||
inherit (lib.generators) toPlist;
|
||||
|
||||
# TODO: expose MACOSX_DEPLOYMENT_TARGET in nix so we can use it here.
|
||||
version = "10.10";
|
||||
|
||||
SDKSettings = {
|
||||
CanonicalName = sdkName;
|
||||
DisplayName = sdkName;
|
||||
@ -21,9 +18,11 @@ let
|
||||
};
|
||||
in
|
||||
|
||||
runCommand "MacOSX${version}.sdk" {
|
||||
runCommand "SDKs" {
|
||||
inherit version;
|
||||
} ''
|
||||
install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $out/SDKSettings.plist
|
||||
install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $out/System/Library/CoreServices/SystemVersion.plist
|
||||
sdk=$out/${sdkName}.sdk
|
||||
install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist
|
||||
install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist
|
||||
ln -s $sdk $out/${xcodePlatform}.sdk
|
||||
''
|
@ -19,11 +19,9 @@ xcbuildInstallPhase () {
|
||||
runHook postInstall
|
||||
}
|
||||
|
||||
if [ -z "$dontUseXcbuild" ]; then
|
||||
buildPhase=xcbuildBuildPhase
|
||||
if [ -z "$installPhase" ]; then
|
||||
installPhase=xcbuildInstallPhase
|
||||
fi
|
||||
buildPhase=xcbuildBuildPhase
|
||||
if [ -z "$installPhase" ]; then
|
||||
installPhase=xcbuildInstallPhase
|
||||
fi
|
||||
|
||||
# if [ -d "*.xcodeproj" ]; then
|
||||
|
@ -1,69 +0,0 @@
|
||||
{ runCommand, toolchainName, fetchurl, makeWrapper, stdenv
|
||||
, buildPackages, lib, writeText }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) getBin optionalString;
|
||||
inherit (lib.generators) toPlist;
|
||||
|
||||
ToolchainInfo = {
|
||||
Identifier = toolchainName;
|
||||
};
|
||||
|
||||
# We could pull this out of developer_cmds but it adds an annoying
|
||||
# loop if we want to bootstrap and this is just a tiny script so I'm
|
||||
# not going to bother.
|
||||
mkdep-darwin-src = fetchurl {
|
||||
url = "https://opensource.apple.com/source/developer_cmds/developer_cmds-63/mkdep/mkdep.sh";
|
||||
sha256 = "0n4wpqfslfjs5zbys5yri8pfi2awyhlmknsf6laa5jzqbzq9x541";
|
||||
executable = true;
|
||||
};
|
||||
in
|
||||
|
||||
runCommand "nixpkgs.xctoolchain" {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
} (''
|
||||
mkdir -p $out
|
||||
install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $out/ToolchainInfo.plist
|
||||
|
||||
mkdir -p $out/usr/include
|
||||
mkdir -p $out/usr/lib
|
||||
mkdir -p $out/usr/libexec
|
||||
mkdir -p $out/usr/share
|
||||
mkdir -p $out/usr/bin
|
||||
|
||||
for bin in ${getBin stdenv.cc}/bin/*; do
|
||||
ln -s $bin $out/usr/bin
|
||||
done
|
||||
|
||||
for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do
|
||||
if ! [ -e "$out/usr/bin/$(basename $bin)" ]; then
|
||||
ln -s $bin $out/usr/bin
|
||||
fi
|
||||
done
|
||||
|
||||
ln -s ${buildPackages.yacc}/bin/yacc $out/usr/bin/yacc
|
||||
ln -s ${buildPackages.yacc}/bin/bison $out/usr/bin/bison
|
||||
ln -s ${buildPackages.flex}/bin/flex $out/usr/bin/flex
|
||||
ln -s ${buildPackages.flex}/bin/flex++ $out/usr/bin/flex++
|
||||
ln -s $out/bin/flex $out/usr/bin/lex
|
||||
|
||||
ln -s ${buildPackages.m4}/bin/m4 $out/usr/bin/m4
|
||||
ln -s $out/usr/bin/m4 $out/usr/bin/gm4
|
||||
|
||||
ln -s ${buildPackages.unifdef}/bin/unifdef $out/usr/bin/unifdef
|
||||
ln -s ${buildPackages.unifdef}/bin/unifdefall $out/usr/bin/unifdefall
|
||||
|
||||
ln -s ${buildPackages.gperf}/bin/gperf $out/usr/bin/gperf
|
||||
ln -s ${buildPackages.indent}/bin/indent $out/usr/bin/indent
|
||||
ln -s ${buildPackages.ctags}/bin/ctags $out/usr/bin/ctags
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do
|
||||
if ! [ -e "$out/usr/bin/$(basename $bin)" ]; then
|
||||
ln -s $bin $out/usr/bin
|
||||
fi
|
||||
done
|
||||
|
||||
ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $out/usr/bin
|
||||
ln -s ${mkdep-darwin-src} $out/usr/bin/mkdep
|
||||
'')
|
71
pkgs/development/tools/xcbuild/toolchains.nix
Normal file
71
pkgs/development/tools/xcbuild/toolchains.nix
Normal file
@ -0,0 +1,71 @@
|
||||
{ runCommand, toolchainName, fetchurl, makeWrapper, stdenv
|
||||
, buildPackages, lib, writeText }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) getBin optionalString;
|
||||
inherit (lib.generators) toPlist;
|
||||
|
||||
ToolchainInfo = {
|
||||
Identifier = toolchainName;
|
||||
};
|
||||
|
||||
# We could pull this out of developer_cmds but it adds an annoying
|
||||
# loop if we want to bootstrap and this is just a tiny script so I'm
|
||||
# not going to bother.
|
||||
mkdep-darwin-src = fetchurl {
|
||||
url = "https://opensource.apple.com/source/developer_cmds/developer_cmds-63/mkdep/mkdep.sh";
|
||||
sha256 = "0n4wpqfslfjs5zbys5yri8pfi2awyhlmknsf6laa5jzqbzq9x541";
|
||||
executable = true;
|
||||
};
|
||||
in
|
||||
|
||||
runCommand "Toolchains" {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
} (''
|
||||
toolchain=$out/XcodeDefault.xctoolchain
|
||||
mkdir -p $toolchain
|
||||
|
||||
install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist
|
||||
|
||||
mkdir -p $toolchain/usr/include
|
||||
mkdir -p $toolchain/usr/lib
|
||||
mkdir -p $toolchain/usr/libexec
|
||||
mkdir -p $toolchain/usr/share
|
||||
mkdir -p $toolchain/usr/bin
|
||||
|
||||
for bin in ${getBin stdenv.cc}/bin/*; do
|
||||
ln -s $bin $toolchain/usr/bin
|
||||
done
|
||||
|
||||
for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do
|
||||
if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
|
||||
ln -s $bin $toolchain/usr/bin
|
||||
fi
|
||||
done
|
||||
|
||||
ln -s ${buildPackages.yacc}/bin/yacc $toolchain/usr/bin/yacc
|
||||
ln -s ${buildPackages.yacc}/bin/bison $toolchain/usr/bin/bison
|
||||
ln -s ${buildPackages.flex}/bin/flex $toolchain/usr/bin/flex
|
||||
ln -s ${buildPackages.flex}/bin/flex++ $toolchain/usr/bin/flex++
|
||||
ln -s $toolchain/bin/flex $toolchain/usr/bin/lex
|
||||
|
||||
ln -s ${buildPackages.m4}/bin/m4 $toolchain/usr/bin/m4
|
||||
ln -s $toolchain/usr/bin/m4 $toolchain/usr/bin/gm4
|
||||
|
||||
ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/usr/bin/unifdef
|
||||
ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/usr/bin/unifdefall
|
||||
|
||||
ln -s ${buildPackages.gperf}/bin/gperf $toolchain/usr/bin/gperf
|
||||
ln -s ${buildPackages.indent}/bin/indent $toolchain/usr/bin/indent
|
||||
ln -s ${buildPackages.ctags}/bin/ctags $toolchain/usr/bin/ctags
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do
|
||||
if ! [ -e "$toolchain/usr/bin/$(basename $bin)" ]; then
|
||||
ln -s $bin $toolchain/usr/bin
|
||||
fi
|
||||
done
|
||||
|
||||
ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/usr/bin
|
||||
ln -s ${mkdep-darwin-src} $toolchain/usr/bin/mkdep
|
||||
'')
|
@ -1,80 +1,132 @@
|
||||
{ stdenv, buildPackages, makeWrapper, writeText, runCommand
|
||||
, CoreServices, ImageIO, CoreGraphics }:
|
||||
{ stdenv, lib, buildPackages, makeWrapper, writeText, runCommand
|
||||
, CoreServices, ImageIO, CoreGraphics
|
||||
, targetPlatform
|
||||
, xcodePlatform ? targetPlatform.xcodePlatform or "MacOSX"
|
||||
, xcodeVer ? targetPlatform.xcodeVer or "9.4.1"
|
||||
, sdkVer ? targetPlatform.sdkVer or "10.10" }:
|
||||
|
||||
let
|
||||
|
||||
inherit (lib) toLower;
|
||||
|
||||
toolchainName = "com.apple.dt.toolchain.XcodeDefault";
|
||||
platformName = "com.apple.platform.macosx";
|
||||
sdkName = "macosx10.10";
|
||||
sdkName = "${xcodePlatform}${sdkVer}";
|
||||
|
||||
# TODO: expose MACOSX_DEPLOYMENT_TARGET in nix so we can use it here.
|
||||
sdkBuildVersion = "17E189";
|
||||
xcodeSelectVersion = "2349";
|
||||
|
||||
xcbuild = buildPackages.callPackage ./default.nix {
|
||||
inherit CoreServices ImageIO CoreGraphics;
|
||||
};
|
||||
|
||||
toolchain = buildPackages.callPackage ./toolchain.nix {
|
||||
toolchains = buildPackages.callPackage ./toolchains.nix {
|
||||
inherit toolchainName;
|
||||
};
|
||||
|
||||
sdk = buildPackages.callPackage ./sdk.nix {
|
||||
inherit toolchainName sdkName;
|
||||
sdks = buildPackages.callPackage ./sdks.nix {
|
||||
inherit toolchainName sdkName xcodePlatform;
|
||||
version = sdkVer;
|
||||
};
|
||||
|
||||
platform = buildPackages.callPackage ./platform.nix {
|
||||
inherit sdk platformName;
|
||||
platforms = buildPackages.callPackage ./platforms.nix {
|
||||
inherit sdks xcodePlatform;
|
||||
};
|
||||
|
||||
xcconfig = writeText "nix.xcconfig" ''
|
||||
SDKROOT=${sdkName}
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "xcbuild-wrapper-${xcbuild.version}";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
for file in ${xcbuild}/bin/*; do
|
||||
ln -s $file $out/bin
|
||||
done
|
||||
|
||||
mkdir -p $out/usr
|
||||
ln -s $out/bin $out/usr/bin
|
||||
|
||||
mkdir -p $out/Library/Xcode
|
||||
ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications
|
||||
|
||||
mkdir -p $out/Platforms
|
||||
ln -s ${platform} $out/Platforms/nixpkgs.platform
|
||||
|
||||
mkdir -p $out/Toolchains
|
||||
ln -s ${toolchain} $out/Toolchains/nixpkgs.xctoolchain
|
||||
|
||||
wrapProgram $out/bin/xcodebuild \
|
||||
--add-flags "-xcconfig ${xcconfig}" \
|
||||
--add-flags "DERIVED_DATA_DIR=." \
|
||||
--set DEVELOPER_DIR "$out" \
|
||||
--set SDKROOT ${sdkName}
|
||||
wrapProgram $out/bin/xcrun \
|
||||
--set DEVELOPER_DIR "$out" \
|
||||
--set SDKROOT ${sdkName}
|
||||
wrapProgram $out/bin/xcode-select \
|
||||
--set DEVELOPER_DIR "$out" \
|
||||
--set SDKROOT ${sdkName}
|
||||
xcode-select = writeText "xcode-select" ''
|
||||
#!/usr/bin/env sh
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h | --help) ;; # noop
|
||||
-s | --switch) shift;; # noop
|
||||
-r | --reset) ;; # noop
|
||||
-v | --version) echo xcode-select version ${xcodeSelectVersion} ;;
|
||||
-p | --print-path) echo @DEVELOPER_DIR@ ;;
|
||||
--install) ;; # noop
|
||||
esac
|
||||
shift
|
||||
done
|
||||
'';
|
||||
|
||||
xcrun = writeText "xcrun" ''
|
||||
#!/usr/bin/env sh
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--sdk | -sdk) shift ;;
|
||||
--find | -find)
|
||||
shift
|
||||
command -v $1 ;;
|
||||
--log | -log) ;; # noop
|
||||
--verbose | -verbose) ;; # noop
|
||||
--no-cache | -no-cache) ;; # noop
|
||||
--kill-cache | -kill-cache) ;; # noop
|
||||
--show-sdk-path | -show-sdk-path)
|
||||
echo ${sdks}/${sdkName}.sdk ;;
|
||||
--show-sdk-platform-path | -show-sdk-platform-path)
|
||||
echo ${platforms}/${xcodePlatform}.platform ;;
|
||||
--show-sdk-version | -show-sdk-version)
|
||||
echo ${sdkVer} ;;
|
||||
--show-sdk-build-version | -show-sdk-build-version)
|
||||
echo ${sdkBuildVersion} ;;
|
||||
*) break ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if ! [[ -z "$@" ]]; then
|
||||
exec "$@"
|
||||
fi
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
runCommand "xcodebuild-${xcbuild.version}" {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
inherit (xcbuild) meta;
|
||||
|
||||
passthru = {
|
||||
raw = xcbuild;
|
||||
};
|
||||
# ensure that the toolchain goes in PATH
|
||||
propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain/usr" ];
|
||||
|
||||
passthru = { inherit xcbuild; };
|
||||
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
} ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
mkdir -p $out/usr
|
||||
ln -s $out/bin $out/usr/bin
|
||||
|
||||
mkdir -p $out/Library/Xcode
|
||||
ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications
|
||||
|
||||
ln -s ${platforms} $out/Platforms
|
||||
ln -s ${toolchains} $out/Toolchains
|
||||
|
||||
makeWrapper ${xcbuild}/bin/xcodebuild $out/bin/xcodebuild \
|
||||
--add-flags "-xcconfig ${xcconfig}" \
|
||||
--add-flags "DERIVED_DATA_DIR=." \
|
||||
--set DEVELOPER_DIR "$out" \
|
||||
--set SDKROOT ${sdkName} \
|
||||
--run '[ "$1" = "-version" ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0'
|
||||
|
||||
substitute ${xcode-select} $out/bin/xcode-select \
|
||||
--subst-var-by DEVELOPER_DIR $out
|
||||
chmod +x $out/bin/xcode-select
|
||||
|
||||
substitute ${xcrun} $out/bin/xcrun
|
||||
chmod +x $out/bin/xcrun
|
||||
|
||||
for bin in PlistBuddy actool builtin-copy builtin-copyPlist \
|
||||
builtin-copyStrings builtin-copyTiff \
|
||||
builtin-embeddedBinaryValidationUtility \
|
||||
builtin-infoPlistUtility builtin-lsRegisterURL \
|
||||
builtin-productPackagingUtility builtin-validationUtility \
|
||||
lsbom plutil; do
|
||||
ln -s ${xcbuild}/bin/$bin $out/bin/$bin
|
||||
done
|
||||
|
||||
fixupPhase
|
||||
''
|
||||
|
@ -1,10 +1,41 @@
|
||||
{ pkgs, stdenv, stdenvNoCC, gccStdenv }:
|
||||
{ pkgs, stdenv, stdenvNoCC, buildEnv, gccStdenv, lib, recurseIntoAttrs }:
|
||||
|
||||
# To whomever it may concern:
|
||||
#
|
||||
# This directory menaces with spikes of Nix code. It is terrifying.
|
||||
#
|
||||
# If this is your first time here, you should probably install the dwarf-fortress-full package,
|
||||
# for instance with `environment.systempackages = [ pkgs.dwarf-fortress.dwarf-fortress-full ];`.
|
||||
#
|
||||
# You can adjust its settings by using override, or compile your own package by
|
||||
# using the other packages here. Take a look at lazy-pack.nix to get an idea of
|
||||
# how.
|
||||
#
|
||||
# You will find the configuration files in ~/.local/share/df_linux/data/init. If
|
||||
# you un-symlink them and edit, then the scripts will avoid overwriting your
|
||||
# changes on later launches, but consider extending the wrapper with your
|
||||
# desired options instead.
|
||||
#
|
||||
# Although both dfhack and dwarf therapist are included in the lazy pack, you
|
||||
# can only use one at a time. DFHack does have therapist-like features, so this
|
||||
# may or may not be a problem.
|
||||
|
||||
let
|
||||
callPackage = pkgs.newScope self;
|
||||
|
||||
df-games = lib.listToAttrs (map (dfVersion: {
|
||||
name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}";
|
||||
value = callPackage ./wrapper {
|
||||
inherit (self) themes;
|
||||
dwarf-fortress = callPackage ./game.nix { inherit dfVersion; };
|
||||
};
|
||||
}) (lib.attrNames self.df-hashes));
|
||||
|
||||
self = rec {
|
||||
dwarf-fortress-original = callPackage ./game.nix { };
|
||||
df-hashes = builtins.fromJSON (builtins.readFile ./game.json);
|
||||
dwarf-fortress = df-games.dwarf-fortress_0_44_11;
|
||||
|
||||
dwarf-fortress-full = callPackage ./lazy-pack.nix { };
|
||||
|
||||
dfhack = callPackage ./dfhack {
|
||||
inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
|
||||
@ -13,31 +44,30 @@ let
|
||||
|
||||
soundSense = callPackage ./soundsense.nix { };
|
||||
|
||||
# unfuck is linux-only right now, we will just use it there
|
||||
# unfuck is linux-only right now, we will only use it there.
|
||||
dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { }
|
||||
else null;
|
||||
else null;
|
||||
|
||||
dwarf-fortress = callPackage ./wrapper {
|
||||
inherit themes;
|
||||
};
|
||||
|
||||
dwarf-therapist-original = pkgs.qt5.callPackage ./dwarf-therapist {
|
||||
texlive = pkgs.texlive.combine {
|
||||
inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem;
|
||||
dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix {
|
||||
inherit (dwarf-fortress) dwarf-fortress;
|
||||
dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist {
|
||||
texlive = pkgs.texlive.combine {
|
||||
inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix { };
|
||||
|
||||
legends-browser = callPackage ./legends-browser {};
|
||||
|
||||
themes = callPackage ./themes {
|
||||
twbt = callPackage ./twbt {};
|
||||
themes = recurseIntoAttrs (callPackage ./themes {
|
||||
stdenv = stdenvNoCC;
|
||||
};
|
||||
});
|
||||
|
||||
# aliases
|
||||
phoebus-theme = themes.phoebus;
|
||||
|
||||
cla-theme = themes.cla;
|
||||
dwarf-fortress-original = dwarf-fortress.dwarf-fortress;
|
||||
};
|
||||
|
||||
in self
|
||||
in self // df-games
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ stdenv, hostPlatform, lib, fetchFromGitHub, cmake, writeScriptBin, callPackage
|
||||
{ stdenv, buildEnv, hostPlatform, lib, fetchurl, fetchFromGitHub, cmake, writeScriptBin, callPackage
|
||||
, perl, XMLLibXML, XMLLibXSLT, zlib
|
||||
, enableStoneSense ? false, allegro5, libGLU_combined
|
||||
, enableTWBT ? true, twbt
|
||||
, SDL
|
||||
}:
|
||||
|
||||
@ -33,40 +34,47 @@ let
|
||||
fi
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
dfhack = stdenv.mkDerivation rec {
|
||||
name = "dfhack-base-${version}";
|
||||
|
||||
# Beware of submodules
|
||||
src = fetchFromGitHub {
|
||||
owner = "DFHack";
|
||||
repo = "dfhack";
|
||||
sha256 = "1vzrpdw0pn18calayf9dwqpyg37cb7wkzkvskxjx9nak5ilxzywm";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
|
||||
# We don't use system libraries because dfhack needs old C++ ABI.
|
||||
buildInputs = [ zlib SDL ]
|
||||
++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ];
|
||||
|
||||
preConfigure = ''
|
||||
# Trick build system into believing we have .git
|
||||
mkdir -p .git/modules/library/xml
|
||||
touch .git/index .git/modules/library/xml/index
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH"
|
||||
'';
|
||||
|
||||
cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
|
||||
++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
};
|
||||
in
|
||||
|
||||
buildEnv {
|
||||
name = "dfhack-${version}";
|
||||
|
||||
# Beware of submodules
|
||||
src = fetchFromGitHub {
|
||||
owner = "DFHack";
|
||||
repo = "dfhack";
|
||||
sha256 = "1vzrpdw0pn18calayf9dwqpyg37cb7wkzkvskxjx9nak5ilxzywm";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
|
||||
# We don't use system libraries because dfhack needs old C++ ABI.
|
||||
buildInputs = [ zlib SDL ]
|
||||
++ lib.optionals enableStoneSense [ allegro5 libGLU_combined ];
|
||||
|
||||
preConfigure = ''
|
||||
# Trick build system into believing we have .git
|
||||
mkdir -p .git/modules/library/xml
|
||||
touch .git/index .git/modules/library/xml/index
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH="$PWD/depends/protobuf:$LD_LIBRARY_PATH"
|
||||
'';
|
||||
|
||||
cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
|
||||
++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = { inherit version dfVersion; };
|
||||
|
||||
paths = [ dfhack ] ++ lib.optionals enableTWBT [ twbt.lib ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Memory hacking library for Dwarf Fortress and a set of tools that use it";
|
||||
homepage = https://github.com/DFHack/dfhack/;
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ stdenv, fetchFromGitHub, coreutils, qtbase, qtdeclarative, cmake, texlive, ninja }:
|
||||
{ stdenv, fetchFromGitHub, coreutils, qtbase
|
||||
, qtdeclarative, cmake, texlive, ninja }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dwarf-therapist-original-${version}";
|
||||
name = "dwarf-therapist-${version}";
|
||||
version = "40.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -1,20 +1,19 @@
|
||||
{ stdenv, symlinkJoin, lib, dwarf-therapist-original, dwarf-fortress-original, makeWrapper }:
|
||||
{ stdenv, symlinkJoin, lib, dwarf-therapist, dwarf-fortress, makeWrapper }:
|
||||
|
||||
let
|
||||
df = dwarf-fortress-original;
|
||||
dt = dwarf-therapist-original;
|
||||
platformSlug = if stdenv.targetPlatform.is32bit then
|
||||
"linux32" else "linux64";
|
||||
inifile = "linux/v0.${df.baseVersion}.${df.patchVersion}_${platformSlug}.ini";
|
||||
dfHashFile = "${df}/hash.md5";
|
||||
inifile = "linux/v0.${dwarf-fortress.baseVersion}.${dwarf-fortress.patchVersion}_${platformSlug}.ini";
|
||||
|
||||
in symlinkJoin {
|
||||
name = "dwarf-therapist-${dt.version}";
|
||||
name = "dwarf-therapist-${dwarf-therapist.version}";
|
||||
|
||||
paths = [ dt ];
|
||||
paths = [ dwarf-therapist ];
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
||||
passthru = { inherit dwarf-fortress dwarf-therapist; };
|
||||
|
||||
postBuild = ''
|
||||
# DwarfTherapist assumes it's run in $out/share/dwarftherapist and
|
||||
# therefore uses many relative paths.
|
||||
@ -23,10 +22,10 @@ in symlinkJoin {
|
||||
|
||||
rm -rf $out/share/dwarftherapist/memory_layouts/linux
|
||||
mkdir -p $out/share/dwarftherapist/memory_layouts/linux
|
||||
origmd5=$(cat "${dfHashFile}.orig" | cut -c1-8)
|
||||
patchedmd5=$(cat "${dfHashFile}" | cut -c1-8)
|
||||
origmd5=$(cat "${dwarf-fortress}/hash.md5.orig" | cut -c1-8)
|
||||
patchedmd5=$(cat "${dwarf-fortress}/hash.md5" | cut -c1-8)
|
||||
substitute \
|
||||
${dt}/share/dwarftherapist/memory_layouts/${inifile} \
|
||||
${dwarf-therapist}/share/dwarftherapist/memory_layouts/${inifile} \
|
||||
$out/share/dwarftherapist/memory_layouts/${inifile} \
|
||||
--replace "$origmd5" "$patchedmd5"
|
||||
'';
|
||||
|
86
pkgs/games/dwarf-fortress/game.json
Normal file
86
pkgs/games/dwarf-fortress/game.json
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"0.43.05": {
|
||||
"linux": "1r0b96yrdf24m9476k5x7rmp3faxr0kfwwdf35agpvlb1qbi6v45",
|
||||
"linux32": "16l1lydpkbnl3zhz4i2snmjk7pps8vmw3zv0bjgr8dncbsrycd03",
|
||||
"osx": "1j2zdkjnmxy8yn599pm0qmbi4zjp1m8h4ggqjxhyzp135h0lqqf9",
|
||||
"osx32": "09ym4mflp5z78pk5mvj7b44xihnsvrxmh0b5kix6h1m6z3cc90l4",
|
||||
"win": "0m337wh4c47ij1f3zrimvy7baff7nzrmgjbmrwdy89d0z90xpnx8",
|
||||
"win_s": "0bjk5m1qkn3ldhqiwbq24y2m9fz9r574d54ngdb8b4ri2xfl1fbp",
|
||||
"win32": "162rl9ygpj66pis87bqc5bwc0mk75hxv6ianhn87pbl4rh7g8ax8",
|
||||
"win32_s": "0gv1jyw5fdskjjs27pr41grbmkk7ipqn0ry615f5g79k3mhl200i",
|
||||
"legacy": "09lvbmg1gq257qchlbmq7hxc5nl9r39jpf73zhmwb5xfbpprn0zs",
|
||||
"legacy_s": "023a5b27fm65w7gmzjssyyci70fdjk2zbv965y4n0f23kc4rj9gl",
|
||||
"legacy32": "1m75arxj1q82l2dkk8qcargm3xczxlqi8krwvg3iimddky34gipq",
|
||||
"legacy32_s": "1hgzsk66isfr5vcraxwgl7cvycl14kwf8w9kzxr8jyp5z7k24q29"
|
||||
},
|
||||
"0.44.05": {
|
||||
"linux": "18bjyhjp5458bfbizm8vq4s00pqpfs097qp6pv76m84kgbc4ghg3",
|
||||
"linux32": "1b9i4kf4c8s6bhqwn8jx100mg7fqp8nmswrai5w8dsma01py4amr",
|
||||
"osx": "1ssc8vq3ad38x9c04j8gg96kxv0g2npi3jwcg40676byx5nrx7b6",
|
||||
"osx32": "12i7x8idcbvp5h62jyc7b7j98jf4lrisnwglvnrms6jclj0b3g0q",
|
||||
"win": "1kaifarjx0akg7s5a2ngfw0vm0vyr4jnax5rrbv96dliqn5knddz",
|
||||
"win_s": "1a1xikrjdv4b0yfgnp5s8d6xn0njylynsqd8zixdc01vccl5kqm6",
|
||||
"win32": "1j3cq0h7jdvxbsbpfxa7bli45smvy9m4fji0j6849kj7x0vcpwq4",
|
||||
"win32_s": "10cw1n48ffkrv9ms07ka5b5370d9k2fm051cnnq03lkcvlwrq145",
|
||||
"legacy": "0y7xpgmwn4nshhc7apyf8mj5ycl0q5vckdaviwzz6w1x31s3dp6n",
|
||||
"legacy_s": "0j8rbw9ww1avmh8zhyzljjj6in87q4qffpffdl394fsi74n8px0d",
|
||||
"legacy32": "0d3l4jvx53a01fjf1lf20ar9lfyykfhk05dlrfwz3w4k7vj4vvlf",
|
||||
"legacy32_s": "1c5x9x44bblz7anhmk4y9a7p1b39b9k7gzvj4pi55jzfq0k60kl7"
|
||||
},
|
||||
"0.44.09": {
|
||||
"linux": "1haikynkg1pqyrzzqk1qxm19p36ww58qp8brh3fjxssp4x71rcdy",
|
||||
"linux32": "0lmbrdf7wjdwj5yx0khnq871yxvhfwqxjjyfkqcdy5ik18lvlkj8",
|
||||
"osx": "01dss8g9lmi8majp6lxcfw166ydz4himkz6am5pi29gixaf4vfqs",
|
||||
"osx32": "1iwlvmz1ir9k0kzn6726frmkznvsg9a99bbqnxvwcnq3nnnjxw3s",
|
||||
"win": "08g5irgp59dfjgj3jxc8ixwzgnz2wghcl8cg1b1g4088dsf2x3x8",
|
||||
"win_s": "1xyb4msn9wfrh7x136r8xn3sjz6z8c4zksbzifa0z0bpa3pdviap",
|
||||
"win32": "0m8bs2mnyi1r4x84fwnfgd1ijdcf08xsq5zy84476svci932g5kz",
|
||||
"win32_s": "0pl319qmyy96ibzlgj4wfj19dv1wzyg8ig6q11l4c7rivzc9286i",
|
||||
"legacy": "0l8nrvppfzazhjsfkd5nd0bxnc6ljk8fs6yg8qh69g7q7zvzgnd3",
|
||||
"legacy_s": "1c49z539a31czzq0rnhg6yrv1zbaja35sd0ssr4k7lsghjv84k1z",
|
||||
"legacy32": "155xg6dpb8frlw7d9h7m1y0spw55wl4nkn7zrm70bpyp39pydlqp",
|
||||
"legacy32_s": "05qkzjfx1ybrv96wya1dirdfxdkhj6a440sjpzwbqpkqgr8z57a3"
|
||||
},
|
||||
"0.44.10": {
|
||||
"linux": "1cqm43hn3ar9d8a7y7dwq48ajp72cirn1gclh8r2fykkypprxmp2",
|
||||
"linux32": "0gdb6sq8725nwdisxwha8f5b6arq570s73aj4gdrh611gxh13r6n",
|
||||
"osx": "1wpa45d81q8f5mhqmaxvdkz93k6cm3pg7vpsqjjjsp5s961gd74g",
|
||||
"osx32": "0rsy1n19n12gh8rddgi3db32in488f2nizq8kw25hga03hsh4r6x",
|
||||
"win": "04i0ka12hmn3chsyfmk2pbknr1pdf3p8yaz7kv82ri4g6dvsjfv6",
|
||||
"win_s": "01m6nqcrz4rhdc8wb31azj3vmjid8bdpqaf9wkz4g4vvjyy7xiyz",
|
||||
"win32": "1nymin8wbzbh8gm2702dy7h5spdijdxnysdz71ldyl0xx4vw68d9",
|
||||
"win32_s": "1skz0jpfm6j9bins04kn96f3v3k0kvjqlh25x3129r3hh8xacnd3",
|
||||
"legacy": "0s84vpfr2b5y1kda9allqjrpkaxw15mkblk9dq08syhsj19vspa7",
|
||||
"legacy_s": "18b7ikp7xy2y071h3ydfh5mq9hw9y303rdqyikvra5ji3n5p96cm",
|
||||
"legacy32": "1yh2fl3qwpy6wrxavhn75grbjygymnfh746hxbmc60la7y5flrpy",
|
||||
"legacy32_s": "0j65w2hxgpccg9qsaz14r82qvnvfd0pbl2gyx9fv8d77kxhkc4pw"
|
||||
},
|
||||
"0.44.11": {
|
||||
"linux": "1qizfkxl2k6pn70is4vz94q4k55bc3pm13b2r6yqi6lw1cnna4sf",
|
||||
"linux32": "11m39lfyrsxlw1g7f269q7fzwichg06l21fxhqzgvlvmzmxsf8q5",
|
||||
"osx": "073hmcj7bm323m3xqi42605rkvmgmv83bnxz1byymgs8aqyfykkx",
|
||||
"osx32": "0w5avnj86wprk8q0rb5qm9kxbigzk6dk0akqbw4m76jgg2jdmir7",
|
||||
"win": "1yxyv1sycn5jc3g1y02d82154xydg3kbghis7l3xi28n3bh8387b",
|
||||
"win_s": "1xzwl6c362wqgps911y9q8vndp8zyd20fc2p7pkzzmw2hrgfqi6q",
|
||||
"win32": "16x2rg3gm3lh2akg7n057kkxxigb2ljz0nk685lmn4j0adq8l31p",
|
||||
"win32_s": "1a2y220111d94mzj5y3jwpy062k8fw25akyp7yn3fwa17vwvn8zq",
|
||||
"legacy": "0gfjmsfqj21hs4d1hm7fvppbdjspc4r2qnnp6mwcbgh67i5p5rdb",
|
||||
"legacy_s": "1wr4hpzmhgl8haric3jpfd3kwqv1fi4vkb1gvaax5f7kplvfqfac",
|
||||
"legacy32": "1cpzckwvqkxqn0c498mmh4papsjdi3mcvcp2vzlvj46kvdl3n0f0",
|
||||
"legacy32_s": "024vzwfcrx7ms4dip0ccwd0vizzck2pwz2ryyvlz4rpjzhswj5gi"
|
||||
},
|
||||
"0.44.12": {
|
||||
"win32": "0bxrc7zj4vgcgdwc130g6f5jnp13vgx9a2kn2l1jcc958x8a367g",
|
||||
"linux32": "0fmr8diskmbh12s0bpfn5gky9lmrc7xxj6va5adjm6ahxv9jwr06",
|
||||
"osx": "1md6r1pimmlhcn5gjqzg0ygbdwc2v125sfjy0f6gbfbykwcm7391",
|
||||
"osx32": "1dbg7pavxw20r8iqc566fn558avgj5glsycvi6ggbvsh0rpw6n5v",
|
||||
"win": "0zb5ximqi5j7vyvgjzfz7ycadh5sgb7jlyaa68x0sjlbybdr1min",
|
||||
"win_s": "1ncf5zr1fggr5knf30l0wh7spp376v1jcc6m9c86zim8azcfx0y7",
|
||||
"linux": "0ydr5lnysy45nsznqp5r2pysdqn3f0xkrkh9v9l1md111mriabas",
|
||||
"win32_s": "1mxbjkikf010skrpng51r86jmv4nal51j5n1y9kyhv344bq6chr9",
|
||||
"legacy": "11a212ynhx18p3k8hvdjx199din14wggxiwz191b4309fznzpprz",
|
||||
"legacy_s": "05madj529y18ndxrih96mivbzng1vz2zbzicrcnj58i2084zm23f",
|
||||
"legacy32": "0rapcydiic2nq6idjf7fg53xsxk8dxzyi1vflpz554ghdrnsmwjv",
|
||||
"legacy32_s": "16fgbd3lx4r270dxqj6gr1g1iqjj8cv389h2hw1l646xx28g8d2m"
|
||||
}
|
||||
}
|
@ -3,47 +3,55 @@
|
||||
|
||||
# Our own "unfuck" libs for macOS
|
||||
, ncurses, fmodex, gcc
|
||||
|
||||
, dfVersion, df-hashes
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
baseVersion = "44";
|
||||
patchVersion = "11";
|
||||
dfVersion = "0.${baseVersion}.${patchVersion}";
|
||||
|
||||
libpath = makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc dwarf-fortress-unfuck SDL ];
|
||||
|
||||
homepage = http://www.bay12games.com/dwarves/;
|
||||
|
||||
# Map Dwarf Fortress platform names to Nixpkgs platform names.
|
||||
# Other srcs are avilable like 32-bit mac & win, but I have only
|
||||
# included the ones most likely to be needed by Nixpkgs users.
|
||||
srcs = {
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "${homepage}df_${baseVersion}_${patchVersion}_linux.tar.bz2";
|
||||
sha256 = "1qizfkxl2k6pn70is4vz94q4k55bc3pm13b2r6yqi6lw1cnna4sf";
|
||||
};
|
||||
"i686-linux" = fetchurl {
|
||||
url = "${homepage}df_${baseVersion}_${patchVersion}_linux32.tar.bz2";
|
||||
sha256 = "11m39lfyrsxlw1g7f269q7fzwichg06l21fxhqzgvlvmzmxsf8q5";
|
||||
};
|
||||
"x86_64-darwin" = fetchurl {
|
||||
url = "${homepage}df_${baseVersion}_${patchVersion}_osx.tar.bz2";
|
||||
sha256 = "073hmcj7bm323m3xqi42605rkvmgmv83bnxz1byymgs8aqyfykkx";
|
||||
};
|
||||
platforms = {
|
||||
"x86_64-linux" = "linux";
|
||||
"i686-linux" = "linux32";
|
||||
"x86_64-darwin" = "osx";
|
||||
"i686-darwin" = "osx32";
|
||||
"x86_64-cygwin" = "win";
|
||||
"i686-cygwin" = "win32";
|
||||
};
|
||||
|
||||
dfVersionTriple = splitString "." dfVersion;
|
||||
baseVersion = elemAt dfVersionTriple 1;
|
||||
patchVersion = elemAt dfVersionTriple 2;
|
||||
|
||||
game = if hasAttr dfVersion df-hashes
|
||||
then getAttr dfVersion df-hashes
|
||||
else throw "Unknown Dwarf Fortress version: ${dfVersion}";
|
||||
dfPlatform = if hasAttr stdenv.system platforms
|
||||
then getAttr stdenv.system platforms
|
||||
else throw "Unsupported system: ${stdenv.system}";
|
||||
sha256 = if hasAttr dfPlatform game
|
||||
then getAttr dfPlatform game
|
||||
else throw "Unsupported dfPlatform: ${dfPlatform}";
|
||||
|
||||
in
|
||||
|
||||
assert dwarf-fortress-unfuck != null ->
|
||||
dwarf-fortress-unfuck.dfVersion == dfVersion;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "dwarf-fortress-original-${dfVersion}";
|
||||
name = "dwarf-fortress-${dfVersion}";
|
||||
|
||||
src = if builtins.hasAttr stdenv.system srcs
|
||||
then builtins.getAttr stdenv.system srcs
|
||||
else throw "Unsupported systems";
|
||||
src = fetchurl {
|
||||
url = "${homepage}df_${baseVersion}_${patchVersion}_${dfPlatform}.tar.bz2";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
@ -81,13 +89,16 @@ stdenv.mkDerivation {
|
||||
md5sum $exe | awk '{ print $1 }' > $out/hash.md5
|
||||
'';
|
||||
|
||||
passthru = { inherit baseVersion patchVersion dfVersion; };
|
||||
passthru = {
|
||||
inherit baseVersion patchVersion dfVersion;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "A single-player fantasy game with a randomly generated adventure world";
|
||||
inherit homepage;
|
||||
license = licenses.unfreeRedistributable;
|
||||
platforms = attrNames srcs;
|
||||
platforms = attrNames platforms;
|
||||
maintainers = with maintainers; [ a1russell robbinch roconnor the-kenny abbradar numinit ];
|
||||
};
|
||||
}
|
||||
|
36
pkgs/games/dwarf-fortress/lazy-pack.nix
Normal file
36
pkgs/games/dwarf-fortress/lazy-pack.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ stdenvNoCC, lib, buildEnv, callPackage
|
||||
, dwarf-fortress, themes
|
||||
# This package should, at any given time, provide an opinionated "optimal"
|
||||
# DF experience. It's the equivalent of the Lazy Newbie Pack, that is, and
|
||||
# should contain every utility available.
|
||||
, enableDFHack ? stdenvNoCC.isLinux
|
||||
, enableTWBT ? enableDFHack
|
||||
, enableSoundSense ? true
|
||||
, enableStoneSense ? false # StoneSense is currently broken.
|
||||
, enableDwarfTherapist ? true, dwarf-therapist
|
||||
, enableLegendsBrowser ? true, legends-browser
|
||||
, theme ? themes.phoebus
|
||||
# General config options:
|
||||
, enableIntro ? true
|
||||
, enableTruetype ? true
|
||||
, enableFPS ? false
|
||||
}:
|
||||
|
||||
buildEnv {
|
||||
name = "dwarf-fortress-full";
|
||||
paths = [
|
||||
(dwarf-fortress.override {
|
||||
inherit enableDFHack enableTWBT enableSoundSense enableStoneSense theme
|
||||
enableIntro enableTruetype enableFPS;
|
||||
})]
|
||||
++ lib.optional enableDwarfTherapist dwarf-therapist
|
||||
++ lib.optional enableLegendsBrowser legends-browser;
|
||||
|
||||
meta = with stdenvNoCC.lib; {
|
||||
description = "An opinionated wrapper for Dwarf Fortress";
|
||||
maintainers = with maintainers; [ Baughn ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
homepage = https://github.com/NixOS/nixpkgs/;
|
||||
};
|
||||
}
|
@ -4,18 +4,12 @@ with builtins;
|
||||
|
||||
listToAttrs (map (v: {
|
||||
inherit (v) name;
|
||||
value = stdenv.mkDerivation {
|
||||
value = fetchFromGitHub {
|
||||
name = "${v.name}-${v.version}";
|
||||
src = fetchFromGitHub {
|
||||
owner = "DFgraphics";
|
||||
repo = v.name;
|
||||
rev = v.version;
|
||||
sha256 = v.sha256;
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r data raw $out
|
||||
'';
|
||||
owner = "DFgraphics";
|
||||
repo = v.name;
|
||||
rev = v.version;
|
||||
sha256 = v.sha256;
|
||||
meta = with lib; {
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.matthewbauer ];
|
||||
|
35
pkgs/games/dwarf-fortress/twbt/default.nix
Normal file
35
pkgs/games/dwarf-fortress/twbt/default.nix
Normal file
@ -0,0 +1,35 @@
|
||||
{ stdenvNoCC, fetchurl, unzip }:
|
||||
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
name = "twbt-${version}";
|
||||
version = "6.49";
|
||||
dfVersion = "0.44.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
|
||||
sha256 = "1qjkc7k33qhxj2g18njzasccjqsis5y8zrw5vl90h4rs3i8ld9xz";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
outputs = [ "lib" "art" "out" ];
|
||||
|
||||
buildInputs = [ unzip ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $lib/hack/{plugins,lua} $art/data/art
|
||||
cp -a */twbt.plug.so $lib/hack/plugins/
|
||||
cp -a *.lua $lib/hack/lua/
|
||||
cp -a *.png $art/data/art/
|
||||
'';
|
||||
|
||||
|
||||
meta = with stdenvNoCC.lib; {
|
||||
description = "A plugin for Dwarf Fortress / DFHack that improves various aspects the game interface.";
|
||||
maintainers = with maintainers; [ Baughn ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
homepage = https://github.com/mifki/df-twbt;
|
||||
};
|
||||
}
|
42
pkgs/games/dwarf-fortress/update.sh
Executable file
42
pkgs/games/dwarf-fortress/update.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p jq nix coreutils curl
|
||||
|
||||
# systems to generate hashes for
|
||||
systems='linux linux32 osx osx32
|
||||
win win_s win32 win32_s
|
||||
legacy legacy_s legacy32 legacy32_s'
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
versions="$(curl http://www.bay12games.com/dwarves/ \
|
||||
| grep 'DOWNLOAD DWARF FORTRESS' \
|
||||
| sed 's/.*DOWNLOAD DWARF FORTRESS \([0-9.]*\) .*/\1/')"
|
||||
else
|
||||
versions="$@"
|
||||
fi
|
||||
|
||||
tmp1="$(mktemp)"
|
||||
tmp2="$(mktemp)"
|
||||
for version in $versions; do
|
||||
for system in $systems; do
|
||||
echo -n $version,$system,
|
||||
ver=$(echo $version | sed -e s,^0\.,, | tr . _)
|
||||
if [[ "$system" = *win* ]] || [[ "$system" = *legacy* ]]; then
|
||||
ext=zip
|
||||
else
|
||||
ext=tar.bz2
|
||||
fi
|
||||
nix-prefetch-url \
|
||||
http://www.bay12games.com/dwarves/df_${ver}_${system}.${ext}
|
||||
done
|
||||
done | jq --slurp --raw-input \
|
||||
'split("\n") | .[:-1] | map(split(",")) |
|
||||
map({ "version": .[0], "platform": .[1], "sha256": .[2] }) |
|
||||
group_by(.version) |
|
||||
map(map({"version": .version, (.platform): .sha256}) | add |
|
||||
{(.version): .} | map_values(del(.version))) | add' \
|
||||
> "$tmp1"
|
||||
|
||||
# Append $tmp1 to game.json. There should be a better way to handle
|
||||
# this but all other attempts failed for me.
|
||||
jq -M --argfile a "$tmp1" '. + $a' < "$(dirname "$0")/game.json" > "$tmp2"
|
||||
cat "$tmp2" > "$(dirname "$0")/game.json"
|
@ -1,14 +1,20 @@
|
||||
{ stdenv, lib, buildEnv, dwarf-fortress-original, substituteAll
|
||||
{ stdenv, lib, buildEnv, dwarf-fortress, substituteAll
|
||||
, enableDFHack ? false, dfhack
|
||||
, enableSoundSense ? false, soundSense, jdk
|
||||
, enableStoneSense ? false
|
||||
, enableTWBT ? false, twbt
|
||||
, themes ? {}
|
||||
, theme ? null
|
||||
# General config options:
|
||||
, enableIntro ? true
|
||||
, enableTruetype ? true
|
||||
, enableFPS ? false
|
||||
}:
|
||||
|
||||
let
|
||||
dfhack_ = dfhack.override {
|
||||
inherit enableStoneSense;
|
||||
inherit enableTWBT;
|
||||
};
|
||||
|
||||
ptheme =
|
||||
@ -16,32 +22,50 @@ let
|
||||
then builtins.getAttr theme themes
|
||||
else theme;
|
||||
|
||||
twbtOnlyWithDFHack = assert (enableDFHack || !enableTWBT); true;
|
||||
|
||||
unBool = b: if b then "YES" else "NO";
|
||||
|
||||
# These are in inverse order for first packages to override the next ones.
|
||||
themePkg = lib.optional (theme != null) ptheme;
|
||||
pkgs = lib.optional enableDFHack dfhack_
|
||||
++ lib.optional enableSoundSense soundSense
|
||||
++ [ dwarf-fortress-original ];
|
||||
++ lib.optional enableTWBT twbt.art
|
||||
++ [ dwarf-fortress ];
|
||||
|
||||
env = buildEnv {
|
||||
name = "dwarf-fortress-env-${dwarf-fortress-original.dfVersion}";
|
||||
name = "dwarf-fortress-env-${dwarf-fortress.dfVersion}";
|
||||
|
||||
paths = themePkg ++ pkgs;
|
||||
pathsToLink = [ "/" "/hack" "/hack/scripts" ];
|
||||
ignoreCollisions = true;
|
||||
|
||||
postBuild = lib.optionalString enableDFHack ''
|
||||
postBuild = ''
|
||||
# De-symlink init.txt
|
||||
cp $out/data/init/init.txt init.txt
|
||||
rm $out/data/init/init.txt
|
||||
mv init.txt $out/data/init/init.txt
|
||||
'' + lib.optionalString enableDFHack ''
|
||||
rm $out/hack/symbols.xml
|
||||
substitute ${dfhack_}/hack/symbols.xml $out/hack/symbols.xml \
|
||||
--replace $(cat ${dwarf-fortress-original}/hash.md5.orig) \
|
||||
$(cat ${dwarf-fortress-original}/hash.md5)
|
||||
--replace $(cat ${dwarf-fortress}/hash.md5.orig) \
|
||||
$(cat ${dwarf-fortress}/hash.md5)
|
||||
'' + lib.optionalString enableTWBT ''
|
||||
substituteInPlace $out/data/init/init.txt \
|
||||
--replace '[PRINT_MODE:2D]' '[PRINT_MODE:TWBT]'
|
||||
'' + ''
|
||||
substituteInPlace $out/data/init/init.txt \
|
||||
--replace '[INTRO:YES]' '[INTRO:${unBool enableIntro}]' \
|
||||
--replace '[TRUETYPE:YES]' '[TRUETYPE:${unBool enableTruetype}]' \
|
||||
--replace '[FPS:NO]' '[FPS:${unBool enableFPS}]'
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dwarf-fortress-${dwarf-fortress-original.dfVersion}";
|
||||
name = "dwarf-fortress-${dwarf-fortress.dfVersion}";
|
||||
|
||||
compatible = lib.all (x: assert (x.dfVersion == dwarf-fortress-original.dfVersion); true) pkgs;
|
||||
compatible = lib.all (x: assert (x.dfVersion == dwarf-fortress.dfVersion); true) pkgs;
|
||||
|
||||
dfInit = substituteAll {
|
||||
name = "dwarf-fortress-init";
|
||||
@ -55,6 +79,8 @@ stdenv.mkDerivation rec {
|
||||
runDFHack = ./dfhack.in;
|
||||
runSoundSense = ./soundSense.in;
|
||||
|
||||
passthru = { inherit dwarf-fortress; };
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
|
@ -67,8 +67,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "cpptools";
|
||||
publisher = "ms-vscode";
|
||||
version = "0.16.1";
|
||||
sha256 = "0m4cam8sf3zwp8ss1dii908g7rc8b9l6pry0dglg0rmf45pkiaj3";
|
||||
version = "0.17.6";
|
||||
sha256 = "2625be8b922ffc199e1c776f784d39b6e004523212f7956c93ae40f9040ce6d5";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ stdenv, lib, vscode-utils
|
||||
|
||||
, pythonUseFixed ? false, python # When `true`, the python default setting will be fixed to specified.
|
||||
, pythonUseFixed ? false, python # When `true`, the python default setting will be fixed to specified.
|
||||
# Use version from `PATH` for default setting otherwise.
|
||||
# Defaults to `false` as we expect it to be project specific most of the time.
|
||||
, ctagsUseFixed ? true, ctags # When `true`, the ctags default setting will be fixed to specified.
|
||||
, ctagsUseFixed ? true, ctags # When `true`, the ctags default setting will be fixed to specified.
|
||||
# Use version from `PATH` for default setting otherwise.
|
||||
# Defaults to `true` as usually not defined on a per projet basis.
|
||||
}:
|
||||
@ -20,8 +20,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "python";
|
||||
publisher = "ms-python";
|
||||
version = "0.8.0";
|
||||
sha256 = "0i7s93l5g5lyi6vn77zh3ipj0p267y17fayv6vjrxc2igrs27ik6";
|
||||
version = "2018.6.0";
|
||||
sha256 = "a157399b45b40caa9e0b3432eaf3e7444ee4cb91497c139bcb740d42d61f9ae8";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ appleDerivation, xcbuild, IOKit }:
|
||||
{ appleDerivation, xcbuildHook, IOKit }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild IOKit ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ IOKit ];
|
||||
xcbuildFlags = "-target caffeinate";
|
||||
installPhase = ''
|
||||
install -D Products/Deployment/caffeinate $out/bin/caffeinate
|
||||
|
@ -1,8 +1,9 @@
|
||||
{ stdenv, appleDerivation, xcbuild, gnumake, Security
|
||||
{ stdenv, appleDerivation, xcbuildHook, gnumake, Security
|
||||
, libsecurity_utilities, libsecurity_cdsa_utilities }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild libsecurity_utilities libsecurity_cdsa_utilities ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ libsecurity_utilities libsecurity_cdsa_utilities ];
|
||||
|
||||
DSTROOT = "$out";
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
appleDerivation {
|
||||
# We can't just run the root build, because https://github.com/facebook/xcbuild/issues/264
|
||||
dontUseXcbuild = true;
|
||||
|
||||
# pkill requires special private headers that are unavailable in
|
||||
# NixPkgs. These ones are needed:
|
||||
@ -49,7 +48,8 @@ appleDerivation {
|
||||
# ln -s $out/share/man/man1/pkill.1 $out/share/man/man1/pgrep.1
|
||||
'';
|
||||
|
||||
buildInputs = [ xcbuild ncurses libutil-new ];
|
||||
nativeBuildInputs = [ xcbuild ];
|
||||
buildInputs = [ ncurses libutil-new ];
|
||||
|
||||
meta = {
|
||||
platforms = stdenv.lib.platforms.darwin;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, appleDerivation, fetchurl, xcbuild }:
|
||||
{ stdenv, appleDerivation, fetchurl, xcbuildHook }:
|
||||
|
||||
appleDerivation rec {
|
||||
buildInputs = [ xcbuild ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
|
||||
# These PBXcp calls should be patched in xcbuild to allow them to
|
||||
# automatically be prefixed.
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, appleDerivation, xcbuild }:
|
||||
{ stdenv, fetchurl, appleDerivation, xcbuildHook }:
|
||||
|
||||
appleDerivation rec {
|
||||
buildInputs = [ xcbuild ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace rpcgen/rpc_main.c \
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ stdenv, appleDerivation, xcbuild, lib, hostPlatform, Libc, xnu, libutil-new }:
|
||||
{ stdenv, appleDerivation, xcbuildHook
|
||||
, lib, hostPlatform, Libc, xnu, libutil-new }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild libutil-new ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ libutil-new ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I.";
|
||||
NIX_LDFLAGS = "-lutil";
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ appleDerivation, xcbuild, CoreSymbolication, xnu, bison, flex, darling, stdenv }:
|
||||
{ appleDerivation, xcbuildHook, CoreSymbolication
|
||||
, xnu, bison, flex, darling, stdenv }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild CoreSymbolication xnu bison flex darling ];
|
||||
nativeBuildInputs = [ xcbuildHook flex bison ];
|
||||
buildInputs = [ CoreSymbolication darling ];
|
||||
NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers";
|
||||
NIX_LDFLAGS = "-L./Products/Release";
|
||||
xcbuildFlags = "-target dtrace";
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ stdenv, appleDerivation, xcbuild, zlib, bzip2, lzma, ncurses, libutil-new }:
|
||||
{ stdenv, appleDerivation, xcbuildHook, zlib, bzip2, lzma, ncurses, libutil-new }:
|
||||
|
||||
appleDerivation rec {
|
||||
buildInputs = [ xcbuild zlib bzip2 lzma ncurses libutil-new ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ zlib bzip2 lzma ncurses libutil-new ];
|
||||
|
||||
# some commands not working:
|
||||
# mtree: _simple.h not found
|
||||
|
@ -1,8 +1,8 @@
|
||||
{ stdenv, appleDerivation, xcbuild }:
|
||||
{ stdenv, appleDerivation, xcbuildHook }:
|
||||
|
||||
# TODO: make this the official libutil expression once we've integrated xcbuild in the bootstrap
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace tzlink.c \
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ stdenv, appleDerivation, xcbuild, openssl, Librpcsvc, xnu, libpcap, developer_cmds }:
|
||||
{ stdenv, appleDerivation, xcbuildHook
|
||||
, openssl, Librpcsvc, xnu, libpcap, developer_cmds }:
|
||||
|
||||
appleDerivation rec {
|
||||
buildInputs = [ xcbuild openssl xnu Librpcsvc libpcap developer_cmds ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ openssl xnu Librpcsvc libpcap developer_cmds ];
|
||||
|
||||
NIX_CFLAGS_COMPILE = " -I./unbound -I${xnu}/Library/Frameworks/System.framework/Headers/";
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
{ appleDerivation, xcbuild, Security
|
||||
{ appleDerivation, xcbuildHook, Security
|
||||
, libsecurity_codesigning, libsecurity_utilities, libsecurity_cdsa_utilities
|
||||
, xnu, osx_private_sdk, pcsclite}:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild Security libsecurity_utilities
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ Security libsecurity_utilities
|
||||
libsecurity_cdsa_utilities libsecurity_codesigning
|
||||
pcsclite ];
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, appleDerivation, xcbuild }:
|
||||
{ stdenv, appleDerivation, xcbuildHook }:
|
||||
|
||||
appleDerivation rec {
|
||||
buildInputs = [ xcbuild ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
|
||||
patchPhase = ''
|
||||
# NOTE: these hashes must be recalculated for each version change
|
||||
|
@ -1,7 +1,8 @@
|
||||
{ stdenv, appleDerivation, fetchurl, xcbuild, ncurses, bzip2, zlib, lzma }:
|
||||
{ stdenv, appleDerivation, fetchurl, xcbuildHook, ncurses, bzip2, zlib, lzma }:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild ncurses bzip2 zlib lzma ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ ncurses bzip2 zlib lzma ];
|
||||
|
||||
# patches to use ncursees
|
||||
# disables md5
|
||||
|
@ -1,7 +1,8 @@
|
||||
{xcbuild, appleDerivation, apple_sdk, ncurses, libutil-new, lib}:
|
||||
{xcbuildHook, appleDerivation, apple_sdk, ncurses, libutil-new, lib}:
|
||||
|
||||
appleDerivation {
|
||||
buildInputs = [ xcbuild apple_sdk.frameworks.IOKit ncurses libutil-new ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ apple_sdk.frameworks.IOKit ncurses libutil-new ];
|
||||
NIX_LDFLAGS = "-lutil";
|
||||
installPhase = ''
|
||||
install -D Products/Release/libtop.a $out/lib/libtop.a
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, xcbuild }:
|
||||
{ stdenv, fetchFromGitHub, xcbuildHook }:
|
||||
|
||||
stdenv.mkDerivation
|
||||
{ name = "insert_dylib-2016.08.28";
|
||||
@ -8,7 +8,7 @@ stdenv.mkDerivation
|
||||
rev = "c8beef66a08688c2feeee2c9b6eaf1061c2e67a9";
|
||||
sha256 = "0az38y06pvvy9jf2wnzdwp9mp98lj6nr0ldv0cs1df5p9x2qvbya";
|
||||
};
|
||||
buildInputs = [ xcbuild ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
installPhase =
|
||||
''
|
||||
prog=$(find . -type f -name insert_dylib)
|
||||
|
@ -1,16 +1,24 @@
|
||||
{ stdenv, fetchurl, devicemapper, json_c, openssl, libuuid, pkgconfig, popt
|
||||
{ stdenv, fetchurl, fetchpatch, devicemapper, json_c, openssl, libuuid, pkgconfig, popt
|
||||
, enablePython ? false, python2 ? null }:
|
||||
|
||||
assert enablePython -> python2 != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cryptsetup-2.0.2";
|
||||
name = "cryptsetup-2.0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/utils/cryptsetup/v2.0/${name}.tar.xz";
|
||||
sha256 = "15wyjfgcqjf0wy5gxnmjj8aah33csv5v6n1hv9c8sxdzygbhb0ag";
|
||||
sha256 = "1m01wl8njjraz69fsk97l3nqfc32nbpr1la5s1l4mzzmq42clv2d";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# NOTE: Patch to support LibreSSL-2.7. It is from upstream, and can be removed when cryptsetup is next updated.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.com/cryptsetup/cryptsetup/commit/5fcf430c8105fbeeb07a8cacbae84f941d2a3d55.patch";
|
||||
sha256 = "1d3ycsqszq0frlv9r7kmfdfmnk4qa4b4mv25iivmayvpgc8yja7m";
|
||||
})
|
||||
];
|
||||
|
||||
NIX_LDFLAGS = "-lgcc_s";
|
||||
|
||||
configureFlags = [
|
||||
|
@ -230,7 +230,7 @@ let
|
||||
};
|
||||
|
||||
usb = {
|
||||
USB_DEBUG = option no;
|
||||
USB_DEBUG = option (whenOlder "4.18" no);
|
||||
USB_EHCI_ROOT_HUB_TT = yes; # Root Hub Transaction Translators
|
||||
USB_EHCI_TT_NEWSCHED = yes; # Improved transaction translator scheduling
|
||||
};
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ stdenv, buildPackages, hostPlatform, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
|
||||
|
||||
buildLinux (args // rec {
|
||||
version = "4.18-rc3";
|
||||
modDirVersion = "4.18.0-rc3";
|
||||
version = "4.18-rc4";
|
||||
modDirVersion = "4.18.0-rc4";
|
||||
extraMeta.branch = "4.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
|
||||
sha256 = "1kr9bhvcdp792micjmhl2hwhs5iid1srb4ia8hm4cpy1lnzdgrih";
|
||||
sha256 = "1nhl82ygz7sm6njnb9qg9k4jp0gr1cv2wxpayrpc4ab21xb6b5mj";
|
||||
};
|
||||
|
||||
# Should the testing kernels ever be built on Hydra?
|
||||
|
@ -59,4 +59,24 @@ rec {
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
xen-netfront_fix_mismatched_rtnl_unlock = rec {
|
||||
name = "xen-netfront_fix_mismatched_rtnl_unlock";
|
||||
patch = fetchpatch {
|
||||
name = name + ".patch";
|
||||
url = https://github.com/torvalds/linux/commit/cb257783c2927b73614b20f915a91ff78aa6f3e8.patch;
|
||||
sha256 = "0xhblx2j8wi3kpnfpgjjwlcwdry97ji2aaq54r3zirk5g5p72zs8";
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
xen-netfront_update_features_after_registering_netdev = rec {
|
||||
name = "xen-netfront_update_features_after_registering_netdev";
|
||||
patch = fetchpatch {
|
||||
name = name + ".patch";
|
||||
url = https://github.com/torvalds/linux/commit/45c8184c1bed1ca8a7f02918552063a00b909bf5.patch;
|
||||
sha256 = "1l8xq02rd7vakxg52xm9g4zng0ald866rpgm8kjlh88mwwyjkrwv";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -7,11 +7,11 @@ let inherit (stdenv.lib) optional optionals; in
|
||||
# Note: ATM only the libraries have been tested in nixpkgs.
|
||||
stdenv.mkDerivation rec {
|
||||
name = "knot-dns-${version}";
|
||||
version = "2.6.7";
|
||||
version = "2.6.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
|
||||
sha256 = "1c2a004b05c161f7b36d5eeccebd9d4cdf60aa09930a7cc766514e468ca92243";
|
||||
sha256 = "0daee8efd6262f10c54ee6f5fb99ca4d0f72e275513ec0902032af594cac1b15";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
|
@ -77,8 +77,13 @@ rec {
|
||||
|
||||
, ... } @ attrs:
|
||||
|
||||
# TODO(@Ericson2314): Make this more modular, and not O(n^2).
|
||||
let
|
||||
fixedOutputDrv = attrs ? outputHash;
|
||||
noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated
|
||||
++ depsHostHost ++ depsHostHostPropagated
|
||||
++ buildInputs ++ propagatedBuildInputs
|
||||
++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
|
||||
runtimeSensativeIfFixedOutput = fixedOutputDrv -> !noNonNativeDeps;
|
||||
supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
|
||||
defaultHardeningFlags = lib.remove "pie" supportedHardeningFlags;
|
||||
enabledHardeningOptions =
|
||||
@ -168,7 +173,11 @@ rec {
|
||||
# A hack to make `nix-env -qa` and `nix search` ignore broken packages.
|
||||
# TODO(@oxij): remove this assert when something like NixOS/nix#1771 gets merged into nix.
|
||||
name = assert validity.handled; name + lib.optionalString
|
||||
(stdenv.hostPlatform != stdenv.buildPlatform)
|
||||
# Fixed-output derivations like source tarballs shouldn't get a host
|
||||
# suffix. But we have some weird ones with run-time deps that are
|
||||
# just used for their side-affects. Those might as well since the
|
||||
# hash can't be the same. See #32986.
|
||||
(stdenv.hostPlatform != stdenv.buildPlatform && runtimeSensativeIfFixedOutput)
|
||||
("-" + stdenv.hostPlatform.config);
|
||||
|
||||
builder = attrs.realBuilder or stdenv.shell;
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchurl, fetchpatch, libuuid, libselinux }:
|
||||
let
|
||||
let
|
||||
sourceInfo = rec {
|
||||
version = "2.2.7";
|
||||
url = "http://nilfs.sourceforge.net/download/nilfs-utils-${version}.tar.bz2";
|
||||
@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
configureFlags = [ "--with-libmount" ];
|
||||
|
||||
# FIXME: https://github.com/NixOS/patchelf/pull/98 is in, but stdenv
|
||||
# still doesn't use it
|
||||
#
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, xcbuild, Foundation, AddressBook }:
|
||||
{ stdenv, fetchurl, xcbuildHook, Foundation, AddressBook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.1a-3";
|
||||
@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0wdqc1ndgrdhqapvvgx5xihc750szv08lp91x4l6n0gh59cpxpg3";
|
||||
};
|
||||
|
||||
buildInputs = [ xcbuild Foundation AddressBook ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ Foundation AddressBook ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ fetchurl, stdenv, fetchFromGitHub, xcbuild, libiconv, Cocoa, ncurses }:
|
||||
{ fetchurl, stdenv, fetchFromGitHub, xcbuildHook, libiconv, Cocoa, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pinentry-mac-0.9.4";
|
||||
@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0g75302697gqcxyf2hyqzvcbd5pyss1bl2xvfd40wqav7dlyvj83";
|
||||
};
|
||||
|
||||
buildInputs = [ xcbuild libiconv Cocoa ncurses ];
|
||||
nativeBuildInputs = [ xcbuildHook ];
|
||||
buildInputs = [ libiconv Cocoa ncurses ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/Applications
|
||||
|
@ -7795,6 +7795,10 @@ with pkgs;
|
||||
buildozer = bazel-buildtools;
|
||||
unused_deps = bazel-buildtools;
|
||||
|
||||
bazel-deps = callPackage ../development/tools/build-managers/bazel/bazel-deps {
|
||||
buildBazelPackage = buildBazelPackage.override { enableNixHacks = false; };
|
||||
};
|
||||
|
||||
buildBazelPackage = callPackage ../build-support/build-bazel-package { };
|
||||
|
||||
bear = callPackage ../development/tools/build-managers/bear { };
|
||||
@ -8605,10 +8609,14 @@ with pkgs;
|
||||
|
||||
xc3sprog = callPackage ../development/tools/misc/xc3sprog { };
|
||||
|
||||
xcbuild = callPackage ../development/tools/xcbuild/wrapper.nix {
|
||||
xcodebuild = callPackage ../development/tools/xcbuild/wrapper.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO;
|
||||
stdenv = buildPackages.clangStdenv;
|
||||
};
|
||||
xcbuild = xcodebuild;
|
||||
xcbuildHook = makeSetupHook {
|
||||
deps = [ xcbuild ];
|
||||
} ../development/tools/xcbuild/setup-hook.sh ;
|
||||
|
||||
xmlindent = callPackage ../development/web/xmlindent {};
|
||||
|
||||
@ -12918,6 +12926,8 @@ with pkgs;
|
||||
|
||||
libpulseaudio = libpulseaudio-vanilla;
|
||||
|
||||
pulseeffects = callPackage ../applications/audio/pulseeffects { };
|
||||
|
||||
tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
|
||||
|
||||
pies = callPackage ../servers/pies { };
|
||||
@ -13690,6 +13700,11 @@ with pkgs;
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.cpu-cgroup-v2."4.4"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
# Remove these xen-netfront patches once they're included in
|
||||
# upstream! Fixes https://github.com/NixOS/nixpkgs/issues/42755
|
||||
kernelPatches.xen-netfront_fix_mismatched_rtnl_unlock
|
||||
kernelPatches.xen-netfront_update_features_after_registering_netdev
|
||||
];
|
||||
};
|
||||
|
||||
@ -13698,6 +13713,11 @@ with pkgs;
|
||||
[ kernelPatches.bridge_stp_helper
|
||||
kernelPatches.cpu-cgroup-v2."4.9"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
# Remove these xen-netfront patches once they're included in
|
||||
# upstream! Fixes https://github.com/NixOS/nixpkgs/issues/42755
|
||||
kernelPatches.xen-netfront_fix_mismatched_rtnl_unlock
|
||||
kernelPatches.xen-netfront_update_features_after_registering_netdev
|
||||
];
|
||||
};
|
||||
|
||||
@ -13708,6 +13728,11 @@ with pkgs;
|
||||
# when adding a new linux version
|
||||
kernelPatches.cpu-cgroup-v2."4.11"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
# Remove these xen-netfront patches once they're included in
|
||||
# upstream! Fixes https://github.com/NixOS/nixpkgs/issues/42755
|
||||
kernelPatches.xen-netfront_fix_mismatched_rtnl_unlock
|
||||
kernelPatches.xen-netfront_update_features_after_registering_netdev
|
||||
];
|
||||
};
|
||||
|
||||
@ -13719,6 +13744,11 @@ with pkgs;
|
||||
# kernelPatches.cpu-cgroup-v2."4.11"
|
||||
kernelPatches.modinst_arg_list_too_long
|
||||
kernelPatches.bcm2835_mmal_v4l2_camera_driver # Only needed for 4.16!
|
||||
# https://github.com/NixOS/nixpkgs/issues/42755
|
||||
# Remove these xen-netfront patches once they're included in
|
||||
# upstream! Fixes https://github.com/NixOS/nixpkgs/issues/42755
|
||||
kernelPatches.xen-netfront_fix_mismatched_rtnl_unlock
|
||||
kernelPatches.xen-netfront_update_features_after_registering_netdev
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -321,6 +321,8 @@ let
|
||||
|
||||
inifiles = callPackage ../development/ocaml-modules/inifiles { };
|
||||
|
||||
iri = callPackage ../development/ocaml-modules/iri { };
|
||||
|
||||
jingoo = callPackage ../development/ocaml-modules/jingoo {
|
||||
pcre = ocaml_pcre;
|
||||
};
|
||||
|
@ -6310,9 +6310,6 @@ in {
|
||||
|
||||
guessit = callPackage ../development/python-modules/guessit { };
|
||||
|
||||
# used by flexget
|
||||
guessit_2_0 = callPackage ../development/python-modules/guessit/2.0.nix { };
|
||||
|
||||
rebulk = callPackage ../development/python-modules/rebulk { };
|
||||
|
||||
gunicorn = callPackage ../development/python-modules/gunicorn { };
|
||||
|
@ -31,17 +31,13 @@ let
|
||||
then defaultBuildHostScope
|
||||
else assert pkgs.hostPlatform == pkgs.buildPlatform; defaultHostTargetScope;
|
||||
defaultHostHostScope = {}; # unimplemented
|
||||
# TODO(@Ericson2314): we shouldn't preclude run-time fetching by removing
|
||||
# these attributes. We should have a more general solution for selecting
|
||||
# whether `nativeDrv` or `crossDrv` is the default in `defaultScope`.
|
||||
pkgsWithoutFetchers = lib.filterAttrs (n: _: !lib.hasPrefix "fetch" n) pkgs;
|
||||
targetPkgsWithoutFetchers = lib.filterAttrs (n: _: !lib.hasPrefix "fetch" n) pkgs.targetPackages;
|
||||
defaultHostTargetScope = pkgsWithoutFetchers // pkgs.xorg;
|
||||
defaultTargetTargetScope = targetPkgsWithoutFetchers // targetPkgsWithoutFetchers.xorg or {};
|
||||
defaultHostTargetScope = pkgs // pkgs.xorg;
|
||||
defaultTargetTargetScope = pkgs.targetPackages // pkgs.targetPackages.xorg or {};
|
||||
|
||||
splicer = pkgsBuildBuild: pkgsBuildHost: pkgsBuildTarget:
|
||||
pkgsHostHost: pkgsHostTarget:
|
||||
pkgsTargetTarget: let
|
||||
spliceReal = { pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
|
||||
, pkgsHostHost, pkgsHostTarget
|
||||
, pkgsTargetTarget
|
||||
}: let
|
||||
mash =
|
||||
# Other pkgs sets
|
||||
pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget
|
||||
@ -55,7 +51,7 @@ let
|
||||
valueBuildBuild = pkgsBuildBuild.${name} or {};
|
||||
valueBuildHost = pkgsBuildHost.${name} or {};
|
||||
valueBuildTarget = pkgsBuildTarget.${name} or {};
|
||||
valueHostHost = throw "`valueHostHost` unimplemented: pass manually rather than relying on splicer.";
|
||||
valueHostHost = throw "`valueHostHost` unimplemented: pass manually rather than relying on splice.";
|
||||
valueHostTarget = pkgsHostTarget.${name} or {};
|
||||
valueTargetTarget = pkgsTargetTarget.${name} or {};
|
||||
augmentedValue = defaultValue
|
||||
@ -82,38 +78,51 @@ let
|
||||
in
|
||||
# The derivation along with its outputs, which we recur
|
||||
# on to splice them together.
|
||||
if lib.isDerivation defaultValue then augmentedValue // splicer
|
||||
(tryGetOutputs valueBuildBuild) (tryGetOutputs valueBuildHost) (tryGetOutputs valueBuildTarget)
|
||||
(tryGetOutputs valueHostHost) (getOutputs valueHostTarget)
|
||||
(tryGetOutputs valueTargetTarget)
|
||||
if lib.isDerivation defaultValue then augmentedValue // spliceReal {
|
||||
pkgsBuildBuild = tryGetOutputs valueBuildBuild;
|
||||
pkgsBuildHost = tryGetOutputs valueBuildHost;
|
||||
pkgsBuildTarget = tryGetOutputs valueBuildTarget;
|
||||
pkgsHostHost = tryGetOutputs valueHostHost;
|
||||
pkgsHostTarget = getOutputs valueHostTarget;
|
||||
pkgsTargetTarget = tryGetOutputs valueTargetTarget;
|
||||
# Just recur on plain attrsets
|
||||
else if lib.isAttrs defaultValue then splicer
|
||||
valueBuildBuild valueBuildHost valueBuildTarget
|
||||
{} valueHostTarget
|
||||
valueTargetTarget
|
||||
} else if lib.isAttrs defaultValue then spliceReal {
|
||||
pkgsBuildBuild = valueBuildBuild;
|
||||
pkgsBuildHost = valueBuildHost;
|
||||
pkgsBuildTarget = valueBuildTarget;
|
||||
pkgsHostHost = {};
|
||||
pkgsHostTarget = valueHostTarget;
|
||||
pkgsTargetTarget = valueTargetTarget;
|
||||
# Don't be fancy about non-derivations. But we could have used used
|
||||
# `__functor__` for functions instead.
|
||||
else defaultValue;
|
||||
} else defaultValue;
|
||||
};
|
||||
in lib.listToAttrs (map merge (lib.attrNames mash));
|
||||
|
||||
splicedPackages =
|
||||
if actuallySplice
|
||||
then
|
||||
splicer
|
||||
defaultBuildBuildScope defaultBuildHostScope defaultBuildTargetScope
|
||||
defaultHostHostScope defaultHostTargetScope
|
||||
defaultTargetTargetScope
|
||||
// {
|
||||
# These should never be spliced under any circumstances
|
||||
inherit (pkgs) pkgs buildPackages targetPackages
|
||||
buildPlatform targetPlatform hostPlatform;
|
||||
}
|
||||
else pkgs // pkgs.xorg;
|
||||
splicePackages = { pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
|
||||
, pkgsHostHost, pkgsHostTarget
|
||||
, pkgsTargetTarget
|
||||
} @ args:
|
||||
if actuallySplice then spliceReal args else pkgsHostTarget;
|
||||
|
||||
splicedPackages = splicePackages {
|
||||
pkgsBuildBuild = defaultBuildBuildScope;
|
||||
pkgsBuildHost = defaultBuildHostScope;
|
||||
pkgsBuildTarget = defaultBuildTargetScope;
|
||||
pkgsHostHost = defaultHostHostScope;
|
||||
pkgsHostTarget = defaultHostTargetScope;
|
||||
pkgsTargetTarget = defaultTargetTargetScope;
|
||||
} // {
|
||||
# These should never be spliced under any circumstances
|
||||
inherit (pkgs) pkgs buildPackages targetPackages
|
||||
buildPlatform targetPlatform hostPlatform;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
inherit splicePackages;
|
||||
|
||||
# We use `callPackage' to be able to omit function arguments that can be
|
||||
# obtained `pkgs` or `buildPackages` and their `xorg` package sets. Use
|
||||
# `newScope' for sets of packages in `pkgs' (see e.g. `gnome' below).
|
||||
@ -122,4 +131,8 @@ in
|
||||
callPackages = lib.callPackagesWith splicedPackages;
|
||||
|
||||
newScope = extra: lib.callPackageWith (splicedPackages // extra);
|
||||
|
||||
# Haskell package sets need this because they reimplement their own
|
||||
# `newScope`.
|
||||
__splicedPackages = splicedPackages // { recurseForDerivations = false; };
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user