From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8CC28158083 for ; Wed, 4 Sep 2024 13:33:31 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9072CE2A4D; Wed, 4 Sep 2024 13:33:30 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 74228E2A4D for ; Wed, 4 Sep 2024 13:33:30 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 637E2342FA1 for ; Wed, 4 Sep 2024 13:33:29 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9EC161DC5 for ; Wed, 4 Sep 2024 13:33:27 +0000 (UTC) From: "Petr Vaněk" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Petr Vaněk" Message-ID: <1725456777.de0cbbdec3fee91cecfa47f14debe69c672046c0.arkamar@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-misc/vifm/, app-misc/vifm/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-misc/vifm/files/vifm-0.13-musl.patch app-misc/vifm/vifm-0.13-r1.ebuild X-VCS-Directories: app-misc/vifm/ app-misc/vifm/files/ X-VCS-Committer: arkamar X-VCS-Committer-Name: Petr Vaněk X-VCS-Revision: de0cbbdec3fee91cecfa47f14debe69c672046c0 X-VCS-Branch: master Date: Wed, 4 Sep 2024 13:33:27 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 9483f4b7-5e7e-4645-b596-c28675de21bf X-Archives-Hash: d6101b59d2f5ce89cb8c9b749172fa55 commit: de0cbbdec3fee91cecfa47f14debe69c672046c0 Author: Petr Vaněk gentoo org> AuthorDate: Wed Sep 4 13:31:07 2024 +0000 Commit: Petr Vaněk gentoo 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 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 +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 +}