3
0
Fork 0
forked from mirrors/nixpkgs

skalibs: new package

Skalibs is a set of general-purpose C programming libraries used for
building all software at skarnet.org.
This commit is contained in:
Patrick Mahoney 2014-08-22 23:22:55 -05:00
parent 030439d8fe
commit f0478220d8
3 changed files with 88 additions and 0 deletions

View file

@ -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;
};
}

View file

@ -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 ;

View file

@ -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 {