commit:     566af738adf0752304aa98338613fb1e2613e0bf
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 11 01:06:09 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 11 01:07:55 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=566af738

app-text/multitail: fix modern C issue, fix CMake

* Fix modern C issue (ncurses)
* Use GNUInstallDirs

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

 .../multitail-7.1.5-cmake-gnuinstalldirs.patch     | 37 ++++++++++++++++++
 .../multitail/files/multitail-7.1.5-ncurses.patch  | 44 ++++++++++++++++++++++
 ...tail-7.1.5.ebuild => multitail-7.1.5-r1.ebuild} | 16 ++++----
 3 files changed, 90 insertions(+), 7 deletions(-)

diff --git 
a/app-text/multitail/files/multitail-7.1.5-cmake-gnuinstalldirs.patch 
b/app-text/multitail/files/multitail-7.1.5-cmake-gnuinstalldirs.patch
new file mode 100644
index 000000000000..936ad9eaec04
--- /dev/null
+++ b/app-text/multitail/files/multitail-7.1.5-cmake-gnuinstalldirs.patch
@@ -0,0 +1,37 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 22d41c1..ee50976 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,5 @@
+ cmake_minimum_required(VERSION 3.6)
++include(GNUInstallDirs)
+ 
+ ## use ccache if found
+ find_program(CCACHE_EXECUTABLE "ccache" HINTS /usr/local/bin /opt/local/bin)
+@@ -183,18 +183,18 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY 
${PROJECT_BINARY_DIR}/bin)
+ 
+ 
+ # install the bin
+-install(TARGETS multitail DESTINATION bin)
++install(TARGETS multitail DESTINATION ${CMAKE_INSTALL_BINDIR})
+ # install the config file
+-install(FILES multitail.conf DESTINATION etc RENAME multitail.conf.new)
++install(FILES multitail.conf DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})
+ # install the manual files
+-install(FILES multitail.1 DESTINATION share/man/man1)
++install(FILES multitail.1 DESTINATION ${CMAKE_INSTALL_MANDIR})
+ # install doc files
+-install(FILES manual.html DESTINATION share/doc/multitail-${VERSION})
+-install(FILES LICENSE DESTINATION share/doc/multitail-${VERSION})
+-install(FILES README.md DESTINATION share/doc/multitail-${VERSION})
+-install(FILES thanks.txt DESTINATION share/doc/multitail-${VERSION})
++install(FILES manual.html DESTINATION ${CMAKE_INSTALL_DOCDIR})
++install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
++install(FILES README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
++install(FILES thanks.txt DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ # cp conversion-scripts/* etc/multitail/
+-install(DIRECTORY conversion-scripts DESTINATION etc/multitail)
++install(DIRECTORY conversion-scripts DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})
+ 
+ 
+ if(USE_CPPCHECK)

diff --git a/app-text/multitail/files/multitail-7.1.5-ncurses.patch 
b/app-text/multitail/files/multitail-7.1.5-ncurses.patch
new file mode 100644
index 000000000000..ae4f7f150592
--- /dev/null
+++ b/app-text/multitail/files/multitail-7.1.5-ncurses.patch
@@ -0,0 +1,44 @@
+https://bugs.gentoo.org/945647
+https://github.com/folkertvanheusden/multitail/pull/44
+
+From 4ebc884f2276a63c81532deb2e4a068b330d71aa Mon Sep 17 00:00:00 2001
+From: madjic <[email protected]>
+Date: Thu, 12 Dec 2024 23:31:09 +0100
+Subject: [PATCH] fix implicit function declaration for waddnwstr in linux
+
+---
+ mt.c | 2 --
+ mt.h | 4 ++--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/mt.c b/mt.c
+index 39a5c17..a97acad 100644
+--- a/mt.c
++++ b/mt.c
+@@ -707,8 +707,6 @@ void do_color_print(proginfo *cur, char *use_string, int 
prt_start, int prt_end,
+               if (!is_control_or_extended_ascii)
+               {
+ #if defined(UTF8_SUPPORT) && defined(NCURSES_WIDECHAR)
+-// FIXME warning: implicit declaration of function ‘waddnwstr’ is invalid in 
C99  [-Wimplicit-function-declaration]
+-// see /usr/include/ncurses.h
+                       waddnwstr(win -> win, &wcur, 1);
+ #else
+                       wprintw(win -> win, "%c", wcur);
+diff --git a/mt.h b/mt.h
+index f6c37a0..2f401eb 100644
+--- a/mt.h
++++ b/mt.h
+@@ -60,10 +60,10 @@ typedef enum { SCHEME_TYPE_EDIT = 0, SCHEME_TYPE_FILTER } 
filter_edit_scheme_t;
+ #endif
+ 
+ #if defined(UTF8_SUPPORT) && !defined(__APPLE__)
+-        #if defined(__FreeBSD__) || defined (__linux__)
++        #if defined(__FreeBSD__)
+                 #include <panel.h>
+                 #include <curses.h>
+-        #else
++        #else /* if defined (__linux__) */
+                 #include <ncursesw/panel.h>
+                 #include <ncursesw/ncurses.h>
+         #endif
+

diff --git a/app-text/multitail/multitail-7.1.5.ebuild 
b/app-text/multitail/multitail-7.1.5-r1.ebuild
similarity index 81%
rename from app-text/multitail/multitail-7.1.5.ebuild
rename to app-text/multitail/multitail-7.1.5-r1.ebuild
index be9322af7832..00ac29ba15f9 100644
--- a/app-text/multitail/multitail-7.1.5.ebuild
+++ b/app-text/multitail/multitail-7.1.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -20,16 +20,24 @@ BDEPEND="virtual/pkgconfig"
 
 PATCHES=(
        "${FILESDIR}"/${PN}-7.0.0-gentoo.patch
+       "${FILESDIR}"/${PN}-7.1.5-ncurses.patch
+       "${FILESDIR}"/${PN}-7.1.5-cmake-gnuinstalldirs.patch
 )
 
 src_prepare() {
+       # Don't clobber toolchain defaults
+       sed -i -e '/-D_FORTIFY_SOURCE=2/d' CMakeLists.txt || die
+
        cmake_src_prepare
+
        # cmake looks for licence.txt to install it, which does not exist in 
the package
        cp LICENSE license.txt || die
 }
 
 src_configure() {
        local mycmakeargs=(
+               -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+               -DUSE_CPPCHECK=OFF
                -DUTF8_SUPPORT=$(usex unicode)
        )
        CMAKE_BUILD_TYPE=$(usex debug Debug)
@@ -40,12 +48,6 @@ src_configure() {
 src_install() {
        cmake_src_install
 
-       insinto /etc
-       doins multitail.conf
-
-       rm -rf "${ED}"/usr/{ect,etc} || die
-       rm -rf "${ED}"/usr/share/doc/multitail-VERSION=${PV} || die
-
        local DOCS=( README.md thanks.txt )
        local HTML_DOCS=( manual.html )
        einstalldocs

Reply via email to