From 6700fc39b11b3258f62d41c9641845babb36f4cc Mon Sep 17 00:00:00 2001 From: gryf Date: Tue, 2 Feb 2021 19:45:17 +0100 Subject: [PATCH] Added new version of tvtime. --- media-tv/tvtime/Manifest | 42 +--- ...me-1.0.11-disable-insecure-temp-file.patch | 25 +++ ...x-warning-implicit-declaration-major.patch | 26 +++ .../tvtime/files/tvtime-1.0.11-freetype.patch | 30 +++ media-tv/tvtime/files/tvtime-1.0.11-home.diff | 65 ++++++ .../tvtime/files/tvtime-1.0.11-libxml2.patch | 53 +++++ .../tvtime/files/tvtime-1.0.11-metainfo.patch | 12 ++ .../files/tvtime-1.0.11-saveconfig.patch | 200 ++++++++++++++++++ media-tv/tvtime/tvtime-1.0.11-r6.ebuild | 54 +++++ 9 files changed, 473 insertions(+), 34 deletions(-) create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-disable-insecure-temp-file.patch create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-fix-warning-implicit-declaration-major.patch create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-freetype.patch create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-home.diff create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-libxml2.patch create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-metainfo.patch create mode 100644 media-tv/tvtime/files/tvtime-1.0.11-saveconfig.patch create mode 100644 media-tv/tvtime/tvtime-1.0.11-r6.ebuild diff --git a/media-tv/tvtime/Manifest b/media-tv/tvtime/Manifest index 2c54953..6f2e574 100644 --- a/media-tv/tvtime/Manifest +++ b/media-tv/tvtime/Manifest @@ -1,34 +1,8 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - -AUX tvtime-1.0.2-xinerama.patch 1292 RMD160 1c725852d9c692786614b0e3710a5c38682c1f5e SHA1 39c51a9f264111b6ca400778113d008231613551 SHA256 8177203fe7109782e9d20afa66456e4c21fc973d1fafaa160409b9be29570e5b -AUX tvtime-1.0.2_p20110131-autotools.patch 2519 RMD160 2caefca2215a67787774dd096c70d05dcd59f1f0 SHA1 f98c41c2cca295dc06ccdd13f7ab0bb7de7e0483 SHA256 5992ce49c0c76304911145e20c53505cf962f8e78ad0178d10fc177d4669b1b9 -AUX tvtime-1.0.2_p20110131-gettext.patch 2443 RMD160 0f28fdbc151dce2a3f78d8e77a2b806e4280c87e SHA1 dc0a3b184d565ce53ae35f63003b3d8e40f31848 SHA256 efdb636f290ee653eb0215041141ea7c0226396425dbe26ff5c4c9edf86e1ebd -AUX tvtime-1.0.2_p20110131-libsupc++.patch 548 RMD160 af77a599ae572ada34825b6bb97675698f30cecf SHA1 e75c9fbbdc99d51fa9477ec4ff518340ddbc488e SHA256 3d155f21cd03bb98020504105768fb71922835f7180f454728b1e9637acddd7b -AUX tvtime-1.0.2_p20110131-underlinking.patch 480 RMD160 5f7789ba84d0e73ac61d604df31b6ad3e178a6da SHA1 992b9f13aff22528b967040c4b85877885c4a2b5 SHA256 dd9b27116a3fa5f5349d2a6aac94e1d29b777e07a266108d3bf7ff77f78cc65e -AUX tvtime-libpng-1.5.patch 449 RMD160 b5281d06d1365d0ed297497c96ba93ff497325b2 SHA1 ccd0506c59dd954e2fe2cc66033592185fc524ac SHA256 ab9842e0da83371d74bb75a67cc81fb056eeefbd1eaf592458e6e9986f38b27e -AUX tvtime-pic.patch 254 RMD160 31f3fb8937ae15c28ade1f55a1a6947bf31766cf SHA1 3d90369da57861933b7cb99597d85de60416a358 SHA256 db033fc267bf72034f49705680ced9d086b413efc9f947bd94b4e9117f808d41 -DIST tvtime-1.0.2-alsa-fixes.patch 4304 RMD160 352e411ba87c88521cf5ce331c56945e0d1078ba SHA1 25e9b6b25219c08efe1dfc7e134c0f701250cd88 SHA256 827bb1eef552cf777a44ba52bcd13849485e1014bf492b06dbc38efd165da371 -DIST tvtime-1.0.2-alsa-r1.patch 17031 RMD160 256580705c3e77bcf1b08256a8db80d749d04345 SHA1 18e06015ae569b291e4a412921f0ae78853ccc23 SHA256 fb97054807cb201c7d715c1da667975b4cb9aea0abb31c8d942a2e8d4c16f4ef -DIST tvtime-1.0.2-alsamixer-r1.patch 36504 RMD160 bf71724599eaacece996410834e4ac8fc7ec877b SHA1 65ae34312040a259f4264f46e573a9b4d48cecef SHA256 7cc68aad9f39772177a6eb3852ec1cd9882480988dbb2a7f8c7b83c8c1187399 -DIST tvtime-1.0.2_p20110131.tar.bz2 3800555 RMD160 64d15f09f3ebfe4399115168d355689470a6d03a SHA1 71fddd2624debb719faa3dd03aa827e93d8eb6db SHA256 37f8f87b52519f80e3d49c7a619706da2c45b526f67e13cdda21fbdf17e1c583 -EBUILD tvtime-1.0.2_p20110131-r3.ebuild 2711 RMD160 5ba0099cfc9cc9af91519d68cc3a1f5e17d43096 SHA1 58c03d548cdd84ccec03cf170aa2537d71c1ecba SHA256 0533502bbf0d1580f7640c69b772f9c5b2b8facb3defd24f15b8eb8f8959f82b -MISC ChangeLog 11284 RMD160 25c11c699eb65e7435635ad0dbd4768f04a0df3d SHA1 4eb36d7ebb303b663e4daadc0feccd6b535a5aa7 SHA256 a27b475a2a195c1516c6be45d0dfb6c3e2f942eea0f271f35bed8b63bafccee8 -MISC metadata.xml 323 RMD160 dd9a72ec24e30429b359ef031607716c6e9a37ee SHA1 d562099ebee735d257d07094c3f513e8b8517436 SHA256 81592a762f758dd75a692d4bf3a156ccf9bf7b7516762dbb2042ce1f65d69f1d ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.19 (GNU/Linux) - -iQIcBAEBCAAGBQJP+uq8AAoJEIce3keOdAI4AIUP/AgVD5HxhZ+60nK1q7boTez9 -4ff01UJs6xsYR64o3w0wSRWF5Pywa58w0mnL0ZVFvOcYM3FHfy12SDDrjb/RHiPj -CDxB5SFbop/nV1br3XeSuu8xy+G2Po0Y27qN8W0w92ug0412H5kaLRqF4nqgbmqm -PMkCU5xc8BQ/Ot5SyWrWTANJJNfhiiaBG+HD8cko/fuczfDrPGCXIXUNvovKyedv -p+2aiFFZMr7cAyPoHteo0NJyf+9hU6urM5CHMVGVN3vHmj8GQJjWbuWKP1TeS6D5 -/U6XJvb/jzyssMJbHMHIDghpW8ZBEqL32B1pDFg3lI7ws8kCKCIbWnJXvF1mtFCG -bE4Wo8X9PqUiuEjsvc8M+f9YiOB0+CRBLopfm4XNw1T0+LPdsTxa4f39tfMEt6dO -E3rbS6BumalfdCAEkuNN5QZYdWNNUl8G8eW8yuXy8sE3QfsOck9miaUuBkInOweH -GisuOoSaCfGzhebBJY5UXnb4z7RzJyHtBcxg8U2jfacae2i9mMyBtSIaZBxK7Kz0 -BMPfmq6JxYHt5H3A72VZ8mqk+zcTEXW1qjPWrNkHR/NZfAudiBuyJ3zclWoF5yct -XANXQ93XbZlwNlKALgoYQ5ly7chiCNt7wZ5KzmWRv3xHy2QqshKRSh/1IKyHH+8O -h8QYBgWORB66YMDIZAVJ -=GUWc ------END PGP SIGNATURE----- +AUX tvtime-1.0.11-disable-insecure-temp-file.patch 716 BLAKE2B 792ea1799758a057a1e62ed9f96a1b08b7e46e698c8e03f112cb93c413752da8d0f004db00b9e7632d4bd118c9c0c956eb9f1e3e03f3bf19b9c05960bfaaea07 SHA512 a1400ba249f000fa5aaacbeafb83d5ae40de54590b70f89595fd6bcc3e913e293643373f3109501893cd2f43d93104b895fbb6dd73d07a887371f770c254a289 +AUX tvtime-1.0.11-fix-warning-implicit-declaration-major.patch 794 BLAKE2B 0c64746923e9620a6334baa7cb18a8438d2ba9440d8c83b217c5ebdf9ace1e294e1c6af0815374654d3c8c1fee67492607eb4b9706eb994b8fad6a4e2d8afa11 SHA512 b99b0204526e323ee15888f4d40fb2abf7383256b043343bb9f5ddc0fd87b6708c1e08e4339a03ef9de1c62f47dc783ed014543a45317262837857504e17d881 +AUX tvtime-1.0.11-freetype.patch 875 BLAKE2B 23a1073c65a79f6e57e4867e67be47457c81092c3a8133b5dbb4de9c868958970eb0c43de23b1252648fa371fb1aa8469af9c0a06a0b7bb855f24d83d0d437ba SHA512 a4fd54323b0c8e06ebe4b0627deff6dd3441b81bcd4f2774ac2eff68861acdc8b136e38dd3556dc23d9fbe8a94d01f3a7ee1507a05b7f7277058bd71d2278244 +AUX tvtime-1.0.11-home.diff 1843 BLAKE2B 59914df86a70f7a8a5bec164ece09f40df364665a8d29e33b026a11f1a55ad74e252bd5d7cd58d043e72276d6e85e4ec2c580dd0190e0d80e7830d671d03271d SHA512 3687e59b58b1a48842bd940c660138abc003e91c8e7dfc5dfe961cba774f4189c080bdc385515f764332c15a160cc81e916edb0d8e275157aa0f313689d80a72 +AUX tvtime-1.0.11-libxml2.patch 2270 BLAKE2B ae62f5874195ad4166acec25e16c76609ccb95734336237c61e240de4222a9455e00e712d13e9043fa84193fc559424a6a59dd3f75d492b0b04a27f9e8ad5356 SHA512 3c8c108adcfb9910c56b2ca4cd83d03f032e8ccdfc8cc8260dee1f56bfdc534138beda6dc54977e522b45cd5abd258356befeffd0ee7e1cb378143b1bd03a108 +AUX tvtime-1.0.11-metainfo.patch 538 BLAKE2B 9c52b99b39830628a2f6f78fd98b01d7b71b9cbf5bd8ce88a2b3e48b9a431bcb5293d640687d99e65a846790a783c3f0f0a67165a7897b4c7f35045cf10e60c8 SHA512 614b9f3341e79a9adb0c14f1ab0e70e7ca4fa35a75d6cefddfde213e76a896358f261a35fa88834565fafc36c06d220a565dffd4b63a3fdbcea986828b716043 +AUX tvtime-1.0.11-saveconfig.patch 7403 BLAKE2B 09f2fad78e3600778c773596ee731db123397c912c299333b2291e7cc4b8efb71f458eb25f94d55b39e7fda06d9da41f21ddec347aaa2f190865a727ed587dad SHA512 f9ff4460103616e4a5067e17becf83ca25e813d367ebc945dcb603aadce5dc8916f0c1feaf0baa96d1e441ab568b678405747efc5e45262e1595ef052c8469d5 +EBUILD tvtime-1.0.11-r6.ebuild 1221 BLAKE2B 313f64ac080235c4ba84c139a994a8d58b7cb0cab109280044fde009db7b8218710058a1400fd5cd3a3b218688df988e3ecba683a6a3cdad438792ce9413ad1b SHA512 c84c29333a26676ce4efbe1bfea237c111f64261d93d32ce65751ec7926c9249d2bccd878c49dbb9376aa6add4acd88bcf15d1fad7c90f6242876999d845eabd diff --git a/media-tv/tvtime/files/tvtime-1.0.11-disable-insecure-temp-file.patch b/media-tv/tvtime/files/tvtime-1.0.11-disable-insecure-temp-file.patch new file mode 100644 index 0000000..1e234bb --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-disable-insecure-temp-file.patch @@ -0,0 +1,25 @@ +--- a/src/utils.c ++++ b/src/utils.c +@@ -202,17 +202,11 @@ + } + } + +- /* If we can't use our /tmp directory, put the fifo in $HOME. */ +- if( !mkdir_and_force_owner( fifodir, uid, getgid() ) ) { +- if( asprintf( &fifo, "%s/.tvtime/tvtimefifo-%s", +- getenv( "HOME" ), hostname ) < 0 ) { +- fifo = 0; +- } +- } else { +- if( asprintf( &fifo, "%s/tvtimefifo-%s", fifodir, hostname ) < 0 ) { +- fifo = 0; +- } +- } ++ /* put the fifo in $HOME */ ++ if( asprintf( &fifo, "%s/.tvtime/tvtimefifo-%s", ++ getenv( "HOME" ), hostname ) < 0 ) { ++ fifo = 0; ++ } + free( hostname ); + free( fifodir ); + return fifo; diff --git a/media-tv/tvtime/files/tvtime-1.0.11-fix-warning-implicit-declaration-major.patch b/media-tv/tvtime/files/tvtime-1.0.11-fix-warning-implicit-declaration-major.patch new file mode 100644 index 0000000..7c07193 --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-fix-warning-implicit-declaration-major.patch @@ -0,0 +1,26 @@ +From bfa96fec44b7db78b43b9b8d20d7ca02616f70ed Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 13 Aug 2018 17:41:57 +0200 +Subject: Fix: "warning: implicit declaration of function 'minor' / 'major'" + errors + +Fix the "warning: implicit declaration of function 'minor' / 'major'" +compiler warnings which ultimately lead to the following build error: + +src/get_media_devices.c:522: undefined reference to `major' + +Signed-off-by: Hans de Goede +--- + src/get_media_devices.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/src/get_media_devices.c ++++ b/src/get_media_devices.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/media-tv/tvtime/files/tvtime-1.0.11-freetype.patch b/media-tv/tvtime/files/tvtime-1.0.11-freetype.patch new file mode 100644 index 0000000..3557e35 --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-freetype.patch @@ -0,0 +1,30 @@ +Description: Use pkg-config for finding freetype +Author: Adrian Bunk +Bug-Debian: https://bugs.debian.org/892455 + +--- a/configure.ac ++++ b/configure.ac +@@ -71,10 +71,7 @@ + dnl freetype + dnl --------------------------------------------- + dnl Test for freetype +-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) +-if test "$FREETYPE_CONFIG" = "no" ; then +- AC_MSG_ERROR(freetype2 needed and freetype-config not found) +-fi ++PKG_CHECK_MODULES(TTF, freetype2) + + dnl --------------------------------------------- + dnl libxml2 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -19,9 +19,6 @@ + tmpdir = /tmp + localedir = $(datadir)/locale + +-TTF_CFLAGS = `$(FREETYPE_CONFIG) --cflags` +-TTF_LIBS = `$(FREETYPE_CONFIG) --libs` +- + # Set the following if you want to specify an additional font directory + # FONT_CFLAGS = -DFONTDIR='/usr/share/fonts/truetype/freefont/' + diff --git a/media-tv/tvtime/files/tvtime-1.0.11-home.diff b/media-tv/tvtime/files/tvtime-1.0.11-home.diff new file mode 100644 index 0000000..746c15d --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-home.diff @@ -0,0 +1,65 @@ +--- a/src/tvtime-command.c ++++ b/src/tvtime-command.c +@@ -39,6 +39,9 @@ + + int main( int argc, char **argv ) + { ++ if( ! getenv( "HOME" ) ) { fprintf( stderr, "this program needs HOME\n" ); exit( 1 ); } ++ if( strlen( getenv( "HOME" ) ) > 230 ) { fprintf( stderr, "HOME is too long\n" ); exit( 1 ); } ++ + int nc = tvtime_num_commands(); + config_t *cfg; + FILE *fifo; +--- a/src/tvtime-configure.c ++++ b/src/tvtime-configure.c +@@ -19,6 +19,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #ifdef HAVE_CONFIG_H +@@ -35,6 +37,9 @@ + + int main( int argc, char **argv ) + { ++ if( ! getenv( "HOME" ) ) { fprintf( stderr, "this program needs HOME\n" ); exit( 1 ); } ++ if( strlen( getenv( "HOME" ) ) > 230 ) { fprintf( stderr, "HOME is too long\n" ); exit( 1 ); } ++ + config_t *cfg; + + /* +--- a/src/tvtime-scanner.c ++++ b/src/tvtime-scanner.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #ifdef HAVE_CONFIG_H +@@ -47,6 +48,9 @@ + + int main( int argc, char **argv ) + { ++ if( ! getenv( "HOME" ) ) { fprintf( stderr, "this program needs HOME\n" ); exit( 1 ); } ++ if( strlen( getenv( "HOME" ) ) > 230 ) { fprintf( stderr, "HOME is too long\n" ); exit( 1 ); } ++ + config_t *cfg; + station_mgr_t *stationmgr = 0; + videoinput_t *vidin; +--- a/src/tvtime.c ++++ b/src/tvtime.c +@@ -2624,6 +2624,9 @@ + + int main( int argc, char **argv ) + { ++ if( ! getenv( "HOME" ) ) { fprintf( stderr, "this program needs HOME\n" ); exit( 1 ); } ++ if( strlen( getenv( "HOME" ) ) > 230 ) { fprintf( stderr, "HOME is too long\n" ); exit( 1 ); } ++ + rtctimer_t *rtctimer = 0; + int read_stdin = 1; + int result = 0; diff --git a/media-tv/tvtime/files/tvtime-1.0.11-libxml2.patch b/media-tv/tvtime/files/tvtime-1.0.11-libxml2.patch new file mode 100644 index 0000000..c697f5d --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-libxml2.patch @@ -0,0 +1,53 @@ +Description: Use pkg-config instead of xml2-config +Author: Adrian Bunk +Bug-Debian: https://bugs.debian.org/949507 + +--- tvtime-1.0.11.orig/configure.ac ++++ tvtime-1.0.11/configure.ac +@@ -77,16 +77,7 @@ dnl ------------------------------------ + dnl libxml2 + dnl --------------------------------------------- + dnl Test for libxml2 +-AC_PATH_PROG(LIBXML2_CONFIG,xml2-config,no) +-if test "$LIBXML2_CONFIG" = "no" ; then +- AC_MSG_ERROR(libxml2 needed and xml2-config not found) +-else +- XML2_LIBS="`$LIBXML2_CONFIG --libs`" +- XML2_FLAG="`$LIBXML2_CONFIG --cflags`" +- AC_DEFINE(HAVE_LIBXML2,,[LIBXML2 support]) +-fi +-AC_SUBST(XML2_LIBS) +-AC_SUBST(XML2_FLAG) ++PKG_CHECK_MODULES(XML2, libxml-2.0) + + dnl --------------------------------------------- + dnl libasound2 +--- tvtime-1.0.11.orig/src/Makefile.am ++++ tvtime-1.0.11/src/Makefile.am +@@ -78,22 +78,22 @@ bin_PROGRAMS = tvtime tvtime-command tvt + + tvtime_SOURCES = $(COMMON_SRCS) $(OUTPUT_SRCS) $(PLUGIN_SRCS) tvtime.c + tvtime_CFLAGS = $(TTF_CFLAGS) $(PNG_CFLAGS) $(OPT_CFLAGS) \ +- $(PLUGIN_CFLAGS) $(X11_CFLAGS) $(XML2_FLAG) $(ALSA_CFLAGS) \ ++ $(PLUGIN_CFLAGS) $(X11_CFLAGS) $(XML2_CFLAGS) $(ALSA_CFLAGS) \ + $(FONT_CFLAGS) $(AM_CFLAGS) + tvtime_LDFLAGS = $(TTF_LIBS) $(ZLIB_LIBS) $(PNG_LIBS) \ + $(X11_LIBS) $(XML2_LIBS) $(ALSA_LIBS) -lm + + tvtime_command_SOURCES = utils.h utils.c tvtimeconf.h tvtimeconf.c \ + tvtime-command.c +-tvtime_command_CFLAGS = $(OPT_CFLAGS) $(XML2_FLAG) $(AM_CFLAGS) ++tvtime_command_CFLAGS = $(OPT_CFLAGS) $(XML2_CFLAGS) $(AM_CFLAGS) + tvtime_command_LDFLAGS = $(ZLIB_LIBS) $(XML2_LIBS) + tvtime_configure_SOURCES = utils.h utils.c tvtimeconf.h tvtimeconf.c \ + tvtime-configure.c +-tvtime_configure_CFLAGS = $(OPT_CFLAGS) $(XML2_FLAG) $(AM_CFLAGS) ++tvtime_configure_CFLAGS = $(OPT_CFLAGS) $(XML2_CFLAGS) $(AM_CFLAGS) + tvtime_configure_LDFLAGS = $(ZLIB_LIBS) $(XML2_LIBS) + tvtime_scanner_SOURCES = utils.h utils.c videoinput.h videoinput.c \ + tvtimeconf.h tvtimeconf.c station.h station.c tvtime-scanner.c \ + get_media_devices.c get_media_devices.h +-tvtime_scanner_CFLAGS = $(OPT_CFLAGS) $(XML2_FLAG) $(ALSA_CFLAGS) $(AM_CFLAGS) ++tvtime_scanner_CFLAGS = $(OPT_CFLAGS) $(XML2_CFLAGS) $(ALSA_CFLAGS) $(AM_CFLAGS) + tvtime_scanner_LDFLAGS = $(ZLIB_LIBS) $(XML2_LIBS) $(ALSA_LIBS) + diff --git a/media-tv/tvtime/files/tvtime-1.0.11-metainfo.patch b/media-tv/tvtime/files/tvtime-1.0.11-metainfo.patch new file mode 100644 index 0000000..8517b92 --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-metainfo.patch @@ -0,0 +1,12 @@ +diff -ur tvtime-orig/docs/Makefile.am tvtime/docs/Makefile.am +--- tvtime-orig/docs/Makefile.am 2021-02-02 19:37:13.096223652 +0100 ++++ tvtime/docs/Makefile.am 2021-02-02 19:38:42.888221598 +0100 +@@ -34,7 +34,7 @@ + # http://www.freedesktop.org/standards/desktop-entry-spec/ + desktopdatadir = $(datadir)/applications + dist_desktopdata_DATA = tvtime.desktop +-appdatadir = $(datadir)/appdata ++appdatadir = $(datadir)/metainfo + dist_appdata_DATA = tvtime.appdata.xml + + # We use $(datadir)/icons/hicolor as our theme from the freedesktop spec diff --git a/media-tv/tvtime/files/tvtime-1.0.11-saveconfig.patch b/media-tv/tvtime/files/tvtime-1.0.11-saveconfig.patch new file mode 100644 index 0000000..9369cba --- /dev/null +++ b/media-tv/tvtime/files/tvtime-1.0.11-saveconfig.patch @@ -0,0 +1,200 @@ +--- a/src/tvtimeconf.c ++++ b/src/tvtimeconf.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #ifdef HAVE_CONFIG_H + # include "config.h" + #endif +@@ -596,7 +597,30 @@ + } + + xmlKeepBlanksDefault( 0 ); +- xmlSaveFormatFile( config_filename, doc, 1 ); ++ ++ if( create_file ) ++ { ++ char *temp_config_filename = strdup( config_filename ); ++ ++ if( ! temp_config_filename ) ++ { ++ fprintf( stderr, "strdup failed for config_filename %s\n", config_filename ); ++ xmlFreeDoc( doc ); ++ return 0; ++ } ++ ++ mkdir_and_force_owner( dirname( temp_config_filename ), getuid(), getgid() ); ++ ++ free( temp_config_filename ); ++ } ++ ++ if( xmlSaveFormatFile( config_filename, doc, 1 ) == -1 ) ++ { ++ fprintf( stderr, "xmlSaveFormatFile returned -1 for config_filename %s\n", config_filename ); ++ xmlFreeDoc( doc ); ++ return 0; ++ } ++ + if( create_file ) { + if( chown( config_filename, getuid(), getgid() ) < 0 ) { + lfprintf( stderr, _("Cannot change owner of %s: %s.\n"), +@@ -897,14 +921,6 @@ + ct->buttonmapmenu[ 4 ] = TVTIME_MENU_UP; + ct->buttonmapmenu[ 5 ] = TVTIME_MENU_DOWN; + +- /* Make the ~/.tvtime directory every time on startup, to be safe. */ +- if( asprintf( &temp_dirname, "%s/.tvtime", getenv( "HOME" ) ) < 0 ) { +- /* FIXME: Clean up ?? */ +- return 0; +- } +- mkdir_and_force_owner( temp_dirname, ct->uid, getgid() ); +- free( temp_dirname ); +- + /* First read in global settings. */ + asprintf( &base, "%s/tvtime.xml", CONFDIR ); + if( file_is_openable_for_read( base ) ) { +@@ -1113,6 +1129,7 @@ + int option_index = 0; + int filename_specified = 0; + int c; ++ int config_needs_saving = 0; + + if( argc == 1 ) { + print_config_usage( argv ); +@@ -1123,11 +1140,11 @@ + "aAhmMF:g:I:d::b::i::c:n::D:f::x:t::Ll::R::p::P::z::", + long_options, &option_index )) != -1 ) { + switch( c ) { +- case 'a': ct->aspect = 1; break; +- case 'A': ct->aspect = 0; break; +- case 'm': ct->fullscreen = 1; break; +- case 'L': ct->borderless = 1; break; +- case 'M': ct->fullscreen = 0; break; ++ case 'a': ct->aspect = 1; config_needs_saving = 1; break; ++ case 'A': ct->aspect = 0; config_needs_saving = 1; break; ++ case 'm': ct->fullscreen = 1; config_needs_saving = 1; break; ++ case 'L': ct->borderless = 1; config_needs_saving = 1; break; ++ case 'M': ct->fullscreen = 0; config_needs_saving = 1; break; + case 'F': if( ct->config_filename ) free( ct->config_filename ); + filename_specified = 1; + ct->config_filename = expand_user_path( optarg ); +@@ -1137,18 +1154,20 @@ + ct->config_filename ); + conf_xml_parse( ct, ct->config_filename ); + } ++ // intentionally not : config_needs_saving = 1; + break; + case 'x': if( ct->mixerdev ) { free( ct->mixerdev ); } +- ct->mixerdev = strdup( optarg ); break; ++ ct->mixerdev = strdup( optarg ); config_needs_saving = 1; break; + case 'g': if( ct->geometry ) { free( ct->geometry ); } +- ct->geometry = strdup( optarg ); break; +- case 'I': ct->inputwidth = atoi( optarg ); break; ++ ct->geometry = strdup( optarg ); config_needs_saving = 1; break; ++ case 'I': ct->inputwidth = atoi( optarg ); config_needs_saving = 1; break; + case 'd': if( !optarg ) { + fprintf( stdout, "V4LDevice:%s\n", + config_get_v4l_device( ct ) ); + } else { + free( ct->v4ldev ); + ct->v4ldev = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'b': if( !optarg ) { +@@ -1157,6 +1176,7 @@ + } else { + free( ct->vbidev ); + ct->vbidev = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'i': if( !optarg ) { +@@ -1164,16 +1184,18 @@ + config_get_inputnum( ct ) ); + } else { + ct->inputnum = atoi( optarg ); ++ config_needs_saving = 1; + } + break; + case 'c': ct->prev_channel = ct->start_channel; +- ct->start_channel = atoi( optarg ); break; ++ ct->start_channel = atoi( optarg ); config_needs_saving = 1; break; + case 't': if( !optarg ) { + fprintf( stdout, "XMLTVFile:%s\n", + config_get_xmltv_file( ct ) ); + } else { + if( ct->xmltvfile ) free( ct->xmltvfile ); + ct->xmltvfile = expand_user_path( optarg ); ++ config_needs_saving = 1; + } + break; + case 'l': if( !optarg ) { +@@ -1182,6 +1204,7 @@ + } else { + if( ct->xmltvlanguage ) free( ct->xmltvlanguage ); + ct->xmltvlanguage = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'n': if( !optarg ) { +@@ -1189,6 +1212,7 @@ + } else { + free( ct->norm ); + ct->norm = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'f': if( !optarg ) { +@@ -1197,6 +1221,7 @@ + } else { + free( ct->freq ); + ct->freq = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'R': if( !optarg ) { +@@ -1204,6 +1229,7 @@ + config_get_priority( ct ) ); + } else { + ct->priority = atoi( optarg ); ++ config_needs_saving = 1; + } + break; + case 'p': if( !optarg ) { +@@ -1212,6 +1238,7 @@ + } else { + free( ct->alsa_inputdev ); + ct->alsa_inputdev = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'P': if( !optarg ) { +@@ -1220,6 +1247,7 @@ + } else { + free( ct->alsa_outputdev ); + ct->alsa_outputdev = strdup( optarg ); ++ config_needs_saving = 1; + } + break; + case 'z': if( !optarg ) { +@@ -1227,6 +1255,7 @@ + config_get_alsa_latency( ct ) ); + } else { + ct->alsa_latency = atoi( optarg ); ++ config_needs_saving = 1; + } + break; + default: +@@ -1235,6 +1264,9 @@ + } + } + ++ if( ! config_needs_saving ) ++ return 1; ++ + if( !filename_specified ) { + char *fifofile = get_tvtime_fifo_filename( config_get_uid( ct ) ); + int fifofd; diff --git a/media-tv/tvtime/tvtime-1.0.11-r6.ebuild b/media-tv/tvtime/tvtime-1.0.11-r6.ebuild new file mode 100644 index 0000000..62fb9d6 --- /dev/null +++ b/media-tv/tvtime/tvtime-1.0.11-r6.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2021 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools eutils git-r3 + +DESCRIPTION="High quality television application for use with video capture cards" +HOMEPAGE="https://git.linuxtv.org/tvtime.git/about/" +EGIT_REPO_URI="https://git.linuxtv.org/tvtime.git" +EGIT_COMMIT="v${PV}" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~amd64-linux ~arm-linux ~x86-linux" +IUSE="nls static xinerama" + +RDEPEND="dev-libs/icu + dev-libs/libxml2 + media-libs/alsa-lib + media-libs/freetype + media-libs/libpng + sys-libs/zlib + x11-libs/libICE + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libXv + x11-libs/libXxf86vm + xinerama? ( x11-libs/libXinerama )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-saveconfig.patch" + "${FILESDIR}/${P}-home.diff" + "${FILESDIR}/${P}-freetype.patch" + "${FILESDIR}/${P}-fix-warning-implicit-declaration-major.patch" + "${FILESDIR}/${P}-disable-insecure-temp-file.patch" + "${FILESDIR}/${P}-libxml2.patch" + "${FILESDIR}/${P}-metainfo.patch" +) + +src_prepare() { + eapply ${PATCHES[@]} + eapply_user + eautoreconf +} + +src_configure() { + econf \ + $(use_enable nls) \ + $(use_enable static) \ + $(use_with xinerama) \ + || die "econf failed" +}