depot/third_party/nixpkgs/pkgs/by-name/xi/xidel/package.nix

107 lines
2.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fpc,
openssl,
}:
let
flreSrc = fetchFromGitHub {
owner = "benibela";
repo = "flre";
rev = "3e926d45d4352f1b7c7cd411ccd625df117dad5c";
hash = "sha256-fs7CIjd3fwD/SORYh5pmJxIdrr8F9e36TNmnKUbUxP0=";
};
synapseSrc = fetchFromGitHub {
owner = "benibela";
repo = "ararat-synapse";
rev = "7a77db926de66809080bada68b54172da7f84c0e";
hash = "sha256-bVLQ0ohGJYtuP88Krxy9a7RnHHrW0OWw8H/uxa3PerU=";
};
rcmdlineSrc = fetchFromGitHub {
owner = "benibela";
repo = "rcmdline";
rev = "ea02b770c4568717dd7b3b72da191a8bbcb4c751";
hash = "sha256-6YtvAf0joRvtCKbUAaLwuwABw1GEIzammFLhboq9aG0=";
};
internettoolsSrc = fetchFromGitHub {
owner = "benibela";
repo = "internettools";
rev = "dd972caaa4415468fa679ea7262976ead3fd3e38";
hash = "sha256-09sADxPiE6ky1EX7dTXRBYVT3IarUcLYf5knzi7+CHU=";
};
pasdblstrutilsSrc = fetchFromGitHub {
owner = "BeRo1985";
repo = "pasdblstrutils";
rev = "1696f0a2b822fef26c8992f96620f1be129cfa99";
hash = "sha256-x0AjOTa1g7gJOR2iBO76yBt1kzcRNujHRUsq5QOlfP0=";
};
in
stdenv.mkDerivation rec {
pname = "xidel";
version = "unstable-2022-11-01";
src = fetchFromGitHub {
owner = "benibela";
repo = pname;
rev = "6d5655c1d73b88ddeb32d2450a35ee36e4762bb8";
hash = "sha256-9x2d5AKRBjocRawRHdeI4heIM5nb00/F/EIj+/to7ac=";
};
nativeBuildInputs = [ fpc ];
buildInputs = [ openssl ];
NIX_LDFLAGS = [ "-lcrypto" ];
patchPhase = ''
patchShebangs \
build.sh \
tests/test.sh \
tests/tests-file-module.sh \
tests/tests.sh \
tests/downloadTest.sh \
tests/downloadTests.sh \
tests/zorbajsoniq.sh \
tests/zorbajsoniq/download.sh
'';
preBuildPhase = ''
mkdir -p import/{flre,synapse,pasdblstrutils} rcmdline internettools
cp -R ${flreSrc}/. import/flre
cp -R ${pasdblstrutilsSrc}/. import/pasdblstrutils
cp -R ${rcmdlineSrc}/. rcmdline
cp -R ${internettoolsSrc}/. internettools
cp -R ${synapseSrc}/. import/synapse
substituteInPlace import/synapse/ssl_openssl{,11}_lib.pas \
--replace-fail 'libcrypto.dylib' '${lib.getLib openssl}/lib/libcrypto.dylib' \
--replace-fail 'libssl.dylib' '${lib.getLib openssl}/lib/libssl.dylib'
'';
buildPhase = ''
runHook preBuildPhase
./build.sh
runHook postBuildPhase
'';
installPhase = ''
mkdir -p "$out/bin" "$out/share/man/man1"
cp meta/xidel.1 "$out/share/man/man1/"
cp xidel "$out/bin/"
'';
# disabled, because tests require network
checkPhase = ''
./tests/tests.sh
'';
meta = with lib; {
description = "Command line tool to download and extract data from HTML/XML pages as well as JSON APIs";
mainProgram = "xidel";
homepage = "https://www.videlibri.de/xidel.html";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}