Sync with portage [Fri Sep 9 18:52:41 MSK 2022].

akrasnyh 2330
root 2 years ago
parent 52f9a450ca
commit b1a9dd79a2

Binary file not shown.

Binary file not shown.

@ -1,10 +1,10 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit gnome2 python-single-r1

@ -1,10 +1,10 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit autotools gnome.org gnome2-utils python-single-r1 vala

@ -4,7 +4,7 @@
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit autotools gnome.org gnome2-utils python-single-r1 vala

@ -1,2 +1,2 @@
DIST kontrast-22.04.3.tar.xz 125860 BLAKE2B 78b87ebfb0958ce7bf2abf7a70ada000f959aa2cd648ebaf70ffef5500458bf1f9c42433176caa1ac29ab5b0ed51452092c796f679d7c56e4188e2a746169a05 SHA512 e77b2b129f115d2cf319a2a5f6b56bc576c00c506b542cc6239098245da17b966a71caf05f0868af7d5f3807be033bfc552b9fd1856046889363d1012bf13efe
DIST kontrast-22.08.0.tar.xz 127248 BLAKE2B c052c8b011eca195af78b9d58ee654a5655e85b7b3e79c36b53d2065ee318724b1cc4d3cca20a8f39f2fa0c08025e9421f480f79d1e010452c858943aa32fe12 SHA512 d433f1ad0c8fad901352cdf5552304106f8dab033c012bbed95e7f9badda7deb3772fc941d771097508a090af8224a2521a81b3fb9b8e20e348c748de4a45802
DIST kontrast-22.08.1.tar.xz 127276 BLAKE2B 6b9ebc2fe44a6ff3b67afe34b195565f2ab8ec61b503fb9109789f152569a640d7fbd52c767251d02583c03cdd485f18308cbfff475ccadd3da28a5e9a000e63 SHA512 06f55d42a15ae632770f483486cb2848e91db1b5fbb89f5670e9413c39c9361019dac7bd5847fea43b48aa3b9e45d4a6d0943fc76d78722616bc94c881ad5776

Binary file not shown.

@ -4,3 +4,4 @@ DIST aws-cli-1.25.64.gh.tar.gz 2263441 BLAKE2B d68ef0a3dabba879d9d650a911d5f2861
DIST aws-cli-1.25.65.gh.tar.gz 2263933 BLAKE2B 5c516e6a95a333073cf7200eff476e625e9b832b32b44fc41e3656c5c78710ba8272fdb5fbafcfe85fe17853c1f40e26fd6de84a6c4c42a7cd6d7d2ce41ab8f5 SHA512 7dcdd2d0e05000f09d41a24c8e14ee7b4623e89f027c193c67635296f568c8d1f383956c5c351c85b7c48150796203dce777ef2f6376c3778ea2ec8b8f39072b
DIST aws-cli-1.25.66.gh.tar.gz 2264111 BLAKE2B 7aaa42d654a873fea44fe64e0805c240700830c653ecfbfab4bf8838ba2aca5ec9508241e9fd9329b546d098eb4c68f886dac1afc31e12cea4779cc35ec091fb SHA512 dcddfebf2051fad23208c2617596c6aa4462e940056f5963526983c15b6c33bb118a769f139a8c8297d413e9a6ae129d7e14a6ffa56aa595dcde0128ea10d5c2
DIST aws-cli-1.25.67.gh.tar.gz 2264702 BLAKE2B 88bdeab8fe85d17d7aa78ff00125e1c3e1d098093d68b7e7213896d101bff443cb2ed23b8ed9245eb3727b41abd34a8047616eee777f802d52b3a26594e214c5 SHA512 a01b333d36160a43c1f28d01600e1f1d095e4713500bac3b13fc336bf790943251fefb72dc7bc177eaf4265b794658d62ff72ee00abd348c1265d04b58564136
DIST aws-cli-1.25.70.gh.tar.gz 2267239 BLAKE2B e20606c8b3df77698f6ad67eb28a63d8ddb5750782a5ca5a690d36bf5ec5d171aebda115a3c828fbae948037d71e11ead73e163fdaa55e81614ea245a51f54e5 SHA512 7984a56f4e224389822ebb6aa56927cc669630ba8fbebbb59178406ce1dcbb298ef0f83353c02ab37eaf4e0bfcd6b86363712d3f711540993044fa6517b84364

@ -0,0 +1,72 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..10} )
inherit bash-completion-r1 distutils-r1 multiprocessing
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
# botocore is x.(y+2).(z-1)
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(( $(ver_cut 3-) - 1 ))"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/pytest-forked[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -1,10 +1,10 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit distutils-r1

@ -1,3 +1,2 @@
DIST lnav-0.10.0.tar.gz 5678120 BLAKE2B d64957e94cc5415e663db8ab5722e6424381aa83a2c9430397baed782b47064ed8f460f27bec6256206cabb43f20eba9318aec1991115b577fcc9c37585dd932 SHA512 d07f4e594b9b905453f4c0ac54db2612e3bed533b47f4fd5b6b0da4e27a2d3bb611cbdf9801c12b6edae045c58881ff1f458f144981fe3d8a41f8d113e847efd
DIST lnav-0.10.1.tar.gz 5707151 BLAKE2B ae82b705830c6ea38e2fa4f3832a2fd1d8ce8b5ef00d6a3fe750e4f5e7080ae29fde845f2c5055e2684aad1959368ff90abdc130130f8d6f0152426487e7396c SHA512 fff9632c1acbef80ba9d4214fd3ef485727792353fe493cfa4f2e9412bb371f50f2e1a735ded3d7bd8b16df5e93e03b0f3def296770e7dd0ad2206fd9f94690d
DIST lnav-0.9.0.tar.gz 1094734 BLAKE2B 79d6b035d9fc1efba618dbbd0924dbac2c8a2b3316849164c8c1a3782c7e8b85f12ade02a973d0c4fabff64b38e26fd579f1931aeafb05396ece7e75608cfc5d SHA512 4f03c83003b262c6aa1d1e87d61b4a3ae8f1ccd33a2df1b451f263d3925791d3b46285bbe276d89733a2bd464be9029e7100ce12fdfe3e009a089f250e601151
DIST lnav-0.11.0.tar.gz 9586979 BLAKE2B fa333d2dbc3c2a5cb8b96ea4cbf84412be117b9d9ec999bab784e7aefab25cd01edcb65617468b8a1fbc46d554cf20a02bc901c9d75f2c5831359da37a19fd22 SHA512 f10938aacb1e170a6912090c5de8e85e9aae5bc456e57b49192a21020e7dfa20414d1f5b66fd25b3c1ea5a3d1fd3bd92af6fe7e0c6b73953688c3d861266fd97

@ -1,75 +0,0 @@
--- a/test/test_remote.sh
+++ b/test/test_remote.sh
@@ -76,38 +76,38 @@
error: unable to open file: nonexistent-host: -- failed to ssh to host: ...
EOF
-run_test ${lnav_test} -d /tmp/lnav.err -n \
- localhost:nonexistent-file
+# run_test ${lnav_test} -d /tmp/lnav.err -n \
+# localhost:nonexistent-file
-check_error_output "no error for nonexistent-file?" <<EOF
-error: unable to open file: localhost:nonexistent-file -- unable to lstat -- ENOENT[2]
-EOF
-
-run_test ${lnav_test} -d /tmp/lnav.err -n \
- localhost:${test_dir}/logfile_access_log.0
-
-check_output "could not download remote file?" <<EOF
-192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
-EOF
-
-run_test ${lnav_test} -d /tmp/lnav.err -n \
- "localhost:${test_dir}/logfile_access_log.*"
-
-check_output "could not download remote file?" <<EOF
-192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
-10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-"
-EOF
-
-run_test ${lnav_test} -d /tmp/lnav.err -n \
- "localhost:${test_dir}/remote-log-dir"
-
-check_output "could not download remote file?" <<EOF
-192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
-192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
-10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-"
-EOF
+# check_error_output "no error for nonexistent-file?" <<EOF
+# error: unable to open file: localhost:nonexistent-file -- unable to lstat -- ENOENT[2]
+# EOF
+
+# run_test ${lnav_test} -d /tmp/lnav.err -n \
+# localhost:${test_dir}/logfile_access_log.0
+
+# check_output "could not download remote file?" <<EOF
+# 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
+# EOF
+
+# run_test ${lnav_test} -d /tmp/lnav.err -n \
+# "localhost:${test_dir}/logfile_access_log.*"
+
+# check_output "could not download remote file?" <<EOF
+# 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
+# 10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-"
+# EOF
+
+# run_test ${lnav_test} -d /tmp/lnav.err -n \
+# "localhost:${test_dir}/remote-log-dir"
+
+# check_output "could not download remote file?" <<EOF
+# 192.168.202.254 - - [20/Jul/2009:22:59:26 +0000] "GET /vmw/cgi/tramp HTTP/1.0" 200 134 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkboot.gz HTTP/1.0" 404 46210 "-" "gPXE/0.9.7"
+# 192.168.202.254 - - [20/Jul/2009:22:59:29 +0000] "GET /vmw/vSphere/default/vmkernel.gz HTTP/1.0" 200 78929 "-" "gPXE/0.9.7"
+# 10.112.81.15 - - [15/Feb/2013:06:00:31 +0000] "-" 400 0 "-" "-"
+# EOF

@ -1,73 +0,0 @@
From 85515b2c196f2e361e93c158201f74177dc4ae37 Mon Sep 17 00:00:00 2001
From: Randy Barlow <randy@electronsweatshop.com>
Date: Sat, 18 Sep 2021 21:56:19 -0400
Subject: [PATCH] Provide a configure flag to use the system doctest
This will allow distributions to more easily maintain
incompatibilies between doctest and the rest of their software.
Fixes #912
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
---
configure.ac | 21 +
src/Makefile.am | 4 +
src/doctest.hh | 5502 +--------------------------------------
src/doctest_vendored.hh | 5464 ++++++++++++++++++++++++++++++++++++++
4 files changed, 5527 insertions(+), 5464 deletions(-)
create mode 100644 src/doctest_vendored.hh
diff --git a/configure.ac b/configure.ac
index f2127def..33746d1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -153,6 +153,27 @@ AS_IF([test "x$enable_simd" = "xyes"], [
])
+AC_ARG_WITH([system_doctest],
+ AS_HELP_STRING(
+ [--with-system-doctest],
+ [Use the system provided doctest library rather than the bundled one]
+ ),
+ [], []
+)
+
+AS_IF([test "x$with_system_doctest" = "xyes"], [
+ AC_CHECK_HEADERS(doctest/doctest.h)
+ AS_IF([test "x$ac_cv_header_doctest_doctest_h" != "xyes"], [
+ AC_MSG_ERROR([system doctest not found])dnl
+ ])
+ AC_DEFINE([DOCTEST_HEADER], ["doctest/doctest.h"], [doctest include path])
+])
+AS_IF([test "x$with_system_doctest" != "xyes"], [
+ AC_DEFINE([DOCTEST_HEADER], ["doctest_vendored.hh"], [doctest include path])
+ AS_VAR_SET(doctest_vendored_h, "doctest_vendored.hh")
+ AC_SUBST(doctest_vendored_h)
+])
+
LNAV_WITH_JEMALLOC
diff --git a/src/Makefile.am b/src/Makefile.am
index 9be9168e..8dc0cd94 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -151,6 +151,9 @@ dist_noinst_DATA = \
$(FORMAT_FILES) \
xterm-palette.json
+EXTRA_HEADERS = \
+ doctest_vendored.hh
+
noinst_HEADERS = \
all_logs_vtab.hh \
ansi_scrubber.hh \
@@ -174,6 +177,7 @@ noinst_HEADERS = \
db_sub_source.hh \
doc_status_source.hh \
doctest.hh \
+ $(doctest_vendored_h) \
elem_to_json.hh \
environ_vtab.hh \
field_overlay_source.hh \

@ -0,0 +1,34 @@
From b16833392b74826f8cd437675fc29e4a0b88efcd Mon Sep 17 00:00:00 2001
From: Randy Barlow <randy@electronsweatshop.com>
Date: Sun, 4 Sep 2022 00:03:33 -0400
Subject: [PATCH] Only build ssh keys when needed
I believe the test/remote folder only needs to be setup for
test/test_remote.sh. Prior to this commit, it was being built during
make, rather than just during make check. This commit adjusts things so
that the test/remote folder is only generated during make check, and
only when test/test_remote.sh is being executed.
Fixes #1040
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
---
test/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/Makefile.am b/test/Makefile.am
index fd09a656..457f3cb0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -478,7 +478,7 @@ DISTCLEANFILES = \
empty \
scripts-empty
-all-local: remote/ssh_host_dsa_key remote/ssh_host_rsa_key remote/id_rsa
+test_remote.sh.log: remote/ssh_host_dsa_key remote/ssh_host_rsa_key remote/id_rsa
distclean-local:
$(RM_V)rm -rf remote remote-tmp not:a:remote:dir
--
2.37.2

