chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / al / alephone / package.nix
blob92cf6667f6c3fb6893c35005e34a8bc75c411f28
2   lib,
3   stdenv,
4   fetchurl,
5   fetchpatch2,
6   alsa-lib,
7   boost,
8   curl,
9   ffmpeg_6,
10   icoutils,
11   libGLU,
12   libmad,
13   libogg,
14   libpng,
15   libsndfile,
16   libvorbis,
17   lua,
18   makeDesktopItem,
19   makeWrapper,
20   miniupnpc,
21   openal,
22   pkg-config,
23   SDL2,
24   SDL2_image,
25   SDL2_net,
26   SDL2_ttf,
27   speex,
28   unzip,
29   zlib,
30   zziplib,
31   testers,
34 stdenv.mkDerivation (finalAttrs: {
35   outputs = [
36     "out"
37     "icons"
38   ];
39   pname = "alephone";
40   version = "1.10";
42   src = fetchurl {
43     url =
44       let
45         date = "20240822";
46       in
47       "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${date}/AlephOne-${date}.tar.bz2";
48     hash = "sha256-Es2Uo0RIJHYeO/60XiHVLJe9Eoan8DREtAI2KGjuLaM=";
49   };
51   nativeBuildInputs = [
52     pkg-config
53     icoutils
54   ];
56   buildInputs = [
57     alsa-lib
58     boost
59     curl
60     ffmpeg_6
61     libGLU
62     libmad
63     libogg
64     libpng
65     libsndfile
66     libvorbis
67     lua
68     miniupnpc
69     openal
70     SDL2
71     SDL2_image
72     SDL2_net
73     SDL2_ttf
74     speex
75     zlib
76     zziplib
77   ];
79   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
80   makeFlags = [ "AR:=$(AR)" ];
82   enableParallelBuilding = true;
84   postInstall = ''
85     mkdir $icons
86     icotool -x -i 5 -o $icons Resources/Windows/*.ico
87     pushd $icons
88     for x in *_5_48x48x32.png; do
89       mv $x ''${x%_5_48x48x32.png}.png
90     done
91     popd
92   '';
94   passthru.tests.version =
95     # test that the version is correct
96     testers.testVersion { package = finalAttrs.finalPackage; };
98   meta = {
99     description = "Aleph One is the open source continuation of Bungie’s Marathon 2 game engine";
100     mainProgram = "alephone";
101     homepage = "https://alephone.lhowon.org/";
102     license = [ lib.licenses.gpl3 ];
103     maintainers = with lib.maintainers; [ ehmry ];
104     platforms = lib.platforms.linux;
105   };
107   passthru.makeWrapper =
108     {
109       pname,
110       desktopName,
111       version,
112       zip,
113       meta,
114       icon ? finalAttrs.finalPackage.icons + "/alephone.png",
115       ...
116     }@extraArgs:
117     stdenv.mkDerivation (
118       {
119         inherit pname version;
121         desktopItem = makeDesktopItem {
122           name = desktopName;
123           exec = pname;
124           genericName = pname;
125           categories = [ "Game" ];
126           comment = meta.description;
127           inherit desktopName icon;
128         };
130         src = zip;
132         nativeBuildInputs = [
133           makeWrapper
134           unzip
135         ];
137         dontConfigure = true;
138         dontBuild = true;
140         installPhase = ''
141           mkdir -p $out/bin $out/data/$pname $out/share/applications
142           cp -a * $out/data/$pname
143           cp $desktopItem/share/applications/* $out/share/applications
144           makeWrapper ${finalAttrs.finalPackage}/bin/alephone $out/bin/$pname \
145             --add-flags $out/data/$pname
146         '';
147       }
148       // extraArgs
149       // {
150         meta =
151           finalAttrs.finalPackage.meta
152           // {
153             license = lib.licenses.free;
154             mainProgram = pname;
155             hydraPlatforms = [ ];
156           }
157           // meta;
158       }
159     );