monotone: fix
This commit is contained in:
parent
df0e2bbf4d
commit
37bae3193d
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, boost, zlib, botan, libidn
|
{ stdenv, fetchurl, boost, zlib, botan, libidn
|
||||||
, lua, pcre, sqlite, perl, pkgconfig }:
|
, lua, pcre, sqlite, perl, pkgconfig, expect }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
@ -16,7 +16,9 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "5c530bc4652b2c08b5291659f0c130618a14780f075f981e947952dcaefc31dc";
|
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 = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/${name}
|
mkdir -p $out/share/${name}
|
||||||
@ -25,6 +27,8 @@ stdenv.mkDerivation rec {
|
|||||||
cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${perlVersion}
|
cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${perlVersion}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
#doCheck = true; # some tests fail (and they take VERY long)
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A free distributed version control system";
|
description = "A free distributed version control system";
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [stdenv.lib.maintainers.raskin];
|
||||||
|
@ -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);
|
Loading…
x
Reference in New Issue
Block a user