@ -0,0 +1,67 @@
From 70231dce88cf47f2f3e2b396fe0623ea74eeadfc Mon Sep 17 00:00:00 2001
From: Randy Barlow <randy@electronsweatshop.com>
Date: Sat, 3 Sep 2022 18:13:08 -0400
Subject: [PATCH] Disable some flaky tests
Certain tests commented out for stability reasons:
* listview: Fails when building inside sandbox
https://github.com/tstack/lnav/issues/1039
* mvattrline: Fails on some testers boxes. Documented here:
https://github.com/tstack/lnav/issues/911
* logfile: Flaky. Fails some times and not others. i.e. Race condition
* tui: Can hang the build
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
---
test/Makefile.am | 8 --------
1 file changed, 8 deletions(-)
diff --git a/test/Makefile.am b/test/Makefile.am
index fd09a656..07d6758e 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -188,10 +188,7 @@ dist_noinst_SCRIPTS = \
test_grep_proc.sh \
test_json_format.sh \
test_line_buffer.sh \
- test_listview.sh \
- test_logfile.sh \
test_meta.sh \
- test_mvwattrline.sh \
test_regex101.sh \
test_remote.sh \
test_scripts.sh \
@@ -211,7 +208,6 @@ dist_noinst_SCRIPTS = \
test_sql_xml_func.sh \
test_sql_yaml_func.sh \
test_text_file.sh \
- test_tui.sh \
test_view_colors.sh \
test_vt52_curses.sh \
test_pretty_print.sh
@@ -391,14 +387,11 @@ TESTS = \
test_cmds.sh \
test_config.sh \
test_events.sh \
- test_listview.sh \
test_meta.sh \
- test_mvwattrline.sh \
test_grep_proc.sh \
test_grep_proc2 \
test_json_format.sh \
test_log_accel \
- test_logfile.sh \
test_reltime \
test_scripts.sh \
test_sessions.sh \
@@ -417,7 +410,6 @@ TESTS = \
test_sql_xml_func.sh \
test_sql_yaml_func.sh \
test_text_file.sh \
- test_tui.sh \
test_data_parser.sh \
test_pretty_print.sh \
test_view_colors.sh \
--
2.37.2

@ -1,18 +0,0 @@
--- lnav-0.8.4/test/Makefile.am
+++ lnav-0.8.4/test/Makefile.am
@@ -373,7 +373,6 @@
test_concise \
test_line_buffer2 \
test_line_buffer.sh \
- test_listview.sh \
test_meta.sh \
test_grep_proc.sh \
test_grep_proc2 \
@@ -381,7 +380,6 @@
test_json_op.sh \
test_json_ptr_walk.sh \
test_log_accel \
- test_logfile.sh \
test_pcrepp \
test_reltime \
test_scripts.sh \

@ -1,10 +0,0 @@
--- a/m4/ax_with_curses.m4 2019-07-28 08:49:13.670014444 -0500
+++ b/m4/ax_with_curses.m4 2019-07-28 08:46:32.280013473 -0500
@@ -216,6 +216,8 @@
ax_cv_curses=yes
ax_cv_curses_which=ncursesw
CURSES_LIB="-lncursesw"
+ temp_lib=`echo $ax_saved_LIBS|sed 's/tinfo/tinfow/'`
+ ax_saved_LIBS=$temp_lib
AC_DEFINE([HAVE_NCURSESW], [1], [Define to 1 if the NcursesW library is present])
AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open compatible Curses library is present])

@ -1,27 +0,0 @@
From 60dde499ac87c2399ac24ae85c98ed8cce564858 Mon Sep 17 00:00:00 2001
From: Timothy Stack <timothyshanestack@gmail.com>
Date: Thu, 31 Dec 2020 23:23:56 -0800
Subject: [PATCH] [tests] fix test to make it insensitive to the current date
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
--- a/test/test_sql.sh
+++ b/test/test_sql.sh
@@ -1012,13 +1012,13 @@ EOF
cat ${test_dir}/logfile_syslog.0 | run_test ${lnav_test} -n \
- -c ";select log_time from syslog_log where log_procname = 'automount'"
+ -c ";select log_body from syslog_log where log_procname = 'automount'"
check_output "querying against stdin is not working?" <<EOF
- log_time
-2020-11-03 09:23:38.000
-2020-11-03 09:23:38.000
-2020-11-03 09:23:38.000
+ log_body
+ lookup(file): lookup for foobar failed
+ attempting to mount entry /auto/opt
+ lookup(file): lookup for opt failed
EOF

@ -1,23 +0,0 @@
From cc072d29ead6f1df896bc61b83d7d41dab0b7132 Mon Sep 17 00:00:00 2001
From: Timothy Stack <timothyshanestack@gmail.com>
Date: Thu, 31 Dec 2020 23:26:57 -0800
Subject: [PATCH] [tests] update another date-sensitive test
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
--- a/test/test_sql.sh
+++ b/test/test_sql.sh
@@ -1023,11 +1023,11 @@ EOF
cat ${test_dir}/logfile_syslog.0 | run_test ${lnav_test} -n \
- -c ";select log_time from syslog_log where log_procname = 'sudo'"
+ -c ";select log_body from syslog_log where log_procname = 'sudo'"
check_output "single result is not working?" <<EOF
- log_time
-2020-11-03 09:47:02.000
+ log_body
+ timstack : TTY=pts/6 ; PWD=/auto/wstimstack/rpms/lbuild/test ; USER=root ; COMMAND=/usr/bin/tail /var/log/messages
EOF
# Create a dummy database for the next couple of tests to consume.

@ -1,551 +0,0 @@
From e6d2e2d2b95c27cc85397d4af9528111c5304d02 Mon Sep 17 00:00:00 2001
From: Timothy Stack <timothyshanestack@gmail.com>
Date: Sun, 30 May 2021 13:33:05 -0700
Subject: [PATCH] [logfile] add notes for automatic decisions and fix compile
errors
Fixes #864
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
--- a/m4/ax_cxx_compile_stdcxx.m4
+++ b/m4/ax_cxx_compile_stdcxx.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
+# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
# ===========================================================================
#
# SYNOPSIS
@@ -16,7 +16,7 @@
# The second argument, if specified, indicates whether you insist on an
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
# -std=c++11). If neither is specified, you get whatever works, with
-# preference for an extended mode.
+# preference for no added switch, and then for an extended mode.
#
# The third argument, if specified 'mandatory' or if left unspecified,
# indicates that baseline support for the specified C++ standard is
@@ -33,21 +33,24 @@
# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
# Copyright (c) 2015 Paul Norman <penorman@mac.com>
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
+# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
+# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
+# Copyright (c) 2020 Jason Merrill <jason@redhat.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 4
+#serial 12
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
dnl (serial version number 13).
AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
- m4_if([$1], [11], [],
- [$1], [14], [],
- [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
+ m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
+ [$1], [14], [ax_cxx_compile_alternatives="14 1y"],
+ [$1], [17], [ax_cxx_compile_alternatives="17 1z"],
[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
m4_if([$2], [], [],
[$2], [ext], [],
@@ -59,18 +62,21 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
[m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
AC_LANG_PUSH([C++])dnl
ac_success=no
- AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
- ax_cv_cxx_compile_cxx$1,
- [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
- [ax_cv_cxx_compile_cxx$1=yes],
- [ax_cv_cxx_compile_cxx$1=no])])
- if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
- ac_success=yes
- fi
+
+ m4_if([$2], [], [dnl
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
+ ax_cv_cxx_compile_cxx$1,
+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [ax_cv_cxx_compile_cxx$1=yes],
+ [ax_cv_cxx_compile_cxx$1=no])])
+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
+ ac_success=yes
+ fi])
m4_if([$2], [noext], [], [dnl
if test x$ac_success = xno; then
- for switch in -std=gnu++$1 -std=gnu++0x; do
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ switch="-std=gnu++${alternative}"
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
$cachevar,
@@ -96,22 +102,27 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
dnl HP's aCC needs +std=c++11 according to:
dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
dnl Cray's crayCC needs "-h std=c++11"
- for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
- cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
- AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
- $cachevar,
- [ac_save_CXX="$CXX"
- CXX="$CXX $switch"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
- [eval $cachevar=yes],
- [eval $cachevar=no])
- CXX="$ac_save_CXX"])
- if eval test x\$$cachevar = xyes; then
- CXX="$CXX $switch"
- if test -n "$CXXCPP" ; then
- CXXCPP="$CXXCPP $switch"
+ for alternative in ${ax_cxx_compile_alternatives}; do
+ for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
+ $cachevar,
+ [ac_save_CXX="$CXX"
+ CXX="$CXX $switch"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
+ [eval $cachevar=yes],
+ [eval $cachevar=no])
+ CXX="$ac_save_CXX"])
+ if eval test x\$$cachevar = xyes; then
+ CXX="$CXX $switch"
+ if test -n "$CXXCPP" ; then
+ CXXCPP="$CXXCPP $switch"
+ fi
+ ac_success=yes
+ break
fi
- ac_success=yes
+ done
+ if test x$ac_success = xyes; then
break
fi
done
@@ -148,6 +159,11 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
)
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_17
+)
dnl Tests for new features in C++11
@@ -185,11 +201,13 @@ namespace cxx11
struct Base
{
+ virtual ~Base() {}
virtual void f() {}
};
struct Derived : public Base
{
+ virtual ~Derived() override {}
virtual void f() override {}
};
@@ -518,7 +536,7 @@ namespace cxx14
}
- namespace test_digit_seperators
+ namespace test_digit_separators
{
constexpr auto ten_million = 100'000'000;
@@ -560,3 +578,385 @@ namespace cxx14
#endif // __cplusplus >= 201402L
]])
+
+
+dnl Tests for new features in C++17
+
+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
+
+// If the compiler admits that it is not ready for C++17, why torture it?
+// Hopefully, this will speed up the test.
+
+#ifndef __cplusplus
+
+#error "This is not a C++ compiler"
+
+#elif __cplusplus < 201703L
+
+#error "This is not a C++17 compiler"
+
+#else
+
+#include <initializer_list>
+#include <utility>
+#include <type_traits>
+
+namespace cxx17
+{
+
+ namespace test_constexpr_lambdas
+ {
+
+ constexpr int foo = [](){return 42;}();
+
+ }
+
+ namespace test::nested_namespace::definitions
+ {
+
+ }
+
+ namespace test_fold_expression
+ {
+
+ template<typename... Args>
+ int multiply(Args... args)
+ {
+ return (args * ... * 1);
+ }
+
+ template<typename... Args>
+ bool all(Args... args)
+ {
+ return (args && ...);
+ }
+
+ }
+
+ namespace test_extended_static_assert
+ {
+
+ static_assert (true);
+
+ }
+
+ namespace test_auto_brace_init_list
+ {
+
+ auto foo = {5};
+ auto bar {5};
+
+ static_assert(std::is_same<std::initializer_list<int>, decltype(foo)>::value);
+ static_assert(std::is_same<int, decltype(bar)>::value);
+ }
+
+ namespace test_typename_in_template_template_parameter
+ {
+
+ template<template<typename> typename X> struct D;
+
+ }
+
+ namespace test_fallthrough_nodiscard_maybe_unused_attributes
+ {
+
+ int f1()
+ {
+ return 42;
+ }
+
+ [[nodiscard]] int f2()
+ {
+ [[maybe_unused]] auto unused = f1();
+
+ switch (f1())
+ {
+ case 17:
+ f1();
+ [[fallthrough]];
+ case 42:
+ f1();
+ }
+ return f1();
+ }
+
+ }
+
+ namespace test_extended_aggregate_initialization
+ {
+
+ struct base1
+ {
+ int b1, b2 = 42;
+ };
+
+ struct base2
+ {
+ base2() {
+ b3 = 42;
+ }
+ int b3;
+ };
+
+ struct derived : base1, base2
+ {
+ int d;
+ };
+
+ derived d1 {{1, 2}, {}, 4}; // full initialization
+ derived d2 {{}, {}, 4}; // value-initialized bases
+
+ }
+
+ namespace test_general_range_based_for_loop
+ {
+
+ struct iter
+ {
+ int i;
+
+ int& operator* ()
+ {
+ return i;
+ }
+
+ const int& operator* () const
+ {
+ return i;
+ }
+
+ iter& operator++()
+ {
+ ++i;
+ return *this;
+ }
+ };
+
+ struct sentinel
+ {
+ int i;
+ };
+
+ bool operator== (const iter& i, const sentinel& s)
+ {
+ return i.i == s.i;
+ }
+
+ bool operator!= (const iter& i, const sentinel& s)
+ {
+ return !(i == s);
+ }
+
+ struct range
+ {
+ iter begin() const
+ {
+ return {0};
+ }
+
+ sentinel end() const
+ {
+ return {5};
+ }
+ };
+
+ void f()
+ {
+ range r {};
+
+ for (auto i : r)
+ {
+ [[maybe_unused]] auto v = i;
+ }
+ }
+
+ }
+
+ namespace test_lambda_capture_asterisk_this_by_value
+ {
+
+ struct t
+ {
+ int i;
+ int foo()
+ {
+ return [*this]()
+ {
+ return i;
+ }();
+ }
+ };
+
+ }
+
+ namespace test_enum_class_construction
+ {
+
+ enum class byte : unsigned char
+ {};
+
+ byte foo {42};
+
+ }
+
+ namespace test_constexpr_if
+ {
+
+ template <bool cond>
+ int f ()
+ {
+ if constexpr(cond)
+ {
+ return 13;
+ }
+ else
+ {
+ return 42;
+ }
+ }
+
+ }
+
+ namespace test_selection_statement_with_initializer
+ {
+
+ int f()
+ {
+ return 13;
+ }
+
+ int f2()
+ {
+ if (auto i = f(); i > 0)
+ {
+ return 3;
+ }
+
+ switch (auto i = f(); i + 4)
+ {
+ case 17:
+ return 2;
+
+ default:
+ return 1;
+ }
+ }
+
+ }
+
+ namespace test_template_argument_deduction_for_class_templates
+ {
+
+ template <typename T1, typename T2>
+ struct pair
+ {
+ pair (T1 p1, T2 p2)
+ : m1 {p1},
+ m2 {p2}
+ {}
+
+ T1 m1;
+ T2 m2;
+ };
+
+ void f()
+ {
+ [[maybe_unused]] auto p = pair{13, 42u};
+ }
+
+ }
+
+ namespace test_non_type_auto_template_parameters
+ {
+
+ template <auto n>
+ struct B
+ {};
+
+ B<5> b1;
+ B<'a'> b2;
+
+ }
+
+ namespace test_structured_bindings
+ {
+
+ int arr[2] = { 1, 2 };
+ std::pair<int, int> pr = { 1, 2 };
+
+ auto f1() -> int(&)[2]
+ {
+ return arr;
+ }
+
+ auto f2() -> std::pair<int, int>&
+ {
+ return pr;
+ }
+
+ struct S
+ {
+ int x1 : 2;
+ volatile double y1;
+ };
+
+ S f3()
+ {
+ return {};
+ }
+
+ auto [ x1, y1 ] = f1();
+ auto& [ xr1, yr1 ] = f1();
+ auto [ x2, y2 ] = f2();
+ auto& [ xr2, yr2 ] = f2();
+ const auto [ x3, y3 ] = f3();
+
+ }
+
+ namespace test_exception_spec_type_system
+ {
+
+ struct Good {};
+ struct Bad {};
+
+ void g1() noexcept;
+ void g2();
+
+ template<typename T>
+ Bad
+ f(T*, T*);
+
+ template<typename T1, typename T2>
+ Good
+ f(T1*, T2*);
+
+ static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
+
+ }
+
+ namespace test_inline_variables
+ {
+
+ template<class T> void f(T)
+ {}
+
+ template<class T> inline T g(T)
+ {
+ return T{};
+ }
+
+ template<> inline void f<>(int)
+ {}
+
+ template<> int g<>(int)
+ {
+ return 5;
+ }
+
+ }
+
+} // namespace cxx17
+
+#endif // __cplusplus < 201703L
+
+]])

