public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Petr Vaněk" <arkamar@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/vifm/, app-misc/vifm/files/
Date: Wed,  4 Sep 2024 13:33:27 +0000 (UTC)	[thread overview]
Message-ID: <1725456777.de0cbbdec3fee91cecfa47f14debe69c672046c0.arkamar@gentoo> (raw)

commit:     de0cbbdec3fee91cecfa47f14debe69c672046c0
Author:     Petr Vaněk <arkamar <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  4 13:31:07 2024 +0000
Commit:     Petr Vaněk <arkamar <AT> gentoo <DOT> org>
CommitDate: Wed Sep  4 13:32:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de0cbbde

app-misc/vifm: fix tests on musl

Closes: https://bugs.gentoo.org/833896
Signed-off-by: Petr Vaněk <arkamar <AT> gentoo.org>

 app-misc/vifm/files/vifm-0.13-musl.patch | 133 +++++++++++++++++++++++++++++++
 app-misc/vifm/vifm-0.13-r1.ebuild        | 101 +++++++++++++++++++++++
 2 files changed, 234 insertions(+)

diff --git a/app-misc/vifm/files/vifm-0.13-musl.patch b/app-misc/vifm/files/vifm-0.13-musl.patch
new file mode 100644
index 000000000000..6682da354187
--- /dev/null
+++ b/app-misc/vifm/files/vifm-0.13-musl.patch
@@ -0,0 +1,133 @@
+From c97f144231afbeb4215659d5c685fdf1e3fe5612 Mon Sep 17 00:00:00 2001
+From: xaizek <xaizek@posteo.net>
+Date: Sat, 8 Jul 2023 15:02:37 +0300
+Subject: [PATCH] Fix running tests with musl libc
+
+Thanks to Henrik Holst (a.k.a. hholst80).
+---
+Upstream commit https://github.com/vifm/vifm/commit/c97f144231afbeb4215659d5c685fdf1e3fe5612
+
+diff --git a/src/filelist.c b/src/filelist.c
+index 28d26c69f..a7121f238 100644
+--- a/src/filelist.c
++++ b/src/filelist.c
+@@ -329,7 +329,11 @@ flist_free_view(view_t *view)
+ 	modview_info_free(view->vi);
+ 	view->vi = NULL;
+ 
+-	regfree(&view->primary_group);
++	if(view->primary_group_set)
++	{
++		regfree(&view->primary_group);
++		view->primary_group_set = 0;
++	}
+ 
+ 	marks_clear_view(view);
+ 
+diff --git a/src/opt_handlers.c b/src/opt_handlers.c
+index 5d1c000b0..9905b2b7f 100644
+--- a/src/opt_handlers.c
++++ b/src/opt_handlers.c
+@@ -3301,9 +3301,13 @@ set_sortgroups(view_t *view, char **opt, char value[])
+ 	{
+ 		if(scope == OPT_LOCAL)
+ 		{
+-			regfree(&view->primary_group);
++			if(view->primary_group_set)
++			{
++				regfree(&view->primary_group);
++			}
+ 			(void)regexp_compile(&view->primary_group, first,
+ 					REG_EXTENDED | REG_ICASE);
++			view->primary_group_set = 1;
+ 		}
+ 		free(first);
+ 	}
+diff --git a/src/ui/fileview.c b/src/ui/fileview.c
+index 11c80fe8b..ef5f422be 100644
+--- a/src/ui/fileview.c
++++ b/src/ui/fileview.c
+@@ -253,6 +253,7 @@ fview_init(view_t *view)
+ 	view->sort_groups_g = strdup("");
+ 	(void)regexp_compile(&view->primary_group, view->sort_groups,
+ 			REG_EXTENDED | REG_ICASE);
++	view->primary_group_set = 1;
+ 
+ 	view->preview_prg = strdup("");
+ 	view->preview_prg_g = strdup("");
+diff --git a/src/ui/ui.h b/src/ui/ui.h
+index c9fee0782..886eb9d38 100644
+--- a/src/ui/ui.h
++++ b/src/ui/ui.h
+@@ -449,6 +449,9 @@ struct view_t
+ 	char *sort_groups, *sort_groups_g;
+ 	/* Primary group of sort_groups (not sort_groups_g) in compiled form. */
+ 	regex_t primary_group;
++	/* Indicates that primary_group was initialized, which is used to avoid
++	 * freeing uninitialized data or freeing it twice. */
++	int primary_group_set;
+ 
+ 	int history_num;    /* Number of used history elements. */
+ 	int history_pos;    /* Current position in history. */
+diff --git a/tests/misc/sort.c b/tests/misc/sort.c
+index 9938414b5..3db71db5b 100644
+--- a/tests/misc/sort.c
++++ b/tests/misc/sort.c
+@@ -409,8 +409,13 @@ TEST(groups_sorting_works)
+ 	lwin.dir_entry[6].origin = lwin.curr_dir;
+ 
+ 	update_string(&lwin.sort_groups, "-(done|todo).*");
++	if(lwin.primary_group_set)
++	{
++		regfree(&lwin.primary_group);
++	}
+ 	(void)regcomp(&lwin.primary_group, "-(done|todo).*",
+ 			REG_EXTENDED | REG_ICASE);
++	lwin.primary_group_set = 1;
+ 
+ 	/* Ascending sorting. */
+ 
+@@ -437,15 +442,17 @@ TEST(groups_sorting_works)
+ 	assert_string_equal("11-todo-publish", lwin.dir_entry[4].name);
+ 	assert_string_equal("1-done", lwin.dir_entry[5].name);
+ 	assert_string_equal("3-done", lwin.dir_entry[6].name);
+-
+-	regfree(&lwin.primary_group);
+-	update_string(&lwin.sort_groups, NULL);
+ }
+ 
+ TEST(global_groups_sorts_entries_list)
+ {
+ 	update_string(&lwin.sort_groups_g, "([0-9])");
++	if(lwin.primary_group_set)
++	{
++		regfree(&lwin.primary_group);
++	}
+ 	(void)regcomp(&lwin.primary_group, "([a-z])", REG_EXTENDED | REG_ICASE);
++	lwin.primary_group_set = 1;
+ 
+ 	dir_entry_t entry_list[] = { { .name = "a1" }, { .name = "b0" } };
+ 	entries_t entries = { entry_list, 2 };
+diff --git a/tests/test-support/test-utils.c b/tests/test-support/test-utils.c
+index 932bdc9c9..e3d9ba694 100644
+--- a/tests/test-support/test-utils.c
++++ b/tests/test-support/test-utils.c
+@@ -32,6 +32,7 @@
+ #include "../../src/utils/macros.h"
+ #include "../../src/utils/matcher.h"
+ #include "../../src/utils/path.h"
++#include "../../src/utils/regexp.h"
+ #include "../../src/utils/str.h"
+ #include "../../src/utils/string_array.h"
+ #include "../../src/utils/utils.h"
+@@ -254,6 +255,10 @@ view_setup(view_t *view)
+ 	view_set_sort(view->sort, SK_BY_NAME, SK_NONE);
+ 	view_set_sort(view->sort_g, SK_BY_NAME, SK_NONE);
+ 
++	/* The code assumes that this field is initialized. */
++	assert_success(regexp_compile(&view->primary_group, "", REG_ICASE));
++	view->primary_group_set = 1;
++
+ 	view->custom.entry_count = 0;
+ 	view->custom.entries = NULL;
+ 

diff --git a/app-misc/vifm/vifm-0.13-r1.ebuild b/app-misc/vifm/vifm-0.13-r1.ebuild
new file mode 100644
index 000000000000..524072b9c243
--- /dev/null
+++ b/app-misc/vifm/vifm-0.13-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools vim-doc xdg
+
+DESCRIPTION="Console file manager with vi(m)-like keybindings"
+HOMEPAGE="https://vifm.info/"
+if [[ ${PV} == 9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/vifm/vifm"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/vifm/vifm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm64 ~ppc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+extended-keys gtk +magic +vim +vim-syntax X"
+
+DEPEND="
+	>=sys-libs/ncurses-5.9-r3:=
+	magic? ( sys-apps/file )
+	gtk? ( x11-libs/gtk+:2 )
+	X? ( x11-libs/libX11 )
+"
+RDEPEND="
+	${DEPEND}
+	vim? ( || ( app-editors/vim app-editors/gvim ) )
+	vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )
+"
+# "Either perl or Vim is necessary to generate tags for documentation in Vim's format." from configure
+BDEPEND="|| ( dev-lang/perl app-editors/vim )"
+
+PATCHES=(
+	# Bacported fix from upstream,
+	# see also https://github.com/vifm/vifm/issues/913
+	"${FILESDIR}/${P}-musl.patch"
+)
+
+src_prepare() {
+	default
+	eautoreconf
+}
+
+src_configure() {
+	# developer just turns off optimisations and adds -Werror again
+	# bug #855386
+	econf \
+		--disable-developer \
+		--disable-werror \
+		$(use_enable extended-keys) \
+		$(use_with magic libmagic) \
+		$(use_with gtk) \
+		$(use_with X X11)
+}
+
+src_install() {
+	default
+
+	if use vim; then
+		local t
+		for t in app plugin; do
+			insinto /usr/share/vim/vimfiles/"${t}"
+			doins -r data/vim/doc/${t}/${PN}*
+		done
+	fi
+
+	if use vim-syntax; then
+		local t
+		for t in ftdetect ftplugin syntax; do
+			insinto /usr/share/vim/vimfiles/"${t}"
+			doins -r data/vim/${t}/${PN}*
+		done
+	fi
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+	if use vim; then
+		update_vim_helptags
+
+		if [[ -n ${REPLACING_VERSIONS} ]]; then
+			elog
+			elog "You don't need to copy or link any files for"
+			elog "  the vim plugin and documentation to work anymore."
+			elog "If you copied any vifm files to ~/.vim/ manually"
+			elog "  in earlier vifm versions, please delete them."
+		fi
+		elog
+		elog "To use vim in vifm to view the documentation"
+		elog "  edit ~/.vifm/vifmrc and set vimhelp instead of novimhelp"
+		elog
+	fi
+}
+
+pkg_postrm() {
+	xdg_pkg_postrm
+	use vim && update_vim_helptags
+}


             reply	other threads:[~2024-09-04 13:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-04 13:33 Petr Vaněk [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-11-25 23:28 [gentoo-commits] repo/gentoo:master commit in: app-misc/vifm/, app-misc/vifm/files/ Sam James
2018-04-24 11:09 José María Alonso
2016-01-09 19:54 José María Alonso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1725456777.de0cbbdec3fee91cecfa47f14debe69c672046c0.arkamar@gentoo \
    --to=arkamar@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox