diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gdbm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gdbm/0001-Remove-duplicate-assignments.patch | 25 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gdbm/default.nix | 69 |
2 files changed, 94 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gdbm/0001-Remove-duplicate-assignments.patch b/nixpkgs/pkgs/development/libraries/gdbm/0001-Remove-duplicate-assignments.patch new file mode 100644 index 000000000000..7583deb81098 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gdbm/0001-Remove-duplicate-assignments.patch @@ -0,0 +1,25 @@ +From 2c31a95d9e57a4308c5159c50e69b5c9178dee72 Mon Sep 17 00:00:00 2001 +From: Christian Kampka <christian@kampka.net> +Date: Fri, 13 Nov 2020 16:52:12 +0100 +Subject: [PATCH] Remove duplicate assignments + +--- + src/parseopt.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/parseopt.c b/src/parseopt.c +index 268e080..a4c8576 100644 +--- a/src/parseopt.c ++++ b/src/parseopt.c +@@ -255,8 +255,6 @@ print_option_descr (const char *descr, size_t lmargin, size_t rmargin) + } + + char *parseopt_program_name; +-char *parseopt_program_doc; +-char *parseopt_program_args; + const char *program_bug_address = "<" PACKAGE_BUGREPORT ">"; + void (*parseopt_help_hook) (FILE *stream); + +-- +2.25.4 + diff --git a/nixpkgs/pkgs/development/libraries/gdbm/default.nix b/nixpkgs/pkgs/development/libraries/gdbm/default.nix new file mode 100644 index 000000000000..3d333e503b2e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gdbm/default.nix @@ -0,0 +1,69 @@ +{ stdenv, lib, fetchurl }: + +stdenv.mkDerivation rec { + pname = "gdbm"; + version = "1.18.1"; + + src = fetchurl { + url = "mirror://gnu/gdbm/${pname}-${version}.tar.gz"; + sha256 = "1p4ibds6z3ccy65lkmd6lm7js0kwifvl53r0fd759fjxgr917rl6"; + }; + + doCheck = true; # not cross; + + patches = [ ./0001-Remove-duplicate-assignments.patch ]; + + # Linking static stubs on cygwin requires correct ordering. + # Consider upstreaming this. + + # Disable dbmfetch03.at test because it depends on unlink() + # failing on a link in a chmod -w directory, which cygwin + # apparently allows. + postPatch = lib.optionalString stdenv.buildPlatform.isCygwin '' + substituteInPlace tests/Makefile.in --replace \ + '_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la' \ + '_LDADD = ../compat/libgdbm_compat.la ../src/libgdbm.la' + substituteInPlace tests/testsuite.at --replace \ + 'm4_include([dbmfetch03.at])' "" + ''; + + enableParallelBuilding = true; + configureFlags = [ "--enable-libgdbm-compat" ]; + + # create symlinks for compatibility + postInstall = '' + install -dm755 $out/include/gdbm + ( + cd $out/include/gdbm + ln -s ../gdbm.h gdbm.h + ln -s ../ndbm.h ndbm.h + ln -s ../dbm.h dbm.h + ) + ''; + + meta = with lib; { + description = "GNU dbm key/value database library"; + longDescription = '' + GNU dbm (or GDBM, for short) is a library of database functions that + use extensible hashing and work similar to the standard UNIX dbm. + These routines are provided to a programmer needing to create and + manipulate a hashed database. + + The basic use of GDBM is to store key/data pairs in a data file. + Each key must be unique and each key is paired with only one data + item. + + The library provides primitives for storing key/data pairs, + searching and retrieving the data by its key and deleting a key + along with its data. It also support sequential iteration over all + key/data pairs in a database. + + For compatibility with programs using old UNIX dbm function, the + package also provides traditional dbm and ndbm interfaces. + ''; + homepage = "https://www.gnu.org/software/gdbm/"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = [ maintainers.vrthra ]; + }; +} |