mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-11 20:25:32 +03:00
x16: adopt, fix build on GCC 14, modernize (#408332)
This commit is contained in:
commit
ab324de200
3 changed files with 25 additions and 18 deletions
|
@ -2,9 +2,11 @@
|
|||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
SDL2,
|
||||
callPackage,
|
||||
zlib,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
|
@ -14,10 +16,19 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
src = fetchFromGitHub {
|
||||
owner = "X16Community";
|
||||
repo = "x16-emulator";
|
||||
rev = "r${finalAttrs.version}";
|
||||
tag = "r${finalAttrs.version}";
|
||||
hash = "sha256-E4TosRoORCWLotOIXROP9oqwqo1IRSa6X13GnmuxE9A=";
|
||||
};
|
||||
|
||||
# Fix build on GCC 14
|
||||
# TODO: Remove for next release as it should already be included in upstream
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/X16Community/x16-emulator/commit/3da83c93d46a99635cf73a6f9fdcf1bd4a4ae04f.patch";
|
||||
hash = "sha256-DZItqq7B1lXZ6VFsQUdQKn0wt1HaX4ymq2pI2DamY3w=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail '/bin/echo' 'echo'
|
||||
|
@ -48,14 +59,16 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
run = (callPackage ./run.nix { }) {
|
||||
inherit (finalAttrs.finalPackage) emulator rom;
|
||||
};
|
||||
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://cx16forum.com/";
|
||||
description = "Official emulator of CommanderX16 8-bit computer";
|
||||
changelog = "https://github.com/X16Community/x16-emulator/blob/r${finalAttrs.version}/RELEASES.md";
|
||||
changelog = "https://github.com/X16Community/x16-emulator/blob/${finalAttrs.src.rev}/RELEASES.md";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
maintainers = with lib.maintainers; [ pluiedev ];
|
||||
mainProgram = "x16emu";
|
||||
inherit (SDL2.meta) platforms;
|
||||
broken = stdenv.hostPlatform.isAarch64; # ofborg fails to compile it
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
cc65,
|
||||
lzsa,
|
||||
python3,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
|
@ -27,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
postPatch = ''
|
||||
patchShebangs findsymbols scripts/
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail '/bin/echo' 'echo'
|
||||
--replace-fail '/bin/echo' 'echo'
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -47,13 +48,14 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
# upstream project recommends emulator and rom to be synchronized; passing
|
||||
# through the version is useful to ensure this
|
||||
inherit (finalAttrs) version;
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/X16Community/x16-rom";
|
||||
description = "ROM file for CommanderX16 8-bit computer";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
maintainers = with lib.maintainers; [ pluiedev ];
|
||||
inherit (cc65.meta) platforms;
|
||||
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
runtimeShell,
|
||||
symlinkJoin,
|
||||
writeTextFile,
|
||||
writeShellScriptBin,
|
||||
}:
|
||||
|
||||
{ emulator, rom }:
|
||||
|
@ -9,18 +9,10 @@
|
|||
assert emulator.version == rom.version;
|
||||
|
||||
let
|
||||
runScript = writeTextFile {
|
||||
name = "run-x16";
|
||||
text = ''
|
||||
#!${runtimeShell}
|
||||
|
||||
defaultRom="${rom}/share/x16-rom/rom.bin"
|
||||
|
||||
exec "${emulator}/bin/x16emu" -rom $defaultRom "$@"
|
||||
'';
|
||||
executable = true;
|
||||
destination = "/bin/run-x16";
|
||||
};
|
||||
runScript = writeShellScriptBin "run-x16" ''
|
||||
defaultRom="${rom}/share/x16-rom/rom.bin"
|
||||
exec "${emulator}/bin/x16emu" -rom $defaultRom "$@"
|
||||
'';
|
||||
in
|
||||
symlinkJoin {
|
||||
pname = "run-x16";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue