media-libs/libdv: add fixes for Prefix
authorFabian Groffen <grobian@gentoo.org>
Tue, 18 Jun 2019 13:01:09 +0000 (15:01 +0200)
committerFabian Groffen <grobian@gentoo.org>
Tue, 18 Jun 2019 13:01:09 +0000 (15:01 +0200)
Closes: https://bugs.gentoo.org/681642
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Package-Manager: Portage-2.3.66, Repoman-2.3.11

media-libs/libdv/files/libdv-1.0.0-darwin.patch [new file with mode: 0644]
media-libs/libdv/files/libdv-1.0.0-solaris.patch [new file with mode: 0644]
media-libs/libdv/libdv-1.0.0-r4.ebuild [new file with mode: 0644]

diff --git a/media-libs/libdv/files/libdv-1.0.0-darwin.patch b/media-libs/libdv/files/libdv-1.0.0-darwin.patch
new file mode 100644 (file)
index 0000000..c6d48d5
--- /dev/null
@@ -0,0 +1,52 @@
+* grobian@gentoo.org: Darwin 8 lacks sched_setscheduler
+
+https://sourceforge.net/tracker/index.php?func=detail&aid=2606558&group_id=4393&atid=304393
+
+--- configure.ac
++++ configure.ac
+@@ -244,7 +244,7 @@
+ dnl Checks for library functions.
+ AC_FUNC_MMAP
+-AC_CHECK_FUNCS(gettimeofday)
++AC_CHECK_FUNCS(gettimeofday sched_get_priority_max sched_setscheduler)
+ AC_SUBST(ac_aux_dir)
+ AC_SUBST(RPM_RELEASE)
+--- configure
++++ configure
+@@ -22621,7 +22621,7 @@
+ rm -f conftest.mmap
+-for ac_func in gettimeofday
++for ac_func in gettimeofday sched_get_priority_max sched_setscheduler
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { echo "$as_me:$LINENO: checking for $ac_func" >&5
+--- config.h.in
++++ config.h.in
+@@ -24,6 +24,12 @@
+ /* Define to 1 if you have the `gettimeofday' function. */
+ #undef HAVE_GETTIMEOFDAY
++/* Define to 1 if you have the `sched_get_priority_max' function. */
++#undef HAVE_SCHED_GET_PRIORITY_MAX
++
++/* Define to 1 if you have the `sched_setscheduler' function. */
++#undef HAVE_SCHED_SETSCHEDULER
++
+ /* Define as 1 if you have gtk */
+ #undef HAVE_GTK
+--- encodedv/dvconnect.c
++++ encodedv/dvconnect.c
+@@ -860,7 +860,7 @@
+ int rt_raisepri (int pri)
+ {
+-#ifdef _SC_PRIORITY_SCHEDULING
++#if defined(_SC_PRIORITY_SCHEDULING) && defined(HAVE_SCHED_GET_PRIORITY_MAX) && defined(HAVE_SCHED_SETSCHEDULER)
+       struct sched_param scp;
+       /*
diff --git a/media-libs/libdv/files/libdv-1.0.0-solaris.patch b/media-libs/libdv/files/libdv-1.0.0-solaris.patch
new file mode 100644 (file)
index 0000000..e9cb440
--- /dev/null
@@ -0,0 +1,153 @@
+* grobian@gentoo.org: patches for Solaris, include sys/filio.h for
+                      _IOWR, need -lrt for sched_* funcs
+
+https://sourceforge.net/tracker/index.php?func=detail&aid=2603455&group_id=4393&atid=304393
+
+--- configure.ac
++++ configure.ac
+@@ -208,6 +208,8 @@
+ AC_CHECK_LIB(m, sqrt)
++# Solaris has sched_* in -lrt
++AC_CHECK_LIB(rt, sched_get_priority_max)
+ dnl Don't bother with popt on non-gcc build, because we make heavy use of 
+ dnl gcc struct initialization extension in our popt code.  (Could be fixed)
+@@ -231,7 +231,7 @@
+ AC_PATH_X
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h linux/videodev.h sys/soundcard.h \
+-endian.h machine/endian.h inttypes.h)
++endian.h machine/endian.h inttypes.h sys/filio.h)
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+--- configure
++++ configure
+@@ -20895,6 +20895,92 @@
+ fi
++{ echo "$as_me:$LINENO: checking for sched_get_priority_max in -lrt" >&5
++echo $ECHO_N "checking for sched_get_priority_max in -lrt... $ECHO_C" >&6; }
++if test "${ac_cv_lib_rt_sched_get_priority_max+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-lrt  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++/* Override any GCC internal prototype to avoid an error.
++   Use char because int might match the return type of a GCC
++   builtin and then its argument prototype would still apply.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++char sched_get_priority_max ();
++int
++main ()
++{
++return sched_get_priority_max ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_link") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++       { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
++  { (case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_try") 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; } &&
++       { ac_try='test -s conftest$ac_exeext'
++  { (case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++  (eval "$ac_try") 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_rt_sched_get_priority_max=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++      ac_cv_lib_rt_sched_get_priority_max=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext \
++      conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++{ echo "$as_me:$LINENO: result: $ac_cv_lib_rt_sched_get_priority_max" >&5
++echo "${ECHO_T}$ac_cv_lib_rt_sched_get_priority_max" >&6; }
++if test $ac_cv_lib_rt_sched_get_priority_max = yes; then
++  cat >>confdefs.h <<_ACEOF
++#define HAVE_LIBRT 1
++_ACEOF
++
++  LIBS="-lrt $LIBS"
++
++fi
++
+ REQUIRES_NOPKGCONFIG=""
+ if test "$GCC" = "yes"; then
+@@ -21461,7 +21461,7 @@
+ for ac_header in fcntl.h sys/time.h unistd.h linux/videodev.h sys/soundcard.h \
+-endian.h machine/endian.h inttypes.h
++endian.h machine/endian.h inttypes.h sys/filio.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+--- config.h.in
++++ config.h.in
+@@ -30,6 +30,9 @@
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
++/* Define to 1 if you have the <sys/filio.h> header file. */
++#undef HAVE_SYS_FILIO_H
++
+ /* Define to 1 if you have the `m' library (-lm). */
+ #undef HAVE_LIBM
+--- encodedv/dvconnect.c
++++ encodedv/dvconnect.c
+@@ -31,6 +31,9 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
++#ifdef HAVE_SYS_FILIO_H
++#include <sys/filio.h>
++#endif
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #include <unistd.h>
diff --git a/media-libs/libdv/libdv-1.0.0-r4.ebuild b/media-libs/libdv/libdv-1.0.0-r4.ebuild
new file mode 100644 (file)
index 0000000..4dc11d3
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit epatch epunt-cxx libtool ltprune flag-o-matic multilib-minimal
+
+DESCRIPTION="Software codec for dv-format video (camcorders etc)"
+HOMEPAGE="http://libdv.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
+       mirror://gentoo/${PN}-1.0.0-pic.patch.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="static-libs"
+
+RDEPEND="dev-libs/popt"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog INSTALL NEWS TODO )
+
+src_prepare() {
+       epatch "${FILESDIR}"/${PN}-0.99-2.6.patch
+       epatch "${WORKDIR}"/${PN}-1.0.0-pic.patch
+       epatch "${FILESDIR}"/${PN}-1.0.0-solaris.patch
+       epatch "${FILESDIR}"/${PN}-1.0.0-darwin.patch
+       elibtoolize
+       epunt_cxx #74497
+
+       append-cppflags "-I${S}"
+}
+
+multilib_src_configure() {
+       ECONF_SOURCE="${S}"     econf \
+               $(use_enable static-libs static) \
+               --without-debug \
+               --disable-gtk \
+               --disable-gtktest \
+               $([[ ${CHOST} == *86*-darwin* ]] && echo "--disable-asm")
+       if ! multilib_is_native_abi ; then
+               sed -i \
+                       -e 's/ encodedv//' \
+                       Makefile || die
+       fi
+}
+
+multilib_src_install_all() {
+       prune_libtool_files --all
+       einstalldocs
+}