Merge pull request #310664 from JohnRTitor/dosbox

dosbox-staging: 0.80.1 -> 0.81.1
This commit is contained in:
Artturin 2024-05-18 19:52:29 +03:00 committed by GitHub
commit 50895a47e0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,100 +1,47 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, SDL2
, SDL2_image
, SDL2_net
, alsa-lib
, copyDesktopItems
, darwin
, fluidsynth
, glib
, gtest
, iir1
, libGL
, libGLU
, libjack2
, libmt32emu
, libogg
, libpng
, libpulseaudio
, libslirp
, libsndfile
, makeDesktopItem
, makeWrapper
, meson
, ninja
, opusfile
, pkg-config
, speexdsp
{
lib,
stdenv,
fetchFromGitHub,
SDL2,
SDL2_image,
SDL2_net,
alsa-lib,
darwin,
fluidsynth,
glib,
gtest,
iir1,
libGL,
libGLU,
libjack2,
libmt32emu,
libogg,
libpng,
zlib-ng,
libpulseaudio,
libslirp,
libsndfile,
makeWrapper,
meson,
ninja,
opusfile,
pkg-config,
speexdsp,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dosbox-staging";
version = "0.80.1";
version = "0.81.1";
src = fetchFromGitHub {
owner = "dosbox-staging";
repo = "dosbox-staging";
rev = "v${finalAttrs.version}";
hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc=";
hash = "sha256-XGssEyX+AVv7/ixgGTRtPFjsUSX0FT0fhP+TXsFl2fY=";
};
patches = [
# Pull missind SDL2_net dependency:
# https://github.com/dosbox-staging/dosbox-staging/pull/2358
(fetchpatch {
name = "sdl2-net.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/1b02f187a39263f4b0285323dcfe184bccd749c2.patch";
hash = "sha256-Ev97xApInu6r5wvI9Q7FhkSXqtMW/rwJj48fExvqnT0=";
})
# Pull missing SDL2_image dependency:
# https://github.com/dosbox-staging/dosbox-staging/pull/2239
(fetchpatch {
name = "sdl2-image.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/ca8b7a906d29a3f8ce956c4af7dc829a6ac3e229.patch";
hash = "sha256-WtTVSWWSlfXrdPVsnlDe4P5K/Fnj4QsOzx3Wo/Kusmg=";
includes = [ "src/gui/meson.build" ];
})
]
# Pagesize detection via syscall; remove when next stable version arrives
++ [
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Fix ppc64le backend and 64K page size support (#2828)
name = "meson-add-ppc64.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/765bcc2b1d87050a4ea366bf22e1db075ad5660b.patch";
hash = "sha256-RtkidyF7w6RrPmCKK4Bd+3FtAn/+/38xk2cl32+yzxw=";
includes = [ "meson.build" ];
})
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Account for debian powerpc prefix (instead of ppc)
name = "meson-powerpc64le.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/d44aa7441cd871ffac08974f22af7a735a839288.patch";
hash = "sha256-oMZtfmB1CRlDWyXwEWc3XzC+XxKazXDgo+jUiNBoJDw=";
includes = [ "meson.build" ];
})
(fetchpatch {
# Added as a parent commit of 7e20f6e
# Restore the PowerPC dynrec core to working order
name = "meson-option-write-or-execute.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/ef86642de390839afc77b2b591a6ea9ac43909b3.patch";
hash = "sha256-htOKEaXRRy28XNMX/t6uFTBLCkTr7YPtfmI9UyIBiz4=";
includes = [ "meson_options.txt" ];
})
(fetchpatch {
# Use a system call to detect the page size
name = "meson-detect-pagesize-by-syscall.patch";
url = "https://github.com/dosbox-staging/dosbox-staging/commit/7e20f6e401956a7a308f1b3462294d7ac9fa5db8.patch";
hash = "sha256-QW9lpHWCYSlQFgTqX/UxHAAWisz4wfPrdjLqROn/wR0=";
})
];
nativeBuildInputs = [
copyDesktopItems
gtest
makeWrapper
meson
@ -102,43 +49,40 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
buildInputs = [
fluidsynth
glib
iir1
libGL
libGLU
libjack2
libmt32emu
libogg
libpng
libpulseaudio
libslirp
libsndfile
opusfile
SDL2
SDL2_image
SDL2_net
speexdsp
] ++ lib.optionals stdenv.isLinux [
alsa-lib
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
AudioUnit
Carbon
Cocoa
]);
buildInputs =
[
fluidsynth
glib
iir1
libGL
libGLU
libjack2
libmt32emu
libogg
libpng
zlib-ng
libpulseaudio
libslirp
libsndfile
opusfile
SDL2
SDL2_image
SDL2_net
speexdsp
]
++ lib.optionals stdenv.isLinux [ alsa-lib ]
++ lib.optionals stdenv.isDarwin (
with darwin.apple_sdk.frameworks;
[
AudioUnit
Carbon
Cocoa
]
);
desktopItems = [
(makeDesktopItem {
name = "dosbox-staging";
exec = "dosbox-staging";
icon = "dosbox-staging";
comment = "x86 dos emulator enhanced";
desktopName = "DosBox-Staging";
genericName = "DOS emulator";
categories = [ "Emulator" "Game" ];
})
];
postInstall = ''
install -Dm644 $src/contrib/linux/dosbox-staging.desktop $out/share/applications/
'';
postFixup = ''
# Rename binary, add a wrapper, and copy manual to avoid conflict with
@ -154,6 +98,8 @@ stdenv.mkDerivation (finalAttrs: {
popd
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://dosbox-staging.github.io/";
description = "A modernized DOS emulator";
@ -164,9 +110,11 @@ stdenv.mkDerivation (finalAttrs: {
practices.
'';
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ joshuafern AndersonTorres ];
maintainers = with lib.maintainers; [
joshuafern
AndersonTorres
];
platforms = lib.platforms.unix;
priority = 101;
};
})
# TODO: report upstream about not finding SDL2_net