commit:     124f74d5cacaa50108ae1eddc8783bb0d49ebe1b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 19 10:12:10 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 19 11:03:39 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=124f74d5

media-video/xine-ui: fix modern C issues in configure

Closes: https://bugs.gentoo.org/899872
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/xine-ui-0.99.13-configure-c99.patch      | 77 ++++++++++++++++++
 media-video/xine-ui/xine-ui-0.99.13-r1.ebuild      | 90 ++++++++++++++++++++++
 2 files changed, 167 insertions(+)

diff --git a/media-video/xine-ui/files/xine-ui-0.99.13-configure-c99.patch 
b/media-video/xine-ui/files/xine-ui-0.99.13-configure-c99.patch
new file mode 100644
index 000000000000..dfb82175b587
--- /dev/null
+++ b/media-video/xine-ui/files/xine-ui-0.99.13-configure-c99.patch
@@ -0,0 +1,77 @@
+https://sourceforge.net/p/xine/tickets/22/
+https://bugs.gentoo.org/899872
+
+Fix C compatibility issues in the configure script
+
+This is necessary to avoid incorrectly failing probes due to expected
+compiler errors.
+
+Include <stdlib.h> for the exit function, and <string.h> for the
+strdup function.
+
+Use fake prototypes to avoid implicit function declarations in the
+xine_* function probes.
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -198,6 +198,7 @@
+   if test "$ac_cv_header_sys_shm_h" = "yes"; then
+     AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
+     AC_TRY_RUN([
++        #include <stdlib.h>
+           #include <sys/types.h>
+           #include <sys/ipc.h>
+           #include <sys/shm.h>
+--- a/m4/aa.m4
++++ b/m4/aa.m4
+@@ -52,6 +52,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <aalib.h>
++#include <string.h>
+ 
+ int main () {
+   int major, minor;
+--- a/m4/_xine.m4
++++ b/m4/_xine.m4
+@@ -218,7 +218,7 @@
+      CFLAGS="$CFLAGS $XINE_CFLAGS"
+      LIBS="$LIBS $XINE_LIBS"
+      AC_LINK_IFELSE(
+-         [AC_LANG_PROGRAM([],[xine_open_cloexec();])],
++         [AC_LANG_PROGRAM([char 
xine_open_cloexec(void);],[xine_open_cloexec();])],
+          [AC_DEFINE([HAVE_XINE_OPEN_CLOEXEC], [1], [Define if xine-lib 
supports xine_open_cloexec])
+           AC_MSG_RESULT([yes])],
+          [AC_MSG_RESULT([no])])
+@@ -234,7 +234,7 @@
+      CFLAGS="$CFLAGS $XINE_CFLAGS"
+      LIBS="$LIBS $XINE_LIBS"
+      AC_LINK_IFELSE(
+-         [AC_LANG_PROGRAM([],[xine_socket_cloexec();])],
++         [AC_LANG_PROGRAM([char 
xine_socket_cloexec(void);],[xine_socket_cloexec();])],
+          [AC_DEFINE([HAVE_XINE_SOCKET_CLOEXEC], [1], [Define if xine-lib 
supports xine_socket_cloexec])
+           AC_MSG_RESULT([yes])],
+          [AC_MSG_RESULT([no])])
+@@ -250,7 +250,7 @@
+      CFLAGS="$CFLAGS $XINE_CFLAGS"
+      LIBS="$LIBS $XINE_LIBS"
+      AC_LINK_IFELSE(
+-         [AC_LANG_PROGRAM([
++         [AC_LANG_PROGRAM([char xine_list_next_value(void);
+          ],[
+ xine_list_next_value ();
+          ])],
+diff --git a/configure.ac b/configure.ac
+index 5b4fb04..8bcbfea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -634,7 +634,8 @@ dnl
+ AC_MSG_CHECKING(whether librt is needed)
+ AC_TRY_COMPILE(
+       [#include <unistd.h>
+-       #include <sys/time.h>],
++       #include <sys/time.h>
++         #include <time.h>],
+       [#if _POSIX_TIMERS > 0
+        struct timespec ts;
+        clock_gettime(CLOCK_REALTIME, &ts);

diff --git a/media-video/xine-ui/xine-ui-0.99.13-r1.ebuild 
b/media-video/xine-ui/xine-ui-0.99.13-r1.ebuild
new file mode 100644
index 000000000000..4bebb115b9cc
--- /dev/null
+++ b/media-video/xine-ui/xine-ui-0.99.13-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools xdg
+
+DESCRIPTION="Xine movie player"
+HOMEPAGE="https://xine-project.org/home";
+SRC_URI="mirror://sourceforge/xine/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+IUSE="aalib curl debug libcaca lirc nls readline vdr X xinerama"
+
+RDEPEND="
+       || ( app-arch/tar app-arch/libarchive )
+       media-libs/libpng:0=
+       >=media-libs/xine-lib-1.2:=[aalib?,libcaca?]
+       media-libs/libjpeg-turbo:=
+       aalib? ( media-libs/aalib:= )
+       curl? ( >=net-misc/curl-7.10.2:= )
+       libcaca? ( media-libs/libcaca:= )
+       lirc? ( app-misc/lirc:= )
+       nls? ( virtual/libintl )
+       readline? ( >=sys-libs/readline-6.2:= )
+       X? (
+               x11-libs/libICE:=
+               x11-libs/libSM:=
+               x11-libs/libX11:=
+               x11-libs/libXext:=
+               x11-libs/libXft:=
+               x11-libs/libXrender:=
+               x11-libs/libXScrnSaver:=
+               x11-libs/libXtst:=
+               x11-libs/libXv:=
+               x11-libs/libXxf86vm:=
+               xinerama? ( x11-libs/libXinerama:= )
+       )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       nls? ( >=sys-devel/gettext-0.18.3 )
+       X? (
+               x11-base/xorg-proto
+               x11-libs/libXt
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.99.10-desktop.patch
+       "${FILESDIR}"/${P}-build.patch
+       "${FILESDIR}"/${PN}-0.99.13-configure-c99.patch
+)
+
+src_prepare() {
+       default
+       eautoreconf
+       rm misc/xine-bugreport || die
+}
+
+src_configure() {
+       econf \
+               $(use_enable nls) \
+               $(use_enable xinerama) \
+               $(use_enable lirc) \
+               $(use_enable vdr vdr-keys) \
+               --disable-nvtvsimple \
+               $(use_enable debug) \
+               $(use_with X x) \
+               $(use_with readline) \
+               $(use_with curl) \
+               $(use_with aalib) \
+               $(use_with libcaca caca) \
+               --without-fb
+}
+
+src_install() {
+       # xine-list apparently may cause sandbox violation, bug 654394
+       addpredict /dev/dri
+
+       emake \
+               DESTDIR="${D}" \
+               docdir="/usr/share/doc/${PF}" \
+               docsdir="/usr/share/doc/${PF}" \
+               install
+
+       einstalldocs
+}

Reply via email to