Merge remote-tracking branch 'origin/master' into stdenv-updates.
Conflicts: pkgs/development/libraries/gettext/default.nix
This commit is contained in:
commit
9407832de4
@ -4,12 +4,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.0.3";
|
version = "2.0.4";
|
||||||
name = "audacity-${version}";
|
name = "audacity-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://audacity.googlecode.com/files/audacity-minsrc-${version}.tar.xz";
|
url = "http://audacity.googlecode.com/files/audacity-minsrc-${version}.tar.xz";
|
||||||
sha256 = "1k4bbxhpfl80vm3gm3jxqly0syqjij5kwziy4xyq2c8aj2miwj1f";
|
sha256 = "0pl92filykzs4g2pn7i02kdqgja326wjgafzw2vcgwn3dwrs4avp";
|
||||||
};
|
};
|
||||||
|
|
||||||
preConfigure = /* we prefer system-wide libs */ ''
|
preConfigure = /* we prefer system-wide libs */ ''
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d
|
{ stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d
|
||||||
, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
|
, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
|
||||||
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
|
, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
|
||||||
, alsaLib
|
, alsaLib, cairo
|
||||||
, withX ? true
|
, withX ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -14,41 +14,51 @@ stdenv.mkDerivation rec {
|
|||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/emacs/${name}.tar.xz";
|
url = "mirror://gnu/emacs/${name}.tar.xz";
|
||||||
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh";
|
sha256 = "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo ]
|
[ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo ]
|
||||||
++ stdenv.lib.optional stdenv.isLinux dbus
|
++ stdenv.lib.optional stdenv.isLinux dbus
|
||||||
++ stdenv.lib.optionals withX [
|
++ stdenv.lib.optionals withX
|
||||||
x11 libXaw Xaw3d libXpm libpng libjpeg libungif
|
[ x11 libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
|
||||||
libtiff librsvg libXft imagemagick gtk
|
imagemagick gtk ]
|
||||||
];
|
++ stdenv.lib.optional stdenv.isDarwin cairo;
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
(if withX then
|
( if withX then
|
||||||
[ "--with-x-toolkit=gtk" "--with-xft"]
|
[ "--with-x-toolkit=gtk" "--with-xft"]
|
||||||
else
|
else
|
||||||
[ "--with-x=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no" ])
|
[ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
|
||||||
|
"--with-gif=no" "--with-tiff=no" ] )
|
||||||
# On NixOS, help Emacs find `crt*.o'.
|
# On NixOS, help Emacs find `crt*.o'.
|
||||||
++ stdenv.lib.optional (stdenv ? glibc)
|
++ stdenv.lib.optional (stdenv ? glibc)
|
||||||
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
|
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
|
||||||
|
"-I${cairo}/include/cairo";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
cat >$out/share/emacs/site-lisp/site-start.el <<EOF
|
cat >$out/share/emacs/site-lisp/site-start.el <<EOF
|
||||||
;; nixos specific load-path
|
;; nixos specific load-path
|
||||||
(when (getenv "NIX_PROFILES") (setq load-path
|
(when (getenv "NIX_PROFILES") (setq load-path
|
||||||
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
|
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
|
||||||
(split-string (getenv "NIX_PROFILES"))))
|
(split-string (getenv "NIX_PROFILES"))))
|
||||||
load-path)))
|
load-path)))
|
||||||
EOF
|
EOF
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "GNU Emacs 24, the extensible, customizable text editor";
|
description = "GNU Emacs 24, the extensible, customizable text editor";
|
||||||
|
homepage = http://www.gnu.org/software/emacs/;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ chaoflow lovek323 simons the-kenny ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
GNU Emacs is an extensible, customizable text editor—and more. At its
|
GNU Emacs is an extensible, customizable text editor—and more. At its
|
||||||
@ -66,11 +76,5 @@ EOF
|
|||||||
extensions are distributed with GNU Emacs; others are available
|
extensions are distributed with GNU Emacs; others are available
|
||||||
separately.
|
separately.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = "http://www.gnu.org/software/emacs/";
|
|
||||||
license = "GPLv3+";
|
|
||||||
|
|
||||||
maintainers = with maintainers; [ chaoflow lovek323 simons the-kenny ];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ composableDerivation {
|
|||||||
else stdenv ).mkDerivation;
|
else stdenv ).mkDerivation;
|
||||||
} (fix: {
|
} (fix: {
|
||||||
|
|
||||||
name = "vim_configurable-7.4";
|
name = "vim_configurable-7.4.23";
|
||||||
|
|
||||||
enableParallelBuilding = true; # test this
|
enableParallelBuilding = true; # test this
|
||||||
|
|
||||||
@ -38,8 +38,10 @@ composableDerivation {
|
|||||||
preConfigure
|
preConfigure
|
||||||
= stdenv.lib.optionalString
|
= stdenv.lib.optionalString
|
||||||
(stdenv.isDarwin && (config.vim.darwin or true)) ''
|
(stdenv.isDarwin && (config.vim.darwin or true)) ''
|
||||||
sed -i "5387,5390d" src/auto/configure
|
# TODO: we should find a better way of doing this as, if the configure
|
||||||
sed -i "5394d" src/auto/configure
|
# file changes, we need to change these line numbers
|
||||||
|
sed -i "5641,5644d" src/auto/configure
|
||||||
|
sed -i "5648d" src/auto/configure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags
|
configureFlags
|
||||||
@ -49,10 +51,26 @@ composableDerivation {
|
|||||||
= [ ncurses pkgconfig gtk libX11 libXext libSM libXpm libXt libXaw libXau
|
= [ ncurses pkgconfig gtk libX11 libXext libSM libXpm libXt libXaw libXau
|
||||||
libXmu glib libICE ];
|
libXmu glib libICE ];
|
||||||
|
|
||||||
|
prePatch = "cd src";
|
||||||
|
|
||||||
|
patches =
|
||||||
|
[ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
|
||||||
|
./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
|
||||||
|
./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
|
||||||
|
./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
|
||||||
|
./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
|
||||||
|
./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
|
||||||
|
|
||||||
# most interpreters aren't tested yet.. (see python for example how to do it)
|
# most interpreters aren't tested yet.. (see python for example how to do it)
|
||||||
flags = {
|
flags = {
|
||||||
ftNix = {
|
ftNix = {
|
||||||
patches = [ ./ft-nix-support.patch ];
|
# because we cd to src in the main patch phase, we can't just add this
|
||||||
|
# patch to the list, we have to apply it manually
|
||||||
|
postPatch = ''
|
||||||
|
cd ../runtime
|
||||||
|
patch -p2 < ${./ft-nix-support.patch}
|
||||||
|
cd ..
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
|
// edf { name = "darwin"; } #Disable Darwin (Mac OS X) support.
|
||||||
@ -131,10 +149,11 @@ composableDerivation {
|
|||||||
|
|
||||||
dontStrip = 1;
|
dontStrip = 1;
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
description = "The most popular clone of the VI editor";
|
description = "The most popular clone of the VI editor";
|
||||||
homepage = "www.vim.org";
|
homepage = http://www.vim.org;
|
||||||
platforms = lib.platforms.unix;
|
maintainers = with maintainers; [ lovek323 ];
|
||||||
|
platforms = platforms.unix;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
|
{ stdenv, fetchurl, ncurses, gettext, pkgconfig }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "vim-7.4";
|
patchLevel = "23";
|
||||||
|
name = "vim-7.4.${patchLevel}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
|
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
|
||||||
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
sha256 = "1pjaffap91l2rb9pjnlbrpvb3ay5yhhr3g91zabjvw1rqk9adxfh";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -39,10 +40,20 @@ stdenv.mkDerivation rec {
|
|||||||
# To fix the trouble in vim73, that it cannot cross-build with this patch
|
# To fix the trouble in vim73, that it cannot cross-build with this patch
|
||||||
# to bypass a configure script check that cannot be done cross-building.
|
# to bypass a configure script check that cannot be done cross-building.
|
||||||
# http://groups.google.com/group/vim_dev/browse_thread/thread/66c02efd1523554b?pli=1
|
# http://groups.google.com/group/vim_dev/browse_thread/thread/66c02efd1523554b?pli=1
|
||||||
patchPhase = ''
|
# patchPhase = ''
|
||||||
sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
|
# sed -i -e 's/as_fn_error.*int32.*/:/' src/auto/configure
|
||||||
'';
|
# '';
|
||||||
|
|
||||||
|
prePatch = "cd src";
|
||||||
|
|
||||||
|
patches =
|
||||||
|
[ ./patches/7.4.001 ./patches/7.4.002 ./patches/7.4.003 ./patches/7.4.004
|
||||||
|
./patches/7.4.005 ./patches/7.4.006 ./patches/7.4.007 ./patches/7.4.008
|
||||||
|
./patches/7.4.009 ./patches/7.4.010 ./patches/7.4.011 ./patches/7.4.012
|
||||||
|
./patches/7.4.013 ./patches/7.4.014 ./patches/7.4.015 ./patches/7.4.016
|
||||||
|
./patches/7.4.017 ./patches/7.4.018 ./patches/7.4.019 ./patches/7.4.020
|
||||||
|
./patches/7.4.021 ./patches/7.4.022 ./patches/7.4.023 ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "The most popular clone of the VI editor";
|
description = "The most popular clone of the VI editor";
|
||||||
homepage = http://www.vim.org;
|
homepage = http://www.vim.org;
|
||||||
|
489
pkgs/applications/editors/vim/patches/7.4.001
Normal file
489
pkgs/applications/editors/vim/patches/7.4.001
Normal file
@ -0,0 +1,489 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.001
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.001
|
||||||
|
Problem: Character classes such as [a-z] to not react to 'ignorecase'.
|
||||||
|
Breaks man page highlighting. (Mario Grgic)
|
||||||
|
Solution: Add separate items for classes that react to 'ignorecase'. Clean
|
||||||
|
up logic handling character classes. Add more tests.
|
||||||
|
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 29,34 ****
|
||||||
|
--- 29,37 ----
|
||||||
|
# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
|
||||||
|
+ #define NFA_ADD_NL 31
|
||||||
|
+
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
NFA_SPLIT = -1024,
|
||||||
|
***************
|
||||||
|
*** 183,188 ****
|
||||||
|
--- 186,198 ----
|
||||||
|
NFA_NLOWER, /* Match non-lowercase char */
|
||||||
|
NFA_UPPER, /* Match uppercase char */
|
||||||
|
NFA_NUPPER, /* Match non-uppercase char */
|
||||||
|
+ NFA_LOWER_IC, /* Match [a-z] */
|
||||||
|
+ NFA_NLOWER_IC, /* Match [^a-z] */
|
||||||
|
+ NFA_UPPER_IC, /* Match [A-Z] */
|
||||||
|
+ NFA_NUPPER_IC, /* Match [^A-Z] */
|
||||||
|
+
|
||||||
|
+ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
|
||||||
|
+ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
|
||||||
|
|
||||||
|
NFA_CURSOR, /* Match cursor pos */
|
||||||
|
NFA_LNUM, /* Match line number */
|
||||||
|
***************
|
||||||
|
*** 199,207 ****
|
||||||
|
NFA_MARK_LT, /* Match < mark */
|
||||||
|
NFA_VISUAL, /* Match Visual area */
|
||||||
|
|
||||||
|
- NFA_FIRST_NL = NFA_ANY + ADD_NL,
|
||||||
|
- NFA_LAST_NL = NFA_NUPPER + ADD_NL,
|
||||||
|
-
|
||||||
|
/* Character classes [:alnum:] etc */
|
||||||
|
NFA_CLASS_ALNUM,
|
||||||
|
NFA_CLASS_ALPHA,
|
||||||
|
--- 209,214 ----
|
||||||
|
***************
|
||||||
|
*** 578,583 ****
|
||||||
|
--- 585,592 ----
|
||||||
|
* On failure, return 0 (=FAIL)
|
||||||
|
* Start points to the first char of the range, while end should point
|
||||||
|
* to the closing brace.
|
||||||
|
+ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
|
||||||
|
+ * need to be interpreted as [a-zA-Z].
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
nfa_recognize_char_class(start, end, extra_newl)
|
||||||
|
***************
|
||||||
|
*** 681,687 ****
|
||||||
|
return FAIL;
|
||||||
|
|
||||||
|
if (newl == TRUE)
|
||||||
|
! extra_newl = ADD_NL;
|
||||||
|
|
||||||
|
switch (config)
|
||||||
|
{
|
||||||
|
--- 690,696 ----
|
||||||
|
return FAIL;
|
||||||
|
|
||||||
|
if (newl == TRUE)
|
||||||
|
! extra_newl = NFA_ADD_NL;
|
||||||
|
|
||||||
|
switch (config)
|
||||||
|
{
|
||||||
|
***************
|
||||||
|
*** 710,722 ****
|
||||||
|
case CLASS_not | CLASS_az | CLASS_AZ:
|
||||||
|
return extra_newl + NFA_NALPHA;
|
||||||
|
case CLASS_az:
|
||||||
|
! return extra_newl + NFA_LOWER;
|
||||||
|
case CLASS_not | CLASS_az:
|
||||||
|
! return extra_newl + NFA_NLOWER;
|
||||||
|
case CLASS_AZ:
|
||||||
|
! return extra_newl + NFA_UPPER;
|
||||||
|
case CLASS_not | CLASS_AZ:
|
||||||
|
! return extra_newl + NFA_NUPPER;
|
||||||
|
}
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
--- 719,731 ----
|
||||||
|
case CLASS_not | CLASS_az | CLASS_AZ:
|
||||||
|
return extra_newl + NFA_NALPHA;
|
||||||
|
case CLASS_az:
|
||||||
|
! return extra_newl + NFA_LOWER_IC;
|
||||||
|
case CLASS_not | CLASS_az:
|
||||||
|
! return extra_newl + NFA_NLOWER_IC;
|
||||||
|
case CLASS_AZ:
|
||||||
|
! return extra_newl + NFA_UPPER_IC;
|
||||||
|
case CLASS_not | CLASS_AZ:
|
||||||
|
! return extra_newl + NFA_NUPPER_IC;
|
||||||
|
}
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
***************
|
||||||
|
*** 914,920 ****
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
! extra = ADD_NL;
|
||||||
|
|
||||||
|
/* "\_[" is collection plus newline */
|
||||||
|
if (c == '[')
|
||||||
|
--- 923,929 ----
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
! extra = NFA_ADD_NL;
|
||||||
|
|
||||||
|
/* "\_[" is collection plus newline */
|
||||||
|
if (c == '[')
|
||||||
|
***************
|
||||||
|
*** 970,976 ****
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
EMIT(nfa_classcodes[p - classchars]);
|
||||||
|
! if (extra == ADD_NL)
|
||||||
|
{
|
||||||
|
EMIT(NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
--- 979,985 ----
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
EMIT(nfa_classcodes[p - classchars]);
|
||||||
|
! if (extra == NFA_ADD_NL)
|
||||||
|
{
|
||||||
|
EMIT(NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
***************
|
||||||
|
*** 1240,1260 ****
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Try to reverse engineer character classes. For example,
|
||||||
|
! * recognize that [0-9] stands for \d and [A-Za-z_] with \h,
|
||||||
|
* and perform the necessary substitutions in the NFA.
|
||||||
|
*/
|
||||||
|
result = nfa_recognize_char_class(regparse, endp,
|
||||||
|
! extra == ADD_NL);
|
||||||
|
if (result != FAIL)
|
||||||
|
{
|
||||||
|
! if (result >= NFA_DIGIT && result <= NFA_NUPPER)
|
||||||
|
! EMIT(result);
|
||||||
|
! else /* must be char class + newline */
|
||||||
|
{
|
||||||
|
! EMIT(result - ADD_NL);
|
||||||
|
EMIT(NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
}
|
||||||
|
regparse = endp;
|
||||||
|
mb_ptr_adv(regparse);
|
||||||
|
return OK;
|
||||||
|
--- 1249,1269 ----
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Try to reverse engineer character classes. For example,
|
||||||
|
! * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
|
||||||
|
* and perform the necessary substitutions in the NFA.
|
||||||
|
*/
|
||||||
|
result = nfa_recognize_char_class(regparse, endp,
|
||||||
|
! extra == NFA_ADD_NL);
|
||||||
|
if (result != FAIL)
|
||||||
|
{
|
||||||
|
! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
|
||||||
|
{
|
||||||
|
! EMIT(result - NFA_ADD_NL);
|
||||||
|
EMIT(NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ EMIT(result);
|
||||||
|
regparse = endp;
|
||||||
|
mb_ptr_adv(regparse);
|
||||||
|
return OK;
|
||||||
|
***************
|
||||||
|
*** 1504,1510 ****
|
||||||
|
* collection, add an OR below. But not for negated
|
||||||
|
* range. */
|
||||||
|
if (!negated)
|
||||||
|
! extra = ADD_NL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
--- 1513,1519 ----
|
||||||
|
* collection, add an OR below. But not for negated
|
||||||
|
* range. */
|
||||||
|
if (!negated)
|
||||||
|
! extra = NFA_ADD_NL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
***************
|
||||||
|
*** 1537,1543 ****
|
||||||
|
EMIT(NFA_END_COLL);
|
||||||
|
|
||||||
|
/* \_[] also matches \n but it's not negated */
|
||||||
|
! if (extra == ADD_NL)
|
||||||
|
{
|
||||||
|
EMIT(reg_string ? NL : NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
--- 1546,1552 ----
|
||||||
|
EMIT(NFA_END_COLL);
|
||||||
|
|
||||||
|
/* \_[] also matches \n but it's not negated */
|
||||||
|
! if (extra == NFA_ADD_NL)
|
||||||
|
{
|
||||||
|
EMIT(reg_string ? NL : NFA_NEWL);
|
||||||
|
EMIT(NFA_OR);
|
||||||
|
***************
|
||||||
|
*** 2011,2017 ****
|
||||||
|
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
|
||||||
|
{
|
||||||
|
addnl = TRUE;
|
||||||
|
! c -= ADD_NL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STRCPY(code, "");
|
||||||
|
--- 2020,2026 ----
|
||||||
|
if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
|
||||||
|
{
|
||||||
|
addnl = TRUE;
|
||||||
|
! c -= NFA_ADD_NL;
|
||||||
|
}
|
||||||
|
|
||||||
|
STRCPY(code, "");
|
||||||
|
***************
|
||||||
|
*** 2217,2222 ****
|
||||||
|
--- 2226,2235 ----
|
||||||
|
case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
|
||||||
|
case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
|
||||||
|
case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
|
||||||
|
+ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
|
||||||
|
+ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
|
||||||
|
+ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
|
||||||
|
+ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
STRCPY(code, "CHAR(x)");
|
||||||
|
***************
|
||||||
|
*** 2687,2692 ****
|
||||||
|
--- 2700,2709 ----
|
||||||
|
case NFA_NLOWER:
|
||||||
|
case NFA_UPPER:
|
||||||
|
case NFA_NUPPER:
|
||||||
|
+ case NFA_LOWER_IC:
|
||||||
|
+ case NFA_NLOWER_IC:
|
||||||
|
+ case NFA_UPPER_IC:
|
||||||
|
+ case NFA_NUPPER_IC:
|
||||||
|
/* possibly non-ascii */
|
||||||
|
#ifdef FEAT_MBYTE
|
||||||
|
if (has_mbyte)
|
||||||
|
***************
|
||||||
|
*** 3841,3846 ****
|
||||||
|
--- 3858,3867 ----
|
||||||
|
case NFA_NLOWER:
|
||||||
|
case NFA_UPPER:
|
||||||
|
case NFA_NUPPER:
|
||||||
|
+ case NFA_LOWER_IC:
|
||||||
|
+ case NFA_NLOWER_IC:
|
||||||
|
+ case NFA_UPPER_IC:
|
||||||
|
+ case NFA_NUPPER_IC:
|
||||||
|
case NFA_START_COLL:
|
||||||
|
case NFA_START_NEG_COLL:
|
||||||
|
case NFA_NEWL:
|
||||||
|
***************
|
||||||
|
*** 5872,5877 ****
|
||||||
|
--- 5893,5920 ----
|
||||||
|
ADD_STATE_IF_MATCH(t->state);
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case NFA_LOWER_IC: /* [a-z] */
|
||||||
|
+ result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
|
||||||
|
+ ADD_STATE_IF_MATCH(t->state);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case NFA_NLOWER_IC: /* [^a-z] */
|
||||||
|
+ result = curc != NUL
|
||||||
|
+ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
|
||||||
|
+ ADD_STATE_IF_MATCH(t->state);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case NFA_UPPER_IC: /* [A-Z] */
|
||||||
|
+ result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
|
||||||
|
+ ADD_STATE_IF_MATCH(t->state);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ case NFA_NUPPER_IC: /* ^[A-Z] */
|
||||||
|
+ result = curc != NUL
|
||||||
|
+ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
|
||||||
|
+ ADD_STATE_IF_MATCH(t->state);
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case NFA_BACKREF1:
|
||||||
|
case NFA_BACKREF2:
|
||||||
|
case NFA_BACKREF3:
|
||||||
|
*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200
|
||||||
|
--- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 289,303 ****
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n "])
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
|
||||||
|
:"
|
||||||
|
! :"""" Test recognition of some character classes
|
||||||
|
! :call add(tl, [2, '[0-9]', '8', '8'])
|
||||||
|
! :call add(tl, [2, '[^0-9]', '8'])
|
||||||
|
! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
|
||||||
|
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
|
||||||
|
! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
|
||||||
|
! :call add(tl, [2, '[a-z]', 'a', 'a'])
|
||||||
|
! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
|
||||||
|
! :call add(tl, [2, '[A-Z]', 'a'])
|
||||||
|
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
|
||||||
|
:"
|
||||||
|
:"""" Tests for \z features
|
||||||
|
--- 289,317 ----
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n "])
|
||||||
|
:call add(tl, [2, '.a\%$', " a\n_a", "_a"])
|
||||||
|
:"
|
||||||
|
! :"""" Test recognition of character classes
|
||||||
|
! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
|
||||||
|
! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
|
||||||
|
! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
|
||||||
|
! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
|
||||||
|
! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
|
||||||
|
! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
|
||||||
|
! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
|
||||||
|
! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
|
||||||
|
! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
|
||||||
|
! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
|
||||||
|
! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
|
||||||
|
! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
|
||||||
|
! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
|
||||||
|
! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
|
||||||
|
! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
|
||||||
|
! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||||
|
! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
|
||||||
|
! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
|
||||||
|
! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
|
||||||
|
! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
|
||||||
|
! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||||
|
! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
|
||||||
|
:call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
|
||||||
|
:"
|
||||||
|
:"""" Tests for \z features
|
||||||
|
*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200
|
||||||
|
--- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 650,679 ****
|
||||||
|
OK 0 - .a\%$
|
||||||
|
OK 1 - .a\%$
|
||||||
|
OK 2 - .a\%$
|
||||||
|
! OK 0 - [0-9]
|
||||||
|
! OK 1 - [0-9]
|
||||||
|
! OK 2 - [0-9]
|
||||||
|
! OK 0 - [^0-9]
|
||||||
|
! OK 1 - [^0-9]
|
||||||
|
! OK 2 - [^0-9]
|
||||||
|
! OK 0 - [0-9a-fA-F]*
|
||||||
|
! OK 1 - [0-9a-fA-F]*
|
||||||
|
! OK 2 - [0-9a-fA-F]*
|
||||||
|
OK 0 - [^0-9A-Fa-f]\+
|
||||||
|
OK 1 - [^0-9A-Fa-f]\+
|
||||||
|
OK 2 - [^0-9A-Fa-f]\+
|
||||||
|
OK 0 - [a-z_A-Z0-9]\+
|
||||||
|
OK 1 - [a-z_A-Z0-9]\+
|
||||||
|
OK 2 - [a-z_A-Z0-9]\+
|
||||||
|
! OK 0 - [a-z]
|
||||||
|
! OK 1 - [a-z]
|
||||||
|
! OK 2 - [a-z]
|
||||||
|
! OK 0 - [a-zA-Z]
|
||||||
|
! OK 1 - [a-zA-Z]
|
||||||
|
! OK 2 - [a-zA-Z]
|
||||||
|
! OK 0 - [A-Z]
|
||||||
|
! OK 1 - [A-Z]
|
||||||
|
! OK 2 - [A-Z]
|
||||||
|
OK 0 - \C[^A-Z]\+
|
||||||
|
OK 1 - \C[^A-Z]\+
|
||||||
|
OK 2 - \C[^A-Z]\+
|
||||||
|
--- 650,721 ----
|
||||||
|
OK 0 - .a\%$
|
||||||
|
OK 1 - .a\%$
|
||||||
|
OK 2 - .a\%$
|
||||||
|
! OK 0 - [0-7]\+
|
||||||
|
! OK 1 - [0-7]\+
|
||||||
|
! OK 2 - [0-7]\+
|
||||||
|
! OK 0 - [^0-7]\+
|
||||||
|
! OK 1 - [^0-7]\+
|
||||||
|
! OK 2 - [^0-7]\+
|
||||||
|
! OK 0 - [0-9]\+
|
||||||
|
! OK 1 - [0-9]\+
|
||||||
|
! OK 2 - [0-9]\+
|
||||||
|
! OK 0 - [^0-9]\+
|
||||||
|
! OK 1 - [^0-9]\+
|
||||||
|
! OK 2 - [^0-9]\+
|
||||||
|
! OK 0 - [0-9a-fA-F]\+
|
||||||
|
! OK 1 - [0-9a-fA-F]\+
|
||||||
|
! OK 2 - [0-9a-fA-F]\+
|
||||||
|
OK 0 - [^0-9A-Fa-f]\+
|
||||||
|
OK 1 - [^0-9A-Fa-f]\+
|
||||||
|
OK 2 - [^0-9A-Fa-f]\+
|
||||||
|
OK 0 - [a-z_A-Z0-9]\+
|
||||||
|
OK 1 - [a-z_A-Z0-9]\+
|
||||||
|
OK 2 - [a-z_A-Z0-9]\+
|
||||||
|
! OK 0 - [^a-z_A-Z0-9]\+
|
||||||
|
! OK 1 - [^a-z_A-Z0-9]\+
|
||||||
|
! OK 2 - [^a-z_A-Z0-9]\+
|
||||||
|
! OK 0 - [a-z_A-Z]\+
|
||||||
|
! OK 1 - [a-z_A-Z]\+
|
||||||
|
! OK 2 - [a-z_A-Z]\+
|
||||||
|
! OK 0 - [^a-z_A-Z]\+
|
||||||
|
! OK 1 - [^a-z_A-Z]\+
|
||||||
|
! OK 2 - [^a-z_A-Z]\+
|
||||||
|
! OK 0 - [a-z]\+
|
||||||
|
! OK 1 - [a-z]\+
|
||||||
|
! OK 2 - [a-z]\+
|
||||||
|
! OK 0 - [a-z]\+
|
||||||
|
! OK 1 - [a-z]\+
|
||||||
|
! OK 2 - [a-z]\+
|
||||||
|
! OK 0 - [^a-z]\+
|
||||||
|
! OK 1 - [^a-z]\+
|
||||||
|
! OK 2 - [^a-z]\+
|
||||||
|
! OK 0 - [^a-z]\+
|
||||||
|
! OK 1 - [^a-z]\+
|
||||||
|
! OK 2 - [^a-z]\+
|
||||||
|
! OK 0 - [a-zA-Z]\+
|
||||||
|
! OK 1 - [a-zA-Z]\+
|
||||||
|
! OK 2 - [a-zA-Z]\+
|
||||||
|
! OK 0 - [^a-zA-Z]\+
|
||||||
|
! OK 1 - [^a-zA-Z]\+
|
||||||
|
! OK 2 - [^a-zA-Z]\+
|
||||||
|
! OK 0 - [A-Z]\+
|
||||||
|
! OK 1 - [A-Z]\+
|
||||||
|
! OK 2 - [A-Z]\+
|
||||||
|
! OK 0 - [^A-Z]\+
|
||||||
|
! OK 1 - [^A-Z]\+
|
||||||
|
! OK 2 - [^A-Z]\+
|
||||||
|
! OK 0 - [a-z]\+\c
|
||||||
|
! OK 1 - [a-z]\+\c
|
||||||
|
! OK 2 - [a-z]\+\c
|
||||||
|
! OK 0 - [A-Z]\+\c
|
||||||
|
! OK 1 - [A-Z]\+\c
|
||||||
|
! OK 2 - [A-Z]\+\c
|
||||||
|
! OK 0 - \c[^a-z]\+
|
||||||
|
! OK 1 - \c[^a-z]\+
|
||||||
|
! OK 2 - \c[^a-z]\+
|
||||||
|
! OK 0 - \c[^A-Z]\+
|
||||||
|
! OK 1 - \c[^A-Z]\+
|
||||||
|
! OK 2 - \c[^A-Z]\+
|
||||||
|
OK 0 - \C[^A-Z]\+
|
||||||
|
OK 1 - \C[^A-Z]\+
|
||||||
|
OK 2 - \C[^A-Z]\+
|
||||||
|
*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-14 11:54:57.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 1,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
How many light bulbs does it take to change a person?
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
77
pkgs/applications/editors/vim/patches/7.4.002
Normal file
77
pkgs/applications/editors/vim/patches/7.4.002
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.002
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4b.002
|
||||||
|
Problem: Pattern with two alternative look-behind matches does not match.
|
||||||
|
(Amadeus Demarzi)
|
||||||
|
Solution: When comparing PIMs also compare their state ID to see if they are
|
||||||
|
different.
|
||||||
|
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 3782,3787 ****
|
||||||
|
--- 3782,3790 ----
|
||||||
|
if (two_unused)
|
||||||
|
/* one is used and two is not: not equal */
|
||||||
|
return FALSE;
|
||||||
|
+ /* compare the state id */
|
||||||
|
+ if (one->state->id != two->state->id)
|
||||||
|
+ return FALSE;
|
||||||
|
/* compare the position */
|
||||||
|
if (REG_MULTI)
|
||||||
|
return one->end.pos.lnum == two->end.pos.lnum
|
||||||
|
*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200
|
||||||
|
--- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 421,426 ****
|
||||||
|
--- 421,429 ----
|
||||||
|
:call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
|
||||||
|
:call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
|
||||||
|
:"
|
||||||
|
+ :" complicated look-behind match
|
||||||
|
+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
|
||||||
|
+ :"
|
||||||
|
:""""" \@>
|
||||||
|
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
|
||||||
|
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
|
||||||
|
*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200
|
||||||
|
--- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 974,979 ****
|
||||||
|
--- 974,982 ----
|
||||||
|
OK 0 - \(foo\)\@<=.*
|
||||||
|
OK 1 - \(foo\)\@<=.*
|
||||||
|
OK 2 - \(foo\)\@<=.*
|
||||||
|
+ OK 0 - \(r\@<=\|\w\@<!\)\/
|
||||||
|
+ OK 1 - \(r\@<=\|\w\@<!\)\/
|
||||||
|
+ OK 2 - \(r\@<=\|\w\@<!\)\/
|
||||||
|
OK 0 - \(a*\)\@>a
|
||||||
|
OK 1 - \(a*\)\@>a
|
||||||
|
OK 2 - \(a*\)\@>a
|
||||||
|
*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-14 13:13:45.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 2,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
From "know your smileys":
|
||||||
|
:-)-O Smiling doctor with stethoscope
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
100
pkgs/applications/editors/vim/patches/7.4.003
Normal file
100
pkgs/applications/editors/vim/patches/7.4.003
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.003
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.003
|
||||||
|
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
|
||||||
|
Solution: Refresh stale pointer. (James McCoy)
|
||||||
|
Files: src/regexp_nfa.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 4120,4126 ****
|
||||||
|
sub = &subs->norm;
|
||||||
|
}
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
! else if (state->c >= NFA_ZOPEN)
|
||||||
|
{
|
||||||
|
subidx = state->c - NFA_ZOPEN;
|
||||||
|
sub = &subs->synt;
|
||||||
|
--- 4120,4126 ----
|
||||||
|
sub = &subs->norm;
|
||||||
|
}
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
|
||||||
|
{
|
||||||
|
subidx = state->c - NFA_ZOPEN;
|
||||||
|
sub = &subs->synt;
|
||||||
|
***************
|
||||||
|
*** 4189,4194 ****
|
||||||
|
--- 4189,4201 ----
|
||||||
|
}
|
||||||
|
|
||||||
|
subs = addstate(l, state->out, subs, pim, off);
|
||||||
|
+ /* "subs" may have changed, need to set "sub" again */
|
||||||
|
+ #ifdef FEAT_SYN_HL
|
||||||
|
+ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
|
||||||
|
+ sub = &subs->synt;
|
||||||
|
+ else
|
||||||
|
+ #endif
|
||||||
|
+ sub = &subs->norm;
|
||||||
|
|
||||||
|
if (save_in_use == -1)
|
||||||
|
{
|
||||||
|
***************
|
||||||
|
*** 4237,4243 ****
|
||||||
|
sub = &subs->norm;
|
||||||
|
}
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
! else if (state->c >= NFA_ZCLOSE)
|
||||||
|
{
|
||||||
|
subidx = state->c - NFA_ZCLOSE;
|
||||||
|
sub = &subs->synt;
|
||||||
|
--- 4244,4250 ----
|
||||||
|
sub = &subs->norm;
|
||||||
|
}
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
|
||||||
|
{
|
||||||
|
subidx = state->c - NFA_ZCLOSE;
|
||||||
|
sub = &subs->synt;
|
||||||
|
***************
|
||||||
|
*** 4281,4286 ****
|
||||||
|
--- 4288,4300 ----
|
||||||
|
}
|
||||||
|
|
||||||
|
subs = addstate(l, state->out, subs, pim, off);
|
||||||
|
+ /* "subs" may have changed, need to set "sub" again */
|
||||||
|
+ #ifdef FEAT_SYN_HL
|
||||||
|
+ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
|
||||||
|
+ sub = &subs->synt;
|
||||||
|
+ else
|
||||||
|
+ #endif
|
||||||
|
+ sub = &subs->norm;
|
||||||
|
|
||||||
|
if (REG_MULTI)
|
||||||
|
sub->list.multi[subidx].end = save_lpos;
|
||||||
|
*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-14 14:03:51.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 3,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
Where do you want to crash today?
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
232
pkgs/applications/editors/vim/patches/7.4.004
Normal file
232
pkgs/applications/editors/vim/patches/7.4.004
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.004
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.004
|
||||||
|
Problem: When closing a window fails ":bwipe" may hang.
|
||||||
|
Solution: Let win_close() return FAIL and break out of the loop.
|
||||||
|
Files: src/window.c, src/proto/window.pro, src/buffer.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200
|
||||||
|
--- src/window.c 2013-08-14 16:52:44.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 2172,2179 ****
|
||||||
|
* If "free_buf" is TRUE related buffer may be unloaded.
|
||||||
|
*
|
||||||
|
* Called by :quit, :close, :xit, :wq and findtag().
|
||||||
|
*/
|
||||||
|
! void
|
||||||
|
win_close(win, free_buf)
|
||||||
|
win_T *win;
|
||||||
|
int free_buf;
|
||||||
|
--- 2172,2180 ----
|
||||||
|
* If "free_buf" is TRUE related buffer may be unloaded.
|
||||||
|
*
|
||||||
|
* Called by :quit, :close, :xit, :wq and findtag().
|
||||||
|
+ * Returns FAIL when the window was not closed.
|
||||||
|
*/
|
||||||
|
! int
|
||||||
|
win_close(win, free_buf)
|
||||||
|
win_T *win;
|
||||||
|
int free_buf;
|
||||||
|
***************
|
||||||
|
*** 2190,2210 ****
|
||||||
|
if (last_window())
|
||||||
|
{
|
||||||
|
EMSG(_("E444: Cannot close last window"));
|
||||||
|
! return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
|
||||||
|
! return; /* window is already being closed */
|
||||||
|
if (win == aucmd_win)
|
||||||
|
{
|
||||||
|
EMSG(_("E813: Cannot close autocmd window"));
|
||||||
|
! return;
|
||||||
|
}
|
||||||
|
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
|
||||||
|
{
|
||||||
|
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
|
||||||
|
! return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- 2191,2211 ----
|
||||||
|
if (last_window())
|
||||||
|
{
|
||||||
|
EMSG(_("E444: Cannot close last window"));
|
||||||
|
! return FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef FEAT_AUTOCMD
|
||||||
|
if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
|
||||||
|
! return FAIL; /* window is already being closed */
|
||||||
|
if (win == aucmd_win)
|
||||||
|
{
|
||||||
|
EMSG(_("E813: Cannot close autocmd window"));
|
||||||
|
! return FAIL;
|
||||||
|
}
|
||||||
|
if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
|
||||||
|
{
|
||||||
|
EMSG(_("E814: Cannot close window, only autocmd window would remain"));
|
||||||
|
! return FAIL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
***************
|
||||||
|
*** 2212,2218 ****
|
||||||
|
* and then close the window and the tab page to avoid that curwin and
|
||||||
|
* curtab are invalid while we are freeing memory. */
|
||||||
|
if (close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||||
|
! return;
|
||||||
|
|
||||||
|
/* When closing the help window, try restoring a snapshot after closing
|
||||||
|
* the window. Otherwise clear the snapshot, it's now invalid. */
|
||||||
|
--- 2213,2219 ----
|
||||||
|
* and then close the window and the tab page to avoid that curwin and
|
||||||
|
* curtab are invalid while we are freeing memory. */
|
||||||
|
if (close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||||
|
! return FAIL;
|
||||||
|
|
||||||
|
/* When closing the help window, try restoring a snapshot after closing
|
||||||
|
* the window. Otherwise clear the snapshot, it's now invalid. */
|
||||||
|
***************
|
||||||
|
*** 2240,2261 ****
|
||||||
|
win->w_closing = TRUE;
|
||||||
|
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
|
||||||
|
if (!win_valid(win))
|
||||||
|
! return;
|
||||||
|
win->w_closing = FALSE;
|
||||||
|
if (last_window())
|
||||||
|
! return;
|
||||||
|
}
|
||||||
|
win->w_closing = TRUE;
|
||||||
|
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
|
||||||
|
if (!win_valid(win))
|
||||||
|
! return;
|
||||||
|
win->w_closing = FALSE;
|
||||||
|
if (last_window())
|
||||||
|
! return;
|
||||||
|
# ifdef FEAT_EVAL
|
||||||
|
/* autocmds may abort script processing */
|
||||||
|
if (aborting())
|
||||||
|
! return;
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
--- 2241,2262 ----
|
||||||
|
win->w_closing = TRUE;
|
||||||
|
apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
|
||||||
|
if (!win_valid(win))
|
||||||
|
! return FAIL;
|
||||||
|
win->w_closing = FALSE;
|
||||||
|
if (last_window())
|
||||||
|
! return FAIL;
|
||||||
|
}
|
||||||
|
win->w_closing = TRUE;
|
||||||
|
apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
|
||||||
|
if (!win_valid(win))
|
||||||
|
! return FAIL;
|
||||||
|
win->w_closing = FALSE;
|
||||||
|
if (last_window())
|
||||||
|
! return FAIL;
|
||||||
|
# ifdef FEAT_EVAL
|
||||||
|
/* autocmds may abort script processing */
|
||||||
|
if (aborting())
|
||||||
|
! return FAIL;
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
***************
|
||||||
|
*** 2303,2309 ****
|
||||||
|
* other window or moved to another tab page. */
|
||||||
|
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|
||||||
|
|| close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||||
|
! return;
|
||||||
|
|
||||||
|
/* Free the memory used for the window and get the window that received
|
||||||
|
* the screen space. */
|
||||||
|
--- 2304,2310 ----
|
||||||
|
* other window or moved to another tab page. */
|
||||||
|
else if (!win_valid(win) || last_window() || curtab != prev_curtab
|
||||||
|
|| close_last_window_tabpage(win, free_buf, prev_curtab))
|
||||||
|
! return FAIL;
|
||||||
|
|
||||||
|
/* Free the memory used for the window and get the window that received
|
||||||
|
* the screen space. */
|
||||||
|
***************
|
||||||
|
*** 2383,2388 ****
|
||||||
|
--- 2384,2390 ----
|
||||||
|
#endif
|
||||||
|
|
||||||
|
redraw_all_later(NOT_VALID);
|
||||||
|
+ return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200
|
||||||
|
--- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 9,15 ****
|
||||||
|
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
|
||||||
|
void close_windows __ARGS((buf_T *buf, int keep_curwin));
|
||||||
|
int one_window __ARGS((void));
|
||||||
|
! void win_close __ARGS((win_T *win, int free_buf));
|
||||||
|
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
|
||||||
|
void win_free_all __ARGS((void));
|
||||||
|
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
|
||||||
|
--- 9,15 ----
|
||||||
|
void win_equal __ARGS((win_T *next_curwin, int current, int dir));
|
||||||
|
void close_windows __ARGS((buf_T *buf, int keep_curwin));
|
||||||
|
int one_window __ARGS((void));
|
||||||
|
! int win_close __ARGS((win_T *win, int free_buf));
|
||||||
|
void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
|
||||||
|
void win_free_all __ARGS((void));
|
||||||
|
win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
|
||||||
|
*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200
|
||||||
|
--- src/buffer.c 2013-08-14 16:54:34.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 1186,1192 ****
|
||||||
|
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
|
||||||
|
# endif
|
||||||
|
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
|
||||||
|
! win_close(curwin, FALSE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
--- 1186,1195 ----
|
||||||
|
&& !(curwin->w_closing || curwin->w_buffer->b_closing)
|
||||||
|
# endif
|
||||||
|
&& (firstwin != lastwin || first_tabpage->tp_next != NULL))
|
||||||
|
! {
|
||||||
|
! if (win_close(curwin, FALSE) == FAIL)
|
||||||
|
! break;
|
||||||
|
! }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-14 17:10:23.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 4,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
From "know your smileys":
|
||||||
|
*<|:-) Santa Claus (Ho Ho Ho)
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
48
pkgs/applications/editors/vim/patches/7.4.005
Normal file
48
pkgs/applications/editors/vim/patches/7.4.005
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.005
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.005
|
||||||
|
Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
|
||||||
|
(Dimitar Dimitrov)
|
||||||
|
Solution: Reset coladd when finding a match.
|
||||||
|
Files: src/search.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200
|
||||||
|
--- src/search.c 2013-08-14 17:32:38.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 1760,1765 ****
|
||||||
|
--- 1760,1768 ----
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pos = curwin->w_cursor;
|
||||||
|
+ #ifdef FEAT_VIRTUALEDIT
|
||||||
|
+ pos.coladd = 0;
|
||||||
|
+ #endif
|
||||||
|
linep = ml_get(pos.lnum);
|
||||||
|
|
||||||
|
cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
|
||||||
|
*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-14 17:38:05.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 5,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
You can't have everything. Where would you put it?
|
||||||
|
-- Steven Wright
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
66
pkgs/applications/editors/vim/patches/7.4.006
Normal file
66
pkgs/applications/editors/vim/patches/7.4.006
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.006
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.006
|
||||||
|
Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
|
||||||
|
Solution: Remove the trailing slash. (lcd)
|
||||||
|
Files: src/eval.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200
|
||||||
|
--- src/eval.c 2013-08-22 12:00:28.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 14292,14297 ****
|
||||||
|
--- 14292,14301 ----
|
||||||
|
return;
|
||||||
|
|
||||||
|
dir = get_tv_string_buf(&argvars[0], buf);
|
||||||
|
+ if (*gettail(dir) == NUL)
|
||||||
|
+ /* remove trailing slashes */
|
||||||
|
+ *gettail_sep(dir) = NUL;
|
||||||
|
+
|
||||||
|
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||||
|
{
|
||||||
|
if (argvars[2].v_type != VAR_UNKNOWN)
|
||||||
|
***************
|
||||||
|
*** 14299,14305 ****
|
||||||
|
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||||
|
mkdir_recurse(dir, prot);
|
||||||
|
}
|
||||||
|
! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- 14303,14309 ----
|
||||||
|
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||||
|
mkdir_recurse(dir, prot);
|
||||||
|
}
|
||||||
|
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-22 12:02:46.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 6,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
97. Your mother tells you to remember something, and you look for
|
||||||
|
a File/Save command.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
95
pkgs/applications/editors/vim/patches/7.4.007
Normal file
95
pkgs/applications/editors/vim/patches/7.4.007
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.007
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.007
|
||||||
|
Problem: Creating a preview window on startup leaves the screen layout in a
|
||||||
|
messed up state. (Marius Gedminas)
|
||||||
|
Solution: Don't change firstwin. (Christian Brabandt)
|
||||||
|
Files: src/main.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200
|
||||||
|
--- src/main.c 2013-08-22 14:02:39.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 2727,2732 ****
|
||||||
|
--- 2727,2733 ----
|
||||||
|
int arg_idx; /* index in argument list */
|
||||||
|
int i;
|
||||||
|
int advance = TRUE;
|
||||||
|
+ win_T *win;
|
||||||
|
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
/*
|
||||||
|
***************
|
||||||
|
*** 2816,2839 ****
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
--autocmd_no_enter;
|
||||||
|
# endif
|
||||||
|
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
|
||||||
|
! /*
|
||||||
|
! * Avoid making a preview window the current window.
|
||||||
|
! */
|
||||||
|
! if (firstwin->w_p_pvw)
|
||||||
|
{
|
||||||
|
! win_T *win;
|
||||||
|
!
|
||||||
|
! for (win = firstwin; win != NULL; win = win->w_next)
|
||||||
|
! if (!win->w_p_pvw)
|
||||||
|
! {
|
||||||
|
! firstwin = win;
|
||||||
|
! break;
|
||||||
|
! }
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
! /* make the first window the current window */
|
||||||
|
! win_enter(firstwin, FALSE);
|
||||||
|
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
--autocmd_no_leave;
|
||||||
|
--- 2817,2838 ----
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
--autocmd_no_enter;
|
||||||
|
# endif
|
||||||
|
+
|
||||||
|
+ /* make the first window the current window */
|
||||||
|
+ win = firstwin;
|
||||||
|
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
|
||||||
|
! /* Avoid making a preview window the current window. */
|
||||||
|
! while (win->w_p_pvw)
|
||||||
|
{
|
||||||
|
! win = win->w_next;
|
||||||
|
! if (win == NULL)
|
||||||
|
! {
|
||||||
|
! win = firstwin;
|
||||||
|
! break;
|
||||||
|
! }
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
! win_enter(win, FALSE);
|
||||||
|
|
||||||
|
# ifdef FEAT_AUTOCMD
|
||||||
|
--autocmd_no_leave;
|
||||||
|
*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-22 14:04:11.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 7,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
105. When someone asks you for your address, you tell them your URL.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
71
pkgs/applications/editors/vim/patches/7.4.008
Normal file
71
pkgs/applications/editors/vim/patches/7.4.008
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.008
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.008
|
||||||
|
Problem: New regexp engine can't be interrupted.
|
||||||
|
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
|
||||||
|
Files: src/regexp_nfa.c, src/regexp.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 5089,5094 ****
|
||||||
|
--- 5089,5100 ----
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
+ /* Some patterns may take a long time to match, especially when using
|
||||||
|
+ * recursive_regmatch(). Allow interrupting them with CTRL-C. */
|
||||||
|
+ fast_breakcheck();
|
||||||
|
+ if (got_int)
|
||||||
|
+ return FALSE;
|
||||||
|
+
|
||||||
|
nfa_match = FALSE;
|
||||||
|
|
||||||
|
/* Allocate memory for the lists of nodes. */
|
||||||
|
*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200
|
||||||
|
--- src/regexp.c 2013-08-25 16:57:35.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 4311,4318 ****
|
||||||
|
*/
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
! /* Some patterns may cause a long time to match, even though they are not
|
||||||
|
! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
|
||||||
|
fast_breakcheck();
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
--- 4311,4318 ----
|
||||||
|
*/
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
|
||||||
|
! * Allow interrupting them with CTRL-C. */
|
||||||
|
fast_breakcheck();
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-25 16:57:51.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 8,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
124. You begin conversations with, "Who is your internet service provider?"
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
64
pkgs/applications/editors/vim/patches/7.4.009
Normal file
64
pkgs/applications/editors/vim/patches/7.4.009
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.009
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.009
|
||||||
|
Problem: When a file was not decrypted (yet), writing it may destroy the
|
||||||
|
contents.
|
||||||
|
Solution: Mark the file as readonly until decryption was done. (Christian
|
||||||
|
Brabandt)
|
||||||
|
Files: src/fileio.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200
|
||||||
|
--- src/fileio.c 2013-08-25 17:45:27.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 2926,2934 ****
|
||||||
|
--- 2926,2939 ----
|
||||||
|
int *did_ask; /* flag: whether already asked for key */
|
||||||
|
{
|
||||||
|
int method = crypt_method_from_magic((char *)ptr, *sizep);
|
||||||
|
+ int b_p_ro = curbuf->b_p_ro;
|
||||||
|
|
||||||
|
if (method >= 0)
|
||||||
|
{
|
||||||
|
+ /* Mark the buffer as read-only until the decryption has taken place.
|
||||||
|
+ * Avoids accidentally overwriting the file with garbage. */
|
||||||
|
+ curbuf->b_p_ro = TRUE;
|
||||||
|
+
|
||||||
|
set_crypt_method(curbuf, method);
|
||||||
|
if (method > 0)
|
||||||
|
(void)blowfish_self_test();
|
||||||
|
***************
|
||||||
|
*** 2977,2982 ****
|
||||||
|
--- 2982,2989 ----
|
||||||
|
*sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
|
||||||
|
mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
|
||||||
|
(size_t)*sizep);
|
||||||
|
+ /* Restore the read-only flag. */
|
||||||
|
+ curbuf->b_p_ro = b_p_ro;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* When starting to edit a new file which does not have encryption, clear
|
||||||
|
*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-25 17:44:30.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 9,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
I have a watch cat! Just break in and she'll watch.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
79
pkgs/applications/editors/vim/patches/7.4.010
Normal file
79
pkgs/applications/editors/vim/patches/7.4.010
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.010
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.010 (after 7.4.006)
|
||||||
|
Problem: Crash with invalid argument to mkdir().
|
||||||
|
Solution: Check for empty string. (lcd47)
|
||||||
|
Files: src/eval.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200
|
||||||
|
--- src/eval.c 2013-08-30 15:47:47.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 14292,14309 ****
|
||||||
|
return;
|
||||||
|
|
||||||
|
dir = get_tv_string_buf(&argvars[0], buf);
|
||||||
|
! if (*gettail(dir) == NUL)
|
||||||
|
! /* remove trailing slashes */
|
||||||
|
! *gettail_sep(dir) = NUL;
|
||||||
|
!
|
||||||
|
! if (argvars[1].v_type != VAR_UNKNOWN)
|
||||||
|
{
|
||||||
|
! if (argvars[2].v_type != VAR_UNKNOWN)
|
||||||
|
! prot = get_tv_number_chk(&argvars[2], NULL);
|
||||||
|
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||||
|
! mkdir_recurse(dir, prot);
|
||||||
|
}
|
||||||
|
- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- 14292,14314 ----
|
||||||
|
return;
|
||||||
|
|
||||||
|
dir = get_tv_string_buf(&argvars[0], buf);
|
||||||
|
! if (*dir == NUL)
|
||||||
|
! rettv->vval.v_number = FAIL;
|
||||||
|
! else
|
||||||
|
{
|
||||||
|
! if (*gettail(dir) == NUL)
|
||||||
|
! /* remove trailing slashes */
|
||||||
|
! *gettail_sep(dir) = NUL;
|
||||||
|
!
|
||||||
|
! if (argvars[1].v_type != VAR_UNKNOWN)
|
||||||
|
! {
|
||||||
|
! if (argvars[2].v_type != VAR_UNKNOWN)
|
||||||
|
! prot = get_tv_number_chk(&argvars[2], NULL);
|
||||||
|
! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
|
||||||
|
! mkdir_recurse(dir, prot);
|
||||||
|
! }
|
||||||
|
! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 15:48:37.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 729,732 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 10,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
I wish there was a knob on the TV to turn up the intelligence.
|
||||||
|
There's a knob called "brightness", but it doesn't seem to work.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
100
pkgs/applications/editors/vim/patches/7.4.011
Normal file
100
pkgs/applications/editors/vim/patches/7.4.011
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.011
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.011
|
||||||
|
Problem: Cannot find out if "acl" and "xpm" features are supported.
|
||||||
|
Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
|
||||||
|
Files: src/eval.c, src/version.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200
|
||||||
|
--- src/eval.c 2013-08-30 16:34:12.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 12135,12140 ****
|
||||||
|
--- 12135,12143 ----
|
||||||
|
#ifndef CASE_INSENSITIVE_FILENAME
|
||||||
|
"fname_case",
|
||||||
|
#endif
|
||||||
|
+ #ifdef HAVE_ACL
|
||||||
|
+ "acl",
|
||||||
|
+ #endif
|
||||||
|
#ifdef FEAT_ARABIC
|
||||||
|
"arabic",
|
||||||
|
#endif
|
||||||
|
***************
|
||||||
|
*** 12538,12544 ****
|
||||||
|
"xfontset",
|
||||||
|
#endif
|
||||||
|
#ifdef FEAT_XPM_W32
|
||||||
|
! "xpm_w32",
|
||||||
|
#endif
|
||||||
|
#ifdef USE_XSMP
|
||||||
|
"xsmp",
|
||||||
|
--- 12541,12552 ----
|
||||||
|
"xfontset",
|
||||||
|
#endif
|
||||||
|
#ifdef FEAT_XPM_W32
|
||||||
|
! "xpm",
|
||||||
|
! "xpm_w32", /* for backward compatibility */
|
||||||
|
! #else
|
||||||
|
! # if defined(HAVE_XPM)
|
||||||
|
! "xpm",
|
||||||
|
! # endif
|
||||||
|
#endif
|
||||||
|
#ifdef USE_XSMP
|
||||||
|
"xsmp",
|
||||||
|
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 60,65 ****
|
||||||
|
--- 60,70 ----
|
||||||
|
|
||||||
|
static char *(features[]) =
|
||||||
|
{
|
||||||
|
+ #ifdef HAVE_ACL
|
||||||
|
+ "+acl",
|
||||||
|
+ #else
|
||||||
|
+ "-acl",
|
||||||
|
+ #endif
|
||||||
|
#ifdef AMIGA /* only for Amiga systems */
|
||||||
|
# ifdef FEAT_ARP
|
||||||
|
"+ARP",
|
||||||
|
***************
|
||||||
|
*** 721,726 ****
|
||||||
|
--- 726,737 ----
|
||||||
|
# else
|
||||||
|
"-xpm_w32",
|
||||||
|
# endif
|
||||||
|
+ #else
|
||||||
|
+ # ifdef HAVE_XPM
|
||||||
|
+ "+xpm",
|
||||||
|
+ # else
|
||||||
|
+ "-xpm",
|
||||||
|
+ # endif
|
||||||
|
#endif
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 16:34:37.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 729,730 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 11,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
141. You'd rather go to http://www.weather.com/ than look out your window.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
202
pkgs/applications/editors/vim/patches/7.4.012
Normal file
202
pkgs/applications/editors/vim/patches/7.4.012
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.012
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.012
|
||||||
|
Problem: MS-Windows: resolving shortcut does not work properly with
|
||||||
|
multi-byte characters.
|
||||||
|
Solution: Use wide system functions. (Ken Takata)
|
||||||
|
Files: src/os_mswin.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200
|
||||||
|
--- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 1761,1769 ****
|
||||||
|
IPersistFile *ppf = NULL;
|
||||||
|
OLECHAR wsz[MAX_PATH];
|
||||||
|
WIN32_FIND_DATA ffd; // we get those free of charge
|
||||||
|
! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
|
||||||
|
char_u *rfname = NULL;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
/* Check if the file name ends in ".lnk". Avoid calling
|
||||||
|
* CoCreateInstance(), it's quite slow. */
|
||||||
|
--- 1761,1773 ----
|
||||||
|
IPersistFile *ppf = NULL;
|
||||||
|
OLECHAR wsz[MAX_PATH];
|
||||||
|
WIN32_FIND_DATA ffd; // we get those free of charge
|
||||||
|
! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
|
||||||
|
char_u *rfname = NULL;
|
||||||
|
int len;
|
||||||
|
+ # ifdef FEAT_MBYTE
|
||||||
|
+ IShellLinkW *pslw = NULL;
|
||||||
|
+ WIN32_FIND_DATAW ffdw; // we get those free of charge
|
||||||
|
+ # endif
|
||||||
|
|
||||||
|
/* Check if the file name ends in ".lnk". Avoid calling
|
||||||
|
* CoCreateInstance(), it's quite slow. */
|
||||||
|
***************
|
||||||
|
*** 1775,1792 ****
|
||||||
|
|
||||||
|
CoInitialize(NULL);
|
||||||
|
|
||||||
|
// create a link manager object and request its interface
|
||||||
|
hr = CoCreateInstance(
|
||||||
|
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
&IID_IShellLink, (void**)&psl);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_error;
|
||||||
|
|
||||||
|
// Get a pointer to the IPersistFile interface.
|
||||||
|
hr = psl->lpVtbl->QueryInterface(
|
||||||
|
psl, &IID_IPersistFile, (void**)&ppf);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_error;
|
||||||
|
|
||||||
|
// full path string must be in Unicode.
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
|
||||||
|
--- 1779,1840 ----
|
||||||
|
|
||||||
|
CoInitialize(NULL);
|
||||||
|
|
||||||
|
+ # ifdef FEAT_MBYTE
|
||||||
|
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||||
|
+ {
|
||||||
|
+ // create a link manager object and request its interface
|
||||||
|
+ hr = CoCreateInstance(
|
||||||
|
+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
+ &IID_IShellLinkW, (void**)&pslw);
|
||||||
|
+ if (hr == S_OK)
|
||||||
|
+ {
|
||||||
|
+ WCHAR *p = enc_to_utf16(fname, NULL);
|
||||||
|
+
|
||||||
|
+ if (p != NULL)
|
||||||
|
+ {
|
||||||
|
+ // Get a pointer to the IPersistFile interface.
|
||||||
|
+ hr = pslw->lpVtbl->QueryInterface(
|
||||||
|
+ pslw, &IID_IPersistFile, (void**)&ppf);
|
||||||
|
+ if (hr != S_OK)
|
||||||
|
+ goto shortcut_errorw;
|
||||||
|
+
|
||||||
|
+ // "load" the name and resolve the link
|
||||||
|
+ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
|
||||||
|
+ if (hr != S_OK)
|
||||||
|
+ goto shortcut_errorw;
|
||||||
|
+ # if 0 // This makes Vim wait a long time if the target does not exist.
|
||||||
|
+ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
|
||||||
|
+ if (hr != S_OK)
|
||||||
|
+ goto shortcut_errorw;
|
||||||
|
+ # endif
|
||||||
|
+
|
||||||
|
+ // Get the path to the link target.
|
||||||
|
+ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
|
||||||
|
+ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
|
||||||
|
+ if (hr == S_OK && wsz[0] != NUL)
|
||||||
|
+ rfname = utf16_to_enc(wsz, NULL);
|
||||||
|
+
|
||||||
|
+ shortcut_errorw:
|
||||||
|
+ vim_free(p);
|
||||||
|
+ if (hr == S_OK)
|
||||||
|
+ goto shortcut_end;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ /* Retry with non-wide function (for Windows 98). */
|
||||||
|
+ }
|
||||||
|
+ # endif
|
||||||
|
// create a link manager object and request its interface
|
||||||
|
hr = CoCreateInstance(
|
||||||
|
&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
&IID_IShellLink, (void**)&psl);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_end;
|
||||||
|
|
||||||
|
// Get a pointer to the IPersistFile interface.
|
||||||
|
hr = psl->lpVtbl->QueryInterface(
|
||||||
|
psl, &IID_IPersistFile, (void**)&ppf);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_end;
|
||||||
|
|
||||||
|
// full path string must be in Unicode.
|
||||||
|
MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
|
||||||
|
***************
|
||||||
|
*** 1794,1805 ****
|
||||||
|
// "load" the name and resolve the link
|
||||||
|
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_error;
|
||||||
|
! #if 0 // This makes Vim wait a long time if the target doesn't exist.
|
||||||
|
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_error;
|
||||||
|
! #endif
|
||||||
|
|
||||||
|
// Get the path to the link target.
|
||||||
|
ZeroMemory(buf, MAX_PATH);
|
||||||
|
--- 1842,1853 ----
|
||||||
|
// "load" the name and resolve the link
|
||||||
|
hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_end;
|
||||||
|
! # if 0 // This makes Vim wait a long time if the target doesn't exist.
|
||||||
|
hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
|
||||||
|
if (hr != S_OK)
|
||||||
|
! goto shortcut_end;
|
||||||
|
! # endif
|
||||||
|
|
||||||
|
// Get the path to the link target.
|
||||||
|
ZeroMemory(buf, MAX_PATH);
|
||||||
|
***************
|
||||||
|
*** 1807,1818 ****
|
||||||
|
if (hr == S_OK && buf[0] != NUL)
|
||||||
|
rfname = vim_strsave(buf);
|
||||||
|
|
||||||
|
! shortcut_error:
|
||||||
|
// Release all interface pointers (both belong to the same object)
|
||||||
|
if (ppf != NULL)
|
||||||
|
ppf->lpVtbl->Release(ppf);
|
||||||
|
if (psl != NULL)
|
||||||
|
psl->lpVtbl->Release(psl);
|
||||||
|
|
||||||
|
CoUninitialize();
|
||||||
|
return rfname;
|
||||||
|
--- 1855,1870 ----
|
||||||
|
if (hr == S_OK && buf[0] != NUL)
|
||||||
|
rfname = vim_strsave(buf);
|
||||||
|
|
||||||
|
! shortcut_end:
|
||||||
|
// Release all interface pointers (both belong to the same object)
|
||||||
|
if (ppf != NULL)
|
||||||
|
ppf->lpVtbl->Release(ppf);
|
||||||
|
if (psl != NULL)
|
||||||
|
psl->lpVtbl->Release(psl);
|
||||||
|
+ # ifdef FEAT_MBYTE
|
||||||
|
+ if (pslw != NULL)
|
||||||
|
+ pslw->lpVtbl->Release(pslw);
|
||||||
|
+ # endif
|
||||||
|
|
||||||
|
CoUninitialize();
|
||||||
|
return rfname;
|
||||||
|
*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 16:39:40.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 12,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
142. You dream about creating the world's greatest web site.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
99
pkgs/applications/editors/vim/patches/7.4.013
Normal file
99
pkgs/applications/editors/vim/patches/7.4.013
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.013
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.013
|
||||||
|
Problem: File name buffer too small for utf-8.
|
||||||
|
Solution: Use character count instead of byte count. (Ken Takata)
|
||||||
|
Files: src/os_mswin.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200
|
||||||
|
--- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 456,462 ****
|
||||||
|
--- 456,469 ----
|
||||||
|
int
|
||||||
|
mch_isFullName(char_u *fname)
|
||||||
|
{
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
|
||||||
|
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
|
||||||
|
+ * UTF-8. */
|
||||||
|
+ char szName[_MAX_PATH * 3 + 1];
|
||||||
|
+ #else
|
||||||
|
char szName[_MAX_PATH + 1];
|
||||||
|
+ #endif
|
||||||
|
|
||||||
|
/* A name like "d:/foo" and "//server/share" is absolute */
|
||||||
|
if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
|
||||||
|
***************
|
||||||
|
*** 464,470 ****
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
/* A name that can't be made absolute probably isn't absolute. */
|
||||||
|
! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return pathcmp(fname, szName, -1) == 0;
|
||||||
|
--- 471,477 ----
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
/* A name that can't be made absolute probably isn't absolute. */
|
||||||
|
! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return pathcmp(fname, szName, -1) == 0;
|
||||||
|
***************
|
||||||
|
*** 498,507 ****
|
||||||
|
int
|
||||||
|
vim_stat(const char *name, struct stat *stp)
|
||||||
|
{
|
||||||
|
char buf[_MAX_PATH + 1];
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
|
||||||
|
p = buf + strlen(buf);
|
||||||
|
if (p > buf)
|
||||||
|
mb_ptr_back(buf, p);
|
||||||
|
--- 505,521 ----
|
||||||
|
int
|
||||||
|
vim_stat(const char *name, struct stat *stp)
|
||||||
|
{
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
|
||||||
|
+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
|
||||||
|
+ * UTF-8. */
|
||||||
|
+ char buf[_MAX_PATH * 3 + 1];
|
||||||
|
+ #else
|
||||||
|
char buf[_MAX_PATH + 1];
|
||||||
|
+ #endif
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
|
||||||
|
p = buf + strlen(buf);
|
||||||
|
if (p > buf)
|
||||||
|
mb_ptr_back(buf, p);
|
||||||
|
*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 16:47:36.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 13,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
143. You dream in pallettes of 216 websafe colors.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
102
pkgs/applications/editors/vim/patches/7.4.014
Normal file
102
pkgs/applications/editors/vim/patches/7.4.014
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.014
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.014
|
||||||
|
Problem: MS-Windows: check for writing to device does not work.
|
||||||
|
Solution: Fix #ifdefs. (Ken Takata)
|
||||||
|
Files: src/fileio.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200
|
||||||
|
--- src/fileio.c 2013-08-30 16:56:46.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 428,440 ****
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- #ifdef UNIX
|
||||||
|
- /*
|
||||||
|
- * On Unix it is possible to read a directory, so we have to
|
||||||
|
- * check for it before the mch_open().
|
||||||
|
- */
|
||||||
|
if (!read_stdin && !read_buffer)
|
||||||
|
{
|
||||||
|
perm = mch_getperm(fname);
|
||||||
|
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||||
|
# ifdef S_ISFIFO
|
||||||
|
--- 428,440 ----
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!read_stdin && !read_buffer)
|
||||||
|
{
|
||||||
|
+ #ifdef UNIX
|
||||||
|
+ /*
|
||||||
|
+ * On Unix it is possible to read a directory, so we have to
|
||||||
|
+ * check for it before the mch_open().
|
||||||
|
+ */
|
||||||
|
perm = mch_getperm(fname);
|
||||||
|
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||||
|
# ifdef S_ISFIFO
|
||||||
|
***************
|
||||||
|
*** 457,464 ****
|
||||||
|
msg_scroll = msg_save;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
!
|
||||||
|
! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||||
|
/*
|
||||||
|
* MS-Windows allows opening a device, but we will probably get stuck
|
||||||
|
* trying to read it.
|
||||||
|
--- 457,464 ----
|
||||||
|
msg_scroll = msg_save;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
! #endif
|
||||||
|
! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||||
|
/*
|
||||||
|
* MS-Windows allows opening a device, but we will probably get stuck
|
||||||
|
* trying to read it.
|
||||||
|
***************
|
||||||
|
*** 470,478 ****
|
||||||
|
msg_scroll = msg_save;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
- # endif
|
||||||
|
- }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Set default or forced 'fileformat' and 'binary'. */
|
||||||
|
set_file_options(set_options, eap);
|
||||||
|
--- 470,477 ----
|
||||||
|
msg_scroll = msg_save;
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Set default or forced 'fileformat' and 'binary'. */
|
||||||
|
set_file_options(set_options, eap);
|
||||||
|
*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 16:54:33.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 14,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
Drink wet cement and get really stoned.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
106
pkgs/applications/editors/vim/patches/7.4.015
Normal file
106
pkgs/applications/editors/vim/patches/7.4.015
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.015
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.015
|
||||||
|
Problem: MS-Windows: Detecting node type does not work for multi-byte
|
||||||
|
characters.
|
||||||
|
Solution: Use wide character function when needed. (Ken Takata)
|
||||||
|
Files: src/os_win32.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200
|
||||||
|
--- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 3107,3112 ****
|
||||||
|
--- 3107,3115 ----
|
||||||
|
{
|
||||||
|
HANDLE hFile;
|
||||||
|
int type;
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ WCHAR *wn = NULL;
|
||||||
|
+ #endif
|
||||||
|
|
||||||
|
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
|
||||||
|
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
|
||||||
|
***************
|
||||||
|
*** 3114,3127 ****
|
||||||
|
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||||
|
return NODE_WRITABLE;
|
||||||
|
|
||||||
|
! hFile = CreateFile(name, /* file name */
|
||||||
|
! GENERIC_WRITE, /* access mode */
|
||||||
|
! 0, /* share mode */
|
||||||
|
! NULL, /* security descriptor */
|
||||||
|
! OPEN_EXISTING, /* creation disposition */
|
||||||
|
! 0, /* file attributes */
|
||||||
|
! NULL); /* handle to template file */
|
||||||
|
|
||||||
|
if (hFile == INVALID_HANDLE_VALUE)
|
||||||
|
return NODE_NORMAL;
|
||||||
|
|
||||||
|
--- 3117,3157 ----
|
||||||
|
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||||
|
return NODE_WRITABLE;
|
||||||
|
|
||||||
|
! #ifdef FEAT_MBYTE
|
||||||
|
! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||||
|
! {
|
||||||
|
! wn = enc_to_utf16(name, NULL);
|
||||||
|
! if (wn != NULL)
|
||||||
|
! {
|
||||||
|
! hFile = CreateFileW(wn, /* file name */
|
||||||
|
! GENERIC_WRITE, /* access mode */
|
||||||
|
! 0, /* share mode */
|
||||||
|
! NULL, /* security descriptor */
|
||||||
|
! OPEN_EXISTING, /* creation disposition */
|
||||||
|
! 0, /* file attributes */
|
||||||
|
! NULL); /* handle to template file */
|
||||||
|
! if (hFile == INVALID_HANDLE_VALUE
|
||||||
|
! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||||
|
! {
|
||||||
|
! /* Retry with non-wide function (for Windows 98). */
|
||||||
|
! vim_free(wn);
|
||||||
|
! wn = NULL;
|
||||||
|
! }
|
||||||
|
! }
|
||||||
|
! }
|
||||||
|
! if (wn == NULL)
|
||||||
|
! #endif
|
||||||
|
! hFile = CreateFile(name, /* file name */
|
||||||
|
! GENERIC_WRITE, /* access mode */
|
||||||
|
! 0, /* share mode */
|
||||||
|
! NULL, /* security descriptor */
|
||||||
|
! OPEN_EXISTING, /* creation disposition */
|
||||||
|
! 0, /* file attributes */
|
||||||
|
! NULL); /* handle to template file */
|
||||||
|
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ vim_free(wn);
|
||||||
|
+ #endif
|
||||||
|
if (hFile == INVALID_HANDLE_VALUE)
|
||||||
|
return NODE_NORMAL;
|
||||||
|
|
||||||
|
*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 17:09:35.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 15,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
144. You eagerly await the update of the "Cool Site of the Day."
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
221
pkgs/applications/editors/vim/patches/7.4.016
Normal file
221
pkgs/applications/editors/vim/patches/7.4.016
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.016
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.016
|
||||||
|
Problem: MS-Windows: File name completion doesn't work properly with
|
||||||
|
Chinese characters. (Yue Wu)
|
||||||
|
Solution: Add fname_casew(). (Ken Takata)
|
||||||
|
Files: src/os_win32.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200
|
||||||
|
--- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 2500,2508 ****
|
||||||
|
--- 2500,2624 ----
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ /*
|
||||||
|
+ * fname_casew(): Wide version of fname_case(). Set the case of the file name,
|
||||||
|
+ * if it already exists. When "len" is > 0, also expand short to long
|
||||||
|
+ * filenames.
|
||||||
|
+ * Return FAIL if wide functions are not available, OK otherwise.
|
||||||
|
+ * NOTE: much of this is identical to fname_case(), keep in sync!
|
||||||
|
+ */
|
||||||
|
+ static int
|
||||||
|
+ fname_casew(
|
||||||
|
+ WCHAR *name,
|
||||||
|
+ int len)
|
||||||
|
+ {
|
||||||
|
+ WCHAR szTrueName[_MAX_PATH + 2];
|
||||||
|
+ WCHAR szTrueNameTemp[_MAX_PATH + 2];
|
||||||
|
+ WCHAR *ptrue, *ptruePrev;
|
||||||
|
+ WCHAR *porig, *porigPrev;
|
||||||
|
+ int flen;
|
||||||
|
+ WIN32_FIND_DATAW fb;
|
||||||
|
+ HANDLE hFind;
|
||||||
|
+ int c;
|
||||||
|
+ int slen;
|
||||||
|
+
|
||||||
|
+ flen = (int)wcslen(name);
|
||||||
|
+ if (flen > _MAX_PATH)
|
||||||
|
+ return OK;
|
||||||
|
+
|
||||||
|
+ /* slash_adjust(name) not needed, already adjusted by fname_case(). */
|
||||||
|
+
|
||||||
|
+ /* Build the new name in szTrueName[] one component at a time. */
|
||||||
|
+ porig = name;
|
||||||
|
+ ptrue = szTrueName;
|
||||||
|
+
|
||||||
|
+ if (iswalpha(porig[0]) && porig[1] == L':')
|
||||||
|
+ {
|
||||||
|
+ /* copy leading drive letter */
|
||||||
|
+ *ptrue++ = *porig++;
|
||||||
|
+ *ptrue++ = *porig++;
|
||||||
|
+ *ptrue = NUL; /* in case nothing follows */
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ while (*porig != NUL)
|
||||||
|
+ {
|
||||||
|
+ /* copy \ characters */
|
||||||
|
+ while (*porig == psepc)
|
||||||
|
+ *ptrue++ = *porig++;
|
||||||
|
+
|
||||||
|
+ ptruePrev = ptrue;
|
||||||
|
+ porigPrev = porig;
|
||||||
|
+ while (*porig != NUL && *porig != psepc)
|
||||||
|
+ {
|
||||||
|
+ *ptrue++ = *porig++;
|
||||||
|
+ }
|
||||||
|
+ *ptrue = NUL;
|
||||||
|
+
|
||||||
|
+ /* To avoid a slow failure append "\*" when searching a directory,
|
||||||
|
+ * server or network share. */
|
||||||
|
+ wcscpy(szTrueNameTemp, szTrueName);
|
||||||
|
+ slen = (int)wcslen(szTrueNameTemp);
|
||||||
|
+ if (*porig == psepc && slen + 2 < _MAX_PATH)
|
||||||
|
+ wcscpy(szTrueNameTemp + slen, L"\\*");
|
||||||
|
+
|
||||||
|
+ /* Skip "", "." and "..". */
|
||||||
|
+ if (ptrue > ptruePrev
|
||||||
|
+ && (ptruePrev[0] != L'.'
|
||||||
|
+ || (ptruePrev[1] != NUL
|
||||||
|
+ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
|
||||||
|
+ && (hFind = FindFirstFileW(szTrueNameTemp, &fb))
|
||||||
|
+ != INVALID_HANDLE_VALUE)
|
||||||
|
+ {
|
||||||
|
+ c = *porig;
|
||||||
|
+ *porig = NUL;
|
||||||
|
+
|
||||||
|
+ /* Only use the match when it's the same name (ignoring case) or
|
||||||
|
+ * expansion is allowed and there is a match with the short name
|
||||||
|
+ * and there is enough room. */
|
||||||
|
+ if (_wcsicoll(porigPrev, fb.cFileName) == 0
|
||||||
|
+ || (len > 0
|
||||||
|
+ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
|
||||||
|
+ && (int)(ptruePrev - szTrueName)
|
||||||
|
+ + (int)wcslen(fb.cFileName) < len)))
|
||||||
|
+ {
|
||||||
|
+ wcscpy(ptruePrev, fb.cFileName);
|
||||||
|
+
|
||||||
|
+ /* Look for exact match and prefer it if found. Must be a
|
||||||
|
+ * long name, otherwise there would be only one match. */
|
||||||
|
+ while (FindNextFileW(hFind, &fb))
|
||||||
|
+ {
|
||||||
|
+ if (*fb.cAlternateFileName != NUL
|
||||||
|
+ && (wcscoll(porigPrev, fb.cFileName) == 0
|
||||||
|
+ || (len > 0
|
||||||
|
+ && (_wcsicoll(porigPrev,
|
||||||
|
+ fb.cAlternateFileName) == 0
|
||||||
|
+ && (int)(ptruePrev - szTrueName)
|
||||||
|
+ + (int)wcslen(fb.cFileName) < len))))
|
||||||
|
+ {
|
||||||
|
+ wcscpy(ptruePrev, fb.cFileName);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ FindClose(hFind);
|
||||||
|
+ *porig = c;
|
||||||
|
+ ptrue = ptruePrev + wcslen(ptruePrev);
|
||||||
|
+ }
|
||||||
|
+ else if (hFind == INVALID_HANDLE_VALUE
|
||||||
|
+ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||||
|
+ return FAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ wcscpy(name, szTrueName);
|
||||||
|
+ return OK;
|
||||||
|
+ }
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* fname_case(): Set the case of the file name, if it already exists.
|
||||||
|
* When "len" is > 0, also expand short to long filenames.
|
||||||
|
+ * NOTE: much of this is identical to fname_casew(), keep in sync!
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
fname_case(
|
||||||
|
***************
|
||||||
|
*** 2520,2530 ****
|
||||||
|
int slen;
|
||||||
|
|
||||||
|
flen = (int)STRLEN(name);
|
||||||
|
! if (flen == 0 || flen > _MAX_PATH)
|
||||||
|
return;
|
||||||
|
|
||||||
|
slash_adjust(name);
|
||||||
|
|
||||||
|
/* Build the new name in szTrueName[] one component at a time. */
|
||||||
|
porig = name;
|
||||||
|
ptrue = szTrueName;
|
||||||
|
--- 2636,2679 ----
|
||||||
|
int slen;
|
||||||
|
|
||||||
|
flen = (int)STRLEN(name);
|
||||||
|
! if (flen == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
slash_adjust(name);
|
||||||
|
|
||||||
|
+ #ifdef FEAT_MBYTE
|
||||||
|
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||||
|
+ {
|
||||||
|
+ WCHAR *p = enc_to_utf16(name, NULL);
|
||||||
|
+
|
||||||
|
+ if (p != NULL)
|
||||||
|
+ {
|
||||||
|
+ char_u *q;
|
||||||
|
+ WCHAR buf[_MAX_PATH + 2];
|
||||||
|
+
|
||||||
|
+ wcscpy(buf, p);
|
||||||
|
+ vim_free(p);
|
||||||
|
+
|
||||||
|
+ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
|
||||||
|
+ {
|
||||||
|
+ q = utf16_to_enc(buf, NULL);
|
||||||
|
+ if (q != NULL)
|
||||||
|
+ {
|
||||||
|
+ vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
|
||||||
|
+ vim_free(q);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ /* Retry with non-wide function (for Windows 98). */
|
||||||
|
+ }
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
+ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
|
||||||
|
+ * So we should check this after calling wide function. */
|
||||||
|
+ if (flen > _MAX_PATH)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
/* Build the new name in szTrueName[] one component at a time. */
|
||||||
|
porig = name;
|
||||||
|
ptrue = szTrueName;
|
||||||
|
*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200
|
||||||
|
--- src/version.c 2013-08-30 17:15:06.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 16,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
Fingers not found - Pound head on keyboard to continue.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
78
pkgs/applications/editors/vim/patches/7.4.017
Normal file
78
pkgs/applications/editors/vim/patches/7.4.017
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.017
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.017
|
||||||
|
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
|
||||||
|
Fritz)
|
||||||
|
Solution: When reading the start of the tags file do parse lines that are
|
||||||
|
not header lines.
|
||||||
|
Files: src/tag.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200
|
||||||
|
--- src/tag.c 2013-09-05 12:03:38.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 1797,1809 ****
|
||||||
|
*/
|
||||||
|
if (state == TS_START)
|
||||||
|
{
|
||||||
|
! /* The header ends when the line sorts below "!_TAG_".
|
||||||
|
! * There may be non-header items before the header though,
|
||||||
|
! * e.g. "!" itself. When case is folded lower case letters
|
||||||
|
! * sort before "_". */
|
||||||
|
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|
||||||
|
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Read header line.
|
||||||
|
*/
|
||||||
|
--- 1797,1812 ----
|
||||||
|
*/
|
||||||
|
if (state == TS_START)
|
||||||
|
{
|
||||||
|
! /* The header ends when the line sorts below "!_TAG_". When
|
||||||
|
! * case is folded lower case letters sort before "_". */
|
||||||
|
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|
||||||
|
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
|
||||||
|
{
|
||||||
|
+ if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
|
||||||
|
+ /* Non-header item before the header, e.g. "!" itself.
|
||||||
|
+ */
|
||||||
|
+ goto parse_line;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Read header line.
|
||||||
|
*/
|
||||||
|
***************
|
||||||
|
*** 1898,1903 ****
|
||||||
|
--- 1901,1907 ----
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
+ parse_line:
|
||||||
|
/*
|
||||||
|
* Figure out where the different strings are in this line.
|
||||||
|
* For "normal" tags: Do a quick check if the tag matches.
|
||||||
|
*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 12:02:01.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 17,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
An error has occurred. Hit any user to continue.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
45
pkgs/applications/editors/vim/patches/7.4.018
Normal file
45
pkgs/applications/editors/vim/patches/7.4.018
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.018
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.018
|
||||||
|
Problem: When completing item becomes unselected. (Shougo Matsu)
|
||||||
|
Solution: Revert patch 7.3.1269.
|
||||||
|
Files: src/edit.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200
|
||||||
|
--- src/edit.c 2013-09-05 12:39:53.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 3467,3473 ****
|
||||||
|
}
|
||||||
|
|
||||||
|
compl_enter_selects = !compl_used_match;
|
||||||
|
- compl_shown_match = compl_curr_match = compl_first_match;
|
||||||
|
|
||||||
|
/* Show the popup menu with a different set of matches. */
|
||||||
|
ins_compl_show_pum();
|
||||||
|
--- 3467,3472 ----
|
||||||
|
*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 12:40:34.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 18,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
169. You hire a housekeeper for your home page.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
61
pkgs/applications/editors/vim/patches/7.4.019
Normal file
61
pkgs/applications/editors/vim/patches/7.4.019
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.019
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.019
|
||||||
|
Problem: MS-Windows: File name completion doesn't work properly with
|
||||||
|
Chinese characters. (Yue Wu)
|
||||||
|
Solution: Take care of multi-byte characters when looking for the start of
|
||||||
|
the file name. (Ken Takata)
|
||||||
|
Files: src/edit.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200
|
||||||
|
--- src/edit.c 2013-09-05 13:45:27.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 5183,5190 ****
|
||||||
|
}
|
||||||
|
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||||
|
{
|
||||||
|
! while (--startcol >= 0 && vim_isfilec(line[startcol]))
|
||||||
|
! ;
|
||||||
|
compl_col += ++startcol;
|
||||||
|
compl_length = (int)curs_col - startcol;
|
||||||
|
compl_pattern = addstar(line + compl_col, compl_length,
|
||||||
|
--- 5183,5196 ----
|
||||||
|
}
|
||||||
|
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||||
|
{
|
||||||
|
! char_u *p = line + startcol;
|
||||||
|
!
|
||||||
|
! /* Go back to just before the first filename character. */
|
||||||
|
! mb_ptr_back(line, p);
|
||||||
|
! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||||
|
! mb_ptr_back(line, p);
|
||||||
|
! startcol = p - line;
|
||||||
|
!
|
||||||
|
compl_col += ++startcol;
|
||||||
|
compl_length = (int)curs_col - startcol;
|
||||||
|
compl_pattern = addstar(line + compl_col, compl_length,
|
||||||
|
*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 13:41:47.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 19,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
Very funny, Scotty. Now beam down my clothes.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
82
pkgs/applications/editors/vim/patches/7.4.020
Normal file
82
pkgs/applications/editors/vim/patches/7.4.020
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.020
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.020
|
||||||
|
Problem: NFA engine matches too much with \@>. (John McGowan)
|
||||||
|
Solution: When a whole pattern match is found stop searching.
|
||||||
|
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 5322,5328 ****
|
||||||
|
log_subsexpr(m);
|
||||||
|
#endif
|
||||||
|
nfa_match = TRUE;
|
||||||
|
! break;
|
||||||
|
|
||||||
|
case NFA_START_INVISIBLE:
|
||||||
|
case NFA_START_INVISIBLE_FIRST:
|
||||||
|
--- 5322,5331 ----
|
||||||
|
log_subsexpr(m);
|
||||||
|
#endif
|
||||||
|
nfa_match = TRUE;
|
||||||
|
! /* See comment above at "goto nextchar". */
|
||||||
|
! if (nextlist->n == 0)
|
||||||
|
! clen = 0;
|
||||||
|
! goto nextchar;
|
||||||
|
|
||||||
|
case NFA_START_INVISIBLE:
|
||||||
|
case NFA_START_INVISIBLE_FIRST:
|
||||||
|
*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200
|
||||||
|
--- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 427,432 ****
|
||||||
|
--- 427,433 ----
|
||||||
|
:""""" \@>
|
||||||
|
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
|
||||||
|
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
|
||||||
|
+ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
|
||||||
|
:" TODO: BT engine does not restore submatch after failure
|
||||||
|
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
|
||||||
|
:"
|
||||||
|
*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200
|
||||||
|
--- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 983,988 ****
|
||||||
|
--- 983,991 ----
|
||||||
|
OK 0 - \(a*\)\@>b
|
||||||
|
OK 1 - \(a*\)\@>b
|
||||||
|
OK 2 - \(a*\)\@>b
|
||||||
|
+ OK 0 - ^\(.\{-}b\)\@>.
|
||||||
|
+ OK 1 - ^\(.\{-}b\)\@>.
|
||||||
|
+ OK 2 - ^\(.\{-}b\)\@>.
|
||||||
|
OK 0 - \(a*\)\@>a\|a\+
|
||||||
|
OK 2 - \(a*\)\@>a\|a\+
|
||||||
|
OK 0 - \_[^8-9]\+
|
||||||
|
*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 16:04:32.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 20,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
173. You keep tracking down the email addresses of all your friends
|
||||||
|
(even childhood friends).
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
86
pkgs/applications/editors/vim/patches/7.4.021
Normal file
86
pkgs/applications/editors/vim/patches/7.4.021
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.021
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.021
|
||||||
|
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
|
||||||
|
end of another branch to be wrong. (William Fugh)
|
||||||
|
Solution: Set end position if it wasn't set yet.
|
||||||
|
Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200
|
||||||
|
--- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 4209,4218 ****
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NFA_MCLOSE:
|
||||||
|
! if (nfa_has_zend)
|
||||||
|
{
|
||||||
|
! /* Do not overwrite the position set by \ze. If no \ze
|
||||||
|
! * encountered end will be set in nfa_regtry(). */
|
||||||
|
subs = addstate(l, state->out, subs, pim, off);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--- 4209,4219 ----
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NFA_MCLOSE:
|
||||||
|
! if (nfa_has_zend && (REG_MULTI
|
||||||
|
! ? subs->norm.list.multi[0].end.lnum >= 0
|
||||||
|
! : subs->norm.list.line[0].end != NULL))
|
||||||
|
{
|
||||||
|
! /* Do not overwrite the position set by \ze. */
|
||||||
|
subs = addstate(l, state->out, subs, pim, off);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200
|
||||||
|
--- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 328,333 ****
|
||||||
|
--- 328,334 ----
|
||||||
|
:call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
|
||||||
|
:call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
|
||||||
|
:call add(tl, [2, '\>\zs.', 'aword. ', '.'])
|
||||||
|
+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' '])
|
||||||
|
:"
|
||||||
|
:"""" Tests for \@= and \& features
|
||||||
|
:call add(tl, [2, 'abc\@=', 'abc', 'ab'])
|
||||||
|
*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200
|
||||||
|
--- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 752,757 ****
|
||||||
|
--- 752,760 ----
|
||||||
|
OK 0 - \>\zs.
|
||||||
|
OK 1 - \>\zs.
|
||||||
|
OK 2 - \>\zs.
|
||||||
|
+ OK 0 - \s\+\ze\[/\|\s\zs\s\+
|
||||||
|
+ OK 1 - \s\+\ze\[/\|\s\zs\s\+
|
||||||
|
+ OK 2 - \s\+\ze\[/\|\s\zs\s\+
|
||||||
|
OK 0 - abc\@=
|
||||||
|
OK 1 - abc\@=
|
||||||
|
OK 2 - abc\@=
|
||||||
|
*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 21:11:38.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 21,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
174. You know what a listserv is.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
148
pkgs/applications/editors/vim/patches/7.4.022
Normal file
148
pkgs/applications/editors/vim/patches/7.4.022
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.022
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.022
|
||||||
|
Problem: Deadlock while exiting, because of allocating memory.
|
||||||
|
Solution: Do not use gettext() in deathtrap(). (James McCoy)
|
||||||
|
Files: src/os_unix.c, src/misc1.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200
|
||||||
|
--- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 957,964 ****
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function handles deadly signals.
|
||||||
|
! * It tries to preserve any swap file and exit properly.
|
||||||
|
* (partly from Elvis).
|
||||||
|
*/
|
||||||
|
static RETSIGTYPE
|
||||||
|
deathtrap SIGDEFARG(sigarg)
|
||||||
|
--- 957,966 ----
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function handles deadly signals.
|
||||||
|
! * It tries to preserve any swap files and exit properly.
|
||||||
|
* (partly from Elvis).
|
||||||
|
+ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
|
||||||
|
+ * a deadlock.
|
||||||
|
*/
|
||||||
|
static RETSIGTYPE
|
||||||
|
deathtrap SIGDEFARG(sigarg)
|
||||||
|
***************
|
||||||
|
*** 1090,1107 ****
|
||||||
|
}
|
||||||
|
if (entered == 2)
|
||||||
|
{
|
||||||
|
! OUT_STR(_("Vim: Double signal, exiting\n"));
|
||||||
|
out_flush();
|
||||||
|
getout(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SIGHASARG
|
||||||
|
! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
|
||||||
|
signal_info[i].name);
|
||||||
|
#else
|
||||||
|
! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
|
||||||
|
#endif
|
||||||
|
! preserve_exit(); /* preserve files and exit */
|
||||||
|
|
||||||
|
#ifdef NBDEBUG
|
||||||
|
reset_signals();
|
||||||
|
--- 1092,1114 ----
|
||||||
|
}
|
||||||
|
if (entered == 2)
|
||||||
|
{
|
||||||
|
! /* No translation, it may call malloc(). */
|
||||||
|
! OUT_STR("Vim: Double signal, exiting\n");
|
||||||
|
out_flush();
|
||||||
|
getout(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* No translation, it may call malloc(). */
|
||||||
|
#ifdef SIGHASARG
|
||||||
|
! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
|
||||||
|
signal_info[i].name);
|
||||||
|
#else
|
||||||
|
! sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
|
||||||
|
#endif
|
||||||
|
!
|
||||||
|
! /* Preserve files and exit. This sets the really_exiting flag to prevent
|
||||||
|
! * calling free(). */
|
||||||
|
! preserve_exit();
|
||||||
|
|
||||||
|
#ifdef NBDEBUG
|
||||||
|
reset_signals();
|
||||||
|
*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200
|
||||||
|
--- src/misc1.c 2013-09-05 21:34:04.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 9174,9179 ****
|
||||||
|
--- 9174,9181 ----
|
||||||
|
/*
|
||||||
|
* Preserve files and exit.
|
||||||
|
* When called IObuff must contain a message.
|
||||||
|
+ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
|
||||||
|
+ * functions, such as allocating memory.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
preserve_exit()
|
||||||
|
***************
|
||||||
|
*** 9196,9202 ****
|
||||||
|
{
|
||||||
|
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
|
||||||
|
{
|
||||||
|
! OUT_STR(_("Vim: preserving files...\n"));
|
||||||
|
screen_start(); /* don't know where cursor is now */
|
||||||
|
out_flush();
|
||||||
|
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
|
||||||
|
--- 9198,9204 ----
|
||||||
|
{
|
||||||
|
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
|
||||||
|
{
|
||||||
|
! OUT_STR("Vim: preserving files...\n");
|
||||||
|
screen_start(); /* don't know where cursor is now */
|
||||||
|
out_flush();
|
||||||
|
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
|
||||||
|
***************
|
||||||
|
*** 9206,9212 ****
|
||||||
|
|
||||||
|
ml_close_all(FALSE); /* close all memfiles, without deleting */
|
||||||
|
|
||||||
|
! OUT_STR(_("Vim: Finished.\n"));
|
||||||
|
|
||||||
|
getout(1);
|
||||||
|
}
|
||||||
|
--- 9208,9214 ----
|
||||||
|
|
||||||
|
ml_close_all(FALSE); /* close all memfiles, without deleting */
|
||||||
|
|
||||||
|
! OUT_STR("Vim: Finished.\n");
|
||||||
|
|
||||||
|
getout(1);
|
||||||
|
}
|
||||||
|
*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-05 21:30:18.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 22,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
hundred-and-one symptoms of being an internet addict:
|
||||||
|
175. You send yourself e-mail before you go to bed to remind you
|
||||||
|
what to do when you wake up.
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
53
pkgs/applications/editors/vim/patches/7.4.023
Normal file
53
pkgs/applications/editors/vim/patches/7.4.023
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
To: vim_dev@googlegroups.com
|
||||||
|
Subject: Patch 7.4.023
|
||||||
|
Fcc: outbox
|
||||||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
------------
|
||||||
|
|
||||||
|
Patch 7.4.023
|
||||||
|
Problem: Compiler warning on 64 bit windows.
|
||||||
|
Solution: Add type cast. (Mike Williams)
|
||||||
|
Files: src/edit.c
|
||||||
|
|
||||||
|
|
||||||
|
*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200
|
||||||
|
--- src/edit.c 2013-09-06 17:32:55.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 5189,5195 ****
|
||||||
|
mb_ptr_back(line, p);
|
||||||
|
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||||
|
mb_ptr_back(line, p);
|
||||||
|
! startcol = p - line;
|
||||||
|
|
||||||
|
compl_col += ++startcol;
|
||||||
|
compl_length = (int)curs_col - startcol;
|
||||||
|
--- 5189,5195 ----
|
||||||
|
mb_ptr_back(line, p);
|
||||||
|
while (vim_isfilec(PTR2CHAR(p)) && p >= line)
|
||||||
|
mb_ptr_back(line, p);
|
||||||
|
! startcol = (int)(p - line);
|
||||||
|
|
||||||
|
compl_col += ++startcol;
|
||||||
|
compl_length = (int)curs_col - startcol;
|
||||||
|
*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200
|
||||||
|
--- src/version.c 2013-09-06 17:33:41.000000000 +0200
|
||||||
|
***************
|
||||||
|
*** 740,741 ****
|
||||||
|
--- 740,743 ----
|
||||||
|
{ /* Add new patch number below this line */
|
||||||
|
+ /**/
|
||||||
|
+ 23,
|
||||||
|
/**/
|
||||||
|
|
||||||
|
--
|
||||||
|
Wizards had always known that the act of observation changed the thing that
|
||||||
|
was observed, and sometimes forgot that it also changed the observer too.
|
||||||
|
Terry Pratchett - Interesting times
|
||||||
|
|
||||||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
@ -17,16 +17,21 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "6.7.5-3";
|
version = "6.8.6-9";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ImageMagick-${version}";
|
name = "ImageMagick-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://imagemagick/${name}.tar.xz";
|
url = "mirror://imagemagick/${name}.tar.xz";
|
||||||
sha256 = "0m0sa4jxsvm8pf9nfvkzlbzq13d1lj15lfz6jif12l6ywyh2c1cs";
|
sha256 = "1bpj8676mph5cvyjsdgf27i6yg2iw9iskk5c69mvpxkyawgjw1vg";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
preConfigure = if tetex != null then
|
||||||
|
''
|
||||||
|
export DVIDecodeDelegate=${tetex}/bin/dvips
|
||||||
|
'' else "";
|
||||||
|
|
||||||
configureFlags = "" + stdenv.lib.optionalString (ghostscript != null && stdenv.system != "x86_64-darwin") ''
|
configureFlags = "" + stdenv.lib.optionalString (ghostscript != null && stdenv.system != "x86_64-darwin") ''
|
||||||
--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts
|
--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts
|
||||||
--with-gslib
|
--with-gslib
|
||||||
@ -41,10 +46,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ tetex graphviz ];
|
buildInputs = [ tetex graphviz ];
|
||||||
|
|
||||||
preConfigure = if tetex != null then
|
postInstall = ''(cd "$out/include" && ln -s ImageMagick* ImageMagick)'';
|
||||||
''
|
|
||||||
export DVIDecodeDelegate=${tetex}/bin/dvips
|
|
||||||
'' else "";
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://www.imagemagick.org/;
|
homepage = http://www.imagemagick.org/;
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "calibre-1.2.0";
|
name = "calibre-1.4.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
url = "mirror://sourceforge/calibre/${name}.tar.xz";
|
||||||
sha256 = "0h6afn57pw3rb03ffbnss774gdx7ldirr43hbhzsc2k2h7lxnzyj";
|
sha256 = "0hszxjyvw75b75pzr8w5xfgchx3ksw7ziwa3skrjdj500bypmy3y";
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit python;
|
inherit python;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, libjpeg, libtiff, librsvg }:
|
{ stdenv, fetchurl, libjpeg, libtiff, librsvg, libintlOrEmpty }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "djvulibre-3.5.25.3";
|
name = "djvulibre-3.5.25.3";
|
||||||
@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1q5i5ha4zmj2ahjfhi8cv1rah80vm43m9ads46ji38rgvpb7x3c9";
|
sha256 = "1q5i5ha4zmj2ahjfhi8cv1rah80vm43m9ads46ji38rgvpb7x3c9";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libjpeg libtiff librsvg ];
|
buildInputs = [ libjpeg libtiff librsvg ] ++ libintlOrEmpty;
|
||||||
|
|
||||||
|
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A library and viewer for the DJVU file format for scanned images";
|
description = "A library and viewer for the DJVU file format for scanned images";
|
||||||
|
@ -1,24 +1,19 @@
|
|||||||
{ stdenv, fetchsvn, pkgconfig, gtk, SDL, fontconfig, freetype, imlib2, SDL_image, mesa,
|
{ stdenv, fetchsvn, pkgconfig, gtk, SDL, fontconfig, freetype, imlib2, SDL_image, mesa,
|
||||||
libXmu, freeglut, python, gettext, quesoglc, gd, postgresql, autoconf, automake, libtool, cvs }:
|
libXmu, freeglut, python, gettext, quesoglc, gd, postgresql, cmake, qt4, SDL_ttf, fribidi}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "navit-svn-3537";
|
name = "navit-svn-3537";
|
||||||
|
|
||||||
src = fetchsvn {
|
src = fetchsvn {
|
||||||
url = https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit;
|
url = svn://svn.code.sf.net/p/navit/code/trunk/navit;
|
||||||
rev = 3537;
|
rev = 5576;
|
||||||
sha256 = "1ajd439i7z8xm16kqh20qalvafy9miyy4accc8j7w30c4qgc2bb7";
|
sha256 = "1xx62l5srfhh9cfi7n3pxj8hpcgr1rpa0hzfmbrqadzv09z36723";
|
||||||
};
|
};
|
||||||
|
|
||||||
# 'cvs' is only for the autogen
|
# 'cvs' is only for the autogen
|
||||||
buildInputs = [ pkgconfig gtk SDL fontconfig freetype imlib2 SDL_image mesa
|
buildInputs = [ pkgconfig gtk SDL fontconfig freetype imlib2 SDL_image mesa
|
||||||
libXmu freeglut python gettext quesoglc gd postgresql
|
libXmu freeglut python gettext quesoglc gd postgresql cmake qt4 SDL_ttf fribidi ];
|
||||||
autoconf automake libtool cvs ];
|
|
||||||
|
|
||||||
preConfigure = ''
|
cmakeFlags = [ "-DSAMPLE_MAP=n" ];
|
||||||
sh ./autogen.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
configureFlags = [ "--disable-samplemap" ];
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://www.navit-project.org/;
|
homepage = http://www.navit-project.org/;
|
||||||
|
@ -90,7 +90,9 @@ let
|
|||||||
# user namespace sandbox patch
|
# user namespace sandbox patch
|
||||||
userns_patch = if versionOlder sourceInfo.version "30.0.0.0"
|
userns_patch = if versionOlder sourceInfo.version "30.0.0.0"
|
||||||
then ./sandbox_userns_29.patch
|
then ./sandbox_userns_29.patch
|
||||||
else ./sandbox_userns_30.patch;
|
else if versionOlder sourceInfo.version "31.0.0.0"
|
||||||
|
then ./sandbox_userns_30.patch
|
||||||
|
else ./sandbox_userns_31.patch;
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "${packageName}-${version}";
|
name = "${packageName}-${version}";
|
||||||
|
@ -0,0 +1,297 @@
|
|||||||
|
commit ff4e8b4af04c58fc4c58ee7ed108aefcdc26a960
|
||||||
|
Author: aszlig <aszlig@redmoonstudios.org>
|
||||||
|
Date: Thu May 16 14:17:56 2013 +0200
|
||||||
|
|
||||||
|
zygote: Add support for user namespaces on Linux.
|
||||||
|
|
||||||
|
The implementation is done by patching the Zygote host to execute the sandbox
|
||||||
|
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
|
||||||
|
process is using uid 0 and gid 0 which map to the current user of the parent.
|
||||||
|
Afterwards, the sandbox will continue as if it was called as a setuid binary.
|
||||||
|
|
||||||
|
In addition, this adds new_user_namespace as an option in process_util in order
|
||||||
|
to set the UID and GID mapping correctly. The reason for this is that just
|
||||||
|
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
|
||||||
|
without setting the mappings exec*() will clear the process's capability sets.
|
||||||
|
|
||||||
|
If the kernel doesn't support unprivileged user namespaces and the sandbox
|
||||||
|
binary doesn't have the setuid flag, the Zygote main process will run without a
|
||||||
|
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
|
||||||
|
|
||||||
|
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
||||||
|
|
||||||
|
diff --git a/base/process/launch.cc b/base/process/launch.cc
|
||||||
|
index 1329a5a..ec28fdf 100644
|
||||||
|
--- a/base/process/launch.cc
|
||||||
|
+++ b/base/process/launch.cc
|
||||||
|
@@ -24,6 +24,7 @@ LaunchOptions::LaunchOptions()
|
||||||
|
new_process_group(false)
|
||||||
|
#if defined(OS_LINUX)
|
||||||
|
, clone_flags(0)
|
||||||
|
+ , new_user_namespace(false)
|
||||||
|
#endif // OS_LINUX
|
||||||
|
#if defined(OS_CHROMEOS)
|
||||||
|
, ctrl_terminal_fd(-1)
|
||||||
|
diff --git a/base/process/launch.h b/base/process/launch.h
|
||||||
|
index ac2df5e..34a3851 100644
|
||||||
|
--- a/base/process/launch.h
|
||||||
|
+++ b/base/process/launch.h
|
||||||
|
@@ -100,6 +100,9 @@ struct BASE_EXPORT LaunchOptions {
|
||||||
|
#if defined(OS_LINUX)
|
||||||
|
// If non-zero, start the process using clone(), using flags as provided.
|
||||||
|
int clone_flags;
|
||||||
|
+
|
||||||
|
+ // If true, start the process in a new user namespace.
|
||||||
|
+ bool new_user_namespace;
|
||||||
|
#endif // defined(OS_LINUX)
|
||||||
|
|
||||||
|
#if defined(OS_CHROMEOS)
|
||||||
|
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
|
||||||
|
index de6286d..9333494 100644
|
||||||
|
--- a/base/process/launch_posix.cc
|
||||||
|
+++ b/base/process/launch_posix.cc
|
||||||
|
@@ -37,6 +37,13 @@
|
||||||
|
#include "base/threading/platform_thread.h"
|
||||||
|
#include "base/threading/thread_restrictions.h"
|
||||||
|
|
||||||
|
+#if defined(OS_LINUX)
|
||||||
|
+#include <sched.h>
|
||||||
|
+#if !defined(CLONE_NEWUSER)
|
||||||
|
+#define CLONE_NEWUSER 0x10000000
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#if defined(OS_CHROMEOS)
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#endif
|
||||||
|
@@ -294,13 +301,23 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||||
|
|
||||||
|
pid_t pid;
|
||||||
|
#if defined(OS_LINUX)
|
||||||
|
- if (options.clone_flags) {
|
||||||
|
+ int map_pipe_fd[2];
|
||||||
|
+ int flags = options.clone_flags;
|
||||||
|
+
|
||||||
|
+ if (options.new_user_namespace) {
|
||||||
|
+ flags |= CLONE_NEWUSER;
|
||||||
|
+ if (pipe(map_pipe_fd) < 0) {
|
||||||
|
+ DPLOG(ERROR) << "user namespace pipe";
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (options.clone_flags || options.new_user_namespace) {
|
||||||
|
// Signal handling in this function assumes the creation of a new
|
||||||
|
// process, so we check that a thread is not being created by mistake
|
||||||
|
// and that signal handling follows the process-creation rules.
|
||||||
|
- RAW_CHECK(
|
||||||
|
- !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
|
||||||
|
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
|
||||||
|
+ RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
|
||||||
|
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
@@ -318,6 +335,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||||
|
} else if (pid == 0) {
|
||||||
|
// Child process
|
||||||
|
|
||||||
|
+#if defined(OS_LINUX)
|
||||||
|
+ if (options.new_user_namespace) {
|
||||||
|
+ // Close the write end of the pipe so we get an EOF when the parent closes
|
||||||
|
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
|
||||||
|
+ // written _after_ execvp().
|
||||||
|
+ close(map_pipe_fd[1]);
|
||||||
|
+
|
||||||
|
+ char dummy;
|
||||||
|
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
|
||||||
|
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
|
||||||
|
+ _exit(127);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
|
||||||
|
// you call _exit() instead of exit(). This is because _exit() does not
|
||||||
|
// call any previously-registered (in the parent) exit handlers, which
|
||||||
|
@@ -433,6 +465,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
|
||||||
|
_exit(127);
|
||||||
|
} else {
|
||||||
|
// Parent process
|
||||||
|
+#if defined(OS_LINUX)
|
||||||
|
+ if (options.new_user_namespace) {
|
||||||
|
+ // We need to write UID/GID mapping here to map the current user outside
|
||||||
|
+ // the namespace to the root user inside the namespace in order to
|
||||||
|
+ // correctly "fool" the child process.
|
||||||
|
+ char buf[256];
|
||||||
|
+ int map_fd, map_len;
|
||||||
|
+
|
||||||
|
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
|
||||||
|
+ map_fd = open(buf, O_RDWR);
|
||||||
|
+ DPCHECK(map_fd >= 0);
|
||||||
|
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
|
||||||
|
+ map_len = strlen(buf);
|
||||||
|
+ if (write(map_fd, buf, map_len) != map_len) {
|
||||||
|
+ RAW_LOG(WARNING, "Can't write to uid_map.");
|
||||||
|
+ }
|
||||||
|
+ close(map_fd);
|
||||||
|
+
|
||||||
|
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
|
||||||
|
+ map_fd = open(buf, O_RDWR);
|
||||||
|
+ DPCHECK(map_fd >= 0);
|
||||||
|
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
|
||||||
|
+ map_len = strlen(buf);
|
||||||
|
+ if (write(map_fd, buf, map_len) != map_len) {
|
||||||
|
+ RAW_LOG(WARNING, "Can't write to gid_map.");
|
||||||
|
+ }
|
||||||
|
+ close(map_fd);
|
||||||
|
+
|
||||||
|
+ // Close the pipe on the parent, so the child can continue doing the
|
||||||
|
+ // execvp() call.
|
||||||
|
+ close(map_pipe_fd[1]);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (options.wait) {
|
||||||
|
// While this isn't strictly disk IO, waiting for another process to
|
||||||
|
// finish is the sort of thing ThreadRestrictions is trying to prevent.
|
||||||
|
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||||
|
index fea43b5..95cbe07 100644
|
||||||
|
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||||
|
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
|
||||||
|
@@ -121,25 +121,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
|
||||||
|
|
||||||
|
sandbox_binary_ = sandbox_cmd.c_str();
|
||||||
|
|
||||||
|
- // A non empty sandbox_cmd means we want a SUID sandbox.
|
||||||
|
- using_suid_sandbox_ = !sandbox_cmd.empty();
|
||||||
|
+ bool userns_sandbox = false;
|
||||||
|
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
|
||||||
|
|
||||||
|
- if (using_suid_sandbox_) {
|
||||||
|
+ if (!sandbox_cmd.empty()) {
|
||||||
|
struct stat st;
|
||||||
|
if (stat(sandbox_binary_.c_str(), &st) != 0) {
|
||||||
|
LOG(FATAL) << "The SUID sandbox helper binary is missing: "
|
||||||
|
<< sandbox_binary_ << " Aborting now.";
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
|
||||||
|
- (st.st_uid == 0) &&
|
||||||
|
- (st.st_mode & S_ISUID) &&
|
||||||
|
- (st.st_mode & S_IXOTH)) {
|
||||||
|
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
|
||||||
|
+ using_suid_sandbox_ = true;
|
||||||
|
+
|
||||||
|
cmd_line.PrependWrapper(sandbox_binary_);
|
||||||
|
|
||||||
|
scoped_ptr<sandbox::SetuidSandboxClient>
|
||||||
|
sandbox_client(sandbox::SetuidSandboxClient::Create());
|
||||||
|
sandbox_client->SetupLaunchEnvironment();
|
||||||
|
+
|
||||||
|
+ if (!((st.st_uid == 0) &&
|
||||||
|
+ (st.st_mode & S_ISUID) &&
|
||||||
|
+ (st.st_mode & S_IXOTH))) {
|
||||||
|
+ userns_sandbox = true;
|
||||||
|
+ sandbox_client->SetNoSuid();
|
||||||
|
+ }
|
||||||
|
} else {
|
||||||
|
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
|
||||||
|
"configured correctly. Rather than run without sandboxing "
|
||||||
|
@@ -163,7 +169,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
|
||||||
|
base::ProcessHandle process = -1;
|
||||||
|
base::LaunchOptions options;
|
||||||
|
options.fds_to_remap = &fds_to_map;
|
||||||
|
+ if (userns_sandbox)
|
||||||
|
+ options.new_user_namespace = true;
|
||||||
|
base::LaunchProcess(cmd_line.argv(), options, &process);
|
||||||
|
+
|
||||||
|
+ if (process == -1 && userns_sandbox) {
|
||||||
|
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
|
||||||
|
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
|
||||||
|
+ << "enabled in order to use the sandbox without setuid bit.";
|
||||||
|
+ using_suid_sandbox_ = false;
|
||||||
|
+ options.new_user_namespace = false;
|
||||||
|
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
CHECK(process != -1) << "Failed to launch zygote process";
|
||||||
|
|
||||||
|
if (using_suid_sandbox_) {
|
||||||
|
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
|
||||||
|
index 567b305..1089233 100644
|
||||||
|
--- a/content/zygote/zygote_main_linux.cc
|
||||||
|
+++ b/content/zygote/zygote_main_linux.cc
|
||||||
|
@@ -426,6 +426,13 @@ static bool EnterSuidSandbox(LinuxSandbox* linux_sandbox,
|
||||||
|
*has_started_new_init = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
|
||||||
|
+ // the zygote process (XXX: Not quite sure why this happens with user
|
||||||
|
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
|
||||||
|
+ // should disallow the use of ptrace.
|
||||||
|
+ if (setuid_sandbox->IsNoSuid())
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
#if !defined(OS_OPENBSD)
|
||||||
|
// Previously, we required that the binary be non-readable. This causes the
|
||||||
|
// kernel to mark the process as non-dumpable at startup. The thinking was
|
||||||
|
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||||
|
index 34231d4..36e3201 100644
|
||||||
|
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||||
|
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
|
||||||
|
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
|
||||||
|
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool SetuidSandboxClient::IsNoSuid() const {
|
||||||
|
+ return env_->HasVar(kSandboxNoSuidVarName);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
bool SetuidSandboxClient::IsSandboxed() const {
|
||||||
|
return sandboxed_;
|
||||||
|
}
|
||||||
|
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
|
||||||
|
SetSandboxAPIEnvironmentVariable(env_);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void SetuidSandboxClient::SetNoSuid() {
|
||||||
|
+ env_->SetVar(kSandboxNoSuidVarName, "1");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
} // namespace sandbox
|
||||||
|
|
||||||
|
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||||
|
index a9f6536..2e8113a 100644
|
||||||
|
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||||
|
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
|
||||||
|
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
|
||||||
|
bool IsInNewPIDNamespace() const;
|
||||||
|
// Did the setuid helper create a new network namespace ?
|
||||||
|
bool IsInNewNETNamespace() const;
|
||||||
|
+ // Is sandboxed without SUID binary ?
|
||||||
|
+ bool IsNoSuid() const;
|
||||||
|
// Are we done and fully sandboxed ?
|
||||||
|
bool IsSandboxed() const;
|
||||||
|
|
||||||
|
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
|
||||||
|
// helper.
|
||||||
|
void SetupLaunchEnvironment();
|
||||||
|
|
||||||
|
+ void SetNoSuid();
|
||||||
|
+
|
||||||
|
private:
|
||||||
|
// Holds the environment. Will never be NULL.
|
||||||
|
base::Environment* env_;
|
||||||
|
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
|
||||||
|
index aad4ff8..bd710d5 100644
|
||||||
|
--- a/sandbox/linux/suid/common/sandbox.h
|
||||||
|
+++ b/sandbox/linux/suid/common/sandbox.h
|
||||||
|
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
|
||||||
|
|
||||||
|
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
|
||||||
|
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
|
||||||
|
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
|
||||||
|
|
||||||
|
static const long kSUIDSandboxApiNumber = 1;
|
||||||
|
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
|
@ -1,14 +1,14 @@
|
|||||||
# This file is autogenerated from update.sh in the same directory.
|
# This file is autogenerated from update.sh in the same directory.
|
||||||
{
|
{
|
||||||
dev = {
|
dev = {
|
||||||
version = "31.0.1612.0";
|
version = "31.0.1626.0";
|
||||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1612.0.tar.xz";
|
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1626.0.tar.xz";
|
||||||
sha256 = "19h6i8jdnpzbvyq8pk9jq89lghnydpij9yj8xfs7qdgqgyxxcl5w";
|
sha256 = "15rbh8hjs9ipkl4c34701p1zpfmrsw6dya03a8ym5pa5dha949mp";
|
||||||
};
|
};
|
||||||
beta = {
|
beta = {
|
||||||
version = "30.0.1599.22";
|
version = "30.0.1599.37";
|
||||||
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.22.tar.xz";
|
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.37.tar.xz";
|
||||||
sha256 = "0955q7fz6nfr7nbxa8hp9q7mgljlan42rjg8ql5x2vn6c80sjji8";
|
sha256 = "05xxafl1dgbi040zmhzi5v5m6myi7c6jgq2nrksmrx2i91kfir2k";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
version = "29.0.1547.65";
|
version = "29.0.1547.65";
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
|
, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
|
||||||
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
|
, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
|
||||||
, hunspell, libevent, libstartup_notification, libvpx
|
, hunspell, libevent, libstartup_notification, libvpx
|
||||||
, cairo ? null
|
, cairo, gstreamer, gst_plugins_base
|
||||||
, useSystemCairo ? false
|
|
||||||
, # If you want the resulting program to call itself "Firefox" instead
|
, # If you want the resulting program to call itself "Firefox" instead
|
||||||
# of "Shiretoko" or whatever, enable this option. However, those
|
# of "Shiretoko" or whatever, enable this option. However, those
|
||||||
# binaries may not be distributed without permission from the
|
# binaries may not be distributed without permission from the
|
||||||
@ -14,14 +13,13 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
|
assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
|
||||||
assert useSystemCairo -> cairo != null;
|
|
||||||
|
|
||||||
let optional = stdenv.lib.optional;
|
let optional = stdenv.lib.optional;
|
||||||
in rec {
|
in rec {
|
||||||
|
|
||||||
firefoxVersion = "23.0.1";
|
firefoxVersion = "24.0";
|
||||||
|
|
||||||
xulVersion = "23.0.1"; # this attribute is used by other packages
|
xulVersion = "24.0"; # this attribute is used by other packages
|
||||||
|
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -31,7 +29,7 @@ in rec {
|
|||||||
# Fall back to this url for versions not available at releases.mozilla.org.
|
# Fall back to this url for versions not available at releases.mozilla.org.
|
||||||
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
|
"ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"
|
||||||
];
|
];
|
||||||
sha1 = "66361fcvyl9liyh41gvgysiim90wsywk";
|
sha1 = "8scch0gr59j86vp9c1v0yx6mq1pkwcvg";
|
||||||
};
|
};
|
||||||
|
|
||||||
commonConfigureFlags =
|
commonConfigureFlags =
|
||||||
@ -52,12 +50,13 @@ in rec {
|
|||||||
"--enable-system-hunspell"
|
"--enable-system-hunspell"
|
||||||
"--enable-system-pixman"
|
"--enable-system-pixman"
|
||||||
"--enable-system-sqlite"
|
"--enable-system-sqlite"
|
||||||
|
"--enable-system-cairo"
|
||||||
"--disable-crashreporter"
|
"--disable-crashreporter"
|
||||||
"--disable-tests"
|
"--disable-tests"
|
||||||
"--disable-necko-wifi" # maybe we want to enable this at some point
|
"--disable-necko-wifi" # maybe we want to enable this at some point
|
||||||
"--disable-installer"
|
"--disable-installer"
|
||||||
"--disable-updater"
|
"--disable-updater"
|
||||||
] ++ optional useSystemCairo "--enable-system-cairo";
|
];
|
||||||
|
|
||||||
|
|
||||||
xulrunner = stdenv.mkDerivation rec {
|
xulrunner = stdenv.mkDerivation rec {
|
||||||
@ -72,8 +71,9 @@ in rec {
|
|||||||
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
|
alsaLib nspr nss libnotify xlibs.pixman yasm mesa
|
||||||
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
|
xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
|
||||||
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
|
xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
|
||||||
hunspell libevent libstartup_notification libvpx
|
hunspell libevent libstartup_notification libvpx cairo
|
||||||
] ++ optional useSystemCairo cairo;
|
gstreamer gst_plugins_base
|
||||||
|
];
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
[ "--enable-application=xulrunner"
|
[ "--enable-application=xulrunner"
|
||||||
@ -82,8 +82,6 @@ in rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = optional useSystemCairo ./system-cairo.patch;
|
|
||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
''
|
''
|
||||||
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
|
export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
|
||||||
@ -139,8 +137,9 @@ in rec {
|
|||||||
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
|
[ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
|
||||||
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
|
dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
|
||||||
xlibs.pixman yasm mesa sqlite file unzip pysqlite
|
xlibs.pixman yasm mesa sqlite file unzip pysqlite
|
||||||
hunspell libevent libstartup_notification libvpx
|
hunspell libevent libstartup_notification libvpx cairo
|
||||||
] ++ optional useSystemCairo cairo;
|
gstreamer gst_plugins_base
|
||||||
|
];
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./disable-reporter.patch # fixes "search box not working when built on xulrunner"
|
./disable-reporter.patch # fixes "search box not working when built on xulrunner"
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# From: https://hg.mozilla.org/mozilla-central/rev/52b02042b27f
|
|
||||||
# User Connor Behan <connor.behan@gmail.com>
|
|
||||||
# Date 1370038985 -7200
|
|
||||||
# Node ID 52b02042b27f75acbcb2bd4822bedb00ab680e67
|
|
||||||
# Parent 08ed531fed70978385cf9253bbc8389b0abe76ca
|
|
||||||
Bug 722975: Unbreak builds using --with-system-cairo. r=bas
|
|
||||||
|
|
||||||
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
|
|
||||||
--- a/gfx/thebes/gfxPlatform.cpp
|
|
||||||
+++ b/gfx/thebes/gfxPlatform.cpp
|
|
||||||
@@ -548,23 +548,31 @@ struct SourceSurfaceUserData
|
|
||||||
BackendType mBackendType;
|
|
||||||
};
|
|
||||||
|
|
||||||
void SourceBufferDestroy(void *srcSurfUD)
|
|
||||||
{
|
|
||||||
delete static_cast<SourceSurfaceUserData*>(srcSurfUD);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if MOZ_TREE_CAIRO
|
|
||||||
void SourceSnapshotDetached(cairo_surface_t *nullSurf)
|
|
||||||
{
|
|
||||||
gfxImageSurface* origSurf =
|
|
||||||
static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface));
|
|
||||||
|
|
||||||
origSurf->SetData(&kSourceSurface, NULL, NULL);
|
|
||||||
}
|
|
||||||
+#else
|
|
||||||
+void SourceSnapshotDetached(void *nullSurf)
|
|
||||||
+{
|
|
||||||
+ gfxImageSurface* origSurf = static_cast<gfxImageSurface*>(nullSurf);
|
|
||||||
+ origSurf->SetData(&kSourceSurface, NULL, NULL);
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
RefPtr<SourceSurface>
|
|
||||||
gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
|
|
||||||
{
|
|
||||||
void *userData = aSurface->GetData(&kSourceSurface);
|
|
||||||
|
|
||||||
if (userData) {
|
|
||||||
SourceSurfaceUserData *surf = static_cast<SourceSurfaceUserData*>(userData);
|
|
||||||
@@ -667,24 +675,28 @@ gfxPlatform::GetSourceSurfaceForSurface(
|
|
||||||
}
|
|
||||||
|
|
||||||
srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(),
|
|
||||||
imgSurface->Stride(),
|
|
||||||
size, format);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if MOZ_TREE_CAIRO
|
|
||||||
cairo_surface_t *nullSurf =
|
|
||||||
cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
|
|
||||||
cairo_surface_set_user_data(nullSurf,
|
|
||||||
&kSourceSurface,
|
|
||||||
imgSurface,
|
|
||||||
NULL);
|
|
||||||
cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached);
|
|
||||||
cairo_surface_destroy(nullSurf);
|
|
||||||
+#else
|
|
||||||
+ cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", (const unsigned char*) "data", 4, SourceSnapshotDetached, imgSurface.get());
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData;
|
|
||||||
srcSurfUD->mBackendType = aTarget->GetType();
|
|
||||||
srcSurfUD->mSrcSurface = srcBuffer;
|
|
||||||
aSurface->SetData(&kSourceSurface, srcSurfUD, SourceBufferDestroy);
|
|
||||||
|
|
||||||
return srcBuffer;
|
|
||||||
|
|
@ -11,11 +11,11 @@ let
|
|||||||
|
|
||||||
in with stdenv; mkDerivation rec {
|
in with stdenv; mkDerivation rec {
|
||||||
|
|
||||||
name = "quassel-0.7.4";
|
name = "quassel-0.9.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://quassel-irc.org/pub/${name}.tar.bz2";
|
url = "http://quassel-irc.org/pub/${name}.tar.bz2";
|
||||||
sha256 = "08f4m35bkmp9p1n560a3fg711s9izb25ddx2az03xzf1jl8qdrg7";
|
sha256 = "09v0igjkzan3hllk47w39hkav6v1419vpxn2lfd8473kwdmf0grf";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ cmake qt4 ]
|
buildInputs = [ cmake qt4 ]
|
||||||
@ -48,6 +48,7 @@ in with stdenv; mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
license = "GPLv3";
|
license = "GPLv3";
|
||||||
maintainers = [ maintainers.phreedom ];
|
maintainers = [ maintainers.phreedom ];
|
||||||
|
repositories.git = https://github.com/quassel/quassel.git;
|
||||||
inherit (qt4.meta) platforms;
|
inherit (qt4.meta) platforms;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
23
pkgs/applications/networking/remote/ssvnc/default.nix
Normal file
23
pkgs/applications/networking/remote/ssvnc/default.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ stdenv, fetchurl, imake, zlib, openjdk, libX11, libXt, libXmu, libXaw, libXext, libXpm, openjpeg, openssl }:
|
||||||
|
|
||||||
|
let version = "1.0.29"; in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "ssvnc-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/ssvnc/${name}.src.tar.gz";
|
||||||
|
sha256 = "74df32eb8eaa68b07c9693a232ebe42154617c7f3cbe1d4e68d3fe7c557d618d";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ imake zlib openjdk libX11 libXt libXmu libXaw libXext libXpm openjpeg openssl ];
|
||||||
|
|
||||||
|
configurePhase = "makeFlags=PREFIX=$out";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "VNC viewer that adds encryption security to VNC connections";
|
||||||
|
homepage = "http://www.karlrunge.com/x11vnc/ssvnc.html";
|
||||||
|
license = "GPLv2";
|
||||||
|
maintainers = [ stdenv.lib.maintainers.edwtjo ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
@ -15,7 +15,7 @@
|
|||||||
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
|
, libwpg, dbus_glib, glibc, qt4, kde4, clucene_core, libcdr, lcms, vigra
|
||||||
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
|
, unixODBC, mdds, saneBackends, mythes, libexttextcat, libvisio
|
||||||
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
|
, fontsConf, pkgconfig, libzip, bluez5, libtool, maven
|
||||||
, langs ? [ "ALL" ]
|
, langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" "sl" ]
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -160,6 +160,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
configureFlagsArray=(
|
configureFlagsArray=(
|
||||||
"--with-parallelism=$NIX_BUILD_CORES"
|
"--with-parallelism=$NIX_BUILD_CORES"
|
||||||
|
"--with-lang=${langsSpaces}"
|
||||||
);
|
);
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -192,13 +193,12 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
|
ln -s $out/lib/libreoffice/share/xdg $out/share/applications
|
||||||
for f in $out/share/applications/*.desktop; do
|
for f in $out/share/applications/*.desktop; do
|
||||||
substituteInPlace "$f" --replace "Exec=libreoffice4.0" "$out/bin/soffice"
|
substituteInPlace "$f" --replace "Exec=libreoffice4.0" "Exec=$out/bin/soffice"
|
||||||
substituteInPlace "$f" --replace "Exec=libreoffice" "$out/bin/soffice"
|
substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=$out/bin/soffice"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-lang=${langsSpaces}"
|
|
||||||
"--with-vender=NixOS"
|
"--with-vender=NixOS"
|
||||||
|
|
||||||
# Without these, configure does not finish
|
# Without these, configure does not finish
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, lua5_1, automake, autoconf }:
|
{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, mesa, libpng, lua5, automake, autoconf }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gravit-0.5.0";
|
name = "gravit-0.5.0";
|
||||||
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0lyw0skrkb04s16vgz7ggswjrdxk1h23v5s85s09gjxzjp1xd3xp";
|
sha256 = "0lyw0skrkb04s16vgz7ggswjrdxk1h23v5s85s09gjxzjp1xd3xp";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [mesa SDL SDL_ttf SDL_image lua5_1 automake autoconf];
|
buildInputs = [mesa SDL SDL_ttf SDL_image lua5 automake autoconf libpng];
|
||||||
|
|
||||||
preConfigure = "sh autogen.sh";
|
preConfigure = "sh autogen.sh";
|
||||||
|
|
||||||
|
24
pkgs/applications/science/biology/plink/default.nix
Normal file
24
pkgs/applications/science/biology/plink/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, fetchurl, zlib, unzip }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "plink-1.07";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://pngu.mgh.harvard.edu/~purcell/plink/dist/plink-1.07-src.zip";
|
||||||
|
sha256 = "4af56348443d0c6a1db64950a071b1fcb49cc74154875a7b43cccb4b6a7f482b";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ zlib unzip ] ;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp plink $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Whole genome association toolkit";
|
||||||
|
homepage = "http://pngu.mgh.harvard.edu/~purcell/plink/";
|
||||||
|
license = "GNUv2";
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
126
pkgs/applications/science/math/mathematica/default.nix
Normal file
126
pkgs/applications/science/math/mathematica/default.nix
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
{ stdenv
|
||||||
|
, coreutils
|
||||||
|
, patchelf
|
||||||
|
, requireFile
|
||||||
|
, alsaLib
|
||||||
|
, fontconfig
|
||||||
|
, freetype
|
||||||
|
, gcc
|
||||||
|
, glib
|
||||||
|
, libpng
|
||||||
|
, ncurses
|
||||||
|
, opencv
|
||||||
|
, openssl
|
||||||
|
, unixODBC
|
||||||
|
, xlibs
|
||||||
|
, zlib
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
platform =
|
||||||
|
if stdenv.system == "i686-linux" then
|
||||||
|
"Linux"
|
||||||
|
else if stdenv.system == "x86_64-linux" then
|
||||||
|
"Linux-x86-64"
|
||||||
|
else
|
||||||
|
abort "Mathematica requires i686-linux or x86_64 linux";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "mathematica-9.0.0";
|
||||||
|
|
||||||
|
src = requireFile rec {
|
||||||
|
name = "Mathematica_9.0.0_LINUX.sh";
|
||||||
|
message = ''
|
||||||
|
This nix expression requires that Mathematica_9.0.0_LINUX.sh is
|
||||||
|
already part of the store. Find the file on your Mathematica CD
|
||||||
|
and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
|
||||||
|
'';
|
||||||
|
sha256 = "106zfaplhwcfdl9rdgs25x83xra9zcny94gb22wncbfxvrsk3a4q";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
coreutils
|
||||||
|
patchelf
|
||||||
|
alsaLib
|
||||||
|
coreutils
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
gcc.gcc
|
||||||
|
gcc.libc
|
||||||
|
glib
|
||||||
|
ncurses
|
||||||
|
opencv
|
||||||
|
openssl
|
||||||
|
unixODBC
|
||||||
|
] ++ (with xlibs; [
|
||||||
|
libX11
|
||||||
|
libXext
|
||||||
|
libXtst
|
||||||
|
libXi
|
||||||
|
libXmu
|
||||||
|
libXrender
|
||||||
|
libxcb
|
||||||
|
]);
|
||||||
|
|
||||||
|
ldpath = stdenv.lib.makeLibraryPath buildInputs
|
||||||
|
+ stdenv.lib.optionalString (stdenv.system == "x86_64-linux")
|
||||||
|
(":" + stdenv.lib.makeSearchPath "lib64" buildInputs);
|
||||||
|
|
||||||
|
phases = "unpackPhase installPhase fixupPhase";
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
echo "=== Extracting makeself archive ==="
|
||||||
|
# find offset from file
|
||||||
|
offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
|
||||||
|
dd if="$src" ibs=$offset skip=1 | tar -xf -
|
||||||
|
cd Unix
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cd Installer
|
||||||
|
# don't restrict PATH, that has already been done
|
||||||
|
sed -i -e 's/^PATH=/# PATH=/' MathInstaller
|
||||||
|
|
||||||
|
echo "=== Running MathInstaller ==="
|
||||||
|
./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -platforms=${platform} -silent
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
echo "=== PatchElfing away ==="
|
||||||
|
find $out/libexec/Mathematica/SystemFiles -type f -perm +100 | while read f; do
|
||||||
|
type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
|
||||||
|
if [ -z "$type" ]; then
|
||||||
|
:
|
||||||
|
elif [ "$type" == "EXEC" ]; then
|
||||||
|
echo "patching $f executable <<"
|
||||||
|
patchelf \
|
||||||
|
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath "${ldpath}" \
|
||||||
|
"$f"
|
||||||
|
patchelf --shrink-rpath "$f"
|
||||||
|
elif [ "$type" == "DYN" ]; then
|
||||||
|
echo "patching $f library <<"
|
||||||
|
patchelf \
|
||||||
|
--set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
|
||||||
|
"$f" \
|
||||||
|
&& patchelf --shrink-rpath "$f" \
|
||||||
|
|| echo unable to patch ... ignoring 1>&2
|
||||||
|
else
|
||||||
|
echo "not patching $f <<: unknown elf type"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
# all binaries are already stripped
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
|
# we did this in prefixup already
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Wolfram Mathematica computational software system";
|
||||||
|
homepage = "http://www.wolfram.com/mathematica/";
|
||||||
|
license = "unfree";
|
||||||
|
};
|
||||||
|
}
|
@ -51,6 +51,8 @@ cabal.mkDerivation (self: {
|
|||||||
'';
|
'';
|
||||||
patches = [ (fetchurl { url = "https://github.com/joeyh/git-annex/commit/e4d0b2f180627472b017af8bcfc2ae3fc04d6767.patch";
|
patches = [ (fetchurl { url = "https://github.com/joeyh/git-annex/commit/e4d0b2f180627472b017af8bcfc2ae3fc04d6767.patch";
|
||||||
sha256 = "08lz0zq5y3b3wgi1vbzka7kyihkhzjv02pmq8ab02674yrqrnr5k"; })
|
sha256 = "08lz0zq5y3b3wgi1vbzka7kyihkhzjv02pmq8ab02674yrqrnr5k"; })
|
||||||
|
(fetchurl { url = "https://github.com/joeyh/git-annex/commit/26baae8967d55d0793d0609475a75d265bdd64a3.patch";
|
||||||
|
sha256 = "0yzgj55jjcqv1975bnj4wafyh4vdzjjn4ajx3wahsyg0gsrm5lpv"; })
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://git-annex.branchable.com/";
|
homepage = "http://git-annex.branchable.com/";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ stdenv, fetchurl, freetype, pkgconfig, yasm, freefont_ttf
|
{ stdenv, fetchurl, pkgconfig, freetype, yasm
|
||||||
|
, fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
|
||||||
, x11Support ? true, libX11 ? null, libXext ? null, mesa ? null
|
, x11Support ? true, libX11 ? null, libXext ? null, mesa ? null
|
||||||
, xineramaSupport ? true, libXinerama ? null
|
, xineramaSupport ? true, libXinerama ? null
|
||||||
, xvSupport ? true, libXv ? null
|
, xvSupport ? true, libXv ? null
|
||||||
@ -22,6 +23,8 @@
|
|||||||
, useUnfreeCodecs ? false
|
, useUnfreeCodecs ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
assert fontconfigSupport -> (fontconfig != null);
|
||||||
|
assert (!fontconfigSupport) -> (freefont_ttf != null);
|
||||||
assert x11Support -> (libX11 != null && libXext != null && mesa != null);
|
assert x11Support -> (libX11 != null && libXext != null && mesa != null);
|
||||||
assert xineramaSupport -> (libXinerama != null && x11Support);
|
assert xineramaSupport -> (libXinerama != null && x11Support);
|
||||||
assert xvSupport -> (libXv != null && x11Support);
|
assert xvSupport -> (libXv != null && x11Support);
|
||||||
@ -95,7 +98,8 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = with stdenv.lib;
|
buildInputs = with stdenv.lib;
|
||||||
[ freetype pkgconfig ]
|
[ pkgconfig freetype ]
|
||||||
|
++ optional fontconfigSupport fontconfig
|
||||||
++ optionals x11Support [ libX11 libXext mesa ]
|
++ optionals x11Support [ libX11 libXext mesa ]
|
||||||
++ optional alsaSupport alsaLib
|
++ optional alsaSupport alsaLib
|
||||||
++ optional xvSupport libXv
|
++ optional xvSupport libXv
|
||||||
@ -125,6 +129,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
configureFlags = with stdenv.lib;
|
configureFlags = with stdenv.lib;
|
||||||
''
|
''
|
||||||
|
--enable-freetype
|
||||||
|
${if fontconfigSupport then "--enable-fontconfig" else "--disable-fontconfig"}
|
||||||
${if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl"}
|
${if x11Support then "--enable-x11 --enable-gl" else "--disable-x11 --disable-gl"}
|
||||||
${if xineramaSupport then "--enable-xinerama" else "--disable-xinerama"}
|
${if xineramaSupport then "--enable-xinerama" else "--disable-xinerama"}
|
||||||
${if xvSupport then "--enable-xv" else "--disable-xv"}
|
${if xvSupport then "--enable-xv" else "--disable-xv"}
|
||||||
@ -144,7 +150,6 @@ stdenv.mkDerivation rec {
|
|||||||
${if pulseSupport then "--enable-pulse" else "--disable-pulse"}
|
${if pulseSupport then "--enable-pulse" else "--disable-pulse"}
|
||||||
${optionalString (useUnfreeCodecs && codecs != null) "--codecsdir=${codecs}"}
|
${optionalString (useUnfreeCodecs && codecs != null) "--codecsdir=${codecs}"}
|
||||||
${optionalString (stdenv.isi686 || stdenv.isx86_64) "--enable-runtime-cpudetection"}
|
${optionalString (stdenv.isi686 || stdenv.isx86_64) "--enable-runtime-cpudetection"}
|
||||||
--enable-freetype
|
|
||||||
--disable-xanim
|
--disable-xanim
|
||||||
--disable-ivtv
|
--disable-ivtv
|
||||||
--disable-xvid --disable-xvid-lavc
|
--disable-xvid --disable-xvid-lavc
|
||||||
@ -153,14 +158,17 @@ stdenv.mkDerivation rec {
|
|||||||
--disable-ossaudio
|
--disable-ossaudio
|
||||||
'';
|
'';
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString x11Support "-lX11 -lXext";
|
NIX_LDFLAGS = with stdenv.lib;
|
||||||
|
optional fontconfigSupport "-lfontconfig"
|
||||||
|
++ optionals x11Support [ "-lX11" "-lXext" ]
|
||||||
|
;
|
||||||
|
|
||||||
installTargets = [ "install" ] ++ stdenv.lib.optional x11Support "install-gui";
|
installTargets = [ "install" ] ++ stdenv.lib.optional x11Support "install-gui";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
# Provide a reasonable standard font. Maybe we should symlink here.
|
# Provide a reasonable standard font when not using fontconfig. Maybe we should symlink here.
|
||||||
postInstall =
|
postInstall = stdenv.lib.optionalString (!fontconfigSupport)
|
||||||
''
|
''
|
||||||
mkdir -p $out/share/mplayer
|
mkdir -p $out/share/mplayer
|
||||||
cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf
|
cp ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mplayer/subfont.ttf
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "vlc-${version}";
|
name = "vlc-${version}a";
|
||||||
version = "2.0.8";
|
version = "2.0.8";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
|
url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
|
||||||
sha256 = "00hpbm0v424yhfzqyxrvrvfjkbvf3f43yqk6h1qhwmnl8n1z4am0";
|
sha256 = "1lilj14il52731h7qvrjcss0zivghcxv8jmmxf23qwl7qhs5y885";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
x@{builderDefsPackage
|
x@{builderDefsPackage
|
||||||
, gnome, gtk, glib, libxml2, pkgconfig, libvirt, gtkvnc, cyrus_sasl, libtasn1
|
, gnome, gtk, glib, libxml2, pkgconfig, libvirt, gtkvnc, cyrus_sasl, libtasn1
|
||||||
, gnupg, libgcrypt, perl, nettle, yajl
|
, gnupg, libgcrypt, perl, nettle, yajl, libcap_ng
|
||||||
, ...}:
|
, ...}:
|
||||||
builderDefsPackage
|
builderDefsPackage
|
||||||
(a :
|
(a :
|
||||||
|
@ -11,7 +11,7 @@ with stdenv.lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "4.2.16"; # changes ./guest-additions as well
|
version = "4.2.18"; # changes ./guest-additions as well
|
||||||
|
|
||||||
forEachModule = action: ''
|
forEachModule = action: ''
|
||||||
for mod in \
|
for mod in \
|
||||||
@ -31,13 +31,13 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
# See https://github.com/NixOS/nixpkgs/issues/672 for details
|
# See https://github.com/NixOS/nixpkgs/issues/672 for details
|
||||||
extpackRevision = "86992";
|
extpackRevision = "88780";
|
||||||
extensionPack = requireFile rec {
|
extensionPack = requireFile rec {
|
||||||
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
|
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
|
||||||
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
|
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
|
||||||
# VBoxExtPackHelperApp!
|
# VBoxExtPackHelperApp!
|
||||||
# Tip: nix-hash --type sha256 --to-base16 "hash from nix-prefetch-url"
|
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.18/SHA256SUMS
|
||||||
sha256 = "8f88b1ebe69b770103e9151bebf6681c5e049eb5fac45ae8d52c43440aa0fa0d";
|
sha256 = "1d1737b59d0f30f5d42beeabaff168bdc0a75b8b28df685979be6173e5adbbba";
|
||||||
message = ''
|
message = ''
|
||||||
In order to use the extension pack, you need to comply with the VirtualBox Personal Use
|
In order to use the extension pack, you need to comply with the VirtualBox Personal Use
|
||||||
and Evaluation License (PUEL) by downloading the related binaries from:
|
and Evaluation License (PUEL) by downloading the related binaries from:
|
||||||
@ -56,7 +56,7 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
|
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
|
||||||
sha256 = "0nnl8qh8j4sk5zn78hrp6ccidmk332p7qg6pv5a0a4irs0b8j3zz";
|
sha256 = "9dbddf393b029c549249f627d12040c1d257972bc09292969b8819a31ab78d74";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
|
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
|
||||||
sha256 = "1id0rb2sdnn34rvjl2v3hp3z9g9c4s4f4kl1lx0myjlqv8i0fayg";
|
sha256 = "f11a7f13dfe7bf9f246fb877144bb467fe6deadcd876568ec79b6ccd3b59d767";
|
||||||
};
|
};
|
||||||
|
|
||||||
KERN_DIR = "${kernelDev}/lib/modules/*/build";
|
KERN_DIR = "${kernelDev}/lib/modules/*/build";
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
{stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp}:
|
{stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp}:
|
||||||
|
|
||||||
#Is this really necessary?
|
|
||||||
assert stdenv ? glibc;
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libgweather-2.30.3";
|
name = "libgweather-2.30.3";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
|
@ -11,4 +11,6 @@ stdenv.mkDerivation {
|
|||||||
buildInputs = [ pkgconfig gtk python gettext ];
|
buildInputs = [ pkgconfig gtk python gettext ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ libxml2 ];
|
propagatedBuildInputs = [ libxml2 ];
|
||||||
|
|
||||||
|
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{stdenv, fetchurl, pkgconfig, libxml2, glib}:
|
{ stdenv, fetchurl, pkgconfig, libxml2, glib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libcroco-0.6.6"; # 3.6.2 release
|
name = "libcroco-0.6.6"; # 3.6.2 release
|
||||||
@ -7,5 +7,8 @@ stdenv.mkDerivation rec {
|
|||||||
url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
|
url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
|
||||||
sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
|
sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
|
||||||
|
|
||||||
buildInputs = [ pkgconfig libxml2 glib ];
|
buildInputs = [ pkgconfig libxml2 glib ];
|
||||||
}
|
}
|
||||||
|
74
pkgs/development/compilers/go/1.1-darwin.nix
Normal file
74
pkgs/development/compilers/go/1.1-darwin.nix
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
{ stdenv, fetchurl, bison, bash, makeWrapper }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "go-1.1.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = http://go.googlecode.com/files/go1.1.2.src.tar.gz;
|
||||||
|
sha256 = "0w7bchhb4b053az3wjp6z342rs9lp9nxf4w2mnfd1b89d6sb7izz";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ bison bash makeWrapper ];
|
||||||
|
|
||||||
|
preUnpack = ''
|
||||||
|
mkdir -p $out/share
|
||||||
|
cd $out/share
|
||||||
|
'';
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
cd ..
|
||||||
|
if [ ! -d go ]; then
|
||||||
|
mv * go
|
||||||
|
fi
|
||||||
|
cd go
|
||||||
|
|
||||||
|
patchShebangs ./ # replace /bin/bash
|
||||||
|
rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
|
||||||
|
# The os test wants to read files in an existing path. Just it don't be /usr/bin.
|
||||||
|
sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
|
||||||
|
sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
|
||||||
|
# Disable some tests
|
||||||
|
sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
|
||||||
|
sed -i '/TestShutdownUnix/areturn' src/pkg/net/net_test.go
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Unfortunately we have to use Mac OS X's own GCC
|
||||||
|
preBuild = ''
|
||||||
|
export PATH=/usr/bin:$PATH
|
||||||
|
'';
|
||||||
|
|
||||||
|
#patches = [ ./cacert.patch ];
|
||||||
|
|
||||||
|
GOOS = "darwin";
|
||||||
|
GOARCH = if stdenv.system == "x86_64-darwin" then "amd64" else "386";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
export GOROOT="$(pwd)/"
|
||||||
|
export GOBIN="$out/bin"
|
||||||
|
export PATH="$GOBIN:$PATH"
|
||||||
|
cd ./src
|
||||||
|
./all.bash
|
||||||
|
cd -
|
||||||
|
|
||||||
|
# Wrap the tools to define the location of the
|
||||||
|
# libraries.
|
||||||
|
for a in go gofmt godoc; do
|
||||||
|
wrapProgram "$out/bin/$a" \
|
||||||
|
--set "GOROOT" $out/share/go
|
||||||
|
done
|
||||||
|
|
||||||
|
# Copy the emacs configuration for Go files.
|
||||||
|
mkdir -p "$out/share/emacs/site-lisp"
|
||||||
|
cp ./misc/emacs/* $out/share/emacs/site-lisp/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://golang.org/;
|
||||||
|
description = "The Go Programming language";
|
||||||
|
license = "BSD";
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ zef ];
|
||||||
|
platforms = stdenv.lib.platforms.darwin;
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc }:
|
{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc
|
||||||
|
, removeGodocExternals ? false }:
|
||||||
|
|
||||||
let
|
let
|
||||||
loader386 = "${glibc}/lib/ld-linux.so.2";
|
loader386 = "${glibc}/lib/ld-linux.so.2";
|
||||||
@ -50,6 +51,8 @@ stdenv.mkDerivation {
|
|||||||
sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
|
sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
|
||||||
# Disable the hostname test
|
# Disable the hostname test
|
||||||
sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
|
sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
|
||||||
|
'' + stdenv.lib.optionalString removeGodocExternals ''
|
||||||
|
sed -i -e '/googleapi/d' -e '/javascript">$/,+6d' lib/godoc/godoc.html
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patches = [ ./cacert.patch ];
|
patches = [ ./cacert.patch ];
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
{ cabal, binary, boehmgc, Cabal, filepath, gmp, happy, haskeline
|
{ cabal, ansiTerminal, binary, boehmgc, Cabal, filepath, gmp, happy
|
||||||
, languageJava, libffi, llvmGeneral, mtl, parsec, split, text
|
, haskeline, languageJava, libffi, llvmGeneral, mtl, parsec, split
|
||||||
, transformers, vector, vectorBinaryInstances
|
, text, time, transformers, vector, vectorBinaryInstances
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "idris";
|
pname = "idris";
|
||||||
version = "0.9.9";
|
version = "0.9.9.1";
|
||||||
sha256 = "0wwssgpiyn7akyfrpi1khvqxx1k8753kk7151zvvymz0zkks643m";
|
sha256 = "1glxkx2hcr0lrvj3jjnlqqifyzyixjzq1hl86wmn540dccw82yah";
|
||||||
isLibrary = false;
|
isLibrary = false;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
binary Cabal filepath haskeline languageJava libffi llvmGeneral mtl
|
ansiTerminal binary Cabal filepath haskeline languageJava libffi
|
||||||
parsec split text transformers vector vectorBinaryInstances
|
llvmGeneral mtl parsec split text time transformers vector
|
||||||
|
vectorBinaryInstances
|
||||||
];
|
];
|
||||||
buildTools = [ happy ];
|
buildTools = [ happy ];
|
||||||
extraLibraries = [ boehmgc gmp ];
|
extraLibraries = [ boehmgc gmp ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, readline}:
|
{ stdenv, fetchurl, readline }:
|
||||||
|
|
||||||
let
|
let
|
||||||
dsoPatch = fetchurl {
|
dsoPatch = fetchurl {
|
||||||
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-O2 -fPIC" LDLAGS="-fPIC" )
|
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-O2 -fPIC" LDLAGS="-fPIC" )
|
||||||
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.5.1" INSTALL_DATA='cp -d' )
|
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.5.1 liblua.so.5.1.5" INSTALL_DATA='cp -d' )
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
67
pkgs/development/interpreters/lua-5/5.2.nix
Normal file
67
pkgs/development/interpreters/lua-5/5.2.nix
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{ stdenv, fetchurl, readline }:
|
||||||
|
|
||||||
|
let
|
||||||
|
dsoPatch = fetchurl {
|
||||||
|
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/liblua.so.patch?h=packages/lua";
|
||||||
|
sha256 = "1by1dy4ql61f5c6njq9ibf9kaqm3y633g2q8j54iyjr4cxvqwqz9";
|
||||||
|
name = "lua-arch.patch";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "lua-${version}";
|
||||||
|
majorVersion = "5.2";
|
||||||
|
version = "${majorVersion}.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://www.lua.org/ftp/${name}.tar.gz";
|
||||||
|
sha256 = "004zyh9p3lpvbwhyhlmrw6wwcia5abx84q4h2brkn4zdypipvmiz";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ readline ];
|
||||||
|
|
||||||
|
patches = [ dsoPatch ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-O2 -fPIC" LDLAGS="-fPIC" V=${majorVersion} R=${version} )
|
||||||
|
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${majorVersion} liblua.so.${version}" INSTALL_DATA='cp -d' )
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p "$out/share/doc/lua" "$out/lib/pkgconfig"
|
||||||
|
mv "doc/"*.{gif,png,css,html} "$out/share/doc/lua/"
|
||||||
|
rmdir $out/{share,lib}/lua/${majorVersion} $out/{share,lib}/lua
|
||||||
|
mkdir -p "$out/lib/pkgconfig"
|
||||||
|
cat >"$out/lib/pkgconfig/lua.pc" <<EOF
|
||||||
|
prefix=$out
|
||||||
|
libdir=$out/lib
|
||||||
|
includedir=$out/include
|
||||||
|
INSTALL_BIN=$out/bin
|
||||||
|
INSTALL_INC=$out/include
|
||||||
|
INSTALL_LIB=$out/lib
|
||||||
|
INSTALL_MAN=$out/man/man1
|
||||||
|
|
||||||
|
Name: Lua
|
||||||
|
Description: An Extensible Extension Language
|
||||||
|
Version: ${version}
|
||||||
|
Requires:
|
||||||
|
Libs: -L$out/lib -llua -lm
|
||||||
|
Cflags: -I$out/include
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.lua.org";
|
||||||
|
description = "Lua is a powerful, fast, lightweight, embeddable scripting language.";
|
||||||
|
longDescription = ''
|
||||||
|
Lua combines simple procedural syntax with powerful data
|
||||||
|
description constructs based on associative arrays and extensible
|
||||||
|
semantics. Lua is dynamically typed, runs by interpreting bytecode
|
||||||
|
for a register-based virtual machine, and has automatic memory
|
||||||
|
management with incremental garbage collection, making it ideal
|
||||||
|
for configuration, scripting, and rapid prototyping.
|
||||||
|
'';
|
||||||
|
license = "MIT";
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,51 +0,0 @@
|
|||||||
{stdenv, fetchurl, ncurses, readline}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "lua-5.1.4";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "http://www.lua.org/ftp/lua-5.1.4.tar.gz";
|
|
||||||
sha256 = "0fmgk100ficm1jbm4ga9xy484v4cm89wsdfckdybb9gjx8jy4f5h";
|
|
||||||
};
|
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-fPIC";
|
|
||||||
buildFlags = if stdenv.isLinux then "linux" else
|
|
||||||
if stdenv.isDarwin then "macosx" else
|
|
||||||
if stdenv.isFreeBSD then "freebsd" else
|
|
||||||
if stdenv.isBSD then "bsd" else
|
|
||||||
"posix";
|
|
||||||
installFlags = "install INSTALL_TOP=\${out}";
|
|
||||||
postInstall = ''
|
|
||||||
sed -i -e "s@/usr/local@$out@" etc/lua.pc
|
|
||||||
sed -i -e "s@-llua -lm@-llua -lm -ldl@" etc/lua.pc
|
|
||||||
mkdir -p "$out/lib/pkgconfig"
|
|
||||||
install -m 644 etc/lua.pc $out/lib/pkgconfig/lua.pc
|
|
||||||
'';
|
|
||||||
buildInputs = [ ncurses readline ];
|
|
||||||
|
|
||||||
crossAttrs = {
|
|
||||||
preBuild = ''
|
|
||||||
sed -i -e "s/ gcc/$crossConfig-gcc/" \
|
|
||||||
-e "s/ ar/$crossConfig-ar/" \
|
|
||||||
-e "s/ ranlib/$crossConfig-ranlib/" \
|
|
||||||
src/Makefile
|
|
||||||
'';
|
|
||||||
dontStrip = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://www.lua.org";
|
|
||||||
description = "Lua is a powerful, fast, lightweight, embeddable scripting language.";
|
|
||||||
longDescription = ''
|
|
||||||
Lua combines simple procedural syntax with powerful data
|
|
||||||
description constructs based on associative arrays and extensible
|
|
||||||
semantics. Lua is dynamically typed, runs by interpreting bytecode
|
|
||||||
for a register-based virtual machine, and has automatic memory
|
|
||||||
management with incremental garbage collection, making it ideal
|
|
||||||
for configuration, scripting, and rapid prototyping.
|
|
||||||
'';
|
|
||||||
license = "MIT";
|
|
||||||
platforms = stdenv.lib.platforms.unix;
|
|
||||||
maintainers = [];
|
|
||||||
};
|
|
||||||
}
|
|
@ -29,11 +29,11 @@ assert x11grabSupport -> libXext != null && libXfixes != null;
|
|||||||
assert playSupport -> SDL != null;
|
assert playSupport -> SDL != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ffmpeg-1.2";
|
name = "ffmpeg-1.2.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
|
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
|
||||||
sha256 = "1bssxbn4p813xlgb8whg4b60j90yzfy92x70b4q8j35fgp0gnfcs";
|
sha256 = "0nvilgwaivzvikgp9lpvrwi4p1clxl4w8j961599bg0r2v7n4x6r";
|
||||||
};
|
};
|
||||||
|
|
||||||
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
|
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchurl, python, pkgconfig, glib }:
|
{ stdenv, fetchurl, python, pkgconfig, glib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (rec {
|
||||||
name = "gamin-0.1.10";
|
name = "gamin-0.1.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
@ -17,4 +17,19 @@ stdenv.mkDerivation rec {
|
|||||||
configureFlags = "--disable-debug --with-python=${python} CPPFLAGS=-D_GNU_SOURCE";
|
configureFlags = "--disable-debug --with-python=${python} CPPFLAGS=-D_GNU_SOURCE";
|
||||||
|
|
||||||
patches = [ ./deadlock.patch ] ++ map fetchurl (import ./debian-patches.nix);
|
patches = [ ./deadlock.patch ] ++ map fetchurl (import ./debian-patches.nix);
|
||||||
|
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://people.gnome.org/~veillard/gamin/;
|
||||||
|
description = "A file and directory monitoring system";
|
||||||
|
maintainers = with maintainers; [ lovek323 ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stdenv.lib.optionalAttrs stdenv.isDarwin {
|
||||||
|
preBuild = ''
|
||||||
|
sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
||||||
|
@ -70,9 +70,11 @@ stdenv.mkDerivation (rec {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
// optionalAttrs stdenv.isDarwin {
|
||||||
|
makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0";
|
||||||
|
}
|
||||||
|
|
||||||
stdenv.lib.optionalAttrs stdenv.isCygwin {
|
// optionalAttrs stdenv.isCygwin {
|
||||||
patchPhase =
|
patchPhase =
|
||||||
# Make sure `error.c' gets compiled and is part of `libgettextlib.la'.
|
# Make sure `error.c' gets compiled and is part of `libgettextlib.la'.
|
||||||
# This fixes:
|
# This fixes:
|
||||||
|
30
pkgs/development/libraries/gusb/default.nix
Normal file
30
pkgs/development/libraries/gusb/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{stdenv, fetchurl, fetchgit
|
||||||
|
, automake, autoconf, libtool, which, gtkdoc, gettext, pkgconfig, gobjectIntrospection, libxslt
|
||||||
|
, glib, systemd, libusb1
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "gusb-git";
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = git://gitorious.org/gusb/gusb.git;
|
||||||
|
rev = "53226a15a627b20fde38303c2141a17985d741ae";
|
||||||
|
sha256 = "01daf09f663e27bdd92532e3e2a3e87de895e9cc1f150d4e0fc75b0dc489fccf";
|
||||||
|
};
|
||||||
|
|
||||||
|
preConfigure = "./autogen.sh";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgconfig autoconf automake libtool which gtkdoc gettext gobjectIntrospection libxslt
|
||||||
|
systemd libusb1
|
||||||
|
glib
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "GLib libusb wrapper";
|
||||||
|
homepage = http://gitorious.org/gusb;
|
||||||
|
license = stdenv.lib.licenses.lgpl21;
|
||||||
|
maintainers = [stdenv.lib.maintainers.marcweber];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "Cabal";
|
pname = "Cabal";
|
||||||
version = "1.18.0";
|
version = "1.18.1";
|
||||||
sha256 = "1nxvkfkjkyxsa4nbrwl59r84j63qh2qx4cbd3vnr6vvdnflbix8f";
|
sha256 = "041m3xr8v0bbw0016lnzmnv9xpj15z5pd272j3sbsrwpmcyds3a0";
|
||||||
buildDepends = [ deepseq filepath time ];
|
buildDepends = [ deepseq filepath time ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
extensibleExceptions filepath HUnit QuickCheck regexPosix
|
extensibleExceptions filepath HUnit QuickCheck regexPosix
|
16
pkgs/development/libraries/haskell/GLURaw/1.4.0.0.nix
Normal file
16
pkgs/development/libraries/haskell/GLURaw/1.4.0.0.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ cabal, freeglut, mesa, OpenGLRaw }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "GLURaw";
|
||||||
|
version = "1.4.0.0";
|
||||||
|
sha256 = "0q86rpd5cx0vrb9d3y1fljc3mg0p8wy6xdn37ngv2s0f4kslq63g";
|
||||||
|
buildDepends = [ OpenGLRaw ];
|
||||||
|
extraLibraries = [ freeglut mesa ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/haskellwiki/Opengl";
|
||||||
|
description = "A raw binding for the OpenGL graphics system";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
18
pkgs/development/libraries/haskell/GLUT/2.5.0.1.nix
Normal file
18
pkgs/development/libraries/haskell/GLUT/2.5.0.1.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ cabal, freeglut, libICE, libSM, libXi, libXmu, mesa, OpenGL
|
||||||
|
, OpenGLRaw
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "GLUT";
|
||||||
|
version = "2.5.0.1";
|
||||||
|
sha256 = "0f0bz64j7fxa0np8w53n51ri5m0pkwyc1kv7pvdnx02h181gl6l0";
|
||||||
|
buildDepends = [ OpenGL OpenGLRaw ];
|
||||||
|
extraLibraries = [ freeglut libICE libSM libXi libXmu mesa ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/haskellwiki/Opengl";
|
||||||
|
description = "A binding for the OpenGL Utility Toolkit";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
16
pkgs/development/libraries/haskell/OpenGL/2.9.0.0.nix
Normal file
16
pkgs/development/libraries/haskell/OpenGL/2.9.0.0.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ cabal, GLURaw, libX11, mesa, OpenGLRaw, text }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "OpenGL";
|
||||||
|
version = "2.9.0.0";
|
||||||
|
sha256 = "0likrpzlzis8fk11g7mjn102y6y6k2w8bkybqqhhmfls7ccgpvhp";
|
||||||
|
buildDepends = [ GLURaw OpenGLRaw text ];
|
||||||
|
extraLibraries = [ libX11 mesa ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/haskellwiki/Opengl";
|
||||||
|
description = "A binding for the OpenGL graphics system";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
15
pkgs/development/libraries/haskell/OpenGLRaw/1.4.0.0.nix
Normal file
15
pkgs/development/libraries/haskell/OpenGLRaw/1.4.0.0.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ cabal, mesa }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "OpenGLRaw";
|
||||||
|
version = "1.4.0.0";
|
||||||
|
sha256 = "112xaz01950pyjaw3cv9yvw4w3gqbf79idyyh05ain7x29m7bxkh";
|
||||||
|
extraLibraries = [ mesa ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.haskell.org/haskellwiki/Opengl";
|
||||||
|
description = "A raw binding for the OpenGL graphics system";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
|
|||||||
testDepends = [
|
testDepends = [
|
||||||
newtype QuickCheck semigroupoids semigroups vectorSpace
|
newtype QuickCheck semigroupoids semigroups vectorSpace
|
||||||
];
|
];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
description = "Abstractions for animation";
|
description = "Abstractions for animation";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
20
pkgs/development/libraries/haskell/aeson-pretty/default.nix
Normal file
20
pkgs/development/libraries/haskell/aeson-pretty/default.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ cabal, aeson, attoparsec, cmdargs, text, unorderedContainers
|
||||||
|
, vector
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "aeson-pretty";
|
||||||
|
version = "0.7";
|
||||||
|
sha256 = "0zkqs3f4mr0v0j582h9ssq7dxgfkk59s7y66b640hc4zf0b5p7g7";
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
buildDepends = [
|
||||||
|
aeson attoparsec cmdargs text unorderedContainers vector
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/informatikr/aeson-pretty";
|
||||||
|
description = "JSON pretty-printing library and command-line tool";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
16
pkgs/development/libraries/haskell/amqp/default.nix
Normal file
16
pkgs/development/libraries/haskell/amqp/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ cabal, binary, dataBinaryIeee754, network, text, xml }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "amqp";
|
||||||
|
version = "0.5.0";
|
||||||
|
sha256 = "1i02pp184r1iq40mz16m9qh8i3h1jmf3ykpg67j3i1732cks8n8w";
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
buildDepends = [ binary dataBinaryIeee754 network text xml ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/hreinhardt/amqp";
|
||||||
|
description = "Client library for AMQP servers (currently only RabbitMQ)";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "asn1-types";
|
pname = "asn1-types";
|
||||||
version = "0.2.0";
|
version = "0.2.1";
|
||||||
sha256 = "0350g5p3zbvm29nnjd554i6fyc47vmzpb42w6q46v3i9fiy23kvd";
|
sha256 = "1gnyvinimxb9vw3gwvsdvja8ascm07v9f5grxh42fzqkx6fm5xvr";
|
||||||
buildDepends = [ time ];
|
buildDepends = [ time ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/vincenthz/hs-asn1-types";
|
homepage = "http://github.com/vincenthz/hs-asn1-types";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "bson";
|
pname = "bson";
|
||||||
version = "0.2.2";
|
version = "0.2.3";
|
||||||
sha256 = "043lbaj4rrvh4a1yc033np51vi8xlbczflbhyx2bsiryzbi27waf";
|
sha256 = "0p8c4cq8ldspwj4pmg0l8pg8bkwsk9xan07md32ikm4bfqsnv2rb";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
binary cryptohash dataBinaryIeee754 mtl network text time
|
binary cryptohash dataBinaryIeee754 mtl network text time
|
||||||
];
|
];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ cabal, Cabal, fgl, filepath, MissingH, parsec }:
|
{ cabal, Cabal, fgl, filepath, parsec, text }:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cabal-macosx";
|
pname = "cabal-macosx";
|
||||||
version = "0.2.2";
|
version = "0.2.3";
|
||||||
sha256 = "14dc7swk03q2kp5fmhwibjh0x0pzf9ah1004skgd5six0vzfc1ch";
|
sha256 = "0rvmb6lx2alr7f0v7nbv48xzg7wp4nrn03hdkjc4a4c97rai14i9";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [ Cabal fgl filepath MissingH parsec ];
|
buildDepends = [ Cabal fgl filepath parsec text ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/gimbo/cabal-macosx";
|
homepage = "http://github.com/gimbo/cabal-macosx";
|
||||||
description = "Cabal support for creating Mac OSX application bundles";
|
description = "Cabal support for creating Mac OSX application bundles";
|
||||||
|
@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
|
|||||||
buildDepends = [
|
buildDepends = [
|
||||||
asn1Data cryptohash cryptoPubkeyTypes filepath mtl pem time
|
asn1Data cryptohash cryptoPubkeyTypes filepath mtl pem time
|
||||||
];
|
];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/vincenthz/hs-certificate";
|
homepage = "http://github.com/vincenthz/hs-certificate";
|
||||||
description = "Certificates and Key Reader/Writer";
|
description = "Certificates and Key Reader/Writer";
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2 }:
|
{ cabal, byteable, cryptoCipherTests, cryptoCipherTypes, QuickCheck
|
||||||
|
, testFramework, testFrameworkQuickcheck2
|
||||||
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cipher-rc4";
|
pname = "cipher-rc4";
|
||||||
version = "0.1.2";
|
version = "0.1.3";
|
||||||
sha256 = "0nyrqms7h3hq236h03sjjjqdcxn3iz3fg4ifqj43f4nb8gv0ifb1";
|
sha256 = "1pdkm7m3v8c7wks7asvqixxjk9jixf78n489ckmw10p77wrqby78";
|
||||||
|
buildDepends = [ byteable cryptoCipherTypes ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
QuickCheck testFramework testFrameworkQuickcheck2
|
cryptoCipherTests cryptoCipherTypes QuickCheck testFramework
|
||||||
|
testFrameworkQuickcheck2
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/vincenthz/hs-cipher-rc4";
|
homepage = "http://github.com/vincenthz/hs-cipher-rc4";
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "classy-prelude";
|
pname = "classy-prelude";
|
||||||
version = "0.5.9";
|
version = "0.5.10";
|
||||||
sha256 = "1qqmip3ynqdxlwynm60wsn82dcyymcfql79k039iablanj4mic61";
|
sha256 = "04grmld90qr8m6lcdf83clai0anpp8iry7m9l9li8ija9fckl3lk";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
async basicPrelude deepseq hashable liftedBase monadControl
|
async basicPrelude deepseq hashable liftedBase monadControl
|
||||||
systemFilepath text transformers unorderedContainers vector
|
systemFilepath text transformers unorderedContainers vector
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "crypto-cipher-tests";
|
pname = "crypto-cipher-tests";
|
||||||
version = "0.0.7";
|
version = "0.0.8";
|
||||||
sha256 = "1qlb3qr6hnla0aayyjmi5r7m7w5vy1wx8yd9cl9cpzr8wviy4lch";
|
sha256 = "0bprv2pj3acq97482wsz1pp76rrdvvy5scv4na8aqfsdsglbjq47";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
byteable cryptoCipherTypes HUnit mtl QuickCheck securemem
|
byteable cryptoCipherTypes HUnit mtl QuickCheck securemem
|
||||||
testFramework testFrameworkHunit testFrameworkQuickcheck2
|
testFramework testFrameworkHunit testFrameworkQuickcheck2
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "crypto-cipher-types";
|
pname = "crypto-cipher-types";
|
||||||
version = "0.0.5";
|
version = "0.0.6";
|
||||||
sha256 = "1n0sam5lldhzlcp6ihjika52pb5d12g6r9ln84s7zk7nv59lpqjl";
|
sha256 = "1gw3nmf242fbmwhpwk1v1sxhvw1dcy9l06aj6ag0wqb12qn2bqmg";
|
||||||
buildDepends = [ byteable securemem ];
|
buildDepends = [ byteable securemem ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/vincenthz/hs-crypto-cipher";
|
homepage = "http://github.com/vincenthz/hs-crypto-cipher";
|
||||||
|
13
pkgs/development/libraries/haskell/data-pprint/default.nix
Normal file
13
pkgs/development/libraries/haskell/data-pprint/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ cabal, deepseq, mtl, parallel, time }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "data-pprint";
|
||||||
|
version = "0.2.1.5";
|
||||||
|
sha256 = "0dalm41l93303rraxi9kipxkm11a0mly3w488afj700ny5v6l9ij";
|
||||||
|
buildDepends = [ deepseq mtl parallel time ];
|
||||||
|
meta = {
|
||||||
|
description = "Prettyprint and compare Data values";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -11,6 +11,7 @@ cabal.mkDerivation (self: {
|
|||||||
active colour dataDefaultClass diagramsCore fingertree intervals
|
active colour dataDefaultClass diagramsCore fingertree intervals
|
||||||
monoidExtras newtype NumInstances semigroups vectorSpace
|
monoidExtras newtype NumInstances semigroups vectorSpace
|
||||||
];
|
];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://projects.haskell.org/diagrams";
|
homepage = "http://projects.haskell.org/diagrams";
|
||||||
description = "Embedded domain-specific language for declarative graphics";
|
description = "Embedded domain-specific language for declarative graphics";
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
{ cabal, attoparsec, attoparsecConduit, binary, blazeBuilder
|
{ cabal, attoparsec, attoparsecConduit, binary, blazeBuilder
|
||||||
, conduit, hspec, iproute, mtl, network, networkConduit, random
|
, conduit, doctest, hspec, iproute, mtl, network, networkConduit
|
||||||
|
, random
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "dns";
|
pname = "dns";
|
||||||
version = "0.3.8";
|
version = "1.0.0";
|
||||||
sha256 = "1x2rfm89qpx7dpxr457i2wqmjry8r28f42j194131mfx4gc4mwdq";
|
sha256 = "16h7c332qdj77dw8kvrdn1jzhzsnrcybbbm5x7pxvgpnn0wzz8si";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
attoparsec attoparsecConduit binary blazeBuilder conduit iproute
|
attoparsec attoparsecConduit binary blazeBuilder conduit iproute
|
||||||
mtl network networkConduit random
|
mtl network networkConduit random
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
attoparsec attoparsecConduit binary blazeBuilder conduit hspec
|
attoparsec attoparsecConduit binary blazeBuilder conduit doctest
|
||||||
iproute mtl network networkConduit random
|
hspec iproute mtl network networkConduit random
|
||||||
];
|
];
|
||||||
testTarget = "spec";
|
testTarget = "spec";
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "doctest";
|
pname = "doctest";
|
||||||
version = "0.9.7";
|
version = "0.9.8";
|
||||||
sha256 = "0d3aywm5v3kx16c1i6cb4inr7hdnmsl8qawxp27g0yng03wdra5l";
|
sha256 = "0c1qi1dfqndbkaiksffw54gv6nlhd3wsk25s97vhrgmpd3n7sb8a";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [ deepseq filepath ghcPaths syb transformers ];
|
buildDepends = [ deepseq filepath ghcPaths syb transformers ];
|
||||||
|
14
pkgs/development/libraries/haskell/enummapset/default.nix
Normal file
14
pkgs/development/libraries/haskell/enummapset/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ cabal, deepseq }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "enummapset";
|
||||||
|
version = "0.5.2.0";
|
||||||
|
sha256 = "065gxljrjw59rdf7abq0v0c29wg1ymg984ckixnjrcs1yks0c2js";
|
||||||
|
buildDepends = [ deepseq ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/michalt/enummapset";
|
||||||
|
description = "IntMap and IntSet with Enum keys/elements";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
25
pkgs/development/libraries/haskell/esqueleto/default.nix
Normal file
25
pkgs/development/libraries/haskell/esqueleto/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ cabal, conduit, hspec, HUnit, monadControl, monadLogger
|
||||||
|
, persistent, persistentSqlite, persistentTemplate, QuickCheck
|
||||||
|
, resourcet, tagged, text, transformers, unorderedContainers
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "esqueleto";
|
||||||
|
version = "1.3.4.2";
|
||||||
|
sha256 = "1gp0jy8ra11ansari659wqvwafw1pi2svl3w16wa5dv9xk3v9pr6";
|
||||||
|
buildDepends = [
|
||||||
|
conduit monadLogger persistent resourcet tagged text transformers
|
||||||
|
unorderedContainers
|
||||||
|
];
|
||||||
|
testDepends = [
|
||||||
|
conduit hspec HUnit monadControl monadLogger persistent
|
||||||
|
persistentSqlite persistentTemplate QuickCheck text transformers
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/meteficha/esqueleto";
|
||||||
|
description = "Bare bones, type-safe EDSL for SQL queries on persistent backends";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.ocharles ];
|
||||||
|
};
|
||||||
|
})
|
@ -1,11 +1,11 @@
|
|||||||
{ cabal, Cabal, convertible, emacs, filepath, ghcPaths, ghcSybUtils
|
{ cabal, Cabal, convertible, doctest, emacs, filepath, ghcPaths
|
||||||
, hlint, hspec, ioChoice, syb, time, transformers
|
, ghcSybUtils, hlint, hspec, ioChoice, syb, time, transformers
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "ghc-mod";
|
pname = "ghc-mod";
|
||||||
version = "3.0.0";
|
version = "3.1.1";
|
||||||
sha256 = "1ll2vn4vv4k7jaah0ngr2ml381cpprqy9ndqpf8cn44m5xd9qn6p";
|
sha256 = "0gz5andg5ap7a71ap82rpkbflgj9fcrw47gyzlbn5rpp110d86jf";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
@ -13,7 +13,7 @@ cabal.mkDerivation (self: {
|
|||||||
time transformers
|
time transformers
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
Cabal convertible filepath ghcPaths ghcSybUtils hlint hspec
|
Cabal convertible doctest filepath ghcPaths ghcSybUtils hlint hspec
|
||||||
ioChoice syb time transformers
|
ioChoice syb time transformers
|
||||||
];
|
];
|
||||||
buildTools = [ emacs ];
|
buildTools = [ emacs ];
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{ cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cmdargs
|
{ cabal, binary, blazeHtml, blazeMarkup, pandocCiteproc, cmdargs
|
||||||
, cryptohash, dataDefault, deepseq, filepath, fsnotify, httpConduit
|
, cryptohash, dataDefault, deepseq, filepath, fsnotify, httpConduit
|
||||||
, httpTypes, HUnit, lrucache, mtl, network, pandoc, parsec
|
, httpTypes, HUnit, lrucache, mtl, network, pandoc, parsec
|
||||||
, QuickCheck, random, regexBase, regexTdfa, snapCore, snapServer
|
, QuickCheck, random, regexBase, regexTdfa, snapCore, snapServer
|
||||||
, systemFilepath, tagsoup, testFramework, testFrameworkHunit
|
, systemFilepath, tagsoup, testFramework, testFrameworkHunit
|
||||||
, testFrameworkQuickcheck2, text, time
|
, testFrameworkQuickcheck2, text, time, fetchurl
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
@ -12,22 +12,26 @@ cabal.mkDerivation (self: {
|
|||||||
sha256 = "11zfz55a7dr5l7xzknphqninyrb2pw2qmrs7v7ajq2gvbl0lf37n";
|
sha256 = "11zfz55a7dr5l7xzknphqninyrb2pw2qmrs7v7ajq2gvbl0lf37n";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
|
patches = [ (fetchurl { url = "https://github.com/jaspervdj/hakyll/pull/183.patch";
|
||||||
|
sha256 = "0vjrxvgyc05nnshapjhk65pcamj9rigqff5q6wjbssx3ggqggrz9";
|
||||||
|
name = "hakyll-pandoc-fix.patch";
|
||||||
|
}) ];
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash
|
binary blazeHtml blazeMarkup pandocCiteproc cmdargs cryptohash
|
||||||
dataDefault deepseq filepath fsnotify httpConduit httpTypes
|
dataDefault deepseq filepath fsnotify httpConduit httpTypes
|
||||||
lrucache mtl network pandoc parsec random regexBase regexTdfa
|
lrucache mtl network pandoc parsec random regexBase regexTdfa
|
||||||
snapCore snapServer systemFilepath tagsoup text time
|
snapCore snapServer systemFilepath tagsoup text time
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash
|
binary blazeHtml blazeMarkup pandocCiteproc cmdargs cryptohash
|
||||||
dataDefault deepseq filepath fsnotify httpConduit httpTypes HUnit
|
dataDefault deepseq filepath fsnotify httpConduit httpTypes HUnit
|
||||||
lrucache mtl network pandoc parsec QuickCheck random regexBase
|
lrucache mtl network pandoc parsec QuickCheck random regexBase
|
||||||
regexTdfa snapCore snapServer systemFilepath tagsoup testFramework
|
regexTdfa snapCore snapServer systemFilepath tagsoup testFramework
|
||||||
testFrameworkHunit testFrameworkQuickcheck2 text time
|
testFrameworkHunit testFrameworkQuickcheck2 text time
|
||||||
];
|
];
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
patchPhase = ''
|
postPatch = ''
|
||||||
sed -i -e 's|cryptohash.*,|cryptohash,|' hakyll.cabal
|
sed -i -e 's|cryptohash.*,|cryptohash,|' -e 's|tagsoup.*,|tagsoup,|' hakyll.cabal
|
||||||
'';
|
'';
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://jaspervdj.be/hakyll";
|
homepage = "http://jaspervdj.be/hakyll";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hashable";
|
pname = "hashable";
|
||||||
version = "1.2.0.10";
|
version = "1.2.1.0";
|
||||||
sha256 = "155r7zqc0kisjdslr8d1c04yqwvzwqx4d99c0zla113dvsdjhp37";
|
sha256 = "09m1glpcxm3f6s9cwz8xzljy6j0n271cym4d9dllw5rpzrwp9h2f";
|
||||||
buildDepends = [ text ];
|
buildDepends = [ text ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
HUnit QuickCheck random testFramework testFrameworkHunit
|
HUnit QuickCheck random testFramework testFrameworkHunit
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "heist";
|
pname = "heist";
|
||||||
version = "0.13.0";
|
version = "0.13.0.1";
|
||||||
sha256 = "1f406i7jdz45s88n0nrd76vj927a0fx02nf1f98r4in0ic5anp11";
|
sha256 = "1hxf131xhvsqbvmrm8wbjpndy41pz1lq65gqlk3lxr57dhi59s4w";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
|
aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
|
||||||
filepath hashable MonadCatchIOTransformers mtl random text time
|
filepath hashable MonadCatchIOTransformers mtl random text time
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hflags";
|
pname = "hflags";
|
||||||
version = "0.2";
|
version = "0.3";
|
||||||
sha256 = "1bz8w1vxqlc2c9iygr2dhy2ck1sd56zjwqzz707nqcmsqqsfmyhb";
|
sha256 = "113pqdjnxfhkk95969ia393n1jvbbnfljsz42vfapgzvd8f1fci2";
|
||||||
buildDepends = [ text ];
|
buildDepends = [ text ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/errge/hflags";
|
homepage = "http://github.com/errge/hflags";
|
||||||
|
13
pkgs/development/libraries/haskell/hslua/default.nix
Normal file
13
pkgs/development/libraries/haskell/hslua/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ cabal, mtl }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "hslua";
|
||||||
|
version = "0.3.6.1";
|
||||||
|
sha256 = "0c60gnf0mp6kx2z2149icl7hdwvigibvxd091a3vc6zkl5c5r41p";
|
||||||
|
buildDepends = [ mtl ];
|
||||||
|
meta = {
|
||||||
|
description = "A Lua language interpreter embedding in Haskell";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "http-conduit";
|
pname = "http-conduit";
|
||||||
version = "1.9.5";
|
version = "1.9.5.1";
|
||||||
sha256 = "01xmm63cbdm20wp6bpp3052zfpqmvglcq33skhy92cqkpgvd7f8y";
|
sha256 = "1a53s5f9p0xnd33midi4pfj6i3nvckb9khn0p3l3v3xvqn5rrgf2";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
asn1Data base64Bytestring blazeBuilder blazeBuilderConduit
|
asn1Data base64Bytestring blazeBuilder blazeBuilderConduit
|
||||||
caseInsensitive certificate conduit cookie cprngAes dataDefault
|
caseInsensitive certificate conduit cookie cprngAes dataDefault
|
||||||
|
19
pkgs/development/libraries/haskell/keys/default.nix
Normal file
19
pkgs/development/libraries/haskell/keys/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ cabal, comonadsFd, comonadTransformers, free, semigroupoids
|
||||||
|
, semigroups, transformers
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "keys";
|
||||||
|
version = "3.0.3";
|
||||||
|
sha256 = "1fqw0745pj8pzjjlrbg85gdr3acm7gpip5052m9wcz997949ca3r";
|
||||||
|
buildDepends = [
|
||||||
|
comonadsFd comonadTransformers free semigroupoids semigroups
|
||||||
|
transformers
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/ekmett/keys/";
|
||||||
|
description = "Keyed functors and containers";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "lambdabot";
|
pname = "lambdabot";
|
||||||
version = "4.3";
|
version = "4.3.0.1";
|
||||||
sha256 = "0pjwxlq4rbmg9wj44vrillly967y35b4i995mz5167hpji05clvy";
|
sha256 = "19pkm4m2xk9ziai3ka4scxjavi0as8dmivz9q6vg3npmv0kyhkhb";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "language-javascript";
|
pname = "language-javascript";
|
||||||
version = "0.5.7";
|
version = "0.5.8";
|
||||||
sha256 = "0mndz0bqxkayzm7g92cvai9ahb9msr99syp9djhaya1d45595ad3";
|
sha256 = "0slwj2bi9v7qjr6ai5dwql7fqgsh8k9k2bzlsq407iacsv0w3b9h";
|
||||||
buildDepends = [ blazeBuilder mtl utf8Light utf8String ];
|
buildDepends = [ blazeBuilder mtl utf8Light utf8String ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
blazeBuilder Cabal HUnit mtl QuickCheck testFramework
|
blazeBuilder Cabal HUnit mtl QuickCheck testFramework
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "lens-datetime";
|
pname = "lens-datetime";
|
||||||
version = "0.1.1";
|
version = "0.2";
|
||||||
sha256 = "0p93211ibq1rkh4aj69xdwan0338k35vb5qyf7zp761nghnk3d47";
|
sha256 = "0wrs7alz1zfg1xrg04lhz01mrd1gcz2xr8b5mxfdvq94f5m87sdr";
|
||||||
buildDepends = [ lens time ];
|
buildDepends = [ lens time ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/klao/lens-datetime";
|
homepage = "http://github.com/klao/lens-datetime";
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
{ cabal, distributive, doctest, filepath, hashable, lens
|
{ cabal, distributive, doctest, filepath, hashable, HUnit, lens
|
||||||
, reflection, semigroupoids, semigroups, simpleReflect, tagged
|
, reflection, semigroupoids, semigroups, simpleReflect, tagged
|
||||||
, transformers, unorderedContainers, vector
|
, testFramework, testFrameworkHunit, transformers
|
||||||
|
, unorderedContainers, vector
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "linear";
|
pname = "linear";
|
||||||
version = "1.2";
|
version = "1.3";
|
||||||
sha256 = "0mna8k6plq0akki5j5zjk1xk1hgks1076q1h5s14v87d0h45wlrh";
|
sha256 = "0b5qjsbdkqv0h1236lv2nisjh9yz7gc5bd6xv6i8q5jryzs43pi9";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
distributive hashable reflection semigroupoids semigroups tagged
|
distributive hashable reflection semigroupoids semigroups tagged
|
||||||
transformers unorderedContainers vector
|
transformers unorderedContainers vector
|
||||||
];
|
];
|
||||||
testDepends = [ doctest filepath lens simpleReflect ];
|
testDepends = [
|
||||||
|
doctest filepath HUnit lens simpleReflect testFramework
|
||||||
|
testFrameworkHunit
|
||||||
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/ekmett/linear/";
|
homepage = "http://github.com/ekmett/linear/";
|
||||||
description = "Linear Algebra";
|
description = "Linear Algebra";
|
||||||
|
16
pkgs/development/libraries/haskell/list-tries/default.nix
Normal file
16
pkgs/development/libraries/haskell/list-tries/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ cabal, binary, dlist }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "list-tries";
|
||||||
|
version = "0.5.1";
|
||||||
|
sha256 = "15lbq41rikj5vm9gfgjxz98pamnib4dcs48fr2vm9r3s3fikd2kz";
|
||||||
|
isLibrary = true;
|
||||||
|
isExecutable = true;
|
||||||
|
buildDepends = [ binary dlist ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://iki.fi/matti.niemenmaa/list-tries/";
|
||||||
|
description = "Tries and Patricia tries: finite sets and maps for list keys";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -4,13 +4,14 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "llvm-general-pure";
|
pname = "llvm-general-pure";
|
||||||
version = "3.3.8.1";
|
version = "3.3.8.2";
|
||||||
sha256 = "1izn30pka7z60dr73c3mhr5i8n2fb0yvpdgg66r7c5qf1m5bmqbx";
|
sha256 = "171mp9rydw6r2khcmvkcfjk934ckfahwyx1b4a15gmj8sr1s9hzp";
|
||||||
buildDepends = [ mtl parsec setenv transformers ];
|
buildDepends = [ mtl parsec setenv transformers ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
HUnit mtl QuickCheck testFramework testFrameworkHunit
|
HUnit mtl QuickCheck testFramework testFrameworkHunit
|
||||||
testFrameworkQuickcheck2
|
testFrameworkQuickcheck2
|
||||||
];
|
];
|
||||||
|
doCheck = false;
|
||||||
meta = {
|
meta = {
|
||||||
description = "Pure Haskell LLVM functionality (no FFI)";
|
description = "Pure Haskell LLVM functionality (no FFI)";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
21
pkgs/development/libraries/haskell/llvm-general/3.3.5.nix
Normal file
21
pkgs/development/libraries/haskell/llvm-general/3.3.5.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ cabal, HUnit, llvmConfig, mtl, parsec, QuickCheck, setenv
|
||||||
|
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
|
||||||
|
, transformers
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "llvm-general";
|
||||||
|
version = "3.3.5.0";
|
||||||
|
sha256 = "15zrav7339jn6p75g1d7h3qkr1wyal1jzfs8xy73kckw2fzn4nlf";
|
||||||
|
buildDepends = [ mtl parsec setenv text transformers ];
|
||||||
|
testDepends = [
|
||||||
|
HUnit mtl QuickCheck testFramework testFrameworkHunit
|
||||||
|
testFrameworkQuickcheck2
|
||||||
|
];
|
||||||
|
buildTools = [ llvmConfig ];
|
||||||
|
meta = {
|
||||||
|
description = "General purpose LLVM bindings";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "llvm-general";
|
pname = "llvm-general";
|
||||||
version = "3.3.8.1";
|
version = "3.3.8.2";
|
||||||
sha256 = "1w9wqi9mj673s0bm3j4a5kapl5f65sy8mwjbw7ydism6j5jmxhpk";
|
sha256 = "11qnvpnx4i8mjdgn5y58rl70wf8pzmd555hrdaki1f4q0035cmm5";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
llvmGeneralPure mtl parsec setenv transformers utf8String
|
llvmGeneralPure mtl parsec setenv transformers utf8String
|
||||||
];
|
];
|
||||||
@ -15,6 +15,7 @@ cabal.mkDerivation (self: {
|
|||||||
testFrameworkHunit testFrameworkQuickcheck2
|
testFrameworkHunit testFrameworkQuickcheck2
|
||||||
];
|
];
|
||||||
buildTools = [ llvmConfig ];
|
buildTools = [ llvmConfig ];
|
||||||
|
doCheck = false;
|
||||||
meta = {
|
meta = {
|
||||||
description = "General purpose LLVM bindings";
|
description = "General purpose LLVM bindings";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "monad-par";
|
pname = "monad-par";
|
||||||
version = "0.3.4.4";
|
version = "0.3.4.5";
|
||||||
sha256 = "0mqvrg2izqjrgzbmr6pcl9v9827fkr4mwxpdckm3gj1miljsj314";
|
sha256 = "0xwjx3l9ssyxaa49v8kz7ic54va1qy6dqa1z5gvww7a5gw1ll81p";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
abstractDeque abstractPar deepseq monadParExtras mtl mwcRandom
|
abstractDeque abstractPar deepseq monadParExtras mtl mwcRandom
|
||||||
parallel
|
parallel
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user