diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/libchop | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libchop')
3 files changed, 137 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libchop/default.nix b/nixpkgs/pkgs/development/libraries/libchop/default.nix new file mode 100644 index 000000000000..c802bd68ab08 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libchop/default.nix @@ -0,0 +1,55 @@ +{ fetchurl, stdenv, zlib, bzip2, libgcrypt +, gdbm, gperf, tdb, gnutls, db, libuuid +, lzo, pkgconfig, guile +}: + +stdenv.mkDerivation rec { + name = "libchop-0.5.2"; + + src = fetchurl { + url = "mirror://savannah/libchop/${name}.tar.gz"; + sha256 = "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g"; + }; + + patches = [ ./gets-undeclared.patch ./size_t.patch ]; + + nativeBuildInputs = [ pkgconfig gperf ]; + + buildInputs = + [ zlib bzip2 lzo + libgcrypt + gdbm db tdb + gnutls libuuid + guile + ]; + + doCheck = false; + + preConfigure = '' + sed -re 's%@GUILE@%&/guile%' -i */Makefile.* Makefile.* + ''; + + meta = with stdenv.lib; { + description = "Tools & library for data backup and distributed storage"; + + longDescription = + '' Libchop is a set of utilities and library for data backup and + distributed storage. Its main application is chop-backup, an + encrypted backup program that supports data integrity checks, + versioning at little cost, distribution among several sites, + selective sharing of stored data, adaptive compression, and more. + The library itself, which chop-backup builds upon, implements + storage techniques such as content-based addressing, content hash + keys, Merkle trees, similarity detection, and lossless compression. + It makes it easy to combine them in different ways. The + ‘chop-archiver’ and ‘chop-block-server’ tools, illustrated in the + manual, provide direct access to these facilities from the command + line. It is written in C and has Guile (Scheme) bindings. + ''; + + homepage = https://www.nongnu.org/libchop/; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ ]; + platforms = platforms.gnu ++ platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libchop/gets-undeclared.patch b/nixpkgs/pkgs/development/libraries/libchop/gets-undeclared.patch new file mode 100644 index 000000000000..b6cdc77caa84 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libchop/gets-undeclared.patch @@ -0,0 +1,71 @@ +This patch is needed to allow builds with newer versions of +the GNU libc (2.16+). + + +commit 66712c23388e93e5c518ebc8515140fa0c807348 +Author: Eric Blake <eblake@redhat.com> +Date: Thu Mar 29 13:30:41 2012 -0600 + + stdio: don't assume gets any more + + Gnulib intentionally does not have a gets module, and now that C11 + and glibc have dropped it, we should be more proactive about warning + any user on a platform that still has a declaration of this dangerous + interface. + + * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets + support. + * modules/stdio (Makefile.am): Likewise. + * lib/stdio-read.c (gets): Likewise. + * tests/test-stdio-c++.cc: Likewise. + * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. + * lib/stdio.in.h (gets): Make warning occur in more places. + * doc/posix-functions/gets.texi (gets): Update documentation. + Reported by Christer Solskogen. + + Signed-off-by: Eric Blake <eblake@redhat.com> + +diff --git a/lib/stdio.in.h b/lib/stdio.in.h +index aa7b599..c377b6e 100644 +--- a/lib/stdio.in.h ++++ b/lib/stdio.in.h +@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " + # endif + #endif + +-#if @GNULIB_GETS@ +-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +-# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +-# undef gets +-# define gets rpl_gets +-# endif +-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); +-_GL_CXXALIAS_RPL (gets, char *, (char *s)); +-# else +-_GL_CXXALIAS_SYS (gets, char *, (char *s)); +-# undef gets +-# endif +-_GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ ++#undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + +@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " + # endif + #endif + +-/* Some people would argue that sprintf should be handled like gets +- (for example, OpenBSD issues a link warning for both functions), +- since both can cause security holes due to buffer overruns. ++/* Some people would argue that all sprintf uses should be warned about ++ (for example, OpenBSD issues a link warning for it), ++ since it can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header diff --git a/nixpkgs/pkgs/development/libraries/libchop/size_t.patch b/nixpkgs/pkgs/development/libraries/libchop/size_t.patch new file mode 100644 index 000000000000..82b6cb995ef3 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libchop/size_t.patch @@ -0,0 +1,11 @@ +--- a/src/chop.c ++++ b/src/chop.c +@@ -539,7 +539,7 @@ extern const chop_class_t chop_gdbm_bloc + chop_qdbm_block_iterator_class; + + const struct chop_class_entry * +-chop_lookup_class_entry (const char *str, unsigned int len); ++chop_lookup_class_entry (const char *str, size_t len); + + /* Include the gperf-generated perfect hash table. */ + #include "class-lookup.c" |