llpp: 2018-03-02 -> 30

Remove unnecessary packages from derivation and use patches to fix
build.bash instead of sed commands.
This commit is contained in:
Michael Hoang 2018-12-01 23:14:24 +11:00
parent 61c3169a0e
commit 3f1e222a8b
3 changed files with 107 additions and 16 deletions

View File

@ -1,33 +1,36 @@
{ stdenv, lib, makeWrapper, fetchgit, pkgconfig, ninja, ocaml, findlib, mupdf
, gtk3, openjpeg, jbig2dec, mujs, xsel, openssl, freetype, ncurses }:
{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11,
libGLU_combined, freetype, xclip }:
assert lib.versionAtLeast (lib.getVersion ocaml) "4.02";
assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
stdenv.mkDerivation rec {
name = "llpp-${version}";
version = "2018-03-02";
version = "30";
src = fetchgit {
url = "git://repo.or.cz/llpp.git";
rev = "0ab1fbbf142b6df6d6bae782e3af2ec50f32dec9";
sha256 = "1h0hrmxwm7ripgp051788p8ad0q38dc9nvjx87mdwlkwk9qc0dis";
rev = "v${version}";
sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd";
fetchSubmodules = false;
};
nativeBuildInputs = [ pkgconfig makeWrapper ninja ];
buildInputs = [ ocaml findlib mupdf gtk3 jbig2dec openjpeg mujs openssl freetype ncurses ];
patches = (substituteAll {
inherit version;
src = ./fix-build-bash.patch;
});
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ ocaml mupdf libX11 libGLU_combined freetype ];
dontStrip = true;
configurePhase = ''
sed -i -e 's+ocamlc --version+ocamlc -version+' build.sh
sed -i -e 's+-I \$srcdir/mupdf/include -I \$srcdir/mupdf/thirdparty/freetype/include+-I ${freetype.dev}/include+' build.sh
sed -i -e 's+-lmupdf +-lfreetype -lz -lharfbuzz -ljbig2dec -lopenjp2 -ljpeg -lmupdf +' build.sh
sed -i -e 's+-L\$srcdir/mupdf/build/native ++' build.sh
mkdir -p build/mupdf/thirdparty
ln -s ${freetype.dev} build/mupdf/thirdparty/freetype
'';
buildPhase = ''
sh ./build.sh build
bash ./build.bash build
'';
installPhase = ''
@ -35,14 +38,14 @@ stdenv.mkDerivation rec {
install build/llpp $out/bin
wrapProgram $out/bin/llpp \
--prefix CAML_LD_LIBRARY_PATH ":" "$out/lib" \
--prefix PATH ":" "${xsel}/bin"
--prefix PATH ":" "${xclip}/bin"
'';
meta = with stdenv.lib; {
homepage = https://repo.or.cz/w/llpp.git;
description = "A MuPDF based PDF pager written in OCaml";
platforms = platforms.linux;
maintainers = with maintainers; [ pSub ];
maintainers = with maintainers; [ pSub enzime ];
license = licenses.gpl3;
};
}

View File

@ -0,0 +1,88 @@
From cccadedfbcb6764a38382154838113a6b2fd4dee Mon Sep 17 00:00:00 2001
From: Michael Hoang <enzime@users.noreply.github.com>
Date: Mon, 10 Dec 2018 15:08:01 +1100
Subject: [PATCH] Patch build.bash for nixpkgs
---
build.bash | 37 ++-----------------------------------
1 file changed, 2 insertions(+), 35 deletions(-)
diff --git a/build.bash b/build.bash
index 1588011..72117d9 100755
--- a/build.bash
+++ b/build.bash
@@ -29,7 +29,6 @@ srcd="$(dirname $0)"
mudir=$outd/mupdf
muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include"
-test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING
mkdir -p $outd/{$wsid,lablGL}
:>$outd/ordered
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
mbt=native
mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a
-keycmd="(cd $mudir && git describe --tags --dirty); digest $mulibs"
-isfresh "$mulibs" "$(eval $keycmd)" || (
- make -C "$mudir" build=$mbt -j $mjobs libs
- echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
-) && vecho "fresh mupdf"
-
oincs() {
local i=
local incs1=
@@ -90,32 +83,6 @@ mflags() {
}
overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
-test "$overs" = "4.07.0" || {
- url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz
- txz=$outd/$(basename $url)
- isfresh $txz $url || {
- executable_p() { command -v "$1" >/dev/null 2>&1; }
- if executable_p wget; then dl() { wget -q "$1" -O "$2"; }
- elif executable_p curl; then dl() { curl -L "$1" -o "$2"; }
- else die "no program to fetch remote urls found"
- fi
- dl $url $txz
- echo "k=$url" >$txz.past
- } && vecho "fresh $txz"
- absprefix=$(cd $outd &>/dev/null; pwd -P)
- export PATH=$absprefix/bin:$PATH
- isfresh $absprefix/bin/ocamlc "$url" || (
- tar xf $txz -C $outd
- bn=$(basename $url)
- cd $outd/${bn%.tar.xz}
- ./configure -prefix $absprefix \
- -no-graph -no-debugger -no-ocamldoc -no-native-compiler
- make -j $mjobs world
- make install
- echo "k='$url'" >$absprefix/bin/ocamlc.past
- ) && vecho "fresh ocamlc"
- overs=$(ocamlc -vnum 2>/dev/null)
-}
bocaml1() {
grep -q "$3" $outd/ordered || {
@@ -224,7 +191,7 @@ bobjc() {
} && vecho "fresh $o"
}
-ver=$(cd $srcd && git describe --tags --dirty) || ver=unknown
+ver=@version@
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
@@ -278,7 +245,7 @@ for m in ml_gl ml_glarray ml_raw; do
done
libs="str.cma unix.cma"
-clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread"
+clibs="-lmupdf -lfreetype -lpthread"
if $darwin; then
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
clibs="$clibs -framework Cocoa -framework OpenGL"
--
2.19.2

View File

@ -17844,7 +17844,7 @@ in
linuxsampler = callPackage ../applications/audio/linuxsampler { };
llpp = ocaml-ng.ocamlPackages_4_04.callPackage ../applications/misc/llpp { };
llpp = ocaml-ng.ocamlPackages_4_07.callPackage ../applications/misc/llpp { };
lmms = libsForQt5.callPackage ../applications/audio/lmms {
lame = null;