chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / do / dosbox-staging / package.nix
blobd23466447eccb9dfda07c9a9d45ec772be5c23c7
2   lib,
3   SDL2,
4   SDL2_image,
5   SDL2_net,
6   alsa-lib,
7   darwin,
8   fetchFromGitHub,
9   fetchpatch,
10   fluidsynth,
11   gitUpdater,
12   glib,
13   gtest,
14   iir1,
15   libGL,
16   libGLU,
17   libjack2,
18   libmt32emu,
19   libogg,
20   libpng,
21   libpulseaudio,
22   libslirp,
23   libsndfile,
24   makeWrapper,
25   meson,
26   ninja,
27   opusfile,
28   pkg-config,
29   speexdsp,
30   stdenv,
31   testers,
32   zlib-ng,
35 stdenv.mkDerivation (finalAttrs: {
36   pname = "dosbox-staging";
37   version = "0.81.1";
39   src = fetchFromGitHub {
40     owner = "dosbox-staging";
41     repo = "dosbox-staging";
42     rev = "v${finalAttrs.version}";
43     hash = "sha256-XGssEyX+AVv7/ixgGTRtPFjsUSX0FT0fhP+TXsFl2fY=";
44   };
46   patches = [
47     (fetchpatch {
48       name = "darwin-allow-bypass-wraps.patch";
49       url = "https://github.com/dosbox-staging/dosbox-staging/commit/9f0fc1dc762010e5f7471d01c504d817a066cae3.patch";
50       hash = "sha256-IzxRE1Vr+M8I5hdy80UwebjJ5R1IlH9ymaYgs6VwAO4=";
51     })
52   ];
54   nativeBuildInputs = [
55     gtest
56     makeWrapper
57     meson
58     ninja
59     pkg-config
60   ];
62   buildInputs =
63     [
64       SDL2
65       SDL2_image
66       SDL2_net
67       fluidsynth
68       glib
69       iir1
70       libGL
71       libGLU
72       libjack2
73       libmt32emu
74       libogg
75       libpng
76       libpulseaudio
77       libslirp
78       libsndfile
79       opusfile
80       speexdsp
81       zlib-ng
82     ]
83     ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib ]
84     ++ lib.optionals stdenv.hostPlatform.isDarwin (
85       with darwin.apple_sdk.frameworks;
86       [
87         AudioUnit
88         Carbon
89         Cocoa
90       ]
91     );
93   outputs = [ "out" "man" ];
95   postInstall = ''
96     install -Dm644 $src/contrib/linux/dosbox-staging.desktop $out/share/applications/
97   '';
99   # Rename binary, add a wrapper, and copy manual to avoid conflict with
100   # original dosbox. Doing it this way allows us to work with frontends and
101   # launchers that expect the binary to be named dosbox, but get out of the way
102   # of vanilla dosbox if the user desires to install that as well.
103   postFixup = ''
104     mv $out/bin/dosbox $out/bin/dosbox-staging
105     makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
107     pushd $man/share/man/man1/
108     ln -s dosbox.1.gz dosbox-staging.1.gz
109     popd
110   '';
112   passthru = {
113     tests = {
114       version = testers.testVersion {
115         package = finalAttrs.finalPackage;
116         command = "dosbox --version";
117       };
118     };
119     updateScript = gitUpdater {
120       rev-prefix = "v";
121     };
122   };
124   meta = {
125     homepage = "https://dosbox-staging.github.io/";
126     description = "Modernized DOS emulator; DOSBox fork";
127     longDescription = ''
128       DOSBox Staging is an attempt to revitalize DOSBox's development
129       process. It's not a rewrite, but a continuation and improvement on the
130       existing DOSBox codebase while leveraging modern development tools and
131       practices.
132     '';
133     license = lib.licenses.gpl2Plus;
134     maintainers = with lib.maintainers; [
135       joshuafern
136       AndersonTorres
137     ];
138     platforms = lib.platforms.unix;
139     priority = 101;
140   };