Merge branch 'master' of github.com:nixos/nixpkgs into pleasant-ruby
Conflicts: pkgs/applications/version-management/redmine/default.nix pkgs/development/interpreters/ruby/gem.nix pkgs/development/interpreters/ruby/generated.nix pkgs/development/interpreters/ruby/patches.nix pkgs/development/tools/vagrant/default.nix pkgs/servers/consul/default.nix
This commit is contained in:
@@ -1,19 +1,21 @@
|
||||
{ stdenv, fetchurl, alsaLib, cmake, pkgconfig, glib }:
|
||||
{ stdenv, fetchFromGitHub, alsaLib, cmake, pkgconfig, glib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "apulse-${version}";
|
||||
version = "0.1.2";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/i-rinat/apulse/archive/v${version}.tar.gz";
|
||||
sha256 = "02906a8iwwjzzkjvhqqai2yd1636cgz9vl69vwq0vkv2v6cn21ky";
|
||||
src = fetchFromGitHub {
|
||||
owner = "i-rinat";
|
||||
repo = "apulse";
|
||||
rev = "v${version}";
|
||||
sha256 = "115z5a0n8lkcqfgz0cgvjw3p7d0nvzfxzd9g0h137ziflyx3ysh1";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
[ alsaLib cmake pkgconfig glib ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "PulseAudio emulation for ALSA.";
|
||||
description = "PulseAudio emulation for ALSA";
|
||||
homepage = "https://github.com/i-rinat/apulse";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, pkgconfig, zlib, libjpeg, libpng, libtiff, pam, openssl
|
||||
, dbus, libusb, acl }:
|
||||
|
||||
let version = "1.5.4"; in
|
||||
let version = "1.7.5"; in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "cups-${version}";
|
||||
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.cups.org/software/${version}/cups-${version}-source.tar.bz2";
|
||||
sha256 = "1rfhlv9b37120d6shngvyrcp99vh4a3lwdkrfanv3sjqid7068w0";
|
||||
sha256 = "00mx4rpiqw9cwx46bd3hd5lcgmcxy63zfnmkr02smanv8xl4rjqq";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig zlib libjpeg libpng libtiff libusb ]
|
||||
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
|
||||
|
||||
propagatedBuildInputs = [ openssl ];
|
||||
|
||||
configureFlags = "--localstatedir=/var --enable-dbus"; # --with-dbusdir
|
||||
configureFlags = "--localstatedir=/var --sysconfdir=/etc --enable-dbus"; # --with-dbusdir
|
||||
|
||||
installFlags =
|
||||
[ # Don't try to write in /var at build time.
|
||||
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
|
||||
"DBUSDIR=$(out)/etc/dbus-1"
|
||||
"INITDIR=$(out)/etc/rc.d"
|
||||
"XINETD=$(out)/etc/xinetd.d"
|
||||
"SERVERROOT=$(out)/etc/cups"
|
||||
# Idem for /usr.
|
||||
"MENUDIR=$(out)/share/applications"
|
||||
"ICONDIR=$(out)/share/icons"
|
||||
@@ -38,6 +39,12 @@ stdenv.mkDerivation {
|
||||
"CUPS_PRIMARY_SYSTEM_GROUP=root"
|
||||
];
|
||||
|
||||
postInstall =
|
||||
''
|
||||
# Delete obsolete stuff that conflicts with cups-filters.
|
||||
rm -rf $out/share/cups/banners $out/share/cups/data/testprint
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.cups.org/";
|
||||
description = "A standards-based printing system for UNIX";
|
||||
|
||||
@@ -28,7 +28,7 @@ ln -s ppd model
|
||||
cd $out/lib/cups/filter
|
||||
for i in $(ls); do
|
||||
echo patching $i...
|
||||
patchelf --set-interpreter $(cat $NIX_GCC/nix-support/dynamic-linker) $i || echo "(couldn't set interpreter)"
|
||||
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $i || echo "(couldn't set interpreter)"
|
||||
patchelf --set-rpath $cups/lib:$gcc/lib:$glibc/lib $i # This might not be necessary.
|
||||
done
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
{ stdenv, fetchurl, pkgconfig, cups, poppler, fontconfig
|
||||
, libjpeg, libpng, perl, ijs, qpdf, dbus, substituteAll, bash }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cups-filters-${version}";
|
||||
version = "1.0.61";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://openprinting.org/download/cups-filters/${name}.tar.xz";
|
||||
sha256 = "1bq48nnrarlbf6qc93bz1n5wlh6j420gppbck3r45sinwhz5wa7m";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pkgconfig cups poppler fontconfig libjpeg libpng perl
|
||||
ijs qpdf dbus
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
substituteInPlace Makefile --replace "/etc/rc.d" "$out/etc/rc.d"
|
||||
'';
|
||||
|
||||
configureFlags = "--with-pdftops=pdftops --enable-imagefilters";
|
||||
|
||||
makeFlags = "CUPS_SERVERBIN=$(out)/lib/cups CUPS_DATADIR=$(out)/share/cups CUPS_SERVERROOT=$(out)/etc/cups";
|
||||
|
||||
postConfigure =
|
||||
''
|
||||
# Ensure that bannertopdf can find the PDF templates in
|
||||
# $out. (By default, it assumes that cups and cups-filters are
|
||||
# installed in the same prefix.)
|
||||
substituteInPlace config.h --replace ${cups}/share/cups/data $out/share/cups/data
|
||||
|
||||
# Ensure that gstoraster can find gs in $PATH.
|
||||
substituteInPlace filter/gstoraster.c --replace execve execvpe
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./longer-shell-path.patch;
|
||||
bash = "${bash}/bin/bash";
|
||||
})
|
||||
];
|
||||
|
||||
postInstall =
|
||||
''
|
||||
for i in $out/lib/cups/filter/{pstopdf,texttops,imagetops}; do
|
||||
substituteInPlace $i --replace 'which ' 'type -p '
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters;
|
||||
description = "Backends, filters, and other software that was once part of the core CUPS distribution but is no longer maintained by Apple Inc";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/filter/foomatic-rip/foomaticrip.c b/filter/foomatic-rip/foomaticrip.c
|
||||
index 1c019aa..431d2f9 100644
|
||||
--- a/filter/foomatic-rip/foomaticrip.c
|
||||
+++ b/filter/foomatic-rip/foomaticrip.c
|
||||
@@ -174,7 +174,7 @@ char cupsfilterpath[PATH_MAX] = "/usr/local/lib/cups/filter:"
|
||||
"/opt/cups/filter:"
|
||||
"/usr/lib/cups/filter";
|
||||
|
||||
-char modern_shell[64] = "/bin/bash";
|
||||
+char modern_shell[128] = "@bash@";
|
||||
|
||||
void config_set_option(const char *key, const char *value)
|
||||
{
|
||||
@@ -1,39 +0,0 @@
|
||||
{ stdenv, fetchurl, pkgconfig, cups, poppler }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "cups-pdf-filter-${cups.version}";
|
||||
|
||||
inherit (cups) src;
|
||||
|
||||
buildInputs = [ pkgconfig cups poppler ];
|
||||
|
||||
preConfigure = ''
|
||||
sed -e 's@\.\./cups/$(LIBCUPS)@@' -e 's@$(LIBCUPSIMAGE)@@' -i filter/Makefile
|
||||
'';
|
||||
|
||||
NIX_LDFLAGS="-L${cups}/lib";
|
||||
|
||||
configureFlags = ''
|
||||
--localstatedir=/var --enable-dbus
|
||||
--enable-image --with-pdftops=pdftops'';
|
||||
|
||||
buildPhase = ''
|
||||
cd filter
|
||||
make pdftops
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -pv $out/lib/cups/filter $out/share/cups/mime
|
||||
cp -v pdftops $out/lib/cups/filter
|
||||
echo >$out/share/cups/mime/pdftops.convs 'application/pdf application/vnd.cups-postscript 66 pdftops'
|
||||
'';
|
||||
|
||||
|
||||
meta = {
|
||||
homepage = http://www.cups.org/;
|
||||
description = "Image and pdf filters for CUPS";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = [ stdenv.lib.maintainers.urkud ];
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, pkgconfig, perl, cups, dbus }:
|
||||
{ stdenv, fetchurl, pkgconfig, perl, cups, dbus, enscript }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "foomatic-filters-4.0.17";
|
||||
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1qrkgbm5jay2r7sh9qbyf0aiyrsl1mdc844hxf7fhw95a0zfbqm2";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig perl cups dbus ];
|
||||
buildInputs = [ pkgconfig perl cups dbus enscript ];
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
|
||||
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
|
||||
|
||||
phases = "buildPhase";
|
||||
|
||||
libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc zlib ];
|
||||
libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.gcc zlib ];
|
||||
|
||||
buildPhase = ''
|
||||
ar -x $src data.tar.gz
|
||||
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
|
||||
$out/cups/lib/backend/{canon,epson} \
|
||||
$out/sbin/cups-genppd.5.0 \
|
||||
; do
|
||||
patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath $libPath $p
|
||||
done
|
||||
|
||||
|
||||
@@ -118,8 +118,10 @@ stdenv.mkDerivation rec {
|
||||
meta = with stdenv.lib; {
|
||||
description = "Print, scan and fax HP drivers for Linux";
|
||||
homepage = http://hplipopensource.com/;
|
||||
license = if withPlugin then licenses.unfree else "free"; # MIT/BSD/GPL
|
||||
license = if withPlugin
|
||||
then licenses.unfree
|
||||
else with licenses; [ mit bsd2 gpl2Plus ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ttuegel ];
|
||||
maintainers = with maintainers; [ ttuegel jgeerds ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -18,9 +18,8 @@ in stdenv.mkDerivation {
|
||||
buildInputs = [ scons libX11 pkgconfig libusb1 boost glib dbus_glib];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://pingus.seul.org/~grumbel/xboxdrv/";
|
||||
description =
|
||||
"Xbox/Xbox360 (and more) gamepad driver for Linux that works in userspace.";
|
||||
homepage = http://pingus.seul.org/~grumbel/xboxdrv/;
|
||||
description = "Xbox/Xbox360 (and more) gamepad driver for Linux that works in userspace";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.fuuzetsu ];
|
||||
};
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
{ stdenv, udev, ncurses, pkgconfig, fetchurl, bluez }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "xwiimote";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/dvdhrm/xwiimote/releases/download/xwiimote-2/xwiimote-2.tar.xz";
|
||||
sha256 = "1g9cbhblll47l300zr999xr51x2g98y49l222f77fhswd12kjzhd";
|
||||
};
|
||||
|
||||
buildInputs = [ udev ncurses pkgconfig bluez ];
|
||||
|
||||
configureFlags = "--with-doxygen=no";
|
||||
|
||||
meta = {
|
||||
homepage = http://dvdhrm.github.io/xwiimote;
|
||||
description = "Userspace utilities to control connected Nintendo Wii Remotes";
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
};
|
||||
|
||||
postInstallPhase = ''
|
||||
mkdir -p "$out/etc/X11/xorg.conf.d/"
|
||||
cp "res/50-xorg-fix-xwiimote.conf" "$out/etc/X11/xorg.conf.d/50-fix-xwiimote.conf"
|
||||
'';
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
assert stdenv.system == "i686-linux";
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation {
|
||||
name = "darcnes-9b0401";
|
||||
src = fetchurl {
|
||||
url = http://www.dridus.com/~nyef/darcnes/download/dn9b0401.tgz;
|
||||
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
|
||||
homepage = http://www.dridus.com/~nyef/darcnes/;
|
||||
description = "Multi-System emulator, specially for NES";
|
||||
/* Prohibited commercial use, credit required. */
|
||||
license = "free";
|
||||
license = stdenv.lib.licenses.free;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
|
||||
buildInputs = [ pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
|
||||
gettext libpthreadstubs libXrandr libXext readline openal
|
||||
libXdmcp portaudio SDL wxGTK30 pulseaudio ];
|
||||
|
||||
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://dolphin-emu.org/;
|
||||
description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ MP2E ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
, pulseaudio ? null }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "dolphin-emu-20141002";
|
||||
name = "dolphin-emu-20141201";
|
||||
src = fetchgit {
|
||||
url = git://github.com/dolphin-emu/dolphin.git;
|
||||
rev = "ed7f0739ae31c07c31d013964986c549317aba6e";
|
||||
sha256 = "01qwlkh3c0ij97zycq0v4kclxmnlbwcc1bmvjzl4cbczhxbbx4hk";
|
||||
rev = "54f1e3a3c148d36e694d8bb08d282225bdcb3440";
|
||||
sha256 = "1i0ps3ayga6m4v0jyflv2x6rr3cjrym0laafjdslggqkk04b2vjp";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [ stdenv pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
|
||||
buildInputs = [ pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
|
||||
gettext libpthreadstubs libXrandr libXext readline openal
|
||||
git libXdmcp portaudio SDL wxGTK30 pulseaudio ];
|
||||
|
||||
@@ -31,5 +31,8 @@ stdenv.mkDerivation rec {
|
||||
description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
maintainers = with stdenv.lib.maintainers; [ MP2E ];
|
||||
# x86_32 is an unsupported platform.
|
||||
# Enable generic build if you really want a JIT-less binary.
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
diff -wbBur rdanbrook-nestopia-f1dde9b/Makefile rdanbrook-nestopia-f1dde9b.my/Makefile
|
||||
--- rdanbrook-nestopia-f1dde9b/Makefile 2013-01-20 20:10:25.000000000 +0400
|
||||
+++ rdanbrook-nestopia-f1dde9b.my/Makefile 2013-01-21 15:18:54.727577673 +0400
|
||||
@@ -197,11 +197,11 @@
|
||||
install -m 0644 NstDatabase.xml $(DATADIR)
|
||||
install -m 0644 source/unix/icons/*.png $(DATADIR)/icons
|
||||
install -m 0644 source/unix/icons/*.svg $(DATADIR)/icons
|
||||
- install -m 0644 source/unix/icons/nestopia.svg $(PREFIX)/share/pixmaps
|
||||
- xdg-desktop-menu install --novendor $(DATADIR)/nestopia.desktop
|
||||
+ install -m 0644 source/unix/icons/nestopia.svg $(PREFIX)/share/pixmaps/nestopia.svg
|
||||
+ install -Dm0644 $(DATADIR)/nestopia.desktop $(PREFIX)/share/applications/nestopia.desktop
|
||||
|
||||
uninstall:
|
||||
- xdg-desktop-menu uninstall $(DATADIR)/nestopia.desktop
|
||||
+ rm $(PREFIX)/share/applications/nestopia.desktop
|
||||
rm $(PREFIX)/share/pixmaps/nestopia.svg
|
||||
rm $(BINDIR)/$(BIN)
|
||||
rm -rf $(DATADIR)
|
||||
@@ -0,0 +1,38 @@
|
||||
{ stdenv, fetchurl, pkgconfig, SDL2, alsaLib, gtk3, mesa_glu, makeWrapper
|
||||
, mesa, libarchive, libao, unzip, xdg_utils, gsettings_desktop_schemas }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nestopia-1.46.2";
|
||||
src = fetchurl {
|
||||
url = https://github.com/rdanbrook/nestopia/archive/1.46.2.tar.gz;
|
||||
sha256 = "07h49xwvg61dx20rk5p4r3ax2ar5y0ppvm60cqwqljyi9rdfbh7p";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [ pkgconfig SDL2 alsaLib gtk3 mesa_glu mesa makeWrapper
|
||||
libarchive libao unzip xdg_utils gsettings_desktop_schemas ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,share/nestopia}
|
||||
make install PREFIX=$out
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
for f in $out/bin/*; do
|
||||
wrapProgram $f \
|
||||
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
|
||||
done
|
||||
'';
|
||||
|
||||
patches = [ ./build-fix.patch ];
|
||||
|
||||
meta = {
|
||||
homepage = http://0ldsk00l.ca/nestopia/;
|
||||
description = "NES emulator with a focus on accuracy";
|
||||
license = stdenv.lib.licenses.gpl2;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with stdenv.lib.maintainers; [ MP2E ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.ppsspp.org/";
|
||||
description = "A PSP emulator, the Qt4 version.";
|
||||
description = "A PSP emulator, the Qt4 version";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.fuuzetsu ];
|
||||
platforms = platforms.linux ++ platforms.darwin ++ platforms.cygwin;
|
||||
|
||||
@@ -9,7 +9,7 @@ let
|
||||
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
|
||||
|
||||
name = "libretro-${core}-${version}";
|
||||
version = "20141009";
|
||||
version = "20141224";
|
||||
inherit src;
|
||||
|
||||
buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or [];
|
||||
@@ -33,7 +33,7 @@ let
|
||||
inherit description;
|
||||
homepage = "http://www.libretro.com/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.edwtjo ];
|
||||
maintainers = [ maintainers.edwtjo maintainers.MP2E ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
} // a);
|
||||
@@ -53,8 +53,8 @@ in
|
||||
core = "4do";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "700e5c2b28252ed7d3fb086ab016b3b964a5030a";
|
||||
sha256 = "0wxiapbp6i3r9ir75xgmah0jhrfvy9jgqr6i22grgmnga1qv5pcf";
|
||||
rev = "47fee1687d8946e84af2ef4d28a693f5f14199d3";
|
||||
sha256 = "0bhn761akcb5623yvbndm79pbfackbhaqcaqhrqwvk0ja13pry4l";
|
||||
};
|
||||
description = "Port of 4DO/libfreedo to libretro";
|
||||
}).override {
|
||||
@@ -65,8 +65,8 @@ in
|
||||
core = "bsnes-mercury";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "5fa7c035a604cd207c5833af0fdd55d7cf68acb0";
|
||||
sha256 = "19drxpspid0y3wi3zp3ls4jlhx1ndqmr51jici7w2vsajk9x9dyg";
|
||||
rev = "6e08947a3eeee4c3ac0c33a5e6739cde02dbda3c";
|
||||
sha256 = "1dkbjhm99r26fagypqlgdrp6v4dhs554cspzp1maryl3nrr57wf8";
|
||||
};
|
||||
description = "Fork of bsnes with HLE DSP emulation restored";
|
||||
}).override {
|
||||
@@ -77,8 +77,8 @@ in
|
||||
core = "desmume";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "57bbabfe71fb8e131fa14ab1504f1959937b8ce5";
|
||||
sha256 = "19kbl361ggzhmmc5alsfwq9gcl0zc9zhz0nx562l6k2lj7fwwr0g";
|
||||
rev = "362fee2cc242082d73cd0f7260554e202dd80d78";
|
||||
sha256 = "0n27kgjqam81q0cbmnmlq1dslyg9wbnz96r8pwjlbv7pp97rp7br";
|
||||
};
|
||||
description = "libretro wrapper for desmume NDS emulator";
|
||||
}).override {
|
||||
@@ -89,8 +89,8 @@ in
|
||||
core = "fceumm";
|
||||
src = fetchRetro {
|
||||
repo = "libretro-" + core;
|
||||
rev = "1b27f5abafa4ace43badebea82a8374be3a5a96b";
|
||||
sha256 = "04v0in7nazmkfsbvl0wn5klnz4f8rpjsar1v3c07j2qrma42k60w";
|
||||
rev = "b10d6d4600bfe6b0f2d793785d19a46479a4e7ef";
|
||||
sha256 = "1nrs8hb5yb0iigz1nhzzamlmybjyhjcb41y07ckwx9kzx0w72sjz";
|
||||
};
|
||||
description = "FCEUmm libretro port";
|
||||
};
|
||||
@@ -99,8 +99,8 @@ in
|
||||
core = "fba";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "21a78df085a0d964828c5c0940c03e656e2ad808";
|
||||
sha256 = "01ycszinral19ni22a3x8afiz23y9xw6idzx9a22xnc6zqvj0fjm";
|
||||
rev = "55023b0466465f9d50ad82fd6f1549a89234bcab";
|
||||
sha256 = "147a9if99mnv12fp70r4h3171m95gzmiq6rlf9axf4693h6kzb02";
|
||||
};
|
||||
description = "Port of Final Burn Alpha to libretro";
|
||||
}).override {
|
||||
@@ -115,8 +115,8 @@ in
|
||||
core = "gambatte";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "6f3c97d86483368ec446b6b08ae21b1cb644312c";
|
||||
sha256 = "19kbisbl5lqxfsaff4knp2rrl17af21c1kgccxhgp5liqnqk92k5";
|
||||
rev = "6aa6a514b58671106352a525cbc9c39ce8633cdd";
|
||||
sha256 = "0ai0l8wwi61rsq4cm3h5n039s78xrhrxvxn4nbav1mn70ynzijx7";
|
||||
};
|
||||
description = "Gambatte libretro port";
|
||||
}).override {
|
||||
@@ -127,18 +127,30 @@ in
|
||||
core = "genesis-plus-gx";
|
||||
src = fetchRetro {
|
||||
repo = "Genesis-Plus-GX";
|
||||
rev = "d634da83d29d39d293c1aba3c14f6259e13e525e";
|
||||
sha256 = "0mhn2h2wr2kh5rgda5rj7xkmg4b6glg4rnd0f1ak6rp3sh8dfhv1";
|
||||
rev = "3b3eae18e742b99142ea2a412e80b9152933ab59";
|
||||
sha256 = "01mn2m1wg026wy1ffcv36wv0pvm18xnin27v681vd7bma96dl7p0";
|
||||
};
|
||||
description = "Enhanced Genesis Plus libretro port";
|
||||
};
|
||||
|
||||
mednafen-pce-fast = (mkLibRetroCore rec {
|
||||
core = "mednafen-pce-fast";
|
||||
src = fetchRetro {
|
||||
repo = "beetle-pce-fast-libretro";
|
||||
rev = "0a389287025c0166e7b89bf0320ab1c6f8a5a561";
|
||||
sha256 = "1s8l3pddgw060wb177wx6ysa040k45wy5vlvbjjvq1rj3352izk4";
|
||||
};
|
||||
description = "Port of Mednafen's PC Engine core to libretro";
|
||||
}).override {
|
||||
buildPhase = "make";
|
||||
};
|
||||
|
||||
mupen64plus = (mkLibRetroCore rec {
|
||||
core = "mupen64plus";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "021ab383e2ac44533e9babd3e7f5fed97a988225";
|
||||
sha256 = "13hph19b24bbp9d6s8zm4a939dhy96n2fbkcknmsp473kfnm9mf6";
|
||||
rev = "b97ce52e49d255cd3e87fd6dc44ddd9a596d0be4";
|
||||
sha256 = "1disddd35c45ffp7irsgcf0y906f44d7rkjv96gxs6vvzwxifiih";
|
||||
};
|
||||
description = "Libretro port of Mupen64 Plus, GL only";
|
||||
|
||||
@@ -151,8 +163,8 @@ in
|
||||
core = "nestopia";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "3468f3c16c80935e8c4078a5771e9379a981989c";
|
||||
sha256 = "1k9kd25z4hyna48gwxb8rkm9q402xzhw18wmgbzkf8y6zqxn50j0";
|
||||
rev = "3b030c93edcc8f49e2f6323b1df7fc78759accd8";
|
||||
sha256 = "0gr4s6p40j5qiyg94kpa8v3083cbp2ccdq5zp6kkpjskxzkdfhqg";
|
||||
};
|
||||
description = "nestopia undead libretro port";
|
||||
}).override {
|
||||
@@ -163,8 +175,8 @@ in
|
||||
core = "picodrive";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "3f4b091194d29dd90a3cb88fd6520f677ffece65";
|
||||
sha256 = "0jb89g5xmq7nzx4gm1mam1hym20fcyzp95k9as0k2gnwxrd4ymxv";
|
||||
rev = "2babf3518e258cc3d6649f6e34a267e83dffd7d9";
|
||||
sha256 = "13l9ppr8v33a7jmgjpg9hqwim30mybscnwqj2bch5v0w6h3qynzh";
|
||||
};
|
||||
description = "Fast MegaDrive/MegaCD/32X emulator";
|
||||
|
||||
@@ -178,8 +190,8 @@ in
|
||||
core = "prboom";
|
||||
src = fetchRetro {
|
||||
repo = "libretro-" + core;
|
||||
rev = "7c5e74a8f8a973278d46604f2816aae538e9cce7";
|
||||
sha256 = "1mkxc7zcyc2nj7spsrasbnz6k182g8i1snahbbwj4qi41db6cjc9";
|
||||
rev = "437fd00bf58158bf3c5e2e49237d9344f320584a";
|
||||
sha256 = "0g9dvmywph5r8ly20bn3xkm12271n726s5g9z0f2pd75pnv13q86";
|
||||
};
|
||||
description = "Prboom libretro port";
|
||||
}).override {
|
||||
@@ -190,11 +202,10 @@ in
|
||||
core = "ppsspp";
|
||||
src = fetchRetro {
|
||||
repo = "libretro-" + core;
|
||||
rev = "af5050be6b421e08be42d4edf0015693ceba1f06";
|
||||
sha256 = "0h4crdq6n6npbv6sidp3bgz5g2z3ws6ikg37f0amshh3rj36p7q0";
|
||||
rev = "b82a36232f677f48e95d6f284184cb8c935d4ad2";
|
||||
sha256 = "0bzqs9v37qyh6dl5jsrmm46iwy04h7ypgnibxajrxg1795ccb3rr";
|
||||
};
|
||||
description = "ppsspp libretro port";
|
||||
|
||||
extraBuildInputs = [ mesa ffmpeg ];
|
||||
}).override {
|
||||
buildPhase = "cd libretro && make";
|
||||
@@ -204,8 +215,8 @@ in
|
||||
core = "quicknes";
|
||||
src = fetchRetro {
|
||||
repo = "QuickNES_Core";
|
||||
rev = "3e8935cc937d3bf64dc44b63cef5d584ec2673fa";
|
||||
sha256 = "003hrxkskrkqv5h39p4gd9mg2k3ki5l1cmm0kxq7c454yliljjxc";
|
||||
rev = "0dab65e2a962640c517f23f2668b76315faf977e";
|
||||
sha256 = "12cv2ph72y6c0clcqssdyma1jxn8yi7x2ifyf2g77rbaswxr26r4";
|
||||
};
|
||||
description = "QuickNES libretro port";
|
||||
}).override {
|
||||
@@ -216,8 +227,8 @@ in
|
||||
core = "scummvm";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "0a703f6546c5a0d8ef835aa624681f7877c36df6";
|
||||
sha256 = "1v1a6zvc1sjvvnvcarcmdym7qwyqyvl4b6ianjgzbpaxwmw457g0";
|
||||
rev = "bf30f7a146ab3d0ea5bcff43b1db489118b78cdf";
|
||||
sha256 = "1xgl2vsssa5mxhavcyghxrbab4lfbp9gnpy6ckhrxdd0n08kvyys";
|
||||
};
|
||||
description = "Libretro port of ScummVM";
|
||||
|
||||
@@ -230,8 +241,8 @@ in
|
||||
core = "snes9x";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "0724786eb2ed1436946a2e2b42c77cddf8412a63";
|
||||
sha256 = "15wnq12mkfz766dzafhlmmh8a8b463ybssj84fhijj8c1x75scd1";
|
||||
rev = "e41b0a2832fdcacc30498f23ddadd193376f837f";
|
||||
sha256 = "0k9zxc9g6hhkc18mdgskjp99ljgay8jqmqhir4aahsfqyxhwypgm";
|
||||
};
|
||||
description = " Port of SNES9x git to libretro";
|
||||
}).override {
|
||||
@@ -242,8 +253,8 @@ in
|
||||
core = "snes9x-next";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "c701a1e4357bc80e46cae5bdfa0d359bcbce23ad";
|
||||
sha256 = "0410dj7rxcadvyghc1yqwqidn1g3scm52i3gb9d8haymg9q1zbjs";
|
||||
rev = "c04566c04b1f07979f8a8f6d5bbcb844d7594aec";
|
||||
sha256 = "0lmrbmjk7qnkgz7n7dm744nps8zgbv76kz62vcja2kl5bq24kaxc";
|
||||
};
|
||||
description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro";
|
||||
};
|
||||
@@ -252,8 +263,8 @@ in
|
||||
core = "stella";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "394ef8c10b8057fe3f92ff9d7c73886ae2eefec2";
|
||||
sha256 = "1a5m157fqpspi2zafmqhcd6864dvfpwh44d4n47ngswp6ii9bq0f";
|
||||
rev = "4c8e93ce4b250b3b2d2743bae48eca25983f29db";
|
||||
sha256 = "1r016r9a0vwdnlms9s9hnzvszvkhpshjiyi2zql0zs2c1jbja6ia";
|
||||
};
|
||||
description = "Port of Stella to libretro";
|
||||
}).override {
|
||||
@@ -264,8 +275,8 @@ in
|
||||
core = "vbam";
|
||||
src = fetchRetro {
|
||||
repo = core + "-libretro";
|
||||
rev = "26a030ce01a6473d35bac2a6db4f0a360989d72f";
|
||||
sha256 = "065gljk2nijnjg2c2zbnpg25s5zam7x0z8lq7kbz9zb87sp73ha1";
|
||||
rev = "9baba21956add58fba7c411ddd752682f0d93270";
|
||||
sha256 = "1dxshbkgv7xjg3lzv9lwsyhgxjmxzfsvd6xpwmdmh3pjllfrgy1p";
|
||||
};
|
||||
description = "vanilla VBA-M libretro port";
|
||||
}).override {
|
||||
@@ -276,9 +287,9 @@ in
|
||||
core = "vba-next";
|
||||
src = fetchRetro {
|
||||
repo = core;
|
||||
rev = "136fe2020e941f27036754dd0524bfec750025dc";
|
||||
sha256 = "17bvx2wp2r5lkgffvqrirhgic1bfy39m7c1v74z245hg6z1jvqcf";
|
||||
rev = "54c37ea9e26c5480352eee92a80eb659c9b5cb39";
|
||||
sha256 = "0hkd1n00i3kwr5ids7b2c034xvx3nskg2316nli99ky511yq5cfd";
|
||||
};
|
||||
description = "VBA-M libretro port with modifications for speed";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "retroarch-bare-${version}";
|
||||
version = "20141009";
|
||||
version = "20141224";
|
||||
|
||||
src = fetchgit {
|
||||
url = git://github.com/libretro/RetroArch.git;
|
||||
rev = "72f26dfb49f236294c52eb9cb4c9d5c15da4837a";
|
||||
sha256 = "0dn9fh1frnbxykhw3q229ck50a800p8r4va8nssfcdxh8cys385w";
|
||||
rev = "8b4176263988e750daf0c6d709fdceb4672e111e";
|
||||
sha256 = "1l2iqgb7vlkh6kcwr4ggcn58ldyh63v9zvjmv26z8pxiqa1zr1xs";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgconfig ffmpeg mesa nvidia_cg_toolkit freetype libxml2 libv4l coreutils
|
||||
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
|
||||
homepage = http://libretro.org/;
|
||||
description = "Multi-platform emulator frontend for libretro cores";
|
||||
license = licenses.gpl3;
|
||||
platforms = stdenv.lib.platforms.linux;
|
||||
maintainers = with maintainers; [ MP2E ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
|
||||
anglescry advanced launcher for XBMC since device input is
|
||||
caught by both XBMC and the retroarch process.
|
||||
'';
|
||||
license = "GPL-3";
|
||||
license = stdenv.lib.licenses.gpl3;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
{ stdenv, fetchurl, pkgconfig
|
||||
, SDL2 }:
|
||||
{ stdenv, fetchurl, pkgconfig, SDL2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "stella-${version}";
|
||||
version = "4.0";
|
||||
version = "4.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads.sourceforge.net/project/stella/stella/${version}/${name}-src.tar.gz";
|
||||
sha256 = "1j96sj2qflq3agb7fvb08ih3pxy8nsvlkwj40q3n00q9k884ad5w";
|
||||
sha256 = "0aikd7l5ill0vl5q06dg1wly8v9vav7wd78yjm6rmikd0cd2irzh";
|
||||
};
|
||||
|
||||
buildInputs = with stdenv.lib;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
assert stdenv.gcc.gcc != null;
|
||||
assert stdenv.cc.gcc != null;
|
||||
|
||||
let
|
||||
version = "1.6.2";
|
||||
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
|
||||
# them to the RPATH so that the user doesn't have to set them in
|
||||
# LD_LIBRARY_PATH.
|
||||
NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
|
||||
freetype fontconfig stdenv.gcc.gcc mesa mesa_noglu.osmesa libdrm
|
||||
freetype fontconfig stdenv.cc.gcc mesa mesa_noglu.osmesa libdrm
|
||||
xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
|
||||
xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
|
||||
openssl gnutls cups
|
||||
@@ -65,7 +65,7 @@ in stdenv.mkDerivation rec {
|
||||
|
||||
paxmark psmr $out/bin/wine{,-preloader}
|
||||
|
||||
wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib
|
||||
wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.cc.gcc}/lib
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
}:
|
||||
|
||||
assert stdenv.isLinux;
|
||||
assert stdenv.gcc.gcc != null;
|
||||
assert stdenv.cc.gcc != null;
|
||||
|
||||
let
|
||||
version = "1.7.29";
|
||||
version = "1.7.33";
|
||||
name = "wine-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/wine/${name}.tar.bz2";
|
||||
sha256 = "0qnyp1svzh2yyc3p34dg8hf21lwzxn4xkgpa3s0rfcak6l6ijj5f";
|
||||
sha256 = "0xcjsh3635i8wpzixzsl05m3dkq74vq193x3ipjr3fy0l9prslg3";
|
||||
};
|
||||
|
||||
gecko = fetchurl {
|
||||
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
|
||||
# them to the RPATH so that the user doesn't have to set them in
|
||||
# LD_LIBRARY_PATH.
|
||||
NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
|
||||
freetype fontconfig stdenv.gcc.gcc mesa mesa_noglu.osmesa libdrm
|
||||
freetype fontconfig stdenv.cc.gcc mesa mesa_noglu.osmesa libdrm
|
||||
xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
|
||||
xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
|
||||
openssl gnutls cups ncurses
|
||||
@@ -62,7 +62,7 @@ in stdenv.mkDerivation rec {
|
||||
install -D ${gecko} $out/share/wine/gecko/${gecko64.name}
|
||||
'' + ''
|
||||
install -D ${mono} $out/share/wine/mono/${mono.name}
|
||||
wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib
|
||||
wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.cc.gcc}/lib
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
||||
installPhase = ''
|
||||
BINFILES="fah6 mpiexec";
|
||||
for a in $BINFILES; do
|
||||
patchelf --set-interpreter $(cat $NIX_GCC/nix-support/dynamic-linker) $a
|
||||
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $a
|
||||
done
|
||||
mkdir -p $out/bin
|
||||
cp $BINFILES $out/bin
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
{ stdenv, fetchurl, pythonPackages, lilypond, pyqt4 }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
name = "frescobaldi-${version}";
|
||||
version = "2.0.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/wbsoft/frescobaldi/releases/download/"
|
||||
+ "v2.0.16/${name}.tar.gz";
|
||||
sha256 = "12pabvq5b2lq84q3kx8lh02zh6ali6v4wnin2k2ycnm45mk9ms6q";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ lilypond
|
||||
pyqt4 poppler-qt4 ];
|
||||
|
||||
patches = [ ./setup.cfg.patch ./python-path.patch ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://frescobaldi.org/;
|
||||
description = ''Frescobaldi is a LilyPond sheet music text editor'';
|
||||
longDescription = ''
|
||||
Powerful text editor with syntax highlighting and automatic completion,
|
||||
Music view with advanced Point & Click, Midi player to proof-listen
|
||||
LilyPond-generated MIDI files, Midi capturing to enter music,
|
||||
Powerful Score Wizard to quickly setup a music score, Snippet Manager
|
||||
to store and apply text snippets, templates or scripts, Use multiple
|
||||
versions of LilyPond, automatically selects the correct version, Built-in
|
||||
LilyPond documentation browser and built-in User Guide, Smart
|
||||
layout-control functions like coloring specific objects in the PDF,
|
||||
MusicXML import, Modern user iterface with configurable colors,
|
||||
fonts and keyboard shortcuts
|
||||
'';
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.sepi ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
diff -u frescobaldi-2.0.16.old/frescobaldi frescobaldi-2.0.16/frescobaldi
|
||||
--- frescobaldi-2.0.16/frescobaldi 2014-10-24 11:29:28.705687224 +0200
|
||||
+++ frescobaldi-2.0.16.new/frescobaldi 2014-10-24 11:31:08.086444793 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/env python
|
||||
import sys
|
||||
import frescobaldi_app.main
|
||||
import app
|
||||
Common subdirectories: frescobaldi-2.0.16/frescobaldi_app and frescobaldi-2.0.16.new/frescobaldi_app
|
||||
Common subdirectories: frescobaldi-2.0.16/macosx and frescobaldi-2.0.16.new/macosx
|
||||
@@ -0,0 +1,13 @@
|
||||
Common subdirectories: frescobaldi-2.0.16.old/build and frescobaldi-2.0.16/build
|
||||
Common subdirectories: frescobaldi-2.0.16.old/frescobaldi_app and frescobaldi-2.0.16/frescobaldi_app
|
||||
Common subdirectories: frescobaldi-2.0.16.old/macosx and frescobaldi-2.0.16/macosx
|
||||
diff -u frescobaldi-2.0.16.old/setup.cfg frescobaldi-2.0.16/setup.cfg
|
||||
--- frescobaldi-2.0.16.old/setup.cfg 2012-02-05 07:08:24.000000000 +0100
|
||||
+++ frescobaldi-2.0.16/setup.cfg 2014-10-24 15:08:48.141335620 +0200
|
||||
@@ -1,6 +1,2 @@
|
||||
-[bdist_wininst]
|
||||
-bitmap=frescobaldi-wininst.bmp
|
||||
-install-script=frescobaldi-wininst.py
|
||||
-
|
||||
[sdist]
|
||||
force-manifest=1
|
||||
@@ -3,69 +3,18 @@
|
||||
, libiconvOrEmpty
|
||||
, x11Support ? false, x11 ? null
|
||||
, cupsSupport ? false, cups ? null
|
||||
, gnuFork ? true
|
||||
}:
|
||||
|
||||
assert x11Support -> x11 != null;
|
||||
assert cupsSupport -> cups != null;
|
||||
|
||||
let
|
||||
meta_common = {
|
||||
homepage = "http://www.gnu.org/software/ghostscript/";
|
||||
description = "PostScript interpreter (GNU version)";
|
||||
|
||||
longDescription = ''
|
||||
Ghostscript is the name of a set of tools that provides (i) an
|
||||
interpreter for the PostScript language and the PDF file format,
|
||||
(ii) a set of C procedures (the Ghostscript library) that
|
||||
implement the graphics capabilities that appear as primitive
|
||||
operations in the PostScript language, and (iii) a wide variety
|
||||
of output drivers for various file formats and printers.
|
||||
'';
|
||||
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.viric ];
|
||||
};
|
||||
|
||||
gnuForkSrc = rec {
|
||||
name = "ghostscript-9.04.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
|
||||
sha256 = "0zqa6ggbkdqiszsywgrra4ij0sddlmrfa50bx2mh568qid4ga0a2";
|
||||
};
|
||||
|
||||
meta = meta_common;
|
||||
patches = [ ./purity.patch ];
|
||||
};
|
||||
|
||||
mainlineSrc = rec {
|
||||
name = "ghostscript-9.06";
|
||||
src = fetchurl {
|
||||
url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
|
||||
sha256 = "014f10rxn4ihvcr1frby4szd1jvkrwvmdhnbivpp55c9fssx3b05";
|
||||
};
|
||||
meta = meta_common // {
|
||||
homepage = "http://www.ghostscript.com/";
|
||||
description = "PostScript interpreter (mainline version)";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
rm -R libpng jpeg lcms{,2} tiff freetype jbig2dec expat openjpeg
|
||||
|
||||
substituteInPlace base/unix-aux.mak --replace "INCLUDE=/usr/include" "INCLUDE=/no-such-path"
|
||||
sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@" -i base/unix-aux.mak
|
||||
'';
|
||||
patches = [];
|
||||
};
|
||||
|
||||
variant = if gnuFork then gnuForkSrc else mainlineSrc;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit (variant) name src meta;
|
||||
name = "ghostscript-9.15";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
|
||||
sha256 = "0p1isp6ssfay141klirn7n9s8b546vcz6paksfmksbwy0ljsypg6";
|
||||
};
|
||||
|
||||
fonts = [
|
||||
(fetchurl {
|
||||
@@ -91,34 +40,56 @@ stdenv.mkDerivation rec {
|
||||
# [] # maybe sometimes jpeg2000 support
|
||||
;
|
||||
|
||||
CFLAGS = "-fPIC";
|
||||
NIX_LDFLAGS =
|
||||
"-lz -rpath${ if stdenv.isDarwin then " " else "="}${freetype}/lib";
|
||||
patches = [ ./urw-font-files.patch ];
|
||||
|
||||
patches = variant.patches ++ [ ./urw-font-files.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
# "ijs" is impure: it contains symlinks to /usr/share/automake etc.!
|
||||
rm -rf ijs/ltmain.sh
|
||||
|
||||
# Don't install stuff in the Cups store path.
|
||||
makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
|
||||
'' + stdenv.lib.optionalString (variant ? preConfigure) variant.preConfigure;
|
||||
makeFlags = [ "cups_serverroot=$(out)" "cups_serverbin=$(out)/lib/cups" ];
|
||||
|
||||
configureFlags =
|
||||
[ "--with-system-libtiff"
|
||||
[ "--with-system-libtiff" "--disable-sse2"
|
||||
"--enable-dynamic"
|
||||
(if x11Support then "--with-x" else "--without-x")
|
||||
(if cupsSupport then "--enable-cups --with-install-cups" else "--disable-cups")
|
||||
(if cupsSupport then "--enable-cups" else "--disable-cups")
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
installTargets="install soinstall";
|
||||
|
||||
# ToDo: web says the fonts should be already included
|
||||
#CFLAGS = "-fPIC";
|
||||
#NIX_LDFLAGS =
|
||||
# "-lz -rpath${ if stdenv.isDarwin then " " else "="}${freetype}/lib";
|
||||
|
||||
preConfigure = ''
|
||||
rm -rf jpeg libpng zlib jasper expat tiff lcms{,2} jbig2dec openjpeg freetype cups/libs
|
||||
|
||||
sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@; s@INCLUDE=/usr/include@INCLUDE=/no-such-path@" -i base/unix-aux.mak
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# ToDo: web says the fonts should be already included
|
||||
for i in $fonts; do
|
||||
(cd $out/share/ghostscript && tar xvfz $i)
|
||||
done
|
||||
|
||||
rm -rf $out/lib/cups/filter/{gstopxl,gstoraster}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.ghostscript.com/";
|
||||
description = "PostScript interpreter (mainline version)";
|
||||
|
||||
longDescription = ''
|
||||
Ghostscript is the name of a set of tools that provides (i) an
|
||||
interpreter for the PostScript language and the PDF file format,
|
||||
(ii) a set of C procedures (the Ghostscript library) that
|
||||
implement the graphics capabilities that appear as primitive
|
||||
operations in the PostScript language, and (iii) a wide variety
|
||||
of output drivers for various file formats and printers.
|
||||
'';
|
||||
|
||||
license = stdenv.lib.licenses.gpl3Plus;
|
||||
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.viric ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
Don't look for files under `/usr/include' since we don't have that directory
|
||||
under NixOS.
|
||||
|
||||
--- gnu-ghostscript-8.64.0/base/unix-aux.mak 2009-04-19 19:00:20.000000000 +0200
|
||||
+++ gnu-ghostscript-8.64.0/base/unix-aux.mak 2009-04-27 11:58:31.000000000 +0200
|
||||
@@ -103,13 +103,13 @@ $(MKROMFS_XE): $(GLSRC)mkromfs.c $(MKROM
|
||||
# The "else true;" is required because Ultrix's implementation of sh -e
|
||||
# terminates execution of a command if any error occurs, even if the command
|
||||
# traps the error with ||.
|
||||
-INCLUDE=/usr/include
|
||||
+INCLUDE=/no-such-path
|
||||
$(gconfig__h): $(UNIX_AUX_MAK) $(ECHOGS_XE)
|
||||
$(ECHOGS_XE) -w $(gconfig__h) -x 2f2a -s This file was generated automatically by unix-aux.mak. -s -x 2a2f
|
||||
- if ( test -f $(INCLUDE)/dirent.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
|
||||
- if ( test -f $(INCLUDE)/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
|
||||
- if ( test -f $(INCLUDE)/sys/dir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
|
||||
- if ( test -f $(INCLUDE)/sys/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
|
||||
- if ( test -f $(INCLUDE)/sys/time.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIME_H; else true; fi
|
||||
- if ( test -f $(INCLUDE)/sys/times.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIME_H; else true; fi
|
||||
+ if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
|
||||
if ( test -f $(JSRCDIR)/jmemsys.h); then true; else $(ECHOGS_XE) -a $(gconfig__h) -x 23 define DONT_HAVE_JMEMSYS_H; fi
|
||||
@@ -1,4 +1,4 @@
|
||||
{ composableDerivation, fetchurl }:
|
||||
{ stdenv, composableDerivation, fetchurl }:
|
||||
|
||||
let edf = composableDerivation.edf;
|
||||
name = "gxemul-0.4.6";
|
||||
@@ -29,9 +29,9 @@ composableDerivation.composableDerivation {} {
|
||||
configurePhase = "./configure";
|
||||
|
||||
meta = {
|
||||
license = "BSD";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
description = "A Machine Emulator, mainly emulates MIPS, but supports other CPU types";
|
||||
homepage = http://gavare.se/gxemul/;
|
||||
homepage = http://gxemul.sourceforge.net/;
|
||||
};
|
||||
|
||||
mergeAttrBy = { installPhase = a : b : "${a}\n${b}"; };
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
{ mkDerivation, substituteAll, pkgs }:
|
||||
{ stdenv ? pkgs.stdenv, name, buildInputs ? []
|
||||
, propagatedBuildInputs ? [], gcc ? stdenv.gcc, cTags ? [], extraCmds ? ""
|
||||
, propagatedBuildInputs ? [], gcc ? stdenv.cc, cTags ? [], extraCmds ? ""
|
||||
, cleanupCmds ? "", shell ? "${pkgs.bashInteractive}/bin/bash --norc"}:
|
||||
|
||||
mkDerivation {
|
||||
@@ -72,20 +72,21 @@ mkDerivation {
|
||||
phases = [ "buildPhase" "fixupPhase" ];
|
||||
setupNew = substituteAll {
|
||||
src = ../../stdenv/generic/setup.sh;
|
||||
initialPath= (import ../../stdenv/common-path.nix) { inherit pkgs; };
|
||||
inherit gcc;
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
buildPhase = let
|
||||
initialPath = import ../../stdenv/common-path.nix { inherit pkgs; };
|
||||
in ''
|
||||
set -x
|
||||
mkdir -p "$out/dev-envs" "$out/nix-support" "$out/bin"
|
||||
s="$out/nix-support/setup-new-modified"
|
||||
cp "$setupNew" "$s"
|
||||
# shut some warning up.., do not use set -e
|
||||
sed -e 's@set -e@@' \
|
||||
-e 's@assertEnvExists\s\+NIX_STORE@:@' \
|
||||
-e 's@trap.*@@' \
|
||||
-i "$s"
|
||||
-e '1i initialPath="${toString initialPath}"' \
|
||||
"$setupNew" > "$s"
|
||||
cat >> "$out/dev-envs/''${name/env-/}" << EOF
|
||||
nativeBuildInputs="$nativeBuildInputs"
|
||||
propagatedBuildInputs="$propagatedBuildInputs2"
|
||||
@@ -131,7 +132,7 @@ mkDerivation {
|
||||
echo "\$tmp/script";
|
||||
source "\$tmp/script";
|
||||
fi
|
||||
rm -fr "\$tmp"
|
||||
${pkgs.coreutils}/bin/rm -fr "\$tmp"
|
||||
${extraCmds}
|
||||
|
||||
nix_cleanup() {
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
, libX11, pam, libgcrypt, libXrender, imlib2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
date = "20140724";
|
||||
date = "20141209";
|
||||
name = "alock-${date}";
|
||||
|
||||
src = fetchgit {
|
||||
url = https://github.com/Arkq/alock;
|
||||
rev = "928ae09a85627570b7f6986fe161b71327405fc0";
|
||||
sha256 = "0z605w2cf0pc988qq931b2zis6dqavm0wcjfdmr6q4vamvinjfv0";
|
||||
rev = "5ab7e6014faa1659c2d55bf9734bfa3ce7137443";
|
||||
sha256 = "07wf3vxh54ncxslp3zf8m7szpqbissxf8q9rs5zgvg333zdqd49s";
|
||||
};
|
||||
|
||||
preConfigure = "autoreconf -fvi";
|
||||
|
||||
@@ -2,23 +2,20 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "xlockmore-5.43";
|
||||
name = "xlockmore-5.45";
|
||||
src = fetchurl {
|
||||
url = "http://www.tux.org/~bagleyd/xlock/${name}/${name}.tar.bz2";
|
||||
sha256 = "1l36n8x51j7lwdalv6yi37cil290vzd3djjqydhsm0pnm8hiz499";
|
||||
sha256 = "1xqm61bbfn5q056w57vp16gvai8nqpcw570ysxlm5h46nh6ai0bz";
|
||||
};
|
||||
|
||||
# Optionally, it can use GTK+.
|
||||
buildInputs = [ pam x11 ];
|
||||
|
||||
# The `xlock' program needs to be linked against Glibc's
|
||||
# `libgcrypt', which contains `crypt(3)'.
|
||||
patches = [ ./makefile-libcrypt.patch ];
|
||||
|
||||
# Don't try to install `xlock' setuid. Password authentication works
|
||||
# fine via PAM without super user privileges.
|
||||
configureFlags =
|
||||
" --with-crypt" # TODO: set --enable-appdefaultdir to a suitable value
|
||||
" --with-crypt"
|
||||
+ " --enable-appdefaultdir=$out/share/X11/app-defaults"
|
||||
+ " --disable-setuid"
|
||||
+ " --without-editres"
|
||||
+ " --without-xpm"
|
||||
@@ -38,9 +35,15 @@ stdenv.mkDerivation rec {
|
||||
+ " --without-gtk"
|
||||
+ (if pam != null then " --enable-pam --enable-bad-pam" else " --disable-pam");
|
||||
|
||||
meta = {
|
||||
preConfigure = ''
|
||||
configureFlags+=" --enable-appdefaultdir=$out/share/X11/app-defaults"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Screen locker for the X Window System";
|
||||
homepage = "http://www.tux.org/~bagleyd/xlockmore.html";
|
||||
license = "GPL";
|
||||
homepage = http://www.tux.org/~bagleyd/xlockmore.html;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- xlockmore-5.24/modes/Makefile.in 2007-01-22 23:02:07.000000000 +0100
|
||||
+++ xlockmore-5.24/modes/Makefile.in 2008-02-11 17:24:34.000000000 +0100
|
||||
@@ -326,7 +326,7 @@ CFLAGS = @CFLAGS@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
#CFLAGS = -O
|
||||
#CFLAGS = -g
|
||||
-XLOCKLDFLAGS = @XLOCKLDFLAGS@ $(CHECKLDFLAG)
|
||||
+XLOCKLDFLAGS = @XLOCKLDFLAGS@ $(CHECKLDFLAG) -lcrypt
|
||||
XLIBS = @XLIBS@
|
||||
XLOCKLIBS = $(MODULELIB) @XLOCKLIBS@
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.30";
|
||||
version = "5.32";
|
||||
name = "xscreensaver-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
|
||||
sha256 = "0ljx10fsypdddcx43lwhrwqa9ksp9djv7p4i1y7760m4frl1fw9p";
|
||||
sha256 = "1gckra8lsd383av15r7lv9rszw6mp8n1gpcb5qs5nbrdkl3sclj2";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
cmake, dbus_glib, glib, gtk, gdk_pixbuf, pkgconfig, xorg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.4.5";
|
||||
version = "1.4.6";
|
||||
name = "oxygen-gtk2-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/oxygen-gtk2/${version}/src/${name}.tar.bz2";
|
||||
sha256 = "00ykq4aafakdkvww7kz84bvg9wc2gdji4m7z87f49hj1jxm84v2v";
|
||||
sha256 = "09mz4szsz3yswbj0nbw6qzlc5bc4id0f9r6ifm60b5nc8x1l72d2";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake dbus_glib glib gtk gdk_pixbuf
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
{ stdenv, fetchurl, gtk }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.0.7";
|
||||
name = "clearlooks-phenix-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://github.com/jpfleury/clearlooks-phenix/archive/${version}.tar.gz";
|
||||
sha256 = "107jx3p3zwzy8xy0m8hwzs1kp8j60xgc3dja27r3vwhb3x3y1i8k";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/themes/Clearlooks-Phenix
|
||||
cp -r . $out/share/themes/Clearlooks-Phenix/
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GTK3 port of the Clearlooks theme";
|
||||
longDescription = ''
|
||||
The Clearlooks-Phénix project aims at creating a GTK3 port of Clearlooks,
|
||||
the default theme for Gnome 2. Style is also included for GTK2, Unity and
|
||||
for Metacity, Openbox and Xfwm4 window managers.
|
||||
|
||||
You should install this theme into your user profile and then set
|
||||
GTK_DATA_PREFIX to `~/.nix-profile`.
|
||||
'';
|
||||
homepage = https://github.com/jpfleury/clearlooks-phenix;
|
||||
downloadPage = https://github.com/jpfleury/clearlooks-phenix/releases;
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.prikhi ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -2,12 +2,12 @@
|
||||
, cmake, dbus_glib, glib, gtk3, gdk_pixbuf, pkgconfig, xorg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
name = "oxygen-gtk3-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/oxygen-gtk3/${version}/src/${name}.tar.bz2";
|
||||
sha256 = "d119bcc94ffc04b67e7d238fc922b37f2904447085a06758451b8c0b0302ab80";
|
||||
sha256 = "0pd7wjzh5xgd24yg6b2avaiz1aq6rmh13d7c0jclffkmhmy24r0f";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake dbus_glib glib gtk3 gdk_pixbuf
|
||||
|
||||
+705
-578
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
"vim-addon-syntax-checker"
|
||||
"vim-addon-other"
|
||||
"vim-addon-local-vimrc"
|
||||
"snipmate"
|
||||
"vim-snippets"
|
||||
"vim-addon-mru"
|
||||
"vim-addon-commenting"
|
||||
"vim-addon-sql"
|
||||
"vim-addon-async"
|
||||
"vim-addon-toggle-buffer"
|
||||
"vim-addon-mw-utils"
|
||||
"matchit.zip"
|
||||
"vim-addon-xdebug"
|
||||
"vim-addon-php-manual"
|
||||
"sourcemap.vim"
|
||||
"vim-iced-coffee-script"
|
||||
"ctrlp"
|
||||
"commentary"
|
||||
"Colour_Sampler_Pack"
|
||||
"Solarized"
|
||||
"vim-coffee-script"
|
||||
"vim-easy-align"
|
||||
"Tagbar"
|
||||
"Tabular"
|
||||
"table-mode"
|
||||
"Syntastic"
|
||||
"vim-signature"
|
||||
"surround"
|
||||
"Supertab"
|
||||
"rust"
|
||||
"rainbow_parentheses"
|
||||
"pathogen"
|
||||
"quickfixstatus"
|
||||
"The_NERD_Commenter"
|
||||
"The_NERD_tree"
|
||||
"vim-latex-live-preview"
|
||||
"Hoogle"
|
||||
"Gundo"
|
||||
"vim-gitgutter"
|
||||
"Gist"
|
||||
"ghcmod"
|
||||
"fugitive"
|
||||
"extradite"
|
||||
"vim-airline"
|
||||
"VimOutliner"
|
||||
"vim2hs"
|
||||
"undotree"
|
||||
"UltiSnips"
|
||||
"wombat256"
|
||||
"vundle"
|
||||
"WebAPI"
|
||||
"YankRing"
|
||||
"vim-addon-manager"
|
||||
"vim-addon-nix"
|
||||
"github:MarcWeber/vim-addon-vim2nix"
|
||||
@@ -0,0 +1,384 @@
|
||||
{stdenv, vim, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin}:
|
||||
|
||||
/*
|
||||
|
||||
USAGE EXAMPLE
|
||||
=============
|
||||
|
||||
Install Vim like this eg using nixos option environment.systemPackages which will provide
|
||||
vim-with-plugins in PATH:
|
||||
|
||||
vim_configurable.customize {
|
||||
name = "vim-with-plugins";
|
||||
|
||||
# add custom .vimrc lines like this:
|
||||
vimrcConfig.customRC = ''
|
||||
set hidden
|
||||
'';
|
||||
|
||||
vimrcConfig.vam.knownPlugins = pkgs.vimPlugins; # optional
|
||||
vimrcConfig.vam.pluginDictionaries = [
|
||||
# load always
|
||||
{ name = "youcompleteme"; }
|
||||
{ names = ["youcompleteme" "foo"]; }
|
||||
|
||||
# only load when opening a .php file
|
||||
{ name = "phpCompletion"; ft_regex = "^php\$"; }
|
||||
{ name = "phpCompletion"; filename_regex = "^.php\$"; }
|
||||
|
||||
# provide plugin which can be loaded manually:
|
||||
{ name = "phpCompletion"; tag = "lazy"; }
|
||||
|
||||
# full ducomentation at github.com/MarcWeber/vim-addon-manager
|
||||
];
|
||||
|
||||
# there is a pathogen implementation as well, but its startup is slower and [VAM] has more feature
|
||||
# vimrcConfig.pathogen.knownPlugins = vimPlugins; # optional
|
||||
# vimrcConfig.pathogen.pluginNames = ["vim-addon-nix"];
|
||||
};
|
||||
|
||||
WHAT IS A VIM PLUGIN?
|
||||
=====================
|
||||
Typical plugin files:
|
||||
|
||||
plugin/P1.vim
|
||||
autoload/P1.vim
|
||||
ftplugin/xyz.vim
|
||||
doc/plugin-documentation.txt (traditional documentation)
|
||||
README(.md) (nowadays thanks to github)
|
||||
|
||||
|
||||
Vim offers the :h rtp setting which works for most plugins. Thus adding
|
||||
this to your .vimrc should make most plugins work:
|
||||
|
||||
set rtp+=~/.nix-profile/share/vim-plugins/youcompleteme
|
||||
" or for p in ["youcompleteme"] | exec 'set rtp+=~/.nix-profile/share/vim-plugins/'.p | endfor
|
||||
|
||||
which is what the [VAM]/pathogen solutions above basically do.
|
||||
|
||||
Learn about about plugin Vim plugin mm managers at
|
||||
http://vim-wiki.mawercer.de/wiki/topic/vim%20plugin%20managment.html.
|
||||
|
||||
The documentation can be accessed by Vim's :help command if it was tagged.
|
||||
See vimHelpTags sample code below.
|
||||
|
||||
CONTRIBUTING AND CUSTOMIZING
|
||||
============================
|
||||
The example file pkgs/misc/vim-plugins/default.nix provides both:
|
||||
* manually mantained plugins
|
||||
* plugins created by VAM's nix#ExportPluginsForNix implementation
|
||||
|
||||
I highly recommend to lookup vim plugin attribute names at the [vim-pi] project
|
||||
which is a database containing all plugins from
|
||||
vim.org and quite a lot of found at github and similar sources. vim-pi's documented purpose
|
||||
is to associate vim.org script ids to human readable names so that dependencies
|
||||
can be describe easily.
|
||||
|
||||
How to find a name?
|
||||
* http://vam.mawercer.de/ or VAM's
|
||||
* grep vim-pi
|
||||
* use VAM's completion or :AddonsInfo command
|
||||
|
||||
It might happen than a plugin is not known by vim-pi yet. We encourage you to
|
||||
contribute to vim-pi so that plugins can be updated automatically.
|
||||
|
||||
|
||||
CREATING DERVITATIONS AUTOMATICALLY BY PLUGIN NAME
|
||||
==================================================
|
||||
Most convenient is to use a ~/.vim-scripts file putting a plugin name into each line
|
||||
as documented by [VAM]'s README.md
|
||||
It is the same format you pass to vimrcConfig.vam.pluginDictionaries from the
|
||||
usage example above.
|
||||
|
||||
Then create a temp vim file and insert:
|
||||
|
||||
let opts = {}
|
||||
let opts.path_to_nixpkgs = '/etc/nixos/nixpkgs'
|
||||
let opts.cache_file = '/tmp/export-vim-plugin-for-nix-cache-file'
|
||||
let opts.plugin_dictionaries = map(readfile("vim-plugins"), 'eval(v:val)')
|
||||
" add more files
|
||||
" let opts.plugin_dictionaries += map(.. other file )
|
||||
call nix#ExportPluginsForNix(opts)
|
||||
|
||||
Then ":source %" it.
|
||||
|
||||
nix#ExportPluginsForNix is provided by github.com/MarcWeber/vim-addon-vim2nix
|
||||
|
||||
A buffer will open containing the plugin derivation lines as well list
|
||||
fitting the vimrcConfig.vam.pluginDictionaries option.
|
||||
|
||||
Thus the most simple usage would be:
|
||||
|
||||
vim_with_plugins =
|
||||
let vim = vim_configurable;
|
||||
inherit (vimUtil.override {inherit vim}) rtpPath addRtp buildVimPlugin vimHelpTags;
|
||||
vimPlugins = [
|
||||
# the derivation list from the buffer created by nix#ExportPluginsForNix
|
||||
# don't set which will default to pkgs.vimPlugins
|
||||
];
|
||||
in vim.customize {
|
||||
name = "vim-with-plugins";
|
||||
|
||||
vimrcConfig.customRC = '' .. '';
|
||||
|
||||
vimrcConfig.vam.knownPlugins = vimPlugins;
|
||||
vimrcConfig.vam.pluginDictionaries = [
|
||||
# the plugin list form ~/.vim-scripts turned into nix format added to
|
||||
# the buffer created by the nix#ExportPluginsForNix
|
||||
];
|
||||
}
|
||||
|
||||
vim_with_plugins can be installed like any other application within Nix.
|
||||
|
||||
[VAM] https://github.com/MarcWeber/vim-addon-manager
|
||||
[vim-pi] https://bitbucket.org/vimcommunity/vim-pi
|
||||
*/
|
||||
|
||||
|
||||
let
|
||||
inherit (stdenv) lib;
|
||||
|
||||
findDependenciesRecursively = {knownPlugins, names}:
|
||||
|
||||
let depsOf = name: (builtins.getAttr name knownPlugins).dependencies or [];
|
||||
|
||||
recurseNames = path: names: lib.concatMap (name: recurse ([name]++path)) names;
|
||||
|
||||
recurse = path:
|
||||
let name = builtins.head path;
|
||||
in if builtins.elem name (builtins.tail path)
|
||||
then throw "recursive vim dependencies"
|
||||
else [name] ++ recurseNames path (depsOf name);
|
||||
|
||||
in lib.uniqList { inputList = recurseNames [] names; };
|
||||
|
||||
vimrcFile = {
|
||||
vam ? null,
|
||||
pathogen ? null,
|
||||
customRC ? ""
|
||||
}:
|
||||
|
||||
let
|
||||
/* pathogen mostly can set &rtp at startup time. Its used very commonly.
|
||||
*/
|
||||
pathogenImpl = lib.optionalString (pathogen != null)
|
||||
(let
|
||||
knownPlugins = pathogen.knownPlugins or vimPlugins;
|
||||
|
||||
plugins = map (name: knownPlugins.${name}) (findDependenciesRecursively { inherit knownPlugins; names = pathogen.pluginNames; });
|
||||
|
||||
pluginsEnv = buildEnv {
|
||||
name = "pathogen-plugin-env";
|
||||
paths = map (x: "${x}/${vimPlugins.rtpPath}") plugins;
|
||||
};
|
||||
in
|
||||
''
|
||||
let &rtp.=(empty(&rtp)?"":',')."${vimPlugins.pathogen.rtp}"
|
||||
execute pathogen#infect('${pluginsEnv}/{}')
|
||||
'');
|
||||
|
||||
/*
|
||||
vim-addon-manager = VAM
|
||||
|
||||
* maps names to plugin location
|
||||
|
||||
* manipulates &rtp at startup time
|
||||
or when Vim has been running for a while
|
||||
|
||||
* can activate plugins laziy (eg when loading a specific filetype)
|
||||
|
||||
* knows about vim plugin dependencies (addon-info.json files)
|
||||
|
||||
* still is minimalistic (only loads one file), the "check out" code it also
|
||||
has only gets loaded when a plugin is requested which is not found on disk
|
||||
yet
|
||||
|
||||
*/
|
||||
vamImpl = lib.optionalString (vam != null)
|
||||
(let
|
||||
knownPlugins = vam.knownPlugins or vimPlugins;
|
||||
|
||||
toNames = x:
|
||||
if builtins.isString x then [x]
|
||||
else (lib.optional (x ? name) x.name)
|
||||
++ (x.names or []);
|
||||
|
||||
names = findDependenciesRecursively { inherit knownPlugins; names = lib.concatMap toNames vam.pluginDictionaries; };
|
||||
|
||||
# Vim almost reads JSON, so eventually JSON support should be added to Nix
|
||||
# TODO: proper quoting
|
||||
toNix = x:
|
||||
if (builtins.isString x) then "'${x}'"
|
||||
else if builtins.isAttrs x && builtins ? out then toNix "${x}" # a derivation
|
||||
else if builtins.isAttrs x then "{${lib.concatStringsSep ", " (lib.mapAttrsToList (n: v: "${toNix n}: ${toNix v}") x)}}"
|
||||
else if builtins.isList x then "[${lib.concatMapStringsSep ", " toNix x}]"
|
||||
else throw "turning ${lib.showVal x} into a VimL thing not implemented yet";
|
||||
|
||||
in assert builtins.hasAttr "vim-addon-manager" knownPlugins;
|
||||
''
|
||||
let g:nix_plugin_locations = {}
|
||||
${lib.concatMapStrings (name: ''
|
||||
let g:nix_plugin_locations['${name}'] = "${knownPlugins.${name}.rtp}"
|
||||
'') names}
|
||||
let g:nix_plugin_locations['vim-addon-manager'] = "${knownPlugins."vim-addon-manager".rtp}"
|
||||
|
||||
let g:vim_addon_manager = {}
|
||||
|
||||
if exists('g:nix_plugin_locations')
|
||||
" nix managed config
|
||||
|
||||
" override default function making VAM aware of plugin locations:
|
||||
fun! NixPluginLocation(name)
|
||||
let path = get(g:nix_plugin_locations, a:name, "")
|
||||
return path == "" ? vam#DefaultPluginDirFromName(a:name) : path
|
||||
endfun
|
||||
let g:vim_addon_manager.plugin_dir_by_name = 'NixPluginLocation'
|
||||
" tell Vim about VAM:
|
||||
let &rtp.=(empty(&rtp)?"":','). g:nix_plugin_locations['vim-addon-manager']
|
||||
else
|
||||
" standalone config
|
||||
|
||||
let &rtp.=(empty(&rtp)?"":',').c.plugin_root_dir.'/vim-addon-manager'
|
||||
if !isdirectory(c.plugin_root_dir.'/vim-addon-manager/autoload')
|
||||
" checkout VAM
|
||||
execute '!git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager '
|
||||
\ shellescape(c.plugin_root_dir.'/vim-addon-manager', 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
" tell vam about which plugins to load when:
|
||||
let l = []
|
||||
${lib.concatMapStrings (p: "call add(l, ${toNix p})\n") vam.pluginDictionaries}
|
||||
call vam#Scripts(l, {})
|
||||
'');
|
||||
|
||||
# somebody else could provide these implementations
|
||||
vundleImpl = "";
|
||||
|
||||
neobundleImpl = "";
|
||||
|
||||
|
||||
in writeText "vimrc" ''
|
||||
" minimal setup, generated by NIX
|
||||
set nocompatible
|
||||
filetype indent plugin on | syn on
|
||||
|
||||
${vamImpl}
|
||||
${pathogenImpl}
|
||||
${vundleImpl}
|
||||
${neobundleImpl}
|
||||
|
||||
${customRC}
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
rec {
|
||||
inherit vimrcFile;
|
||||
|
||||
# shell script with custom name passing [-u vimrc] [-U gvimrc] to vim
|
||||
vimWithRC = {vimExecutable, name ? null, vimrcFile ? null, gvimrcFile ? null}:
|
||||
let rcOption = o: file: stdenv.lib.optionalString (file != null) "-${o} ${file}";
|
||||
in writeScriptBin (if name == null then "vim" else name) ''
|
||||
#!/bin/sh
|
||||
exec ${vimExecutable} ${rcOption "u" vimrcFile} ${rcOption "U" gvimrcFile} "$@"
|
||||
'';
|
||||
|
||||
# add a customize option to a vim derivation
|
||||
makeCustomizable = vim: vim // {
|
||||
customize = {name, vimrcConfig}: vimWithRC {
|
||||
vimExecutable = "${vim}/bin/vim";
|
||||
inherit name;
|
||||
vimrcFile = vimrcFile vimrcConfig;
|
||||
};
|
||||
};
|
||||
|
||||
pluginnames2Nix = {name, namefiles} : vim_configurable.customize {
|
||||
inherit name;
|
||||
vimrcConfig.vam.knownPlugins = vimPlugins;
|
||||
vimrcConfig.vam.pluginDictionaries = ["github:MarcWeber/vim-addon-vim2nix"];
|
||||
vimrcConfig.customRC = ''
|
||||
" Yes - this is impure and will create the cache file and checkout vim-pi
|
||||
" into ~/.vim/vim-addons
|
||||
let g:vim_addon_manager.plugin_root_dir = "/tmp/vim2nix-".$USER
|
||||
if !isdirectory(g:vim_addon_manager.plugin_root_dir)
|
||||
call mkdir(g:vim_addon_manager.plugin_root_dir)
|
||||
else
|
||||
echom repeat("=", 80)
|
||||
echom "WARNING: reusing cache directory :".g:vim_addon_manager.plugin_root_dir
|
||||
echom repeat("=", 80)
|
||||
endif
|
||||
let opts = {}
|
||||
let opts.nix_prefetch_git = "${../../../pkgs/build-support/fetchgit/nix-prefetch-git}"
|
||||
let opts.nix_prefetch_hg = "${../../../pkgs/build-support/fetchhg/nix-prefetch-hg}"
|
||||
let opts.cache_file = g:vim_addon_manager.plugin_root_dir.'/cache'
|
||||
let opts.plugin_dictionaries = []
|
||||
${lib.concatMapStrings (file: "let opts.plugin_dictionaries += map(readfile(\"${file}\"), 'eval(v:val)')\n") namefiles }
|
||||
|
||||
" uncomment for debugging failures
|
||||
" let opts.try_catch = 0
|
||||
|
||||
" add more files
|
||||
" let opts.plugin_dictionaries += map(.. other file )
|
||||
call nix#ExportPluginsForNix(opts)
|
||||
'';
|
||||
};
|
||||
|
||||
rtpPath = "share/vim-plugins";
|
||||
|
||||
vimHelpTags = ''
|
||||
vimHelpTags(){
|
||||
if [ -d "$1/doc" ]; then
|
||||
${vim}/bin/vim -N -u NONE -i NONE -n -e -s -c "helptags $1/doc" +quit!
|
||||
fi
|
||||
}
|
||||
'';
|
||||
|
||||
addRtp = path: derivation:
|
||||
derivation // { rtp = "${derivation}/${path}"; };
|
||||
|
||||
buildVimPlugin = a@{
|
||||
name,
|
||||
namePrefix ? "vimplugin-",
|
||||
src,
|
||||
unpackPhase ? "",
|
||||
configurePhase ? "",
|
||||
buildPhase ? "",
|
||||
path ? (builtins.parseDrvName name).name,
|
||||
addonInfo ? null,
|
||||
...
|
||||
}:
|
||||
addRtp "${rtpPath}/${path}" (stdenv.mkDerivation (a // {
|
||||
name = namePrefix + name;
|
||||
|
||||
inherit unpackPhase configurePhase buildPhase addonInfo;
|
||||
|
||||
installPhase = ''
|
||||
target=$out/${rtpPath}/${path}
|
||||
mkdir -p $out/${rtpPath}
|
||||
cp -r . $target
|
||||
${vimHelpTags}
|
||||
vimHelpTags $target
|
||||
if [ -n "$addonInfo" ]; then
|
||||
echo "$addonInfo" > $target/addon-info.json
|
||||
fi
|
||||
'';
|
||||
}));
|
||||
|
||||
buildVimPluginFrom2Nix = a: buildVimPlugin ({
|
||||
buildPhase = ":";
|
||||
configurePhase =":";
|
||||
} // a);
|
||||
|
||||
# test cases:
|
||||
test_vim_with_vim_addon_nix_using_vam = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-vam";
|
||||
vimrcConfig.vam.pluginDictionaries = [{name = "vim-addon-nix"; }];
|
||||
};
|
||||
|
||||
test_vim_with_vim_addon_nix_using_pathogen = vim_configurable.customize {
|
||||
name = "vim-with-vim-addon-nix-using-pathogen";
|
||||
vimrcConfig.pathogen.pluginNames = [ "vim-addon-nix" ];
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user