From b909526ffac183d496718a7cbac53d0fb298ea77 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Thu, 5 Oct 2023 19:33:17 +0200 Subject: [PATCH] vice: use GTK+-3 UI and use included desktop files The GTK+ UI is the recommended UI by the developers. It also fixed the x128 emulator from crashing. Moreover, the GTK+ UI also includes desktop files, so we should use these instead of our own. --- pkgs/applications/emulators/vice/default.nix | 128 +++---------------- 1 file changed, 15 insertions(+), 113 deletions(-) diff --git a/pkgs/applications/emulators/vice/default.nix b/pkgs/applications/emulators/vice/default.nix index f16ee43352f..0b6dac32865 100644 --- a/pkgs/applications/emulators/vice/default.nix +++ b/pkgs/applications/emulators/vice/default.nix @@ -6,116 +6,23 @@ , perl , libpng , giflib -, libjpeg , alsa-lib , readline , libGLU , libGL -, libXaw , pkg-config -, gtk2 +, gtk3 +, glew , SDL , SDL_image -, autoreconfHook -, makeDesktopItem , dos2unix +, runtimeShell , xa , file +, wrapGAppsHook +, xdg-utils }: -let - desktopItems = [ - (makeDesktopItem { - name = "x128"; - exec = "x128"; - comment = "VICE: C128 Emulator"; - desktopName = "VICE: C128 Emulator"; - genericName = "Commodore 128 emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "x64dtv"; - exec = "x64dtv"; - comment = "VICE: C64 DTV Emulator"; - desktopName = "VICE: C64 DTV Emulator"; - genericName = "Commodore 64 DTV emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "x64sc"; - exec = "x64sc"; - comment = "VICE: C64 Emulator"; - desktopName = "VICE: C64 Emulator"; - genericName = "Commodore 64 SC emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xcbm2"; - exec = "xcbm2"; - comment = "VICE: CBM-II B-Model Emulator"; - desktopName = "VICE: CBM-II B-Model Emulator"; - genericName = "CBM-II B-Model Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xcbm5x0"; - exec = "xcbm5x0"; - comment = "VICE: CBM-II P-Model Emulator"; - desktopName = "VICE: CBM-II P-Model Emulator"; - genericName = "CBM-II P-Model Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xpet"; - exec = "xpet"; - comment = "VICE: PET Emulator"; - desktopName = "VICE: PET Emulator"; - genericName = "Commodore PET Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xplus4"; - exec = "xplus4"; - comment = "VICE: PLUS4 Emulator"; - desktopName = "VICE: PLUS4 Emulator"; - genericName = "Commodore PLUS4 Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xscpu64"; - exec = "xscpu64"; - comment = "VICE: SCPU64 Emulator"; - desktopName = "VICE: SCPU64 Emulator"; - genericName = "Commodore SCPU64 Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "xvic"; - exec = "xvic"; - comment = "VICE: VIC-20 Emulator"; - desktopName = "VICE: VIC-20 Emulator"; - genericName = "Commodore VIC-20 Emulator"; - categories = [ "System" ]; - }) - - (makeDesktopItem { - name = "vsid"; - exec = "vsid"; - comment = "VSID: The SID Emulator"; - desktopName = "VSID: The SID Emulator"; - genericName = "SID Emulator"; - categories = [ "System" ]; - }) - ]; -in stdenv.mkDerivation rec { pname = "vice"; version = "3.7.1"; @@ -126,46 +33,41 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - autoreconfHook bison dos2unix file flex pkg-config + wrapGAppsHook ]; buildInputs = [ alsa-lib giflib - gtk2 + gtk3 + glew libGL libGLU - libXaw - libjpeg libpng perl readline SDL SDL_image xa + xdg-utils ]; dontDisableStatic = true; - configureFlags = [ "--enable-fullscreen" "--enable-gnomeui" "--disable-pdf-docs" ]; + configureFlags = [ "--enable-sdl2ui" "--enable-gtk3ui" "--enable-desktop-files" "--disable-pdf-docs" "--with-gif" ]; + + LIBS = "-lGL"; preBuild = '' - for i in src/resid src/resid-dtv - do - mkdir -pv $i/src - ln -sv ../../wrap-u-ar.sh $i/src - done + sed -i -e 's|#!/usr/bin/env bash|${runtimeShell}/bin/bash|' src/arch/gtk3/novte/box_drawing_generate.sh ''; postInstall = '' - for app in ${toString desktopItems} - do - mkdir -p $out/share/applications - cp $app/share/applications/* $out/share/applications - done + mkdir -p $out/share/applications + cp src/arch/gtk3/data/unix/vice-org-*.desktop $out/share/applications ''; meta = {