about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPatrick Mahoney <pat@polycrystal.org>2014-08-22 23:22:55 -0500
committerPatrick Mahoney <pat@polycrystal.org>2014-08-22 23:22:55 -0500
commitf0478220d888f247c37a882df4a2ec82571b932c (patch)
tree241742f57a9b0ca09c49161a2834697833174ac9 /pkgs
parent030439d8fe009772f692239aaa79bd08e506acb2 (diff)
downloadnixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar.gz
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar.bz2
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar.lz
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar.xz
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.tar.zst
nixlib-f0478220d888f247c37a882df4a2ec82571b932c.zip
skalibs: new package
Skalibs is a set of general-purpose C programming libraries used for
building all software at skarnet.org.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/skalibs/default.nix58
-rw-r--r--pkgs/development/libraries/skalibs/getpeereid.patch28
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 88 insertions, 0 deletions
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix
new file mode 100644
index 000000000000..842d74848df6
--- /dev/null
+++ b/pkgs/development/libraries/skalibs/default.nix
@@ -0,0 +1,58 @@
+{stdenv, fetchurl}:
+
+let
+
+  version = "1.6.0.0";
+
+in stdenv.mkDerivation rec {
+  name = "skalibs-${version}";
+
+  src = fetchurl {
+    url = "http://skarnet.org/software/skalibs/${name}.tar.gz";
+    sha256 = "0jz3farll9n5jvz3g6wri99s6njkgmnf0r9jqjlg03f20dzv8c8w";
+  };
+
+  sourceRoot = "prog/${name}";
+
+  # See http://skarnet.org/cgi-bin/archive.cgi?1:mss:75:201405:pkmodhckjklemogbplje
+  patches = [ ./getpeereid.patch ];
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"     > conf-defaultpath
+    printf "$out/etc"     > conf-etc
+    printf "$out/bin"     > conf-install-command
+    printf "$out/include" > conf-install-include
+    printf "$out/libexec" > conf-install-libexec
+    printf "$out/lib"     > conf-install-library
+    printf "$out/lib"     > conf-install-library.so
+    printf "$out/sysdeps" > conf-install-sysdeps
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+    touch flag-forcedevr
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/etc"
+  '';
+
+  meta = {
+    homepage = http://skarnet.org/software/skalibs/;
+    description = "A set of general-purpose C programming libraries.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/development/libraries/skalibs/getpeereid.patch b/pkgs/development/libraries/skalibs/getpeereid.patch
new file mode 100644
index 000000000000..c366780e2670
--- /dev/null
+++ b/pkgs/development/libraries/skalibs/getpeereid.patch
@@ -0,0 +1,28 @@
+--- a/src/libstddjb/getpeereid.h
++++ b/src/libstddjb/getpeereid.h
+@@ -3,6 +3,14 @@
+ #ifndef GETPEEREID_H
+ #define GETPEEREID_H
+ 
++#include "sysdeps.h"
++
++#ifdef HASGETPEEREID
++/* syscall exists - do nothing */
++
++#else
++
+ extern int getpeereid (int, int *, int *) ;
+ 
+ #endif
++#endif
+--- a/src/libstddjb/ipc_eid.c
++++ b/src/libstddjb/ipc_eid.c
+@@ -5,7 +5,7 @@
+ 
+ int ipc_eid (int s, unsigned int *u, unsigned int *g)
+ {
+-  int dummyu, dummyg ;
++  unsigned int dummyu, dummyg ;
+   if (getpeereid(s, &dummyu, &dummyg) < 0) return -1 ;
+   *u = (unsigned int)dummyu ;
+   *g = (unsigned int)dummyg ;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 15da2e5e4e1e..6b90a705f1cc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6169,6 +6169,8 @@ let
 
   sfml_git = callPackage ../development/libraries/sfml { };
 
+  skalibs = callPackage ../development/libraries/skalibs { };
+
   slang = callPackage ../development/libraries/slang { };
 
   slibGuile = callPackage ../development/libraries/slib {