diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2013-02-24 00:31:20 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2013-02-24 00:31:20 +0100 |
commit | 37bae3193d1b9975eee8cfda6757400c780cfa9b (patch) | |
tree | 0297727d89f6550601fc8436542ab1f47cfbda3e /pkgs/applications/version-management | |
parent | df0e2bbf4de28b728c7959cf34ca9625fb864aa4 (diff) | |
download | nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar.gz nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar.bz2 nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar.lz nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar.xz nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.tar.zst nixlib-37bae3193d1b9975eee8cfda6757400c780cfa9b.zip |
monotone: fix
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r-- | pkgs/applications/version-management/monotone/default.nix | 8 | ||||
-rw-r--r-- | pkgs/applications/version-management/monotone/glibc-file-handle.patch | 166 |
2 files changed, 172 insertions, 2 deletions
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix index cde31b5cef97..0df1c652761e 100644 --- a/pkgs/applications/version-management/monotone/default.nix +++ b/pkgs/applications/version-management/monotone/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, boost, zlib, botan, libidn -, lua, pcre, sqlite, perl, pkgconfig }: +, lua, pcre, sqlite, perl, pkgconfig, expect }: let version = "1.0"; @@ -16,7 +16,9 @@ stdenv.mkDerivation rec { sha256 = "5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc"; }; - buildInputs = [boost zlib botan libidn lua pcre sqlite pkgconfig]; + patches = [ ./glibc-file-handle.patch ]; + + buildInputs = [ boost zlib botan libidn lua pcre sqlite pkgconfig expect ]; postInstall = '' mkdir -p $out/share/${name} @@ -25,6 +27,8 @@ stdenv.mkDerivation rec { cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${perlVersion} ''; + #doCheck = true; # some tests fail (and they take VERY long) + meta = { description = "A free distributed version control system"; maintainers = [stdenv.lib.maintainers.raskin]; diff --git a/pkgs/applications/version-management/monotone/glibc-file-handle.patch b/pkgs/applications/version-management/monotone/glibc-file-handle.patch new file mode 100644 index 000000000000..601b6ede0fb9 --- /dev/null +++ b/pkgs/applications/version-management/monotone/glibc-file-handle.patch @@ -0,0 +1,166 @@ +Revision: da62cad10eda55aa233ac124273f3db4f541137a +Parent: 65bcb8cf8b32f68a5b48629b328f6d65979e58df +Author: Thomas Moschny <thomas.moschny@gmx.de> +Date: 07.05.2011 13:32:06 +Branch: net.venge.monotone + +Changelog: + +* src/rcs_file.cc: Rename struct "file_handle" to "rcs_file_handle" + to avoid a name clash with a struct of same name defined by newer + glibc's "fcntl.h". For aesthetic reasons, also rename struct + "file_source". + +References: +https://code.monotone.ca/p/monotone/source/commit/da62cad10eda55aa233ac124273f3db4f541137a/ +https://bugs.gentoo.org/396651 + +============================================================ +--- a/src/rcs_file.cc 885b3fbe7b6cfed78816f0e57cd71d44616213c6 ++++ b/src/rcs_file.cc 03cf68912a4a708545ebce3d415c0e970ddead0b +@@ -42,12 +42,12 @@ struct + + #ifdef HAVE_MMAP + struct +-file_handle ++rcs_file_handle + { + string const & filename; + off_t length; + int fd; +- file_handle(string const & fn) : ++ rcs_file_handle(string const & fn) : + filename(fn), + length(0), + fd(-1) +@@ -60,13 +60,13 @@ file_handle + if (fd == -1) + throw oops("open of " + filename + " failed"); + } +- ~file_handle() ++ ~rcs_file_handle() + { + if (close(fd) == -1) + throw oops("close of " + filename + " failed"); + } + }; +-struct file_source ++struct rcs_file_source + { + string const & filename; + int fd; +@@ -91,7 +91,7 @@ struct file_source + ++pos; + return good(); + } +- file_source(string const & fn, ++ rcs_file_source(string const & fn, + int f, + off_t len) : + filename(fn), +@@ -104,7 +104,7 @@ struct file_source + if (mapping == MAP_FAILED) + throw oops("mmap of " + filename + " failed"); + } +- ~file_source() ++ ~rcs_file_source() + { + if (munmap(mapping, length) == -1) + throw oops("munmapping " + filename + " failed, after reading RCS file"); +@@ -112,12 +112,12 @@ struct + }; + #elif defined(WIN32) + struct +-file_handle ++rcs_file_handle + { + string const & filename; + off_t length; + HANDLE fd; +- file_handle(string const & fn) : ++ rcs_file_handle(string const & fn) : + filename(fn), + length(0), + fd(NULL) +@@ -134,7 +134,7 @@ file_handle + if (fd == NULL) + throw oops("open of " + filename + " failed"); + } +- ~file_handle() ++ ~rcs_file_handle() + { + if (CloseHandle(fd)==0) + throw oops("close of " + filename + " failed"); +@@ -142,7 +142,7 @@ struct + }; + + struct +-file_source ++rcs_file_source + { + string const & filename; + HANDLE fd,map; +@@ -167,7 +167,7 @@ file_source + ++pos; + return good(); + } +- file_source(string const & fn, ++ rcs_file_source(string const & fn, + HANDLE f, + off_t len) : + filename(fn), +@@ -183,7 +183,7 @@ file_source + if (mapping==NULL) + throw oops("MapViewOfFile of " + filename + " failed"); + } +- ~file_source() ++ ~rcs_file_source() + { + if (UnmapViewOfFile(mapping)==0) + throw oops("UnmapViewOfFile of " + filename + " failed"); +@@ -193,7 +193,7 @@ file_source + }; + #else + // no mmap at all +-typedef istream file_source; ++typedef istream rcs_file_source; + #endif + + typedef enum +@@ -220,7 +220,7 @@ static token_type + } + + static token_type +-get_token(file_source & ist, ++get_token(rcs_file_source & ist, + string & str, + size_t & line, + size_t & col) +@@ -303,14 +303,14 @@ struct parser + + struct parser + { +- file_source & ist; ++ rcs_file_source & ist; + rcs_file & r; + string token; + token_type ttype; + + size_t line, col; + +- parser(file_source & s, ++ parser(rcs_file_source & s, + rcs_file & r) + : ist(s), r(r), line(1), col(1) + {} +@@ -489,8 +489,8 @@ parse_rcs_file(string const & filename, + parse_rcs_file(string const & filename, rcs_file & r) + { + #if defined(HAVE_MMAP) || defined(WIN32) +- file_handle handle(filename); +- file_source ifs(filename, handle.fd, handle.length); ++ rcs_file_handle handle(filename); ++ rcs_file_source ifs(filename, handle.fd, handle.length); + #else + ifstream ifs(filename.c_str()); + ifs.unsetf(ios_base::skipws); |