@ -1,82 +0,0 @@
From 141436933a8d30edfd33aa5fcfb0c93cfa3ae9d5 Mon Sep 17 00:00:00 2001
From: Timothy Stack <timothyshanestack@gmail.com>
Date: Wed, 9 Dec 2020 15:35:06 -0800
Subject: [PATCH] [view_curses] use VC_ROLE instead of VC_STYLE where possible
and fix segv in mvwattrline
Fixes #806
Signed-off-by: Randy Barlow <randy@electronsweatshop.com>
--- a/src/highlighter.cc
+++ b/src/highlighter.cc
@@ -115,7 +115,9 @@ void highlighter::annotate(attr_line_t &al, int start) const
vc.match_color(this->h_bg));
}
if (this->h_role != view_colors::VCR_NONE) {
- attrs |= vc.attrs_for_role(this->h_role);
+ sa.emplace_back(lr,
+ &view_curses::VC_ROLE,
+ this->h_role);
}
sa.emplace_back(lr, &view_curses::VC_STYLE, attrs);
--- a/src/logfile_sub_source.cc
+++ b/src/logfile_sub_source.cc
@@ -468,25 +468,28 @@ void logfile_sub_source::text_attrs_for_line(textview_curses &lv,
shift_string_attrs(value_out, 0, time_offset_end);
- attrs = vc.attrs_for_role(view_colors::VCR_OFFSET_TIME);
- value_out.emplace_back(lr, &view_curses::VC_STYLE, attrs);
+ value_out.emplace_back(lr,
+ &view_curses::VC_ROLE,
+ view_colors::VCR_OFFSET_TIME);
value_out.emplace_back(line_range(12, 13),
&view_curses::VC_GRAPHIC, ACS_VLINE);
- int bar_attrs = 0;
+ view_colors::role_t bar_role = view_colors::VCR_NONE;
switch (this->get_line_accel_direction(vis_line_t(row))) {
case log_accel::A_STEADY:
break;
case log_accel::A_DECEL:
- bar_attrs = vc.attrs_for_role(view_colors::VCR_DIFF_DELETE);
+ bar_role = view_colors::VCR_DIFF_DELETE;
break;
case log_accel::A_ACCEL:
- bar_attrs = vc.attrs_for_role(view_colors::VCR_DIFF_ADD);
+ bar_role = view_colors::VCR_DIFF_ADD;
break;
}
- value_out.push_back(
- string_attr(line_range(12, 13), &view_curses::VC_STYLE, bar_attrs));
+ if (bar_role != view_colors::VCR_NONE) {
+ value_out.emplace_back(
+ line_range(12, 13), &view_curses::VC_ROLE, bar_role);
+ }
}
lr.lr_start = 0;
--- a/src/view_curses.cc
+++ b/src/view_curses.cc
@@ -402,13 +402,16 @@ void view_curses::mvwattrline(WINDOW *window,
}
}
+ if (attr_range.lr_end == -1) {
+ attr_range.lr_end = line_width_chars;
+ }
+ if (attr_range.lr_end < lr_chars.lr_start) {
+ continue;
+ }
attr_range.lr_start = max(0, attr_range.lr_start - lr_chars.lr_start);
if (attr_range.lr_start > line_width_chars) {
continue;
}
- if (attr_range.lr_end == -1) {
- attr_range.lr_end = lr_chars.lr_start + line_width_chars;
- }
attr_range.lr_end = min(line_width_chars, attr_range.lr_end - lr_chars.lr_start);

@ -1,43 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools
DESCRIPTION="A curses-based tool for viewing and analyzing log files"
HOMEPAGE="https://lnav.org"
SRC_URI="https://github.com/tstack/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="unicode"
RDEPEND="
app-arch/bzip2:0=
app-arch/libarchive:=
>=dev-db/sqlite-3.9.0
dev-libs/libpcre[cxx]
>=net-misc/curl-7.23.0
sys-libs/ncurses:=[unicode(+)?]
sys-libs/readline:0=
sys-libs/zlib:0="
DEPEND="${RDEPEND}"
DOCS=( AUTHORS NEWS README )
PATCHES=(
"${FILESDIR}"/${PN}-0.10.0-disable-tests.patch
"${FILESDIR}"/${PN}-0.10.0-disable-remote-tests.patch
)
src_prepare() {
default
eautoreconf
}
src_configure() {
econf \
--disable-static \
$(use_with unicode ncursesw)
}

@ -1,62 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools
DESCRIPTION="A curses-based tool for viewing and analyzing log files"
HOMEPAGE="https://lnav.org"
SRC_URI="https://github.com/tstack/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="unicode test"
RESTRICT="!test? ( test )"
RDEPEND="
app-arch/bzip2:0=
app-arch/libarchive:=
test? ( dev-cpp/doctest )
>=dev-db/sqlite-3.9.0
dev-libs/libpcre[cxx]
>=net-misc/curl-7.23.0
sys-libs/ncurses:=[unicode(+)?]
sys-libs/readline:0=
sys-libs/zlib:0="
DEPEND="${RDEPEND}"
DOCS=( AUTHORS NEWS README )
PATCHES=(
"${FILESDIR}"/${PN}-0.10.0-disable-tests.patch
"${FILESDIR}"/${PN}-0.10.0-disable-remote-tests.patch
# This allows us to use the --with-system-doctest configure flag, and should not be needed in
# the next release of lnav. See https://github.com/tstack/lnav/pull/915
# This patch isn't completely identical to the one in PR #915 because that patch was too large
# for repoman's tastes. See the comment in src_prepare() for how I applied the rest of this
# patch with rm and a heredoc.
# https://bugs.gentoo.org/812353
"${FILESDIR}"/${PN}-0.10.0-use-system-doctest.patch
)
src_prepare() {
# repoman didn't like having a ~500 kiB patch file, so I'm just manually removing the doctest we
# don't want (the bundled one) and putting the one we do want here.
# We won't need this once we get rid of lnav-0.10.0-use-system-doctest.patch
cat <<EOF > src/doctest.hh
#include "config.h"
#include DOCTEST_HEADER
EOF
# We won't need this once we get rid of lnav-0.10.0-use-system-doctest.patch
touch src/doctest_vendored.hh
default
eautoreconf
}
src_configure() {
econf \
--disable-static \
$(use_with test system-doctest) \
$(use_with unicode ncursesw)
}

@ -0,0 +1,56 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic
DESCRIPTION="A curses-based tool for viewing and analyzing log files"
HOMEPAGE="https://lnav.org"
SRC_URI="https://github.com/tstack/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="pcap test"
RESTRICT="!test? ( test )"
RDEPEND="
app-arch/bzip2:0=
app-arch/libarchive:=
>=dev-db/sqlite-3.9.0
dev-libs/libpcre[cxx]
>=net-misc/curl-7.23.0
sys-libs/ncurses:=
sys-libs/readline:=
sys-libs/zlib:=
pcap? ( net-analyzer/wireshark[tshark] )"
# The tests use ssh-keygen and use dsa and rsa keys (which is why ssl is required)
DEPEND="${RDEPEND}
test? (
net-misc/openssh[ssl]
dev-cpp/doctest
)"
DOCS=( AUTHORS NEWS README )
PATCHES=(
"${FILESDIR}"/${PN}-0.11.0-disable-tests.patch
# https://github.com/tstack/lnav/pull/1041
"${FILESDIR}"/${PN}-0.11.0-conditional-ssh-keygen.patch
)
src_prepare() {
default
eautoreconf
}
src_configure() {
filter-lto
econf \
--disable-static \
--with-ncurses \
$(use_with test system-doctest)
}

@ -1,52 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools
DESCRIPTION="A curses-based tool for viewing and analyzing log files"
HOMEPAGE="https://lnav.org"
SRC_URI="https://github.com/tstack/lnav/releases/download/v${PV}/${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="unicode"
RDEPEND="
app-arch/bzip2:0=
>=dev-db/sqlite-3.9.0
dev-libs/libpcre[cxx]
>=net-misc/curl-7.23.0
sys-libs/ncurses:=[unicode(+)?]
sys-libs/readline:0=
sys-libs/zlib:0="
DEPEND="${RDEPEND}"
DOCS=( AUTHORS NEWS README )
PATCHES=(
"${FILESDIR}"/${PN}-0.8.4-disable-tests.patch
# bug 723242
"${FILESDIR}"/${PN}-0.9.0-bug639332-tinfow.patch
# bug 713600
"${FILESDIR}"/${PN}-0.9.0-bug713600_0.patch
"${FILESDIR}"/${PN}-0.9.0-bug713600_1.patch
# Fix a segfault when using right arrow
# bug 792582
"${FILESDIR}"/${PN}-0.9.0-bug792582.patch
# Fix a build failure on gcc
# bug 786456
"${FILESDIR}"/${PN}-0.9.0-bug786456.patch
)
src_prepare() {
default
eautoreconf
}
src_configure() {
econf \
--disable-static \
$(use_with unicode ncursesw)
}

@ -17,4 +17,7 @@
<upstream>
<remote-id type="github">tstack/lnav</remote-id>
</upstream>
<use>
<flag name="pcap">Enable support for pcap files.</flag>
</use>
</pkgmetadata>

@ -29,7 +29,7 @@ else
ftp://ftp.sudo.ws/pub/sudo/${uri_prefix}${MY_P}.tar.gz.sig
)"
if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~sparc-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~sparc-solaris"
fi
BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-sudo )"

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-single-r1 systemd udev xdg
DESCRIPTION="Graphical user interface for CUPS administration"

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-single-r1 systemd udev xdg
DESCRIPTION="Graphical user interface for CUPS administration"

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-single-r1 systemd udev xdg
DESCRIPTION="Graphical user interface for CUPS administration"

Binary file not shown.

@ -1,5 +1,3 @@
DIST clamav-0.103.6.tar.gz 16491761 BLAKE2B 3c43bcda4a613f81d1b31036e7323a7af7708e54af94ad30a659a8fb318d8f79f357086ce70703659298524d778374df886495cd8c75280bbbe4bae30795a85a SHA512 d39e1964678b8251bde3a9f3db30fe3d3d76cc566a86834297f4dd8489086dc9cc4c6541ca128089159f4c071d2d85b530455bd942987d3929ea0082b8ab272b
DIST clamav-0.103.7.tar.gz 16501741 BLAKE2B 49fc1c8c42ee8168dbaec4aa13ab0dfef7fa285e335cb38b17bc020df7400ee1daae49e06ba5b4ae0364d47d707cb83c0b1a8442d5b01d2bba5827606fe27fb4 SHA512 d426169889d94411b20a2c9c9579fc22a15090c9847849822c63fc6b404075feba0ff3663ee1382b2af5300394c7a93669844736f7473bfdce3250e1fd130326
DIST clamav-0.104.2.tar.gz 11950409 BLAKE2B 7d7eb9d22ca519f7ad0c171b6cab4b59cb52787a897ab31b9567166be2223f9ea89e79f42f1e4e0caf32fcb4b008f5ce755fa136566f85fe1de7808b436f80fa SHA512 8c89a05dec6650677125177434cc49ec2298701525508cdda52358e8f98086d80892287f6267f8b7fda0aef2ca361616cb584c3059f3b066bfde65f7f1ba2df5
DIST clamav-0.104.3.tar.gz 12017176 BLAKE2B db97a3d3ca0a2c5273a175ee3a30fdd07eecd13588a39d39e4d07f91034016ee6eca626b0ab7bf548121e4093ea612f9932512bc021326e4bba8b0844af73664 SHA512 d38a2427df29813e4d0f41d480cda85f6175e617c397ab39d913000fa43fcb44f1e0b97d7bd558bc62369e8caeeb2b3aeb4b3dd575b9da4abb91f8b67a6b8431
DIST clamav-0.104.4.tar.gz 12027448 BLAKE2B e8627b49b46e9bf5669b7186d829fd2caa76d9071b1533da252fea1bdeed1b78ec4a138db8957b0d121df1180eb37a6230f5f0db1e4d3f2de80bf7dddad5b47e SHA512 5aa8abe96ff49548cf74df47a7e56279c3082dc8ca98cab02f64f44b2da0230e75b5f634b3086ba8ca155052cbc22a2a47ab3dd159ae033d3f599dcde1f2420e

