1{
2 stdenv,
3 lib,
4 fetchurl,
5 php,
6}:
7
8let
9 source =
10 {
11 "aarch64-darwin" = {
12 url = "https://web.archive.org/web/20250614103627/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz";
13 sha256 = "sha256-Dji4PIX5GqU6mOC7ZrSEu3dAZtsiVVuvKQ9Z5aGiuQ4=";
14 };
15 "aarch64-linux" = {
16 url = "https://web.archive.org/web/20250614103715/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64.tar.gz";
17 sha256 = "sha256-zushkH7g3L62bDdjgTZamWcxOp35xQisOjSG6e2EEHg=";
18 };
19 "x86_64-linux" = {
20 url = "https://web.archive.org/web/20250614103238/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz";
21 sha256 = "sha256-W8AXulfQx2nkT9nznCCx2lrayKA3R+n2TyhU1ScNjMg=";
22 };
23 }
24 .${stdenv.hostPlatform.system};
25
26 phpVersion = lib.versions.majorMinor php.version;
27 systemPrefix = lib.substring 0 3 stdenv.hostPlatform.parsed.kernel.name; # lin, dar, fre
28
29 filename = "ioncube_loader_${systemPrefix}_${phpVersion}${lib.optionalString php.ztsSupport "_ts"}.so";
30in
31stdenv.mkDerivation {
32 pname = "ioncube-loader";
33 version = "14.4.1";
34
35 extensionName = "ioncube-loader";
36
37 src = fetchurl source;
38
39 installPhase = ''
40 runHook preInstall
41 install -Dm755 '${filename}' $out/lib/php/extensions/ioncube-loader.so
42 runHook postInstall
43 '';
44
45 meta = with lib; {
46 description = "Use ionCube-encoded files on a web server";
47 changelog = "https://www.ioncube.com/loaders.php";
48 homepage = "https://www.ioncube.com";
49 sourceProvenance = [ sourceTypes.binaryNativeCode ];
50 license = licenses.unfree;
51 maintainers = with maintainers; [ neverbehave ];
52 platforms = [
53 "x86_64-linux"
54 "aarch64-linux"
55 "aarch64-darwin"
56 ];
57 };
58}