libelfin: init at unstable-2018-08-25

Needed by osquery to monitor which binaries are using e.g. hardening
features: https://github.com/facebook/osquery/pull/4708
This commit is contained in:
Maximilian Bosch 2019-05-26 19:58:04 +02:00
parent e73f42be1c
commit d98d4b35ae
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E
3 changed files with 106 additions and 0 deletions

View file

@ -0,0 +1,72 @@
From 77a34d31695e02bc3d06b68c7ca3ff9c3cb67844 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Sun, 26 May 2019 19:46:27 +0200
Subject: [PATCH] Don't detect package version with Git
This will build in a Nix-based build environment. Instead we ismply
replace `@version@` using `substituteAll`.
---
dwarf/Makefile | 19 +++++++++----------
elf/Makefile | 15 +++++++--------
2 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/dwarf/Makefile b/dwarf/Makefile
index 71456bd..f871227 100644
--- a/dwarf/Makefile
+++ b/dwarf/Makefile
@@ -43,16 +43,15 @@ CLEAN += libdwarf++.so
# Create pkg-config for local library and headers. This will be
# transformed in to the correct global pkg-config by install.
libdwarf++.pc: always
- @(VER=$$(git describe --match 'v*' | sed -e s/^v//); \
- echo "libdir=$$PWD"; \
- echo "includedir=$$PWD"; \
- echo ""; \
- echo "Name: libdwarf++"; \
- echo "Description: C++11 DWARF library"; \
- echo "Version: $$VER"; \
- echo "Requires: libelf++ = $$VER"; \
- echo "Libs: -L\$${libdir} -ldwarf++"; \
- echo "Cflags: -I\$${includedir}") > $@
+ @(echo "libdir=$$PWD"; \
+ echo "includedir=$$PWD"; \
+ echo ""; \
+ echo "Name: libdwarf++"; \
+ echo "Description: C++11 DWARF library"; \
+ echo "Version: @version@"; \
+ echo "Requires: libelf++ = @version@"; \
+ echo "Libs: -L\$${libdir} -ldwarf++"; \
+ echo "Cflags: -I\$${includedir}") > $@
CLEAN += libdwarf++.pc
.PHONY: always
diff --git a/elf/Makefile b/elf/Makefile
index 9c7c224..50630a7 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -42,15 +42,14 @@ CLEAN += libelf++.so
# Create pkg-config for local library and headers. This will be
# transformed in to the correct global pkg-config by install.
libelf++.pc: always
- @(VER=$$(git describe --match 'v*' | sed -e s/^v//); \
- echo "libdir=$$PWD"; \
+ @(echo "libdir=$$PWD"; \
echo "includedir=$$PWD"; \
- echo ""; \
- echo "Name: libelf++"; \
- echo "Description: C++11 ELF library"; \
- echo "Version: $$VER"; \
- echo "Libs: -L\$${libdir} -lelf++"; \
- echo "Cflags: -I\$${includedir}") > $@
+ echo ""; \
+ echo "Name: libelf++"; \
+ echo "Description: C++11 ELF library"; \
+ echo "Version: @version@"; \
+ echo "Libs: -L\$${libdir} -lelf++"; \
+ echo "Cflags: -I\$${includedir}") > $@
CLEAN += libelf++.pc
.PHONY: always
--
2.19.2

View file

@ -0,0 +1,32 @@
{ stdenv, fetchFromGitHub, python3, substituteAll }:
stdenv.mkDerivation rec {
pname = "libelfin";
version = "unstable-2018-08-25";
src = fetchFromGitHub {
owner = "aclements";
repo = pname;
rev = "ac45a094fadba77ad840063fb7aab82571546be0";
sha256 = "143x680c6hsy51kngs04ypg4ql3lp498llcwj4lh1v0qp5qvjhyz";
};
patches = [
(substituteAll {
src = ./0001-Don-t-detect-package-version-with-Git.patch;
inherit version;
})
];
nativeBuildInputs = [ python3 ];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with stdenv.lib; {
homepage = https://github.com/aclements/libelfin/;
license = licenses.mit;
description = "C++11 ELF/DWARF parser";
maintainers = with maintainers; [ ma27 ];
platforms = platforms.linux;
};
}

View file

@ -11326,6 +11326,8 @@ in
then callPackage ../development/libraries/libelf-freebsd { }
else callPackage ../development/libraries/libelf { };
libelfin = callPackage ../development/libraries/libelfin { };
libetpan = callPackage ../development/libraries/libetpan { };
libexecinfo = callPackage ../development/libraries/libexecinfo { };