mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-04 12:53:05 +00:00
Merge pull request #265287 from reckenrode/darwin-fixes-batch1
perlPackages.Gtk2, scheme48, smpeg, stfl: fix build with clang 16
This commit is contained in:
commit
d0a608519b
@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
|
|||||||
substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
|
substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# Silence warnings related to use of implicitly declared library functions and implicit ints.
|
||||||
|
# TODO: Remove and/or fix with patches the next time this package is updated.
|
||||||
|
env = lib.optionalAttrs stdenv.cc.isClang {
|
||||||
|
NIX_CFLAGS_COMPILE = toString [
|
||||||
|
"-Wno-error=implicit-function-declaration"
|
||||||
|
"-Wno-error=implicit-int"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://s48.org/";
|
homepage = "https://s48.org/";
|
||||||
description = "Scheme 48 interpreter for R5RS";
|
description = "Scheme 48 interpreter for R5RS";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, SDL, autoconf, automake, libtool, gtk2, m4, pkg-config, libGLU, libGL, makeWrapper }:
|
{ lib, stdenv, fetchFromGitHub, fetchpatch, SDL, autoconf, automake, libtool, gtk2, m4, pkg-config, libGLU, libGL, makeWrapper }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "smpeg";
|
pname = "smpeg";
|
||||||
@ -16,8 +16,24 @@ stdenv.mkDerivation rec {
|
|||||||
./gcc6.patch
|
./gcc6.patch
|
||||||
./libx11.patch
|
./libx11.patch
|
||||||
./gtk.patch
|
./gtk.patch
|
||||||
|
# These patches remove use of the `register` storage class specifier,
|
||||||
|
# allowing smpeg to build with clang 16, which defaults to C++17.
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/icculus/smpeg/commit/cc114ba0dd8644c0d6205bbce2384781daeff44b.patch";
|
||||||
|
hash = "sha256-GxSD82j05pw0r2SxmPYAe/BXX4iUc+iHWhB9Ap4GzfA=";
|
||||||
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/icculus/smpeg/commit/b369feca5bf99d6cff50d8eb316395ef48acf24f.patch";
|
||||||
|
hash = "sha256-U+a6dbc5cm249KlUcf4vi79yUiT4hgEvMv522K4PqUc=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace video/gdith.cpp \
|
||||||
|
--replace 'register int' 'int' \
|
||||||
|
--replace 'register Uint16' 'Uint16'
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake libtool m4 pkg-config makeWrapper ];
|
nativeBuildInputs = [ autoconf automake libtool m4 pkg-config makeWrapper ];
|
||||||
|
@ -13,6 +13,15 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ ncurses libiconv ];
|
buildInputs = [ ncurses libiconv ];
|
||||||
|
|
||||||
|
# Silence warnings related to use of implicitly declared library functions and implicit ints.
|
||||||
|
# TODO: Remove and/or fix with patches the next time this package is updated.
|
||||||
|
env = lib.optionalAttrs stdenv.cc.isClang {
|
||||||
|
NIX_CFLAGS_COMPILE = toString [
|
||||||
|
"-Wno-error=implicit-function-declaration"
|
||||||
|
"-Wno-error=implicit-int"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
sed -i s/gcc/cc/g Makefile
|
sed -i s/gcc/cc/g Makefile
|
||||||
sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h
|
sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
diff -ur a/gdk.typemap b/gdk.typemap
|
||||||
|
--- a/gdk.typemap 2017-05-21 15:02:54.000000000 -0400
|
||||||
|
+++ b/gdk.typemap 2023-11-03 13:17:43.717890172 -0400
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
TYPEMAP
|
||||||
|
|
||||||
|
# can be either a pointer or an integer, this handles both cases
|
||||||
|
+uintptr_t T_UV
|
||||||
|
GdkNativeWindow T_UV
|
||||||
|
|
||||||
|
# GdkBitmap doesn't get its own type id, but needs to be treated separately.
|
||||||
|
diff -ur a/xs/GdkDnd.xs b/xs/GdkDnd.xs
|
||||||
|
--- a/xs/GdkDnd.xs 2017-05-21 15:02:54.000000000 -0400
|
||||||
|
+++ b/xs/GdkDnd.xs 2023-11-03 13:23:22.478329089 -0400
|
||||||
|
@@ -142,12 +142,12 @@
|
||||||
|
void
|
||||||
|
gdk_drag_get_protocol_for_display (class, display, xid)
|
||||||
|
GdkDisplay *display
|
||||||
|
- guint32 xid
|
||||||
|
+ uintptr_t xid
|
||||||
|
PREINIT:
|
||||||
|
GdkDragProtocol protocol;
|
||||||
|
- guint32 ret;
|
||||||
|
+ uintptr_t ret;
|
||||||
|
PPCODE:
|
||||||
|
- ret = gdk_drag_get_protocol_for_display (display, xid, &protocol);
|
||||||
|
+ ret = (uintptr_t)gdk_drag_get_protocol_for_display (display, INT2PTR(GdkNativeWindow, xid), &protocol);
|
||||||
|
XPUSHs (sv_2mortal (newSVuv (ret)));
|
||||||
|
XPUSHs (sv_2mortal (ret
|
||||||
|
? newSVGdkDragProtocol (protocol)
|
||||||
|
@@ -184,12 +184,12 @@
|
||||||
|
=cut
|
||||||
|
void
|
||||||
|
gdk_drag_get_protocol (class, xid)
|
||||||
|
- guint32 xid
|
||||||
|
+ uintptr_t xid
|
||||||
|
PREINIT:
|
||||||
|
GdkDragProtocol protocol;
|
||||||
|
- guint32 ret;
|
||||||
|
+ uintptr_t ret;
|
||||||
|
PPCODE:
|
||||||
|
- ret = gdk_drag_get_protocol (xid, &protocol);
|
||||||
|
+ ret = (uintptr_t)gdk_drag_get_protocol (INT2PTR(GdkNativeWindow, xid), &protocol);
|
||||||
|
XPUSHs (sv_2mortal (newSVuv (ret)));
|
||||||
|
XPUSHs (sv_2mortal (newSVGdkDragProtocol (protocol)));
|
||||||
|
|
||||||
|
diff -ur a/xs/GdkSelection.xs b/xs/GdkSelection.xs
|
||||||
|
--- a/xs/GdkSelection.xs 2017-05-21 15:02:54.000000000 -0400
|
||||||
|
+++ b/xs/GdkSelection.xs 2023-11-03 13:26:58.976888906 -0400
|
||||||
|
@@ -147,7 +147,7 @@
|
||||||
|
## void gdk_selection_send_notify (guint32 requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time_)
|
||||||
|
void
|
||||||
|
gdk_selection_send_notify (class, requestor, selection, target, property, time_)
|
||||||
|
- guint32 requestor
|
||||||
|
+ GdkNativeWindow requestor
|
||||||
|
GdkAtom selection
|
||||||
|
GdkAtom target
|
||||||
|
GdkAtom property
|
||||||
|
@@ -161,7 +161,7 @@
|
||||||
|
void
|
||||||
|
gdk_selection_send_notify_for_display (class, display, requestor, selection, target, property, time_)
|
||||||
|
GdkDisplay *display
|
||||||
|
- guint32 requestor
|
||||||
|
+ GdkNativeWindow requestor
|
||||||
|
GdkAtom selection
|
||||||
|
GdkAtom target
|
||||||
|
GdkAtom property
|
||||||
|
diff -ur a/xs/GtkWindow.xs b/xs/GtkWindow.xs
|
||||||
|
--- a/xs/GtkWindow.xs 2017-05-21 15:02:54.000000000 -0400
|
||||||
|
+++ b/xs/GtkWindow.xs 2023-11-03 13:32:53.673168678 -0400
|
||||||
|
@@ -581,13 +581,13 @@
|
||||||
|
void
|
||||||
|
gtk_window_remove_embedded_xid (window, xid)
|
||||||
|
GtkWindow * window
|
||||||
|
- guint xid
|
||||||
|
+ GdkNativeWindow xid
|
||||||
|
|
||||||
|
## void gtk_window_add_embedded_xid (GtkWindow *window, guint xid)
|
||||||
|
void
|
||||||
|
gtk_window_add_embedded_xid (window, xid)
|
||||||
|
GtkWindow * window
|
||||||
|
- guint xid
|
||||||
|
+ GdkNativeWindow xid
|
||||||
|
|
||||||
|
##void gtk_window_reshow_with_initial_size (GtkWindow *window)
|
||||||
|
void
|
@ -11121,6 +11121,10 @@ with self; {
|
|||||||
url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
|
url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
|
||||||
hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
|
hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
|
||||||
};
|
};
|
||||||
|
patches = [
|
||||||
|
# Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
|
||||||
|
../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
|
||||||
|
];
|
||||||
buildInputs = [ pkgs.gtk2 ];
|
buildInputs = [ pkgs.gtk2 ];
|
||||||
# https://rt.cpan.org/Public/Bug/Display.html?id=130742
|
# https://rt.cpan.org/Public/Bug/Display.html?id=130742
|
||||||
# doCheck = !stdenv.isDarwin;
|
# doCheck = !stdenv.isDarwin;
|
||||||
|
Loading…
Reference in New Issue
Block a user