mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 19:21:04 +00:00
ace-of-penguins: init at 1.4
Plus patches!
This commit is contained in:
parent
37cebc739a
commit
37aefe329d
78
pkgs/games/ace-of-penguins/default.nix
Normal file
78
pkgs/games/ace-of-penguins/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, copyDesktopItems
|
||||
, libX11
|
||||
, libXpm
|
||||
, libpng
|
||||
, makeDesktopItem
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ace-of-penguins";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.delorie.com/store/ace/ace-${version}.tar.gz";
|
||||
hash = "sha256-H+47BTOSGkKHPAYj8z2HOgZ7HuxY8scMAUSRRueaTM4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes a bunch of miscompilations in modern environments
|
||||
./fixup-miscompilations.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXpm
|
||||
libpng
|
||||
zlib
|
||||
];
|
||||
|
||||
desktopItems = let
|
||||
generateItem = gameName: {
|
||||
name = "${pname}-${gameName}";
|
||||
exec = "${placeholder "out"}/bin/${gameName}";
|
||||
comment = "Ace of Penguins ${gameName} Card Game";
|
||||
desktopName = gameName;
|
||||
genericName = gameName;
|
||||
};
|
||||
in
|
||||
map (x: makeDesktopItem (generateItem x)) [
|
||||
"canfield"
|
||||
"freecell"
|
||||
"golf"
|
||||
"mastermind"
|
||||
"merlin"
|
||||
"minesweeper"
|
||||
"pegged"
|
||||
"penguins"
|
||||
"solitaire"
|
||||
"spider"
|
||||
"taipedit"
|
||||
"taipei"
|
||||
"thornq"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.delorie.com/store/ace/";
|
||||
description = "Solitaire games in X11";
|
||||
longDescription = ''
|
||||
The Ace of Penguins is a set of Unix/X solitaire games based on the ones
|
||||
available for Windows(tm) but with a number of enhancements that my wife
|
||||
says make my versions better :-)
|
||||
|
||||
The latest version includes clones of freecell, golf, mastermind, merlin,
|
||||
minesweeper, pegged, solitaire, taipei (with editor!), and thornq (by
|
||||
Martin Thornquist).
|
||||
'';
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
80
pkgs/games/ace-of-penguins/fixup-miscompilations.patch
Normal file
80
pkgs/games/ace-of-penguins/fixup-miscompilations.patch
Normal file
|
@ -0,0 +1,80 @@
|
|||
--- ace-1.4/lib/xwin.c
|
||||
+++ ace-1.4/lib/xwin.c
|
||||
@@ -89,10 +89,10 @@
|
||||
/* Motif window hints */
|
||||
typedef struct
|
||||
{
|
||||
- unsigned flags;
|
||||
- unsigned functions;
|
||||
- unsigned decorations;
|
||||
- int inputMode;
|
||||
+ unsigned long flags;
|
||||
+ unsigned long functions;
|
||||
+ unsigned long decorations;
|
||||
+ long inputMode;
|
||||
} PropMotifWmHints;
|
||||
|
||||
typedef PropMotifWmHints PropMwmHints;
|
||||
@@ -841,13 +841,13 @@
|
||||
png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0);
|
||||
info_ptr = png_create_info_struct (png_ptr);
|
||||
|
||||
- if (setjmp (png_ptr->jmpbuf)) {
|
||||
+ if (setjmp (png_jmpbuf (png_ptr))) {
|
||||
fprintf(stderr, "Invalid PNG image!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
file_bytes = src->file_data;
|
||||
- png_set_read_fn (png_ptr, (voidp)&file_bytes, (png_rw_ptr)png_reader);
|
||||
+ png_set_read_fn (png_ptr, (void *)&file_bytes, (png_rw_ptr)png_reader);
|
||||
|
||||
png_read_info (png_ptr, info_ptr);
|
||||
|
||||
--- ace-1.4/lib/make-imglib.c
|
||||
+++ ace-1.4/lib/make-imglib.c
|
||||
@@ -86,7 +86,7 @@
|
||||
png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0);
|
||||
info_ptr = png_create_info_struct (png_ptr);
|
||||
|
||||
- if (setjmp (png_ptr->jmpbuf)) {
|
||||
+ if (setjmp (png_jmpbuf (png_ptr))) {
|
||||
fclose (f);
|
||||
continue;
|
||||
}
|
||||
|
||||
--- ace-1.4/lib/Makefile.am
|
||||
+++ ace-1.4/lib/Makefile.am
|
||||
@@ -6,7 +6,7 @@
|
||||
CLEANFILES = images.c images.d
|
||||
|
||||
INCLUDES = $(X_CFLAGS) @PDA@
|
||||
-AM_LDFLAGS = $(X_LIBS)
|
||||
+AM_LDFLAGS = $(X_LIBS) -lpng -lz -lm
|
||||
|
||||
BUILD_CC = @BUILD_CC@
|
||||
AR = @AR@
|
||||
|
||||
--- ace-1.4/lib/xwin.c 2020-10-07 02:07:59.000000000 +0300
|
||||
+++ ace-1.4/lib/xwin.c 2020-10-07 02:15:05.941784967 +0300
|
||||
@@ -55,7 +55,6 @@
|
||||
{ "-visual", OPTION_INTEGER, &visual_id },
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
-OptionDesc *xwin_options = xwin_options_list;
|
||||
|
||||
Display *display=0;
|
||||
int screen=0;
|
||||
--- ace-1.4/config.guess 2012-03-24 19:00:49.000000000 +0100
|
||||
+++ ace-1.4/config.guess 2021-07-05 11:02:16.685843793 +0200
|
||||
@@ -882,6 +882,9 @@
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||
fi
|
||||
exit ;;
|
||||
+ aarch64*:Linux:*:*)
|
||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
+ exit ;;
|
||||
avr32*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
|
|
@ -30235,6 +30235,8 @@ with pkgs;
|
|||
|
||||
_90secondportraits = callPackage ../games/90secondportraits { love = love_0_10; };
|
||||
|
||||
ace-of-penguins = callPackage ../games/ace-of-penguins { };
|
||||
|
||||
among-sus = callPackage ../games/among-sus { };
|
||||
|
||||
antsimulator = callPackage ../games/antsimulator { };
|
||||
|
|
Loading…
Reference in a new issue