Merge pull request #312069 from atorres1985-contrib/xemu

xemu: use upstream xemu.desktop
This commit is contained in:
Pol Dellaiera
2024-05-16 22:35:00 +02:00
committed by GitHub
+83 -74
View File
@@ -1,29 +1,28 @@
{ lib
, SDL2
, SDL2_image
, copyDesktopItems
, fetchFromGitHub
, gettext
, glib
, gtk3
, libGLU
, libdrm
, libepoxy
, libpcap
, libsamplerate
, libslirp
, makeDesktopItem
, mesa
, meson
, ninja
, openssl
, perl
, pkg-config
, python3Packages
, stdenv
, vte
, which
, wrapGAppsHook3
{
lib,
SDL2,
SDL2_image,
fetchFromGitHub,
gettext,
glib,
gtk3,
libGLU,
libdrm,
libepoxy,
libpcap,
libsamplerate,
libslirp,
mesa,
meson,
ninja,
openssl,
perl,
pkg-config,
python3Packages,
stdenv,
vte,
which,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -38,18 +37,20 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-VcztVzG/IN9N0SVKj6BipyqnhxXC2nTTuMjKMtFKzGw=";
};
nativeBuildInputs = [
copyDesktopItems
meson
ninja
perl
pkg-config
which
wrapGAppsHook3
] ++ (with python3Packages; [
python
pyyaml
]);
nativeBuildInputs =
[
SDL2
meson
ninja
perl
pkg-config
which
wrapGAppsHook3
]
++ (with python3Packages; [
python
pyyaml
]);
buildInputs = [
SDL2
@@ -68,12 +69,6 @@ stdenv.mkDerivation (finalAttrs: {
vte
];
separateDebugInfo = true;
dontUseMesonConfigure = true;
setOutputFlags = false;
configureFlags = [
"--disable-strip"
"--meson=meson"
@@ -83,14 +78,13 @@ stdenv.mkDerivation (finalAttrs: {
buildFlags = [ "qemu-system-i386" ];
desktopItems = [
(makeDesktopItem {
name = "xemu";
desktopName = "xemu";
exec = "xemu";
icon = "xemu";
})
];
separateDebugInfo = true;
dontUseMesonConfigure = true;
setOutputFlags = false;
strictDeps = true;
postPatch = ''
patchShebangs .
@@ -98,35 +92,49 @@ stdenv.mkDerivation (finalAttrs: {
--replace 'date -u' "date -d @$SOURCE_DATE_EPOCH '+%Y-%m-%d %H:%M:%S'"
'';
preConfigure = ''
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
'' +
# When the data below can't be obtained through git, the build process tries
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
''
echo '${finalAttrs.version}' > XEMU_VERSION
'';
preConfigure =
''
configureFlagsArray+=("--extra-cflags=-DXBOX=1 -Wno-error=redundant-decls")
''
+
# When the data below can't be obtained through git, the build process tries
# to run `XEMU_COMMIT=$(cat XEMU_COMMIT)` (and similar)
''
echo '${finalAttrs.version}' > XEMU_VERSION
'';
preBuild = ''
cd build
substituteInPlace ./build.ninja --replace /usr/bin/env $(which env)
'';
installPhase = let
installIcon = resolution: ''
install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
$out/share/icons/hicolor/${resolution}/apps/xemu.png
'';
in ''
runHook preInstall
installPhase =
let
installIcon = resolution: ''
install -Dm644 -T ../ui/icons/xemu_${resolution}.png \
$out/share/icons/hicolor/${resolution}/apps/xemu.png
'';
in
''
runHook preInstall
install -Dm755 -T qemu-system-i386 $out/bin/xemu
'' +
(lib.concatMapStringsSep "\n" installIcon
[ "16x16" "24x24" "32x32" "48x48" "128x128" "256x256" "512x512" ]) + "\n" +
''
runHook postInstall
'';
install -Dm755 -T qemu-system-i386 $out/bin/xemu
''
+ (lib.concatMapStringsSep "\n" installIcon [
"16x16"
"24x24"
"32x32"
"48x48"
"128x128"
"256x256"
"512x512"
])
+ "\n"
+ ''
install -Dm644 -T ../ui/xemu.desktop $out/share/applications/xemu.desktop
runHook postInstall
'';
meta = {
homepage = "https://xemu.app/";
@@ -143,3 +151,4 @@ stdenv.mkDerivation (finalAttrs: {
platforms = lib.platforms.linux;
};
})
# TODO: investigate failure when using __structuredAttrs