@ -1,215 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
inherit cmake flag-o-matic python-any-r1 systemd tmpfiles
DESCRIPTION="Clam Anti-Virus Scanner"
HOMEPAGE="https://www.clamav.net/"
SRC_URI="https://www.clamav.net/downloads/production/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="doc clamonacc +clamapp libclamav-only milter rar selinux systemd test"
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
clamonacc? ( clamapp )
milter? ( clamapp )
test? ( !libclamav-only )"
RESTRICT="!test? ( test )"
# Require acct-{user,group}/clamav at build time so that we can set
# the permissions on /var/lib/clamav in src_install rather than in
# pkg_postinst; calling "chown" on the live filesystem scares me.
CDEPEND="acct-group/clamav
acct-user/clamav
dev-libs/libltdl
dev-libs/libmspack
dev-libs/json-c:=
dev-libs/libpcre2
>=sys-libs/zlib-1.2.2:=
app-arch/bzip2
clamapp? ( sys-libs/ncurses:= net-misc/curl )
elibc_musl? ( sys-libs/fts-standalone )
virtual/libiconv
!libclamav-only? ( net-misc/curl )
dev-libs/openssl:=
milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
dev-libs/libxml2
rar? ( app-arch/unrar )
test? ( dev-python/pytest )"
# TODO: there is no way to use this with the new build system instead of the bundled one
# dev-libs/tomsfastmath
BDEPEND="virtual/pkgconfig
doc? ( app-doc/doxygen )
test? (
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
)"
DEPEND="${CDEPEND}
test? ( dev-libs/check )"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-clamav )"
python_check_deps() {
has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_configure() {
use elibc_musl && append-ldflags -lfts
use ppc64 && append-flags -mminimal-toc
local mycmakeargs=(
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
-DENABLE_EXPERIMENTAL=OFF
-DENABLE_JSON_SHARED=ON
-DENABLE_APP=$(usex clamapp ON OFF)
-DENABLE_MILTER=$(usex milter ON OFF)
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
-DCLAMAV_USER="clamav"
-DCLAMAV_GROUP="clamav"
-DBYTECODE_RUNTIME=interpreter
-DOPTIMIZE=ON
-DENABLE_EXTERNAL_MSPACK=ON
-DENABLE_MAN_PAGES=ON
-DENABLE_DOXYGEN=$(usex doc)
-DENABLE_UNRAR=$(usex rar ON OFF)
-DENABLE_TESTS=$(usex test ON OFF)
# Used to enable some more tests but doesn't behave well in
# sandbox necessarily(?) + needs certain debug symbols present
# in e.g. glibc.
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
-DENABLE_STATIC_LIB=OFF
-DENABLE_SHARED_LIB=ON
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
)
cmake_src_configure
}
src_install() {
cmake_src_install
# init scripts
newinitd "${FILESDIR}/clamd.initd" clamd
newinitd "${FILESDIR}/freshclam.initd" freshclam
use clamonacc && \
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
use milter && \
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
rm -rf "${ED}"/var/lib/clamav || die
if ! use libclamav-only ; then
if use systemd ; then
# The tmpfiles entry is behind USE=systemd because the
# upstream OpenRC service files should (and do) ensure that
# the directories they need exist and have the correct
# permissions without the help of opentmpfiles. There are
# years-old root exploits in opentmpfiles, the design is
# fundamentally flawed, and the maintainer is not up to
# the task of fixing it.
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
systemd_dounit "${FILESDIR}/clamd.service"
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
"freshclamd.service"
fi
if use clamapp ; then
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(LocalSocket .*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
-e "s:^\#\(LogTime\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/clamd.conf.sample > \
"${ED}"/etc/clamav/clamd.conf || die
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(DatabaseOwner .*\)/\1/" \
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/freshclam.conf.sample > \
"${ED}"/etc/clamav/freshclam.conf || die
if use milter ; then
# Note: only keep the "unix" ClamdSocket and MilterSocket!
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
"${ED}"/etc/clamav/clamav-milter.conf || die
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
fi
local i
for i in clamd freshclam clamav-milter
do
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
mv "${ED}"/etc/"${i}".conf{.sample,} || die
fi
done
# These both need to be writable by the clamav user.
# TODO: use syslog by default; that's what it's for.
diropts -o clamav -g clamav
keepdir /var/lib/clamav
keepdir /var/log/clamav
fi
fi
if use doc ; then
local HTML_DOCS=( docs/html/. )
einstalldocs
fi
# Don't install man pages for utilities we didn't install
if use libclamav-only ; then
rm -r "${ED}"/usr/share/man || die
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
if ! use libclamav-only ; then
if use systemd ; then
tmpfiles_process clamav.conf
fi
fi
if use milter ; then
elog "For simple instructions how to setup the clamav-milter read the"
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
fi
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
if [[ ! -f "${databases}" ]] ; then
ewarn "You must run freshclam manually to populate the virus database"
ewarn "before starting clamav for the first time."
fi
ewarn "This version of ClamAV provides separate OpenRC services"
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
ewarn "clamd service now starts only the clamd daemon itself. You"
ewarn "should add freshclam (and perhaps clamav-milter) to any"
ewarn "runlevels that previously contained clamd."
}

@ -1,215 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
inherit cmake flag-o-matic python-any-r1 systemd tmpfiles
DESCRIPTION="Clam Anti-Virus Scanner"
HOMEPAGE="https://www.clamav.net/"
SRC_URI="https://www.clamav.net/downloads/production/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="doc clamonacc +clamapp libclamav-only milter rar selinux systemd test"
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
clamonacc? ( clamapp )
milter? ( clamapp )
test? ( !libclamav-only )"
RESTRICT="!test? ( test )"
# Require acct-{user,group}/clamav at build time so that we can set
# the permissions on /var/lib/clamav in src_install rather than in
# pkg_postinst; calling "chown" on the live filesystem scares me.
CDEPEND="acct-group/clamav
acct-user/clamav
dev-libs/libltdl
dev-libs/libmspack
dev-libs/json-c:=
dev-libs/libpcre2
>=sys-libs/zlib-1.2.2:=
app-arch/bzip2
clamapp? ( sys-libs/ncurses:= net-misc/curl )
elibc_musl? ( sys-libs/fts-standalone )
virtual/libiconv
!libclamav-only? ( net-misc/curl )
dev-libs/openssl:=
milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
dev-libs/libxml2
rar? ( app-arch/unrar )
test? ( dev-python/pytest )"
# TODO: there is no way to use this with the new build system instead of the bundled one
# dev-libs/tomsfastmath
BDEPEND="virtual/pkgconfig
doc? ( app-doc/doxygen )
test? (
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
)"
DEPEND="${CDEPEND}
test? ( dev-libs/check )"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-clamav )"
python_check_deps() {
has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_configure() {
use elibc_musl && append-ldflags -lfts
use ppc64 && append-flags -mminimal-toc
local mycmakeargs=(
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
-DENABLE_EXPERIMENTAL=OFF
-DENABLE_JSON_SHARED=ON
-DENABLE_APP=$(usex clamapp ON OFF)
-DENABLE_MILTER=$(usex milter ON OFF)
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
-DCLAMAV_USER="clamav"
-DCLAMAV_GROUP="clamav"
-DBYTECODE_RUNTIME=interpreter
-DOPTIMIZE=ON
-DENABLE_EXTERNAL_MSPACK=ON
-DENABLE_MAN_PAGES=ON
-DENABLE_DOXYGEN=$(usex doc)
-DENABLE_UNRAR=$(usex rar ON OFF)
-DENABLE_TESTS=$(usex test ON OFF)
# Used to enable some more tests but doesn't behave well in
# sandbox necessarily(?) + needs certain debug symbols present
# in e.g. glibc.
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
-DENABLE_STATIC_LIB=OFF
-DENABLE_SHARED_LIB=ON
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
)
cmake_src_configure
}
src_install() {
cmake_src_install
# init scripts
newinitd "${FILESDIR}/clamd.initd" clamd
newinitd "${FILESDIR}/freshclam.initd" freshclam
use clamonacc && \
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
use milter && \
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
rm -rf "${ED}"/var/lib/clamav || die
if ! use libclamav-only ; then
if use systemd ; then
# The tmpfiles entry is behind USE=systemd because the
# upstream OpenRC service files should (and do) ensure that
# the directories they need exist and have the correct
# permissions without the help of opentmpfiles. There are
# years-old root exploits in opentmpfiles, the design is
# fundamentally flawed, and the maintainer is not up to
# the task of fixing it.
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
systemd_dounit "${FILESDIR}/clamd.service"
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
"freshclamd.service"
fi
if use clamapp ; then
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(LocalSocket .*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
-e "s:^\#\(LogTime\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/clamd.conf.sample > \
"${ED}"/etc/clamav/clamd.conf || die
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(DatabaseOwner .*\)/\1/" \
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/freshclam.conf.sample > \
"${ED}"/etc/clamav/freshclam.conf || die
if use milter ; then
# Note: only keep the "unix" ClamdSocket and MilterSocket!
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
"${ED}"/etc/clamav/clamav-milter.conf || die
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
fi
local i
for i in clamd freshclam clamav-milter
do
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
mv "${ED}"/etc/"${i}".conf{.sample,} || die
fi
done
# These both need to be writable by the clamav user.
# TODO: use syslog by default; that's what it's for.
diropts -o clamav -g clamav
keepdir /var/lib/clamav
keepdir /var/log/clamav
fi
fi
if use doc ; then
local HTML_DOCS=( docs/html/. )
einstalldocs
fi
# Don't install man pages for utilities we didn't install
if use libclamav-only ; then
rm -r "${ED}"/usr/share/man || die
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
if ! use libclamav-only ; then
if use systemd ; then
tmpfiles_process clamav.conf
fi
fi
if use milter ; then
elog "For simple instructions how to setup the clamav-milter read the"
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
fi
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
if [[ ! -f "${databases}" ]] ; then
ewarn "You must run freshclam manually to populate the virus database"
ewarn "before starting clamav for the first time."
fi
ewarn "This version of ClamAV provides separate OpenRC services"
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
ewarn "clamd service now starts only the clamd daemon itself. You"
ewarn "should add freshclam (and perhaps clamav-milter) to any"
ewarn "runlevels that previously contained clamd."
}

@ -1,215 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
inherit cmake flag-o-matic python-any-r1 systemd tmpfiles
DESCRIPTION="Clam Anti-Virus Scanner"
HOMEPAGE="https://www.clamav.net/"
SRC_URI="https://www.clamav.net/downloads/production/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="doc clamonacc +clamapp libclamav-only milter rar selinux systemd test"
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
clamonacc? ( clamapp )
milter? ( clamapp )
test? ( !libclamav-only )"
RESTRICT="!test? ( test )"
# Require acct-{user,group}/clamav at build time so that we can set
# the permissions on /var/lib/clamav in src_install rather than in
# pkg_postinst; calling "chown" on the live filesystem scares me.
CDEPEND="acct-group/clamav
acct-user/clamav
dev-libs/libltdl
dev-libs/libmspack
dev-libs/json-c:=
dev-libs/libpcre2
>=sys-libs/zlib-1.2.2:=
app-arch/bzip2
clamapp? ( sys-libs/ncurses:= net-misc/curl )
elibc_musl? ( sys-libs/fts-standalone )
virtual/libiconv
!libclamav-only? ( net-misc/curl )
dev-libs/openssl:=
milter? ( || ( mail-filter/libmilter mail-mta/sendmail ) )
dev-libs/libxml2
rar? ( app-arch/unrar )
test? ( dev-python/pytest )"
# TODO: there is no way to use this with the new build system instead of the bundled one
# dev-libs/tomsfastmath
BDEPEND="virtual/pkgconfig
doc? ( app-doc/doxygen )
test? (
${PYTHON_DEPS}
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
)"
DEPEND="${CDEPEND}
test? ( dev-libs/check )"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-clamav )"
python_check_deps() {
has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_configure() {
use elibc_musl && append-ldflags -lfts
use ppc64 && append-flags -mminimal-toc
local mycmakeargs=(
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
-DENABLE_EXPERIMENTAL=OFF
-DENABLE_JSON_SHARED=ON
-DENABLE_APP=$(usex clamapp ON OFF)
-DENABLE_MILTER=$(usex milter ON OFF)
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
-DCLAMAV_USER="clamav"
-DCLAMAV_GROUP="clamav"
-DBYTECODE_RUNTIME=interpreter
-DOPTIMIZE=ON
-DENABLE_EXTERNAL_MSPACK=ON
-DENABLE_MAN_PAGES=ON
-DENABLE_DOXYGEN=$(usex doc)
-DENABLE_UNRAR=$(usex rar ON OFF)
-DENABLE_TESTS=$(usex test ON OFF)
# Used to enable some more tests but doesn't behave well in
# sandbox necessarily(?) + needs certain debug symbols present
# in e.g. glibc.
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
-DENABLE_STATIC_LIB=OFF
-DENABLE_SHARED_LIB=ON
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
)
cmake_src_configure
}
src_install() {
cmake_src_install
# init scripts
newinitd "${FILESDIR}/clamd.initd" clamd
newinitd "${FILESDIR}/freshclam.initd" freshclam
use clamonacc && \
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
use milter && \
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
rm -rf "${ED}"/var/lib/clamav || die
if ! use libclamav-only ; then
if use systemd ; then
# The tmpfiles entry is behind USE=systemd because the
# upstream OpenRC service files should (and do) ensure that
# the directories they need exist and have the correct
# permissions without the help of opentmpfiles. There are
# years-old root exploits in opentmpfiles, the design is
# fundamentally flawed, and the maintainer is not up to
# the task of fixing it.
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
systemd_dounit "${FILESDIR}/clamd.service"
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
"freshclamd.service"
fi
if use clamapp ; then
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(LocalSocket .*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
-e "s:^\#\(LogTime\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/clamd.conf.sample > \
"${ED}"/etc/clamav/clamd.conf || die
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(DatabaseOwner .*\)/\1/" \
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
"${ED}"/etc/clamav/freshclam.conf.sample > \
"${ED}"/etc/clamav/freshclam.conf || die
if use milter ; then
# Note: only keep the "unix" ClamdSocket and MilterSocket!
sed -e "s:^\(Example\):\# \1:" \
-e "s/^#\(PidFile .*\)/\1/" \
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
-e "s/^#\(User .*\)/\1/" \
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
"${ED}"/etc/clamav/clamav-milter.conf || die
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
fi
local i
for i in clamd freshclam clamav-milter
do
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
mv "${ED}"/etc/"${i}".conf{.sample,} || die
fi
done
# These both need to be writable by the clamav user.
# TODO: use syslog by default; that's what it's for.
diropts -o clamav -g clamav
keepdir /var/lib/clamav
keepdir /var/log/clamav
fi
fi
if use doc ; then
local HTML_DOCS=( docs/html/. )
einstalldocs
fi
# Don't install man pages for utilities we didn't install
if use libclamav-only ; then
rm -r "${ED}"/usr/share/man || die
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
if ! use libclamav-only ; then
if use systemd ; then
tmpfiles_process clamav.conf
fi
fi
if use milter ; then
elog "For simple instructions how to setup the clamav-milter read the"
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
fi
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
if [[ ! -f "${databases}" ]] ; then
ewarn "You must run freshclam manually to populate the virus database"
ewarn "before starting clamav for the first time."
fi
ewarn "This version of ClamAV provides separate OpenRC services"
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
ewarn "clamd service now starts only the clamd daemon itself. You"
ewarn "should add freshclam (and perhaps clamav-milter) to any"
ewarn "runlevels that previously contained clamd."
}

Binary file not shown.

@ -27,10 +27,11 @@ LICENSE="GPL-3"
SLOT="0"
IUSE="extras"
DEPEND="${LIBMSPACK_DEPEND}
virtual/pkgconfig"
DEPEND="${LIBMSPACK_DEPEND}"
RDEPEND="${LIBMSPACK_DEPEND}
extras? ( dev-lang/perl )"
BDEPEND="sys-devel/gettext
virtual/pkgconfig"
src_prepare() {
if [[ ${PV} == "9999" ]] ; then

@ -27,10 +27,11 @@ LICENSE="GPL-3"
SLOT="0"
IUSE="extras"
DEPEND="${LIBMSPACK_DEPEND}
virtual/pkgconfig"
DEPEND="${LIBMSPACK_DEPEND}"
RDEPEND="${LIBMSPACK_DEPEND}
extras? ( dev-lang/perl )"
BDEPEND="sys-devel/gettext
virtual/pkgconfig"
src_prepare() {
if [[ ${PV} == "9999" ]] ; then

@ -11,7 +11,7 @@ SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="|| ( BSD GPL-2 )"
SLOT="0/1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="lz4 static-libs +threads"
RDEPEND="app-arch/xz-utils

Binary file not shown.

@ -4,6 +4,7 @@
EAPI=7
MY_P="BackupPC-${PV}"
MY_PN="BackupPC"
inherit depend.apache systemd
@ -54,11 +55,11 @@ RDEPEND="
rss? ( dev-perl/XML-RSS )
samba? ( net-fs/samba )"
CGIDIR="/usr/lib/backuppc/htdocs"
CONFDIR="${EROOT}/etc/${EPREFIX}"
DATADIR="/var/lib/backuppc"
DOCDIR="/usr/share/doc/${PF}"
LOGDIR="/var/log/BackupPC"
CGIDIR="${EROOT}/usr/lib/backuppc/htdocs"
CONFDIR="${EROOT}/etc/${MY_PN}"
DATADIR="${EROOT}/var/lib/backuppc"
DOCDIR="${EROOT}/usr/share/doc/${PF}"
LOGDIR="${EROOT}/var/log/BackupPC"
need_apache2_4
src_prepare() {

@ -1,2 +1,2 @@
DIST borgmatic-1.6.6.tar.gz 323601 BLAKE2B b40d8f00e3b7bbd343336cf4c6992e34d8289de451c184717827e8e43519b84d4bb9b8cff6a835a7cc502d2e93045f0196d744e4b6ad800de1276e11c3189cec SHA512 f1a6dfa344ebee89e88f1aa6b43d8493c80815c637d8e0f7f6314462fd511b576e62246d957023ab2f9a68875d2818e2b8ef00cbf3339dc35a93d6ebad0bed19
DIST borgmatic-1.7.1.tar.gz 333344 BLAKE2B 0076fac9a01715d24dd8dfa9ca93099c94cfe33f65850c089a337b3f95b6c52706d0e6b15200532c0fcca9401f97c02d6ebabd700e42f5d9bb3516e04e7fa0a4 SHA512 6cf0c71a88f0f893f63bb2de7c466af87cad3eff57a6105a6bece2c1acddb962fa14c4d63944c37a3465dc3c09151003daa28e5045a897875552ff7de227d5fc
DIST borgmatic-1.7.2.tar.gz 333772 BLAKE2B fd628e9c77547686d4edf5d1066d3c171575f4d923ebc5205c5eb64f3a960e94c121282e9f4fb02b1291a81011a18dc393c6d13a07f215585459e7a5b55f8107 SHA512 6ec12ec25ae4d0210bb9114795c1ea292d8236f9e68c9425e24ee7b580796504e4c317a3fcf778806a33bbd3db68669beb4ef7a88ec538c1bd432db9a2845b3e

Binary file not shown.

@ -1,2 +1,2 @@
DIST dolphin-plugins-22.04.3.tar.xz 257356 BLAKE2B e3d084e628920a08c9e1173c754002f6b0ecfad07bd4d89a64f5b29a7e93362a814ead6aeff80412b01e7198adce78c36f36428560a1ea9e555027113f7d8e6f SHA512 1b96511fbf8ec93b03a5f204c2e4cff232ca0d09e4d1599c89d4d514deb3fb889dfd3050a5cabe4e35b6e65a5283ad09635a13931c8484eebc98a22ba9057b42
DIST dolphin-plugins-22.08.0.tar.xz 257872 BLAKE2B 9108b5ac5051b822d8fedac83dab967bd2a344f7d8d3ca8da9a544e40a186ae65a2f6470efce1fe091111392b7a998a8912842c0c31caf64a3e23b7e629ba184 SHA512 047997fa948d4a335495723946855964f6a652f9acf3ffd6f08f78dbfcb8c96a127861164f04f15de963e00295af226041ced7cdb25bd982a6a9f87c7c600855
DIST dolphin-plugins-22.08.1.tar.xz 257836 BLAKE2B 3ad0ebe22478b5540dbe4128df718cb428259e2c28d5586a2625c15f63fa9a1e8ca35d45397a9446e8a7bed66ecbc65f13137174a565792ba217158a2c71cd0f SHA512 9eee9e33640dfba94530bd538a0915cdf49257dd68934835056f2e9b0906e7e5884a83bb5095fd6b66e7fb86d5ae5cc77d319439a491cd424fc4fd01fb9097c5

Binary file not shown.

@ -0,0 +1,58 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs
DESCRIPTION="Offline Windows NT Password & Registry Editor"
HOMEPAGE="https://pogostick.net/~pnh/ntpasswd/"
SRC_URI="https://pogostick.net/~pnh/ntpasswd/${PN}-source-${PV}.zip"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="static"
RDEPEND="dev-libs/openssl:0="
DEPEND="${RDEPEND}
app-arch/unzip
static? ( dev-libs/openssl:0[static-libs] )"
DOCS=(
HISTORY.txt
README.txt
WinReg.txt
regedit.txt
)
PATCHES=(
"${FILESDIR}"/${P}-missing-stdint.patch
)
src_prepare() {
default
sed -i -e '/-o/s:$(CC):$(CC) $(LDFLAGS):' Makefile || die
if ! use static ; then
sed -i -e "/^all:/s/ \(chntpw\|reged\).static//g" Makefile || die
fi
emake clean
}
src_compile() {
emake \
CC="$(tc-getCC)" \
CFLAGS="${CFLAGS} -DUSEOPENSSL -Wall" \
LIBS="-lcrypto"
}
src_install() {
einstalldocs
dobin chntpw cpnt reged sampasswd samusrgrp
if use static; then
dobin {chntpw,reged,sampasswd,samusrgrp}.static
fi
}

@ -13,7 +13,10 @@ LICENSE="GPL-2+ LGPL-2+"
SLOT="0/1" # subslot = suffix of libgcr-base-3 and co
IUSE="gtk gtk-doc +introspection systemd test +vala"
REQUIRED_USE="vala? ( introspection )"
REQUIRED_USE="
gtk-doc? ( introspection )
vala? ( introspection )
"
RESTRICT="!test? ( test )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"

@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test tofu tools usb user-socket wks-server"
RESTRICT="!test? ( test )"

@ -1,2 +1 @@
DIST mkp224o-1.5.0-src.tar.gz 1378324 BLAKE2B 19d38fbf23328607fa428ec9329cdc909b210b4235d85e14ff372347c9b408ecf22d41dac7122bdae06725d7bca0c3d53c81cc27272c47517e714e9b8e0625dd SHA512 aa5adc91e695dbfd8ece5fdfe3ca370056d4390a5186326b35ee37402040fa24675ede5389c48b79a1e57b624b86024ff72957741fef175602f7721f20c5cc14
DIST mkp224o-1.6.1-src.tar.gz 1387615 BLAKE2B 271424dcee44b5b1e1a35346a0cc1c37ee5d430231fe93e0b936ac994c892f0406ea361be763732db8a8397684ecad70e26c34f5553a415e7ed0592417672310 SHA512 d0c21ee5fb5f7b2950e1c39af5dc62b1e26aef0917b53169e9c3f9a99a7febe70bb2f96ada612c71bdbdbf8cad9c1f407d175af49fca40eedd68bbe8112970a5

@ -1,36 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Vanity address generator for v3 Tor hidden service addresses"
HOMEPAGE="https://github.com/cathugger/mkp224o"
SRC_URI="https://github.com/cathugger/${PN}/releases/download/v${PV}/${PN}-${PV}-src.tar.gz"
LICENSE="CC0-1.0"
SLOT="0"
KEYWORDS="amd64"
IUSE="cpu_flags_x86_sse2 pcre2"
DEPEND="
dev-libs/libsodium:=
pcre2? ( dev-libs/libpcre2:= )
"
RDEPEND="${DEPEND}"
DOCS=( OPTIMISATION.txt README.txt )
src_configure() {
local myeconfargs=(
--enable-regex=$(usex pcre2)
--enable-statistics
)
use cpu_flags_x86_sse2 && myeconfargs+=( --enable-donna-sse2 )
econf "${myeconfargs[@]}"
}
src_install() {
einstalldocs
dobin ${PN}
}

@ -1,9 +1,9 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit autotools multilib-minimal
inherit autotools
DESCRIPTION="Computes context triggered piecewise hashes (fuzzy hashes)"
HOMEPAGE="https://ssdeep-project.github.io/ssdeep/"
@ -11,17 +11,7 @@ SRC_URI="https://github.com/${PN}-project/${PN}/releases/download/release-${PV}/
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv x86"
IUSE="static-libs"
DOCS=(
AUTHORS
ChangeLog
FILEFORMAT
NEWS
README
TODO
)
KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 ~riscv x86"
PATCHES=(
"${FILESDIR}/${PN}-2.10-shared.patch"
@ -32,13 +22,8 @@ src_prepare() {
eautoreconf
}
multilib_src_configure() {
ECONF_SOURCE="${S}" \
econf \
$(use_enable static-libs static)
}
multilib_src_install_all() {
einstalldocs
find "${D}" -name '*.la' -delete || die
src_install() {
default
dodoc FILEFORMAT
find "${ED}" -name '*.la' -delete || die
}

Binary file not shown.

@ -1 +1,2 @@
DIST sjp-aspell6-pl-6.0_20220601-0.tar.bz2 650672 BLAKE2B cf8212d0ecfa482fd60c4a1b39c3a45c9d47c522899bf243bbe5f0d2dbfe51b8e444950c59b25a210fa8c210a03db03374b24e64350dcf10ce63ab8354b8c026 SHA512 9d3eda4ede1f1ab24b4fc3c9be049fd74711e1a6cd8632d8c8d5248d96b63264cf67f7ed783595142cb632904c15f7f13b887f5ae6656744ae9cc97adfc1ac9e
DIST sjp-aspell6-pl-6.0_20220801-0.tar.bz2 651138 BLAKE2B 9ecb170beb64d63a45093415bd2dbe824629616878829d5450fc7dfd5b4ae79eb4d807673e025055c29877ca8054c9ad22185ae16574c8a938dd01372c55eeb6 SHA512 77fbd7a6c87f5a05d994b2c1aa3a808d0af37243906d1ce92f5bd735f4cf793769bb25a770e36c61a380c11f83f904aa598fab20dd0d031d172a6e7c1d440d2a

@ -0,0 +1,18 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ASPELL_LANG="Polish"
ASPELL_VERSION=6
inherit aspell-dict-r1
HOMEPAGE="https://sjp.pl/slownik/en/"
MY_P="sjp-${PN/aspell/aspell6}-$(ver_rs 2 _ 3 -)"
SRC_URI="https://sjp.pl/slownik/ort/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P/sjp-/}"
LICENSE="Apache-2.0 CC-BY-4.0 GPL-2 LGPL-2.1 MPL-1.1 "
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"

Binary file not shown.

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-any-r1 readme.gentoo-r1
DESCRIPTION="The Gentoo Development Guide"

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-any-r1 readme.gentoo-r1
DESCRIPTION="The Gentoo Development Guide"

@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
inherit python-any-r1 readme.gentoo-r1
DESCRIPTION="The Gentoo Development Guide"

@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then
LIVE_DEPEND=">=x11-misc/util-macros-1.18"
else
SRC_URI="https://gitlab.com/kicad/services/${PN}/-/archive/${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
KEYWORDS="amd64 ~arm64 ~riscv ~x86"
fi
LICENSE="|| ( GPL-3+ CC-BY-3.0 ) GPL-2"

Binary file not shown.

@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="xml"
PYTHON_REQ_USE="xml(+)"
VALA_MIN_API_VERSION="0.28"
inherit gnome.org gnome2-utils meson python-single-r1 vala xdg

@ -0,0 +1,92 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PTV=0.5
LUA_COMPAT=( lua5-2 lua5-3 lua5-4 )
inherit lua-single optfeature
if [ "${PV}" == "9999" ]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/martanne/vis.git"
else
SRC_URI="https://github.com/martanne/vis/releases/download/v${PV}/${P}.tar.gz
test? ( https://github.com/martanne/vis-test/releases/download/v${MY_PTV}/vis-test-${MY_PTV}.tar.gz )"
KEYWORDS="~amd64 ~arm ~riscv ~x86"
fi
DESCRIPTION="modern, legacy free, simple yet efficient vim-like editor"
HOMEPAGE="https://github.com/martanne/vis"
LICENSE="ISC MIT"
SLOT="0"
IUSE="+ncurses +lua selinux test tre"
REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
# - Known to also work with NetBSD curses
DEPEND="dev-libs/libtermkey
sys-apps/acl
ncurses? ( sys-libs/ncurses:0= )
lua? ( ${LUA_DEPS} )
tre? ( dev-libs/tre )"
RDEPEND="${DEPEND}
app-eselect/eselect-vi"
# lpeg: https://github.com/martanne/vis-test/issues/28
BDEPEND="test? (
$(lua_gen_cond_dep 'dev-lua/lpeg[${LUA_USEDEP}]')
$(lua_gen_cond_dep 'dev-lua/busted[${LUA_USEDEP}]')
)"
pkg_setup() {
use lua && lua-single_pkg_setup
}
src_prepare() {
if use test; then
if [ ! "${PV}" == "9999" ]; then
rm -r test || die
mv "${WORKDIR}/vis-test-${MY_PTV}" test || die
fi
# https://bugs.gentoo.org/722014 https://github.com/martanne/vis-test/pull/22
sed -i 's;./ccan-config > config.h;./ccan-config "${CC}" ${CFLAGS} > config.h;' test/core/Makefile || die
# https://github.com/martanne/vis-test/pull/29
sed -i 's;cpp -P;${CPP:-cpp} -P;' test/vim/test.sh || die
# https://github.com/martanne/vis-test/issues/27 a Werror clone
sed -i 's;|| strstr(output, "warning");;' test/core/ccan-config.c || die
fi
sed -i 's|STRIP?=.*|STRIP=true|' Makefile || die
sed -i 's|${DOCPREFIX}/vis|${DOCPREFIX}|' Makefile || die
sed -i 's|DOCUMENTATION = LICENSE|DOCUMENTATION =|' Makefile || die
default
}
src_configure() {
./configure \
--prefix="${EPREFIX}"/usr \
--docdir="${EPREFIX}"/usr/share/doc/${PF} \
$(use_enable lua) \
$(use_enable ncurses curses) \
$(use_enable selinux) \
$(use_enable tre) || die
}
update_symlinks() {
einfo "Calling eselect vi update --if-unset"
eselect vi update --if-unset
}
pkg_postrm() {
update_symlinks
}
pkg_postinst() {
update_symlinks
optfeature "syntax highlighting support" dev-lua/lpeg
}

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -12,7 +12,7 @@ DESCRIPTION="modern, legacy free, simple yet efficient vim-like editor"
HOMEPAGE="https://github.com/martanne/vis"
SRC_URI="https://github.com/martanne/vis/releases/download/v${PV}/${P}.tar.gz
test? ( https://github.com/martanne/vis-test/releases/download/v${MY_PTV}/vis-test-${MY_PTV}.tar.gz )"
LICENSE="ISC"
LICENSE="ISC MIT"
SLOT="0"
KEYWORDS="amd64 arm ~riscv x86"
IUSE="+ncurses +lua selinux test tre"

@ -1,36 +1,65 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
LUA_COMPAT=( lua5-2 lua5-3 )
inherit lua-single git-r3 optfeature
MY_PTV=0.5
LUA_COMPAT=( lua5-2 lua5-3 lua5-4 )
inherit lua-single optfeature
if [ "${PV}" == "9999" ]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/martanne/vis.git"
else
SRC_URI="https://github.com/martanne/vis/releases/download/v${PV}/${P}.tar.gz
test? ( https://github.com/martanne/vis-test/releases/download/v${MY_PTV}/vis-test-${MY_PTV}.tar.gz )"
KEYWORDS="~amd64 ~arm ~riscv ~x86"
fi
DESCRIPTION="modern, legacy free, simple yet efficient vim-like editor"
HOMEPAGE="https://github.com/martanne/vis"
EGIT_REPO_URI="https://github.com/martanne/vis.git"
LICENSE="ISC"
LICENSE="ISC MIT"
SLOT="0"
KEYWORDS=""
IUSE="+ncurses +lua selinux test tre"
REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
# - Known to also work with NetBSD curses
DEPEND="dev-libs/libtermkey
sys-apps/acl
ncurses? ( sys-libs/ncurses:0= )
lua? ( ${LUA_DEPS} )
tre? ( dev-libs/tre:= )"
tre? ( dev-libs/tre )"
RDEPEND="${DEPEND}
app-eselect/eselect-vi"
# https://github.com/martanne/vis-test/issues/28
BDEPEND="test? ( $(lua_gen_cond_dep 'dev-lua/lpeg[${LUA_USEDEP}]') )"
# lpeg: https://github.com/martanne/vis-test/issues/28
BDEPEND="test? (
$(lua_gen_cond_dep 'dev-lua/lpeg[${LUA_USEDEP}]')
$(lua_gen_cond_dep 'dev-lua/busted[${LUA_USEDEP}]')
)"
pkg_setup() {
use lua && lua-single_pkg_setup
}
src_prepare() {
if use test; then
if [ ! "${PV}" == "9999" ]; then
rm -r test || die
mv "${WORKDIR}/vis-test-${MY_PTV}" test || die
fi
# https://bugs.gentoo.org/722014 https://github.com/martanne/vis-test/pull/22
sed -i 's;./ccan-config > config.h;./ccan-config "${CC}" ${CFLAGS} > config.h;' test/core/Makefile || die
# https://github.com/martanne/vis-test/pull/29
sed -i 's;cpp -P;${CPP:-cpp} -P;' test/vim/test.sh || die
# https://github.com/martanne/vis-test/issues/27 a Werror clone
sed -i 's;|| strstr(output, "warning");;' test/core/ccan-config.c || die
fi
sed -i 's|STRIP?=.*|STRIP=true|' Makefile || die
sed -i 's|${DOCPREFIX}/vis|${DOCPREFIX}|' Makefile || die
sed -i 's|DOCUMENTATION = LICENSE|DOCUMENTATION =|' Makefile || die

Binary file not shown.

@ -1 +1,2 @@
DIST geiser-guile-0.23.2.tar.gz 15615 BLAKE2B e30f5eef1496f8016be35fa3eda2bf02fc651e5bdb9ac8cf8c90a130bd72dd13b67140f172aab24ed38858294ff83c366eaa4b3e354b0a1107c28a0258b2f787 SHA512 c696bc0e406869d9c68f3cda9bbc2f5f0690148264e221c6fc3217f867a5cae3fd6df59851fdbec8a6c9eb6aab7f9482c3231fe75a509d58d2d9d16c008774b8
DIST geiser-guile-0.26.1.tar.gz 15629 BLAKE2B b8daa40e2e713fcf43a02cc3797fa118c52b796921a0976bed8031b46c1c55da3c3d476cae24551f6a45f1f12f70c4fb99c59eb1ea900aa67ff6d557fd35c08b SHA512 2543773362872d82ca8c70ba278471be8e333e0919b42969b4634c1f14e1bb1b5416c530b1db346ac7897a4861624c4e69788c8d44beca39757c3bdf1d6d03b5

@ -0,0 +1,42 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=25.1
inherit elisp
DESCRIPTION="Guile's implementation of the Geiser protocols"
HOMEPAGE="https://gitlab.com/emacs-geiser/guile/"
SRC_URI="https://gitlab.com/emacs-geiser/guile/-/archive/${PV}/guile-${PV}.tar.gz
-> ${P}.tar.gz"
S="${WORKDIR}"/guile-${PV}
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
BDEPEND="app-emacs/geiser"
RDEPEND="
${BDEPEND}
dev-scheme/guile
"
DOCS=( readme.org )
PATCHES=( "${FILESDIR}"/${PN}-guile-scheme-src-dir.patch )
ELISP_TEXINFO="${PN}.texi"
SITEFILE="50${PN}-gentoo.el"
src_prepare() {
elisp_src_prepare
sed "s|@SITEETC@|${EPREFIX}${SITEETC}/${PN}|" -i ${PN}.el || die
}
src_install() {
elisp_src_install
insinto ${SITEETC}/${PN}
doins -r src
}

@ -1,3 +1,4 @@
DIST geiser-0.23.2.tar.gz 653228 BLAKE2B ef0ce0a925a9d5df32a2b67b216dc46da535d68d70b706ffc9dd4d3bb01af879c9533337b2e8293c7bed8d3cdebeecd3f4443b3071f865cf1b7280347b202298 SHA512 dd6852d95296aaef44ad0e9a6723986372d58f9beab20bd45330aeffae590fbd5ea45822032fb9cc2712756e3b13ba5c829fbefeead4e5f41c94400bf059110e
DIST geiser-0.25.1.tar.gz 652262 BLAKE2B 8c5a323bedd869c98bf500c861c7731a0b1dd9833f78bf348a2e29d26039c674a00b51529d77b56b213ccc1351b73388010847551b3cd829fb265cffb733864a SHA512 93a8d7e096a24759f5e8c9dbdd2d4ad31caf185c6a970ff1b4364c4492e5f2e0925cc59e97546f9c40dd5913fb2b38e7ade7599ef791c6e198ad0af966030f16
DIST geiser-0.26.1.tar.gz 652903 BLAKE2B f2b0121b390b33ee8d93136af9addd92dff7f683820bb32f76f36090b5028e9693f629949dd239a27597fc4e290c21100e1cdc143f5db3fb275bb5bd826d5862 SHA512 dfec087e94e73c4b3a12db56ea3192614c536aaeb3acdb20e1afe0512e69f09388576e19acc6e55a39f8f5b6397bcef40ad7f1cce0504ffe742d1f9478eed44f
DIST geiser-0.26.tar.gz 652756 BLAKE2B ac32db838473b8a07394146d5f7dc88ba2bfb36f4d169af14029e202a6d87950a69f0b920ed6a627bda90843cc77c1c7e57f49fee53af87ed9526642bdb65c27 SHA512 df6d7ec500e8e0546c56630f7f2f0901df8fa373924ac812b25ab0cfbeea2a5d0b9f1719850a7454eb7e7d0dda95209c201de85ff3937b717f2bec6ed2513e6b

@ -0,0 +1,40 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=25.1
inherit elisp
DESCRIPTION="Generic interaction mode between Emacs and different Scheme implementations"
HOMEPAGE="https://gitlab.com/emacs-geiser/geiser/"
SRC_URI="https://gitlab.com/emacs-geiser/${PN}/-/archive/${PV}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="app-emacs/transient"
BDEPEND="
${RDEPEND}
app-text/texi2html
sys-apps/texinfo
"
DOCS=( readme.org news.org doc/html )
SITEFILE="50${PN}-gentoo.el"
src_compile() {
BYTECOMPFLAGS="-L elisp" elisp-compile elisp/*.el
emake -C doc info web
}
src_install() {
elisp-install ${PN} elisp/*.el{,c}
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
doinfo doc/*.info
einstalldocs
}

@ -11,7 +11,7 @@ SRC_URI="https://github.com/emacs-helm/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.g
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
RDEPEND="app-emacs/async
app-emacs/popup"

@ -15,7 +15,7 @@ S="${WORKDIR}"/${PN}-${H}
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
RDEPEND="dev-scheme/racket:=[-minimal]"
BDEPEND="${RDEPEND}"

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -6,7 +6,7 @@ NEED_EMACS=25
inherit elisp
DESCRIPTION="Use the Emacsclient as the \$EDITOR of child processes"
DESCRIPTION="Transient commands abstraction for GNU Emacs"
HOMEPAGE="https://magit.vc/manual/transient"
SRC_URI="https://github.com/magit/transient/archive/v${PV}.tar.gz -> ${P}.tar.gz"

@ -6,7 +6,7 @@ NEED_EMACS=25
inherit elisp
DESCRIPTION="Use the Emacsclient as the \$EDITOR of child processes"
DESCRIPTION="Transient commands abstraction for GNU Emacs"
HOMEPAGE="https://magit.vc/manual/transient"
SRC_URI="https://github.com/magit/transient/archive/v${PV}.tar.gz -> ${P}.tar.gz"

Binary file not shown.

@ -3,7 +3,7 @@
<pkgmetadata>
<maintainer type="project">
<email>s390@gentoo.org</email>
<name>Gentoo Linux s390 Development</name>
<name>s390 architecture team</name>
</maintainer>
<longdescription>
Hercules is an emulator for the IBM System/360, System/370, ESA/390, and

@ -52,4 +52,5 @@ src_test() {
src_install() {
default
dodoc doc/*.txt *.txt
find "${ED}" -type f -name "*.la" -delete || die
}

@ -1,2 +1,4 @@
DIST qemu-7.0.0-docs.tar.xz 5101176 BLAKE2B 827d4af2b3fd229d146b47253d12a8bfd60614f5ba60e098abc58a6635bd9f8a029775932f4fc3dee3cb1f0a379133c47d819c53273547abbbf2aacd6bbd4fc5 SHA512 8f27b954a2f3710cee5cb78635631b035ea733f43381d378464733164b897bc0e8c6b373d80f1d97a65b761c13e342ae0c0836202d1506ec0b7c214b7388c7bb
DIST qemu-7.0.0.tar.xz 125117636 BLAKE2B ceda6d9f1a585298bd49fed61e8bb35f0064ad8388a9f979c8bd68a38bfe1a47c5bb055e5f74f970c2c440957042b9de4a861524120040c56e4cd8b56c5cfb68 SHA512 44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1
DIST qemu-7.1.0-docs.tar.xz 2016780 BLAKE2B 1b84361fe58d504ab740a0b805a25d02f497ca776e7251a99f0e98e3720d1a2029b7a171f9d79dd128ba17a82c72d497e09baa1a4b2f192ba390f0f3b1950792 SHA512 7a328303b8af0ab63aa1f0fe07a121d3ca459d00fca817412e645416af795930dbea0a3e60f4ca006a74d1672e84fa4e626e4d83918e0b685b601043d0d8159e
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f

@ -0,0 +1,982 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
# Set to 1 if prebuilt, 0 if not
# (the construct below is to allow overriding from env for script)
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
QEMU_DOCS_PREBUILT_DEV=ajak
QEMU_DOCS_VERSION="${PV}"
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# bug #830088
QEMU_DOC_USEFLAG="+doc"
PYTHON_COMPAT=( python3_{8,9,10} )
PYTHON_REQ_USE="ncurses,readline"
FIRMWARE_ABI_VERSION="7.1.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
if [[ ${PV} == *9999* ]]; then
QEMU_DOCS_PREBUILT=0
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=(
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
)
inherit git-r3
SRC_URI=""
else
MY_P="${PN}-${PV/_rc/-rc}"
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
fi
S="${WORKDIR}/${MY_P}"
#KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG}
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
jack jemalloc +jpeg
lzo multipath
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static static-user systemtap test udev usb
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
zstd"
COMMON_TARGETS="
aarch64
alpha
arm
cris
hppa
i386
loongarch64
m68k
microblaze
microblazeel
mips
mips64
mips64el
mipsel
nios2
or1k
ppc
ppc64
riscv32
riscv64
s390x
sh4
sh4eb
sparc
sparc64
x86_64
xtensa
xtensaeb
"
IUSE_SOFTMMU_TARGETS="
${COMMON_TARGETS}
avr
rx
tricore
"
IUSE_USER_TARGETS="
${COMMON_TARGETS}
aarch64_be
armeb
hexagon
mipsn32
mipsn32el
ppc64le
sparc32plus
"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
RESTRICT="!test? ( test )"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_riscv32? ( fdt )
qemu_softmmu_targets_riscv64? ( fdt )
qemu_softmmu_targets_x86_64? ( fdt )
sdl-image? ( sdl )
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
virtfs? ( caps xattr )
vnc? ( gnutls )
vte? ( gtk )
multipath? ( udev )
plugins? ( !static !static-user )
"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# and user/softmmu targets (qemu-*, qemu-system-*).
#
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the external library.
ALL_DEPEND="
>=dev-libs/glib-2.0[static-libs(+)]
sys-libs/zlib[static-libs(+)]
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-util/systemtap )
xattr? ( sys-apps/attr[static-libs(+)] )"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
app-accessibility/brltty[static-libs(+)]
)
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bpf? ( dev-libs/libbpf:= )
bzip2? ( app-arch/bzip2[static-libs(+)] )
capstone? ( dev-libs/capstone:= )
caps? ( sys-libs/libcap-ng[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (
sys-libs/ncurses:=[unicode(+)]
sys-libs/ncurses:=[static-libs(+)]
)
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl(+),gbm(+)]
)
pam? ( sys-libs/pam )
png? ( media-libs/libpng:0=[static-libs(+)] )
pulseaudio? ( media-sound/pulseaudio )
rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
media-libs/libsdl2[video]
media-libs/libsdl2[static-libs(+)]
)
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
slirp? ( net-libs/libslirp[static-libs(+)] )
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
snappy? ( app-arch/snappy:= )
spice? (
>=app-emulation/spice-protocol-0.12.3
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
udev? ( virtual/libudev:= )
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virgl? ( media-libs/virglrenderer[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools:= )
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
EDK2_OVMF_VERSION="202202"
SEABIOS_VERSION="1.16.0"
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
~sys-firmware/ipxe-1.21.1[binary,qemu]
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
|| (
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
)
sys-firmware/ipxe[qemu]
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
sys-firmware/sgabios
)"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
dev-util/meson
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
)
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)
"
CDEPEND="
!static? (
${ALL_DEPEND//\[static-libs(+)]}
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
)
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
"
DEPEND="${CDEPEND}
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
static? (
${ALL_DEPEND}
${SOFTMMU_TOOLS_DEPEND}
)
static-user? ( ${ALL_DEPEND} )"
RDEPEND="${CDEPEND}
acct-group/kvm
selinux? (
sec-policy/selinux-qemu
sys-libs/libselinux
)"
PATCHES=(
"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
"${FILESDIR}"/${PN}-6.0.0-make.patch
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
"${FILESDIR}"/${PN}-7.1.0-strings.patch
)
QA_PREBUILT="
usr/share/qemu/hppa-firmware.img
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or1k
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32
"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
kernel module loaded before running kvm. The easiest way to ensure that the
kernel module is loaded is to load it on boot.
For AMD CPUs the module is called 'kvm-amd'.
For Intel CPUs the module is called 'kvm-intel'.
Please review /etc/conf.d/modules for how to load these.
Make sure your user is in the 'kvm' group. Just run
$ gpasswd -a <USER> kvm
then have <USER> re-login.
For brand new installs, the default permissions on /dev/kvm might not let
you access it. You can tell udev to reset ownership/perms:
$ udevadm trigger -c add /dev/kvm
If you want to register binfmt handlers for qemu user targets:
For openrc:
# rc-update add qemu-binfmt
For systemd:
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_AMD"
elif grep -q GenuineIntel /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_INTEL"
fi
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/configs/targets/ >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
default
# Use correct toolchain to fix cross-compiling
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
export WINDRES=${CHOST}-windres
# Verbose builds
MAKEOPTS+=" V=1"
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
# this setting (-U then -D..=2) will prevent us from trying out 3, so
# drop it. No change to level of protection b/c we patch our toolchain.
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
# Remove bundled modules
rm -r dtc meson roms/*/ slirp || die
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--bindir=/usr/bin
--libdir=/usr/$(get_libdir)
--datadir=/usr/share
--docdir=/usr/share/doc/${PF}/html
--mandir=/usr/share/man
--localstatedir=/var
--disable-bsd-user
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
--with-git-submodules=ignore
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
# - it's generally slower on non-self-modifying code
# It's advantage is support for host architectures
# where native codegeneration is not implemented.
# Gentoo has qemu keyworded only on targets with
# native code generation available. Avoid the interpreter.
--disable-tcg-interpreter
--disable-werror
# We support gnutls/nettle for crypto operations. It is possible
# to use gcrypt when gnutls/nettle are disabled (but not when they
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable alsa)
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
$(use_enable jack)
$(use_enable nls gettext)
$(use_enable oss)
$(use_enable plugins)
$(use_enable pulseaudio pa)
$(use_enable selinux)
$(use_enable xattr attr)
)
# Disable options not used by user targets. This simplifies building
# static user targets (USE=static-user) considerably.
conf_notuser() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
# Enable option only for softmmu build, but not 'user' or 'tools'
conf_softmmu() {
if [[ ${buildtype} == "softmmu" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
# Enable option only for tools build, but not 'user' or 'softmmu'
conf_tools() {
if [[ ${buildtype} == "tools" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
# Special case for the malloc flag, because the --disable flag does
# not exist and trying like above will break configuring.
conf_malloc() {
if [[ ! ${buildtype} == "user" ]] ; then
usex "${1}" "--enable-malloc=${1}" ""
fi
}
conf_opts+=(
$(conf_notuser accessibility brlapi)
$(conf_notuser aio linux-aio)
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
$(conf_notuser caps cap-ng)
$(conf_notuser curl)
$(conf_tools doc docs)
$(conf_notuser fdt)
$(conf_notuser fuse)
$(conf_notuser glusterfs)
$(conf_notuser gnutls)
$(conf_notuser gnutls nettle)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
$(conf_notuser io-uring linux-io-uring)
$(conf_malloc jemalloc)
$(conf_notuser jpeg vnc-jpeg)
$(conf_notuser kernel_linux kvm)
$(conf_notuser lzo)
$(conf_notuser multipath mpath)
$(conf_notuser ncurses curses)
$(conf_notuser nfs libnfs)
$(conf_notuser numa)
$(conf_notuser opengl)
$(conf_notuser pam auth-pam)
$(conf_notuser png)
$(conf_notuser rbd)
$(conf_notuser sasl vnc-sasl)
$(conf_notuser sdl)
$(conf_softmmu sdl-image)
$(conf_notuser seccomp)
$(conf_notuser slirp slirp system)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
$(conf_notuser ssh libssh)
$(conf_notuser udev libudev)
$(conf_notuser usb libusb)
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
# $(conf_notuser vhost-user-fs)
# $(conf_tools vhost-user-fs virtiofsd)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
# use prebuilt keymaps, bug #759604
--disable-xkbcommon
$(conf_notuser zstd)
)
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
local audio_opts=(
# Note: backend order matters here: #716202
# We iterate from higher-level to lower level.
$(usex pulseaudio pa "")
$(usev jack)
$(usev sdl)
$(usev alsa)
$(usev oss)
)
conf_opts+=(
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-tools
)
local static_flag="static-user"
;;
softmmu)
conf_opts+=(
--disable-linux-user
--enable-system
--disable-blobs
--disable-tools
)
local static_flag="static"
for target in ${IUSE_SOFTMMU_TARGETS}; do
if use "qemu_softmmu_targets_${target}"; then
conf_opts+=(
# For some reason, adding this with the setting set
# to on *or* off makes the build always fail.
# --with-devices-${target}=gentoo
)
fi
done
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
--enable-tools
)
local static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
tc-enables-pie && conf_opts+=( --enable-pie )
fi
# Meson will not use a cross-file unless cross_prefix is set.
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
# Plumb through equivalent of EXTRA_ECONF to allow experiments
# like bug #747928.
conf_opts+=( ${EXTRA_CONF_QEMU} )
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
if use vhost-user-fs; then
echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
else
echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
fi
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build" || die
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build" || die
default
fi
cd "${S}/tools-build" || die
default
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build" || die
pax-mark m */qemu-system-* #515550
emake check
fi
}
qemu_python_install() {
python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
# Generate binfmt support files.
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
generate_initd() {
local out="${T}/qemu-binfmt"
local out_systemd="${T}/qemu.conf"
local d="${T}/binfmt.d"
einfo "Generating qemu binfmt scripts and configuration files"
# Generate the debian fragments first.
mkdir -p "${d}"
"${S}"/scripts/qemu-binfmt-conf.sh \
--debian \
--exportdir "${d}" \
--qemu-path "${EPREFIX}/usr/bin" \
|| die
# Then turn the fragments into a shell script we can source.
sed -E -i \
-e 's:^([^ ]+) (.*)$:\1="\2":' \
"${d}"/* || die
# Generate the init.d script by assembling the fragments from above.
local f qcpu package interpreter magic mask
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
for f in "${d}"/qemu-* ; do
source "${f}"
# Normalize the cpu logic like we do in the init.d for the native cpu.
qcpu=${package#qemu-}
case ${qcpu} in
arm*) qcpu="arm";;
mips*) qcpu="mips";;
ppc*) qcpu="ppc";;
s390*) qcpu="s390";;
sh*) qcpu="sh";;
sparc*) qcpu="sparc";;
esac
# we use 'printf' here to be portable across 'sh'
# implementations: #679168
cat <<EOF >>"${out}"
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
fi
EOF
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
done
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets.
generate_initd
doinitd "${T}/qemu-binfmt"
# Install binfmt/qemu.conf.
insinto "/usr/share/qemu/binfmt.d"
doins "${T}/qemu.conf"
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dodoc check-report.html
if use kernel_linux; then
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
cd "${S}/tools-build" || die
emake DESTDIR="${ED}" install
# If USE=doc, there'll be newly generated docs which we install instead.
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null || die
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
popd >/dev/null || die
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
cd "${S}" || die
dodoc MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
dostrip -x ${QA_PREBUILT}
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
# Remove vgabios since we're using the seavgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
# PPC/PPC64 loads vgabios-stdvga
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
DISABLE_AUTOFORMATTING=true
readme.gentoo_create_doc
}
firmware_abi_change() {
local pv
for pv in ${REPLACING_VERSIONS}; do
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
return 0
fi
done
return 1
}
pkg_postinst() {
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
xdg_icon_cache_update
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
DISABLE_AUTOFORMATTING=true
readme.gentoo_print_elog
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
else
ewarn " $(best_version sys-firmware/edk2-ovmf)"
fi
if has_version 'sys-firmware/seabios-bin'; then
ewarn " $(best_version sys-firmware/seabios-bin)"
else
ewarn " $(best_version sys-firmware/seabios)"
fi
ewarn " $(best_version sys-firmware/ipxe)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
ewarn "firmware. Please (cold) restart all running guests. For functional"
ewarn "guest migration ensure that all"
ewarn "hosts run at least"
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
echo " $(best_version sys-firmware/edk2-ovmf)"
fi
if has_version 'sys-firmware/seabios-bin'; then
echo " $(best_version sys-firmware/seabios-bin)"
else
echo " $(best_version sys-firmware/seabios)"
fi
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
udev_reload
}

@ -17,7 +17,7 @@ QEMU_DOC_USEFLAG="+doc"
PYTHON_COMPAT=( python3_{8,9,10} )
PYTHON_REQ_USE="ncurses,readline"
FIRMWARE_ABI_VERSION="7.0.0"
FIRMWARE_ABI_VERSION="7.1.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
@ -27,7 +27,6 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=(
meson
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
@ -42,8 +41,8 @@ else
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
fi
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
S="${WORKDIR}/${MY_P}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@ -230,34 +229,44 @@ SOFTMMU_TOOLS_DEPEND="
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
EDK2_OVMF_VERSION="202105"
SEABIOS_VERSION="1.14.0"
EDK2_OVMF_VERSION="202202"
SEABIOS_VERSION="1.16.0"
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}[binary]
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
~sys-firmware/ipxe-1.21.1[binary,qemu]
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|| (
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
)
sys-firmware/ipxe[qemu]
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
sys-firmware/sgabios
)"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
dev-util/meson
sys-apps/texinfo
virtual/pkgconfig
doc? (
@ -444,8 +453,8 @@ src_prepare() {
# drop it. No change to level of protection b/c we patch our toolchain.
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
# Remove bundled copy of libfdt
rm -r dtc || die
# Remove bundled modules
rm -r dtc meson roms/*/ slirp || die
}
##
@ -490,7 +499,6 @@ qemu_src_configure() {
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
--python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
@ -583,8 +591,8 @@ qemu_src_configure() {
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
$(conf_notuser vhost-user-fs)
$(conf_tools vhost-user-fs virtiofsd)
# $(conf_notuser vhost-user-fs)
# $(conf_tools vhost-user-fs virtiofsd)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
@ -617,7 +625,6 @@ qemu_src_configure() {
conf_opts+=(
--enable-linux-user
--disable-system
--disable-blobs
--disable-tools
)
local static_flag="static-user"
@ -626,9 +633,20 @@ qemu_src_configure() {
conf_opts+=(
--disable-linux-user
--enable-system
--disable-blobs
--disable-tools
)
local static_flag="static"
for target in ${IUSE_SOFTMMU_TARGETS}; do
if use "qemu_softmmu_targets_${target}"; then
conf_opts+=(
# For some reason, adding this with the setting set
# to on *or* off makes the build always fail.
# --with-devices-${target}=gentoo
)
fi
done
;;
tools)
conf_opts+=(
@ -680,6 +698,16 @@ src_configure() {
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
if use vhost-user-fs; then
echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
else
echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
fi
fi
done
@ -838,10 +866,7 @@ src_install() {
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
rm "${ED}/usr/share/qemu/bios.bin"
rm "${ED}/usr/share/qemu/bios-256k.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
@ -852,6 +877,7 @@ src_install() {
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
# PPC/PPC64 loads vgabios-stdvga
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
@ -863,13 +889,11 @@ src_install() {
fi
# Remove sgabios since we're using the sgabios packaged one
rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
@ -909,9 +933,20 @@ pkg_postinst() {
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
ewarn " $(best_version sys-firmware/edk2-ovmf)"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
else
ewarn " $(best_version sys-firmware/edk2-ovmf)"
fi
if has_version 'sys-firmware/seabios-bin'; then
ewarn " $(best_version sys-firmware/seabios-bin)"
else
ewarn " $(best_version sys-firmware/seabios)"
fi
ewarn " $(best_version sys-firmware/ipxe)"
ewarn " $(best_version sys-firmware/seabios)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
@ -925,22 +960,24 @@ pkg_postinst() {
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
echo " $(best_version sys-firmware/edk2-ovmf)"
if has_version 'sys-firmware/edk2-ovmf[binary]'; then
echo " USE=binary"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
echo " USE=''"
echo " $(best_version sys-firmware/edk2-ovmf)"
fi
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/seabios)"
if has_version 'sys-firmware/seabios[binary]'; then
echo " USE=binary"
if has_version 'sys-firmware/seabios-bin'; then
echo " $(best_version sys-firmware/seabios-bin)"
else
echo " USE=''"
echo " $(best_version sys-firmware/seabios)"
fi
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
udev_reload
}

@ -3,7 +3,7 @@
<pkgmetadata>
<maintainer type="project">
<email>arm@gentoo.org</email>
<name>Gentoo Linux ARM Development</name>
<name>ARM architecture team</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">softgun</remote-id>

Binary file not shown.

@ -22,7 +22,7 @@ SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.gz
LICENSE="BSD CPL-1.0 GPL-2+ IBM java? ( Apache-2.0 )"
SLOT="0/19" # subslot = major soname version
KEYWORDS="amd64 ~hppa ppc ~x86"
KEYWORDS="amd64 ~hppa ppc x86"
IUSE="aff doc ewf java static-libs test +threads zlib"
RESTRICT="!test? ( test )"

Binary file not shown.

@ -1,2 +1,2 @@
DIST ibus-m17n-1.4.10.tar.gz 642940 BLAKE2B f00b4392925a6ad24e5cbfc266d13a68e4b7641a4f70c93bb381d4bea13d03b40af659e2ba27533ce7514477aed2744eaac0b1aa25d7c4280fda8adf1ee5dde7 SHA512 7e8ab477de7fb75fbbcdd25d6f13b0dc1fdaae6ab23a2c5c18de7eadcd88c3ff4d441a32f58d4b4bde0d20685d45dd57fa24c5e61361ad5b6bbb29075949d396
DIST ibus-m17n-1.4.9.tar.gz 494921 BLAKE2B c0adc4ff702b7a9828c6d966b52eca90f7f538786f17a9e8273dd13bcdfab59c24e59b2f680f1582bf4dc077dcc2e3c774258d09f58fc296b32d090ee42531af SHA512 6a7d7316fc98e832282302a5d54eb40b6e879f98d6910db8d2c834be6c23ebda30ccbc5ed116caa3d91148e5bb2260c49f670c8c7fb2c6215d31f3e6794cd3ab
DIST ibus-m17n-1.4.13.tar.gz 646334 BLAKE2B 1fac0920adde05977e9f3f3993a17a8257992f493272c71a56f6b946d89245cc9353e20275a2bda94d6a627d0afc9a71aff0d1edba42c2ee8bbe4ce6ea962852 SHA512 5753a8c1888a2fefa87986d7396d3ad56e3e1109c0dd01fadcaf1e7a7a056dc45323d204f9b5a548900752e1bfc69d638076f51884a8948fa5ba16c7a17d5640

@ -11,7 +11,7 @@ SRC_URI="https://github.com/ibus/${PN}/releases/download/${PV}/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
IUSE="gtk nls"
DEPEND="app-i18n/ibus

@ -11,7 +11,7 @@ SRC_URI="https://github.com/ibus/${PN}/releases/download/${PV}/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 x86"
KEYWORDS="~amd64 ~x86"
IUSE="gtk nls"
DEPEND="app-i18n/ibus

@ -1,2 +1 @@
DIST ibus-table-1.16.11.tar.gz 1518653 BLAKE2B fec1deed7b96492bc9cead734b5063e47d553f690f9c71362a213a81f905f176811d9f397ae72c4a40815611d47df90b5a2bb56851ac28d5ca2dc2efc405716b SHA512 f5da239a05337f368769e7679a0639e73812021579467a195795678d68cf8d70b1f9bd4d31739c60298d60c9da6291c704e592750677ecc59734dd8c4292bf43
DIST ibus-table-1.16.9.tar.gz 1474440 BLAKE2B 8380c9549e4295850c81279e73b774beea610ebb632bc8a04fe0ce37a02c702652c0ec49ed3596851e05d2f151320daf60eb2631c8bbe439aee8c7e2834398f5 SHA512 840de16f62820456812c036ed84f99900d2d49885a9a6131da97efbec149ea426ab4a966541b16a18dbcedf38b6f78803b3fb04a5134258bb3796d3b9caf0b08

@ -13,7 +13,7 @@ SRC_URI="https://github.com/kaio/${PN}/releases/download/${PV}/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
IUSE="nls"
RESTRICT="test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

@ -1,55 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE="sqlite(+)"
inherit gnome2-utils python-single-r1 xdg
DESCRIPTION="Tables engines for IBus"
HOMEPAGE="https://github.com/ibus/ibus/wiki"
SRC_URI="https://github.com/kaio/${PN}/releases/download/${PV}/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="nls"
RESTRICT="test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}
$(python_gen_cond_dep '
app-i18n/ibus[python(+),${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
virtual/libiconv
nls? ( virtual/libintl )"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig
nls? ( sys-devel/gettext )"
src_prepare() {
python_fix_shebang .
default
}
src_configure() {
econf $(use_enable nls)
}
pkg_preinst() {
xdg_pkg_preinst
gnome2_schemas_savelist
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

@ -1,2 +1,2 @@
DIST ibus-typing-booster-2.16.7.tar.gz 10819738 BLAKE2B ac9da1e63d97045881d8012b5dc6bd27cb8ee48aff065876cede2b40a81518880e610580f13590ad89f6261ced266e1d245183ea77a3a56e32b60af08af28470 SHA512 f0dda59b43460c39392ab12748780e93668ac81aa04b15aae2afa2025ce8bbc9e2712430658f43db7e86c7a1e59271d62ecf6cda6cb2b9cc554134000c21c95b
DIST ibus-typing-booster-2.18.10.tar.gz 11086667 BLAKE2B 23c8958a3b1e0c7995f1c3ce3b0b3601e6f1ef12650739af861d011004e4eaf7d6bf6f61fb8d7797ef2f46c557248a909ede93e423ba28f8ad1c76d6ed937085 SHA512 a0eddaef7cbc44b570cc9bd0a606efe3902468eca6cbe7ab1b0d6cb70d917d3c48c9783963b4e7dd4ede358d969623aea292917e76d7f8ab7b0a3a95a8565c3c
DIST ibus-typing-booster-2.18.9.tar.gz 11060426 BLAKE2B 5a2e302bb93002c68e5a61001e013a26043e0b20922b6e79bfc96ebb0b4dbdd920df96d13545619e0b50684c7bf678b1c3df2556a40b0d4660439fc6984acd80 SHA512 1fe9dd28a042be7d946dc0a800363cd7870e8357fa75e4f57acd201b3cca96cfaab4ffbff1a53146713204e8c246ab1cf33ea379e9e1a3aa9b848306567cb7b3

@ -13,7 +13,7 @@ SRC_URI="https://github.com/mike-fabian/${PN}/releases/download/${PV}/${P}.tar.g
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="amd64 x86"
KEYWORDS="~amd64 ~x86"
IUSE=""
RESTRICT="test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

@ -13,7 +13,7 @@ SRC_URI="https://github.com/mike-fabian/${PN}/releases/download/${PV}/${P}.tar.g
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
IUSE=""
RESTRICT="test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

@ -184,6 +184,12 @@ src_test() {
src_install() {
default
# Remove la files
find "${ED}" -name '*.la' -delete || die
# Remove stray python files generated by the build system
find "${ED}" -name '*.pyc' -exec rm -f {} \; || die
find "${ED}" -name '*.pyo' -exec rm -f {} \; || die
if use python; then
python_install() {
@ -206,13 +212,6 @@ src_install() {
# Undo compression of man page
find "${ED}"/usr/share/man -type f -name '*.gz' -exec gzip -d {} \; || die
# Remove stray python files generated by the build system
find "${ED}" -name '*.pyc' -exec rm -f {} \; || die
find "${ED}" -name '*.pyo' -exec rm -f {} \; || die
# Remove la files
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {

Binary file not shown.

@ -3,7 +3,7 @@
<pkgmetadata>
<maintainer type="project">
<email>ppc@gentoo.org</email>
<name>Gentoo Linux PowerPC Development</name>
<name>PowerPC architecture team</name>
</maintainer>
<use>
<flag name="ibam">Enable support for Intelligent Battery Monitoring</flag>

Binary file not shown.

@ -3,4 +3,5 @@ DIST ca-certificates_20211016.tar.xz 239608 BLAKE2B 9b4730b54fd9f472fe4e5427bf91
DIST nss-3.66.tar.gz 82401896 BLAKE2B ae369899af681e1c6ea8046098c83da08c2112b16d85a0eaee46e9d4f97dfb3f7c3e97eb681ec947b5648446c6db51e8f1396ec9bb6c731c9678ecf925e7f743 SHA512 327129cb065a8c19246e081e3cbc4798c81dc52eab6ee366eade151e9d308990592075c52a7c672165725fd855a0c539d56a803c26ef066561c584d693e0e467
DIST nss-3.79.tar.gz 84830113 BLAKE2B f558592bf0983d3c44f11e079512865d310b4f4c225bcc8e2058cb6a4a721d471c575965a1c2b5d0a130dcf27840da3d7b0ee8aa27fc63791414e22ef7804fa8 SHA512 d3311da3bd0e6907760390221c1307a63d84dd8ad9b85dbfdbf59fe4678341c9856b6f93235731999a1236c98dc0ac66d2dc023eb439cb696f73509dae70c41d
DIST nss-3.80.tar.gz 84841312 BLAKE2B 6244193849a9277bc68c5225b4f836309bdf07bc415b23793d14c5343f5236b27bb7552fa7fb9975f410ea4732e9fc37185fee7bb950bf5d15b478f8bdec3ba7 SHA512 db05df17fea12bf3ec83882bf761663f8f10f3a8ce9a33519c7985d6003945068adb658250cf05d8b598c34ecb4ba7ea5cdc468d9cc7bc786aedb72d7be65923
DIST nss-3.82.tar.gz 84708994 BLAKE2B 59d3ace416c725933a07c51dc911f2fa11d55b1daddc5252a01ef3ae9df3375cbb199eff92e8e2bb364b9381ad1066c74d4f93c00900847f5234591bbbb29824 SHA512 6e0f28c3f776178ab2d97c6e2436aa10d72c9c2668aea1a6695ccf49e8c3c4cd2d266168508bcb456c655f2e692dceb44eae53c80d50076d7156db3deac70057
DIST nss-cacert-class1-class3-r2.patch 21925 BLAKE2B 7627ff9a09f084c19d72d0490676865e3cab3ca7c920ae1ce4bea2db664f37fd0aa84fcda919809a516891ab2a62e2e7a43a9d6ada4c231adfe4c216525fac7d SHA512 1ce6ff9ab310aaca9005eafb461338b291df8523cc7044e096cd75774ce746c26eed19ec6bb2643c6c67f94650f2f309463492d80a90568f38ce2557f8ada2f4

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save