commit
4aae058c30
@ -1,117 +0,0 @@ |
|||||||
{ lib, stdenv, fetchFromGitHub, fetchpatch |
|
||||||
, bison, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg |
|
||||||
, libpng, perl, python2, ruby, sqlite, qtwebkit, qmake, qtbase |
|
||||||
, darwin, writeScriptBin, cups, makeWrapper |
|
||||||
}: |
|
||||||
|
|
||||||
let |
|
||||||
fakeClang = writeScriptBin "clang" '' |
|
||||||
#!${stdenv.shell} |
|
||||||
if [[ "$@" == *.c ]]; then |
|
||||||
exec "${stdenv.cc}/bin/clang" "$@" |
|
||||||
else |
|
||||||
exec "${stdenv.cc}/bin/clang++" "$@" |
|
||||||
fi |
|
||||||
''; |
|
||||||
|
|
||||||
in stdenv.mkDerivation rec { |
|
||||||
pname = "phantomjs"; |
|
||||||
version = "2.1.1"; |
|
||||||
|
|
||||||
src = fetchFromGitHub { |
|
||||||
owner = "ariya"; |
|
||||||
repo = "phantomjs"; |
|
||||||
rev = version; |
|
||||||
sha256 = "1zsbpk1sgh9a16f1a5nx3qvk77ibjn812wqkxqck8n6fia85m5iq"; |
|
||||||
}; |
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake makeWrapper ]; |
|
||||||
buildInputs = [ |
|
||||||
bison flex fontconfig freetype gperf icu openssl |
|
||||||
libjpeg libpng perl python2 ruby sqlite qtwebkit qtbase |
|
||||||
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ |
|
||||||
AGL ApplicationServices AppKit Cocoa OpenGL |
|
||||||
darwin.libobjc fakeClang cups |
|
||||||
]); |
|
||||||
|
|
||||||
patches = [ |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-hardening.patch"; |
|
||||||
sha256 = "1qs1r76w90qgpw742i7lf0y3b7m9zh5wxcbrhrak6mq1kqaphqb5"; |
|
||||||
}) |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt-components.patch"; |
|
||||||
sha256 = "1fw2q59aqcks3abvwkqg9903yif6aivdsznc0h6frhhjvpp19vsb"; |
|
||||||
}) |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-evaluateJavaScript.patch"; |
|
||||||
sha256 = "1avig9cfny8kv3s4mf3mdzvf3xlzgyh351yzwc4bkpnjvzv4fmq6"; |
|
||||||
}) |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-no-websecurity.patch"; |
|
||||||
sha256 = "1nykqpxa7lcf9iarz5lywgg3v3b1h19iwvjdg4kgq0ai6idhcab8"; |
|
||||||
}) |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-print.patch"; |
|
||||||
sha256 = "1fydmdjxnplglpbd3ypaih5l237jkxjirpdhzz92mcpy29yla6jw"; |
|
||||||
}) |
|
||||||
(fetchpatch { |
|
||||||
url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/unlock-qt.patch"; |
|
||||||
sha256 = "13bwz4iw17d6hq5pwkbpcckqyw7fhc6648lvs26m39pp31zwyp03"; |
|
||||||
}) |
|
||||||
./system-qtbase.patch |
|
||||||
]; |
|
||||||
|
|
||||||
postPatch = '' |
|
||||||
patchShebangs . |
|
||||||
substituteInPlace src/phantomjs.pro \ |
|
||||||
--replace "QT_MINOR_VERSION, 5" "QT_MINOR_VERSION, 9" |
|
||||||
''; |
|
||||||
|
|
||||||
# Avoids error in webpage.cpp:80:89: |
|
||||||
# invalid suffix on literal; C++11 requires a space between litend identifier |
|
||||||
NIX_CFLAGS_COMPILE = "-Wno-reserved-user-defined-literal"; |
|
||||||
|
|
||||||
__impureHostDeps = lib.optional stdenv.isDarwin "/usr/lib/libicucore.dylib"; |
|
||||||
|
|
||||||
dontWrapQtApps = true; |
|
||||||
|
|
||||||
installPhase = '' |
|
||||||
mkdir -p $out/share/doc/phantomjs |
|
||||||
cp -a bin $out |
|
||||||
cp -a ChangeLog examples LICENSE.BSD README.md third-party.txt $out/share/doc/phantomjs |
|
||||||
'' + lib.optionalString stdenv.isDarwin '' |
|
||||||
install_name_tool -change \ |
|
||||||
${darwin.CF}/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \ |
|
||||||
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \ |
|
||||||
-change \ |
|
||||||
${darwin.configd}/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration \ |
|
||||||
/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration \ |
|
||||||
$out/bin/phantomjs |
|
||||||
'' + '' |
|
||||||
wrapProgram $out/bin/phantomjs \ |
|
||||||
--set QT_QPA_PLATFORM offscreen \ |
|
||||||
--prefix PATH : ${lib.makeBinPath [ qtbase ]} |
|
||||||
''; |
|
||||||
|
|
||||||
meta = with lib; { |
|
||||||
description = "Headless WebKit with JavaScript API"; |
|
||||||
longDescription = '' |
|
||||||
PhantomJS2 is a headless WebKit with JavaScript API. |
|
||||||
It has fast and native support for various web standards: |
|
||||||
DOM handling, CSS selector, JSON, Canvas, and SVG. |
|
||||||
|
|
||||||
PhantomJS is an optimal solution for: |
|
||||||
- Headless Website Testing |
|
||||||
- Screen Capture |
|
||||||
- Page Automation |
|
||||||
- Network Monitoring |
|
||||||
''; |
|
||||||
|
|
||||||
homepage = "https://phantomjs.org/"; |
|
||||||
license = licenses.bsd3; |
|
||||||
|
|
||||||
maintainers = [ maintainers.aflatter ]; |
|
||||||
platforms = platforms.darwin ++ platforms.linux; |
|
||||||
}; |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
--- a/build.py
|
|
||||||
+++ b/build.py
|
|
||||||
@@ -80,9 +80,9 @@
|
|
||||||
def qmakePath():
|
|
||||||
exe = "qmake"
|
|
||||||
if platform.system() == "Windows":
|
|
||||||
exe += ".exe"
|
|
||||||
- return os.path.abspath("src/qt/qtbase/bin/" + exe)
|
|
||||||
+ return os.path.abspath("@qtbase@" + exe)
|
|
||||||
|
|
||||||
# returns paths for 3rd party libraries (Windows only)
|
|
||||||
def findThirdPartyDeps():
|
|
||||||
include_dirs = []
|
|
Loading…
Reference in new issue