diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libeatmydata')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libeatmydata/default.nix | 51 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libeatmydata/find-shell-lib.patch | 20 |
2 files changed, 71 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libeatmydata/default.nix b/nixpkgs/pkgs/development/libraries/libeatmydata/default.nix new file mode 100644 index 000000000000..bec3bba51e6e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libeatmydata/default.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, strace, which }: + +stdenv.mkDerivation rec { + pname = "libeatmydata"; + version = "105"; + + src = fetchFromGitHub { + owner = "stewartsmith"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "0sx803h46i81h67xbpd3c7ky0nhaw4gij214nsx4lqig70223v9r"; + }; + + patches = [ + ./find-shell-lib.patch + + # Fixes "error: redefinition of 'open'" on musl + (fetchpatch { + url = "https://raw.githubusercontent.com/void-linux/void-packages/861ac185a6b60134292ff93d40e40b5391d0aa8e/srcpkgs/libeatmydata/patches/musl.patch"; + stripLen = 1; + sha256 = "sha256-yfMfISbYL7r/R2C9hYPjvGcpUB553QSiW0rMrxG11Oo="; + }) + ]; + + patchFlags = [ "-p0" ]; + + postPatch = '' + substituteInPlace eatmydata.in \ + --replace NIX_OUT_DIR $out + + patchShebangs . + ''; + + nativeBuildInputs = [ + autoreconfHook + ] ++ lib.optionals doCheck [ strace which ]; + + # while we can *build* in parallel, the tests also run in parallel which does + # not work with v105. Later versions (unreleased) have a fix for that. The + # problem is that on hydra we cannot use strace, so the tests don't run there. + enableParallelBuilding = true; + doCheck = false; + + meta = with lib; { + description = "Small LD_PRELOAD library to disable fsync and friends"; + homepage = "https://www.flamingspork.com/projects/libeatmydata/"; + license = licenses.gpl3Plus; + mainProgram = "eatmydata"; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/libeatmydata/find-shell-lib.patch b/nixpkgs/pkgs/development/libraries/libeatmydata/find-shell-lib.patch new file mode 100644 index 000000000000..a6320edda29d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libeatmydata/find-shell-lib.patch @@ -0,0 +1,20 @@ +--- eatmydata.in 2020-02-01 18:10:59.618679823 -0800 ++++ eatmydata.in.new 2020-02-01 18:08:25.092620247 -0800 +@@ -15,15 +15,8 @@ + # You should have received a copy of the GNU General Public License + # along with this program. If not, see <http://www.gnu.org/licenses/>. + +-export `dpkg-architecture|grep DEB_BUILD_MULTIARCH` +- +-shlib="/usr/lib/$DEB_BUILD_MULTIARCH/eatmydata.sh" +-if [ -f "$shlib" ]; then +- . "$shlib" +-else +- echo "Unable to locate eatmydata shell library, it was not enabled" >&2 +- exec "$@" +-fi ++shlib="NIX_OUT_DIR/libexec/eatmydata.sh" ++. "$shlib" + + usage() + { |