Sync with portage [Mon Jan 20 01:10:53 MSK 2020].

mhiretskiy 1569
root 4 years ago
parent 22ebc2065e
commit 5989f505ec

Binary file not shown.

Binary file not shown.

@ -0,0 +1,9 @@
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-group
DESCRIPTION="Group for net-p2p/amule"
ACCT_GROUP_ID=468

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>alexander@tsoy.me</email>
<name>Alexander Tsoy</name>
</maintainer>
<maintainer type="project">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,8 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-group
ACCT_GROUP_ID=435

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mjo@gentoo.org</email>
<name>Michael Orlitzky</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mjo@gentoo.org</email>
<name>Michael Orlitzky</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,8 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-group
ACCT_GROUP_ID=436

Binary file not shown.

@ -0,0 +1,12 @@
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-user
DESCRIPTION="User for net-p2p/amule"
ACCT_USER_ID=468
ACCT_USER_GROUPS=( amule )
acct-user_add_deps

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>alexander@tsoy.me</email>
<name>Alexander Tsoy</name>
</maintainer>
<maintainer type="project">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,11 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-user
ACCT_USER_ID=435
ACCT_USER_GROUPS=( "${PN}" )
acct-user_add_deps

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mjo@gentoo.org</email>
<name>Michael Orlitzky</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,12 @@
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-user
DESCRIPTION="user for net-analyzer/ippl"
ACCT_USER_ID=465
ACCT_USER_GROUPS=( nofiles )
acct-user_add_deps

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>netmon@gentoo.org</email>
<name>Gentoo network monitoring and analysis project</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mjo@gentoo.org</email>
<name>Michael Orlitzky</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,11 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit acct-user
ACCT_USER_ID=436
ACCT_USER_GROUPS=( "${PN}" )
acct-user_add_deps

Binary file not shown.

@ -1,3 +1,4 @@
DIST docker-bench-0.2.2.tar.gz 64297 BLAKE2B 12e48e54759e0e71651056ce04f47b5983e65eed2758d07d46e1e709f6b5bf382a74966cd13fe29eb709f3838878e414882e5a103c3bd291d348118bd7f2dcdc SHA512 034951020d003fada3b5d7a0b2c59ea4f2f85ed1d3a4c0e2d054e35dd206ba3e18eaf576b17acaf3b0a3e85182371b6e89ec4c4d0f39122df19a0ec86428fea2
DIST docker-bench-0_p20190822.tar.gz 49441 BLAKE2B ea4d9056f0825c8adc0b87837fdb2087577ab68fbd53189310fd983f2a4155329789c30cd228b043d08e265457a90f0692210eddc87cbe63479f1c2ecf698401 SHA512 6157d9a473f10fc9e593c1cd87b153f1f34e8317bc31787085cca5a5be92efa1b00b386afa73f62a23ef45b39da70fe8345b61fd3955f5cdef82a085df854b27
DIST github.com-aquasecurity-bench-common-81f08528fa03.tar.gz 18981 BLAKE2B 6579a12622870e537a16f467bcfed71ed1c791641e1948caee10a69f8ff7fc28a3f73e48beb8d3b1d274428e498720f528237d07b28fe1319164ab1339852d0e SHA512 b01f88ddb7c119dc9d7e4f7f3e2d9c80b4046dcd65c6d5f2640d28c235c04fbe03b348032584350485f6323920f692cd96ff73e4140faaeb26d7d5b6eb24671f
DIST github.com-fatih-color-v1.7.0.tar.gz 816449 BLAKE2B f006f51cbd1a0288380b339d7d2b493e447aa1e6bd783f11de5670d4db6ff8c1463cbe957a04127c1f24186a9362be8c40ecdf4394cbbc0e2c6c2cb598c012ac SHA512 ee5668ce828ad3e5461c54d971aee4b10a578f697717010d60fdda641948430816e74580563dfea6a4c66a9840175ff5b63c2ca9cf1af213cfac5be7b8ddac36

@ -0,0 +1,47 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit bash-completion-r1 go-module
DESCRIPTION="Docker Bench for Security runs the CIS Docker Benchmark"
HOMEPAGE="https://github.com/aquasecurity/docker-bench"
EGO_VENDOR=(
"github.com/aquasecurity/bench-common 81f08528fa03"
"github.com/fatih/color v1.7.0"
"github.com/fsnotify/fsnotify v1.4.7"
"github.com/golang/glog 23def4e6c14b"
"github.com/hashicorp/hcl v1.0.0"
"github.com/inconshreveable/mousetrap v1.0.0"
"github.com/magiconair/properties v1.8.0"
"github.com/mattn/go-colorable v0.1.2"
"github.com/mattn/go-isatty v0.0.8"
"github.com/mitchellh/mapstructure v1.1.2"
"github.com/pelletier/go-toml v1.2.0"
"github.com/spf13/afero v1.1.2"
"github.com/spf13/cast v1.3.0"
"github.com/spf13/cobra v0.0.5"
"github.com/spf13/jwalterweatherman v1.0.0"
"github.com/spf13/pflag v1.0.3"
"github.com/spf13/viper v1.4.0"
"golang.org/x/sys a9d3bda3a223 github.com/golang/sys"
"golang.org/x/text v0.3.0 github.com/golang/text"
"gopkg.in/yaml.v2 v2.2.2 github.com/go-yaml/yaml"
)
SRC_URI="https://github.com/aquasecurity/docker-bench/archive/v${PV}.tar.gz -> ${P}.tar.gz
$(go-module_vendor_uris)"
LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64"
src_compile() {
go build -o ${PN} . || die
}
src_install() {
dobin ${PN}
insinto /etc/docker-bench/
doins -r cfg
}

@ -1,2 +1 @@
DIST qtpass-1.2.3.tar.gz 369412 BLAKE2B 55e8f5e7967b264b20aa044979620631f319e2ff38edcc4e1390ab5d9f35e1e90ff8ff00c94cd35a9b5c05a5ccd8d8fdfc97214e9bd9f564bae1bd80efe0f224 SHA512 d6c3af5b92042a38afecb40689d41c08105dd2a39555f78ebc585a6db6dd65cd8fd6dc637542dd3b5b4ce18f1a852768ffa298b5a461a2d0e4ef4950c58d1649
DIST qtpass-1.3.2.tar.gz 310316 BLAKE2B ac0f562fd263e9d46980a69183cfd556596750e1050dbc50748cd9be45bc4bf39e4de14cb59f778cfc54f5c32050d567d88d65ec039cba1e9c2e8ef24d7ae99a SHA512 9026f74f6ff75fcef2f6a0862484a2a1eaed1370edd0659e8b4d20039affe846e0da3a0a26a804563813bc678638ab67fa516441208e70c7e9de9b2eda876a10

@ -1,62 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
MY_P="QtPass-${PV}"
inherit desktop qmake-utils virtualx
DESCRIPTION="multi-platform GUI for pass, the standard unix password manager"
HOMEPAGE="https://qtpass.org/"
SRC_URI="https://github.com/IJHack/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="app-admin/pass
dev-qt/qtcore:5
dev-qt/qtgui:5[xcb]
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
net-misc/x11-ssh-askpass"
DEPEND="${RDEPEND}
dev-qt/linguist-tools:5
dev-qt/qtsvg:5
test? ( dev-qt/qttest:5 )"
S="${WORKDIR}/${MY_P}"
DOCS=( {CHANGELOG,CONTRIBUTING,FAQ,README}.md )
src_prepare() {
default
if ! use test ; then
sed -i '/SUBDIRS += src /s/tests //' \
qtpass.pro || die "sed for qtpass.pro failed"
fi
}
src_configure() {
eqmake5 PREFIX="${D}"/usr
}
src_test() {
virtx default
}
src_install() {
default
insinto /usr/share/"${PN}"/translations
doins localization/*.qm
doman "${PN}".1
domenu "${PN}".desktop
newicon artwork/icon.png "${PN}"-icon.png
insinto /usr/share/appdata
doins qtpass.appdata.xml
}

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -11,7 +11,7 @@ SRC_URI="https://github.com/IJHack/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="test"
RDEPEND="app-admin/pass

@ -1,2 +1,3 @@
DIST rasdaemon-0.6.1.tar.bz2 363201 BLAKE2B bdc7ec3c2e7e4b2fee02dddc55b5afd82df64717f45da15dbfd5fee87721b80ac425af5806ee7462cad29c6ab2953a2e649c4b1e455983d8821a1f633d76c85d SHA512 a221a7ea0e4555befbf8acb9d4ce22d5cc7861a0da458111a24905fa06be0e8f3b18d8de5334310a423657febc0532d2705236de89cb1788302bf487ede29f60
DIST rasdaemon-0.6.2.tar.bz2 375140 BLAKE2B fd22185172777865120fbd13b7bfb5db9b9b0348fe8575ca6b5f16fd662c1e847729e239342b1c9ece70a4e79ad00352bb69d9f80cfbc8da2c961e68874dd03b SHA512 d8c1ee2cc801124837b3a0739f3016a206165306e300ce51e6aac2cef56bb65479f96cdb019ba3a5cffeba94e7b67ca22686d4ac94bfa8a8a1145db6ba51096b
DIST rasdaemon-0.6.5.tar.bz2 403435 BLAKE2B bc6fa1aea6a6f0190a4f26df936f0ceb4c9b2ae00183ad9239430a018d9c8178e54b016a0aa9d22d97d851b59321b4a27cad7196f1fc22790d15a19c9c06f6e6 SHA512 aa781f3148ae32c8bc7ff8007574912454180725b9b102e1c7c583101dd1fd96debbdc78f3f2a35db45df359c7547cad4d87b490af66f444341c0dc8429c1310

@ -0,0 +1,63 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit linux-info systemd
DESCRIPTION="Reliability, Availability and Serviceability logging tool"
HOMEPAGE="http://www.infradead.org/~mchehab/rasdaemon/"
SRC_URI="http://www.infradead.org/~mchehab/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="sqlite"
DEPEND=""
RDEPEND="
${DEPEND}
sys-devel/gettext
sys-apps/dmidecode
sqlite? (
dev-db/sqlite
dev-perl/DBD-SQLite
)
"
pkg_setup() {
linux-info_pkg_setup
local CONFIG_CHECK="~ACPI_EXTLOG"
check_extra_config
}
src_configure() {
local myconf=(
$(use_enable sqlite sqlite3)
--enable-abrt-report
--enable-aer
--enable-arm
--enable-extlog
--enable-hisi-ns-decode
--enable-mce
--enable-non-standard
--enable-devlink
--enable-diskerror
--includedir="/usr/include/${PN}"
--localstatedir=/var
)
econf "${myconf[@]}"
}
src_install() {
default
keepdir "/var/lib/${PN}"
systemd_dounit misc/*.service
newinitd "${FILESDIR}/rasdaemon.openrc-r2" rasdaemon
newinitd "${FILESDIR}/ras-mc-ctl.openrc-r1" ras-mc-ctl
newconfd "${FILESDIR}"/rasdaemon.confd rasdaemon
}

@ -1,4 +1,6 @@
DIST rsyslog-8.1910.0.tar.gz 2957635 BLAKE2B ea350d3fb923c2f7d2799942fec6a77ef893fa12bc95a5b1428b8e280d96b562cd864469ebf13ee57e9ea89787765a4bb13d155460defc73a3a85b17ad6a5ab1 SHA512 85f5df91a6357ecb38708b4d569d26804a50ca28c928a636ac7749595f1a7105c3450fbd521835a436ebdfdcac33a33986e09a09026745ea4d1a2897406770d5
DIST rsyslog-8.1911.0.tar.gz 2967162 BLAKE2B 6c15436cf6751267de38662b2c5d524dc7f90add4ed1aa7102811d197c2d86847316b58ed626fe0ab2b731c445fbcfb328464a2b1b7c4c3afedccb103267f772 SHA512 8414901a5072cb2cc28d35802c9e22d0f9c88f2ae15985a087a86b0e4053471b02d43bcc95d0c466719105e0a5ee683927af3842b9487f27ddddc1ca00ed713a
DIST rsyslog-8.2001.0.tar.gz 2999701 BLAKE2B 8b0b0af6a9f8ea53540cd4869ad9ccc6f1adfea3349c4785222d72028101d8e095a7bb0c0496b5026b4144a64cd5d42f547294f03c75a205fa5724e67675ff6e SHA512 a68053630c43bea813cc3191ebff04473031df49899a6be2d5c331ac18882f373fc54fd7fb45c397fcbbcb269f246eeba5e9126911edd1bfe1c52f60921740d2
DIST rsyslog-doc-8.1910.0.tar.gz 8158007 BLAKE2B 7a05cf7070ba350d0fb939350868ff0dd9d03be46ebd1b1261e54add70ab680afe0b356f563ea9e10148aed17667fc0b729e2fa8f7ff7cff3e4cec9d0da209a8 SHA512 e46f14e40ae690efbe3114a859c1c94c8f9573ca5ebdb533ad4b5ed76c3a930c887cc205e7279fcc546fda3ce624eae507ce08d5d10ee1eb167a957edd742bf2
DIST rsyslog-doc-8.1911.0.tar.gz 8183360 BLAKE2B f5681945fb30ddf9c21a60ebafaf99698f10ef4790e76c9f6f329763215d5a1d47918008ade3e8ff8b7d4fb3ce1220cfc6f307ebc1dbf85697c3d92f7b855023 SHA512 2326550a0db108db407b701ff0b7b8545f94d06c1979bfbea3496a9a652de2a22bf49e9b95d4b2e6256bbf1f9db6a1c9822557c6ebd6a56bc00f096a642b19df
DIST rsyslog-doc-8.2001.0.tar.gz 8200594 BLAKE2B ad0fda200749083a56fd4d731b03982e25ff32a7c6b4ff10f996ee42a46c6985f11fc8265e6992d1d5c86973541d0b0cf15c014460792a4658f45a1a310aee4f SHA512 6d58a67914f65d75eb77411e760b9e49be3723fb6e4ab8951ce28bf83372e3ec7805fac5aef49158fa47c6c4a9109e887bcc46ed3ca0cdc53de4e9b66472be14

@ -0,0 +1,462 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8} )
inherit autotools eutils linux-info python-any-r1 systemd
DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
HOMEPAGE="https://www.rsyslog.com/"
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/rsyslog/${PN}.git"
DOC_REPO_URI="https://github.com/rsyslog/${PN}-doc.git"
inherit git-r3
else
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~x86"
SRC_URI="
https://www.rsyslog.com/files/download/${PN}/${P}.tar.gz
doc? ( https://www.rsyslog.com/files/download/${PN}/${PN}-doc-${PV}.tar.gz )
"
fi
LICENSE="GPL-3 LGPL-3 Apache-2.0"
SLOT="0"
IUSE="curl dbi debug doc elasticsearch +gcrypt gnutls jemalloc kafka kerberos kubernetes libressl mdblookup"
IUSE+=" mongodb mysql normalize clickhouse omhttp omhttpfs omudpspoof openssl postgres"
IUSE+=" rabbitmq redis relp rfc3195 rfc5424hmac snmp ssl systemd test usertools +uuid xxhash zeromq"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-libs/libfastjson-0.99.8:=
>=dev-libs/libestr-0.1.9
>=sys-libs/zlib-1.2.5
curl? ( >=net-misc/curl-7.35.0 )
dbi? ( >=dev-db/libdbi-0.8.3 )
elasticsearch? ( >=net-misc/curl-7.35.0 )
gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
jemalloc? ( >=dev-libs/jemalloc-3.3.1:= )
kafka? ( >=dev-libs/librdkafka-0.9.0.99:= )
kerberos? ( virtual/krb5 )
kubernetes? ( >=net-misc/curl-7.35.0 )
mdblookup? ( dev-libs/libmaxminddb:= )
mongodb? ( >=dev-libs/mongo-c-driver-1.1.10:= )
mysql? ( dev-db/mysql-connector-c:= )
normalize? (
>=dev-libs/liblognorm-2.0.3:=
)
clickhouse? ( >=net-misc/curl-7.35.0 )
omhttpfs? ( >=net-misc/curl-7.35.0 )
omudpspoof? ( >=net-libs/libnet-1.1.6 )
postgres? ( >=dev-db/postgresql-8.4.20:= )
rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0:= )
redis? ( >=dev-libs/hiredis-0.11.0:= )
relp? ( >=dev-libs/librelp-1.2.17:= )
rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
rfc5424hmac? (
!libressl? ( >=dev-libs/openssl-0.9.8y:0= )
libressl? ( dev-libs/libressl:= )
)
snmp? ( >=net-analyzer/net-snmp-5.7.2 )
ssl? (
gnutls? ( >=net-libs/gnutls-2.12.23:0= )
openssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
)
systemd? ( >=sys-apps/systemd-234 )
uuid? ( sys-apps/util-linux:0= )
xxhash? ( dev-libs/xxhash:= )
zeromq? (
>=net-libs/czmq-3.0.2
)"
DEPEND="${RDEPEND}
>=sys-devel/autoconf-archive-2015.02.24
virtual/pkgconfig
elibc_musl? ( sys-libs/queue-standalone )
test? (
>=dev-libs/liblogging-1.0.1[stdlog]
jemalloc? ( <sys-libs/libfaketime-0.9.7 )
!jemalloc? ( sys-libs/libfaketime )
${PYTHON_DEPS}
)"
REQUIRED_USE="
kubernetes? ( normalize )
ssl? ( || ( gnutls openssl ) )
"
if [[ ${PV} == "9999" ]]; then
DEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
DEPEND+=" >=sys-devel/flex-2.5.39-r1"
DEPEND+=" >=sys-devel/bison-2.4.3"
DEPEND+=" >=dev-python/docutils-0.12"
fi
CONFIG_CHECK="~INOTIFY_USER"
WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER isn't set. Imfile module on this system will only support polling mode!"
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_unpack() {
if [[ ${PV} == "9999" ]]; then
git-r3_fetch
git-r3_checkout
else
unpack ${P}.tar.gz
fi
if use doc; then
if [[ ${PV} == "9999" ]]; then
local _EGIT_BRANCH=
if [[ -n "${EGIT_BRANCH}" ]]; then
# Cannot use rsyslog commits/branches for documentation repository
_EGIT_BRANCH=${EGIT_BRANCH}
unset EGIT_BRANCH
fi
git-r3_fetch "${DOC_REPO_URI}"
git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
if [[ -n "${_EGIT_BRANCH}" ]]; then
# Restore previous EGIT_BRANCH information
EGIT_BRANCH=${_EGIT_BRANCH}
fi
else
cd "${S}" || die "Cannot change dir into '${S}'"
mkdir docs || die "Failed to create docs directory"
cd docs || die "Failed to change dir into '${S}/docs'"
unpack ${PN}-doc-${PV}.tar.gz
fi
fi
}
src_prepare() {
default
# https://github.com/rsyslog/rsyslog/issues/3626
sed -i \
-e '\|^#!/bin/bash$|a exit 77' \
tests/mmkubernetes-cache-expir*.sh \
|| die "Failed to disabled known test failure mmkubernetes-cache-expir*.sh"
eautoreconf
}
src_configure() {
# Maintainer notes:
# * Guardtime support is missing because libgt isn't yet available
# in portage.
# * Hadoop's HDFS file system output module is currently not
# supported in Gentoo because nobody is able to test it
# (JAVA dependency).
# * dev-libs/hiredis doesn't provide pkg-config (see #504614,
# upstream PR 129 and 136) so we need to export HIREDIS_*
# variables because rsyslog's build system depends on pkg-config.
if use redis; then
export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
fi
local myeconfargs=(
--disable-debug-symbols
--disable-generate-man-pages
--without-valgrind-testbench
--disable-liblogging-stdlog
$(use_enable test testbench)
$(use_enable test libfaketime)
$(use_enable test extended-tests)
# Input Plugins without depedencies
--enable-imdiag
--enable-imfile
--enable-impstats
--enable-imptcp
# Message Modificiation Plugins without depedencies
--enable-mmanon
--enable-mmaudit
--enable-mmcount
--enable-mmfields
--enable-mmjsonparse
--enable-mmpstrucdata
--enable-mmrm1stspace
--enable-mmsequence
--enable-mmutf8fix
# Output Modification Plugins without dependencies
--enable-mail
--enable-omprog
--enable-omruleset
--enable-omstdout
--enable-omuxsock
# Misc
--enable-fmhash
$(use_enable xxhash fmhash-xxhash)
--enable-pmaixforwardedfrom
--enable-pmciscoios
--enable-pmcisconames
--enable-pmlastmsg
$(use_enable normalize pmnormalize)
--enable-pmnull
--enable-pmpanngfw
--enable-pmsnare
# DB
$(use_enable dbi libdbi)
$(use_enable mongodb ommongodb)
$(use_enable mysql)
$(use_enable postgres pgsql)
$(use_enable redis omhiredis)
# Debug
$(use_enable debug)
$(use_enable debug diagtools)
$(use_enable debug valgrind)
# Misc
$(use_enable clickhouse)
$(use_enable curl fmhttp)
$(use_enable elasticsearch)
$(use_enable gcrypt libgcrypt)
$(use_enable jemalloc)
$(use_enable kafka imkafka)
$(use_enable kafka omkafka)
$(use_enable kerberos gssapi-krb5)
$(use_enable kubernetes mmkubernetes)
$(use_enable normalize mmnormalize)
$(use_enable mdblookup mmdblookup)
$(use_enable omhttp)
$(use_enable omhttpfs)
$(use_enable omudpspoof)
$(use_enable rabbitmq omrabbitmq)
$(use_enable relp)
$(use_enable rfc3195)
$(use_enable rfc5424hmac mmrfc5424addhmac)
$(use_enable snmp)
$(use_enable snmp mmsnmptrapd)
$(use_enable gnutls)
$(use_enable openssl)
$(use_enable systemd imjournal)
$(use_enable systemd omjournal)
$(use_enable usertools)
$(use_enable uuid)
$(use_enable zeromq imczmq)
$(use_enable zeromq omczmq)
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
)
econf "${myeconfargs[@]}"
}
src_compile() {
default
if use doc && [[ "${PV}" == "9999" ]]; then
einfo "Building documentation ..."
local doc_dir="${S}/docs"
cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
sphinx-build -b html source build || die "Building documentation failed!"
fi
}
src_test() {
local _has_increased_ulimit=
# Sometimes tests aren't executable (i.e. when added via patch)
einfo "Adjusting permissions of test scripts ..."
find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
die "Failed to adjust test scripts permission"
if ulimit -n 3072; then
_has_increased_ulimit="true"
fi
if ! emake --jobs 1 check; then
eerror "Test suite failed! :("
if [[ -z "${_has_increased_ulimit}" ]]; then
eerror "Probably because open file limit couldn't be set to 3072."
fi
if has userpriv ${FEATURES}; then
eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
"before you submit a bug report."
fi
fi
}
src_install() {
local DOCS=(
AUTHORS
ChangeLog
"${FILESDIR}"/README.gentoo
)
use doc && local HTML_DOCS=( "${S}/docs/build/." )
default
newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
keepdir /var/empty/dev
keepdir /var/spool/${PN}
keepdir /etc/ssl/${PN}
keepdir /etc/${PN}.d
insinto /etc
newins "${FILESDIR}/${PN}.conf" ${PN}.conf
insinto /etc/rsyslog.d/
newins "${FILESDIR}/50-default-r1.conf" 50-default.conf
insinto /etc/logrotate.d/
newins "${FILESDIR}/${PN}-r1.logrotate" ${PN}
if use mysql; then
insinto /usr/share/${PN}/scripts/mysql
doins plugins/ommysql/createDB.sql
fi
if use postgres; then
insinto /usr/share/${PN}/scripts/pgsql
doins plugins/ompgsql/createDB.sql
fi
prune_libtool_files --modules
}
pkg_postinst() {
local advertise_readme=0
if [[ -z "${REPLACING_VERSIONS}" ]]; then
# This is a new installation
advertise_readme=1
if use mysql || use postgres; then
echo
elog "Sample SQL scripts for MySQL & PostgreSQL have been installed to:"
elog " /usr/share/doc/${PF}/scripts"
fi
if use ssl; then
echo
elog "To create a default CA and certificates for your server and clients, run:"
elog " emerge --config =${PF}"
elog "on your logging server. You can run it several times,"
elog "once for each logging client. The client certificates will be signed"
elog "using the CA certificate generated during the first run."
fi
fi
if [[ ${advertise_readme} -gt 0 ]]; then
# We need to show the README file location
echo ""
elog "Please read"
elog ""
elog " ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
elog ""
elog "for more details."
fi
}
pkg_config() {
if ! use ssl ; then
einfo "There is nothing to configure for rsyslog unless you"
einfo "used USE=ssl to build it."
return 0
fi
# Make sure the certificates directory exists
local CERTDIR="${EROOT}/etc/ssl/${PN}"
if [[ ! -d "${CERTDIR}" ]]; then
mkdir "${CERTDIR}" || die
fi
einfo "Your certificates will be stored in ${CERTDIR}"
# Create a default CA if needed
if [[ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]]; then
einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
certtool --generate-privkey \
--outfile "${CERTDIR}/${PN}_ca.privkey.pem" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
cat > "${T}/${PF}.$$" <<- _EOF
cn = Portage automated CA
ca
cert_signing_key
expiration_days = 3650
_EOF
certtool --generate-self-signed \
--load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
--outfile "${CERTDIR}/${PN}_ca.cert.pem" \
--template "${T}/${PF}.$$" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
# Create the server certificate
echo
einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
read -r CN
einfo "Creating private key and certificate for server ${CN}..."
certtool --generate-privkey \
--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
cat > "${T}/${PF}.$$" <<- _EOF
cn = ${CN}
tls_www_server
dns_name = ${CN}
expiration_days = 3650
_EOF
certtool --generate-certificate \
--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
--template "${T}/${PF}.$$" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
else
einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
fi
# Create a client certificate
echo
einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
read -r CN
einfo "Creating private key and certificate for client ${CN}..."
certtool --generate-privkey \
--outfile "${CERTDIR}/${PN}_${CN}.key.pem" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
cat > "${T}/${PF}.$$" <<- _EOF
cn = ${CN}
tls_www_client
dns_name = ${CN}
expiration_days = 3650
_EOF
certtool --generate-certificate \
--outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
--load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
--load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
--load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
--template "${T}/${PF}.$$" &>/dev/null
chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
rm -f "${T}/${PF}.$$"
echo
einfo "Here is the documentation on how to encrypt your log traffic:"
einfo " https://www.rsyslog.com/doc/rsyslog_tls.html"
}

@ -0,0 +1,82 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic systemd toolchain-funcs
DESCRIPTION="Standard log daemons"
HOMEPAGE="https://troglobit.com/sysklogd.html https://github.com/troglobit/sysklogd"
if [[ "${PV}" == *9999 ]] ; then
inherit autotools git-r3
EGIT_REPO_URI="https://github.com/troglobit/sysklogd.git"
else
SRC_URI="https://github.com/troglobit/sysklogd/releases/download/v${PV}/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
fi
LICENSE="BSD"
SLOT="0"
IUSE="logger logrotate systemd"
RESTRICT="test"
DEPEND="
logger? (
!<sys-apps/util-linux-2.34-r3
!>=sys-apps/util-linux-2.34-r3[logger]
)
"
RDEPEND="${DEPEND}"
DOCS=( ChangeLog.md README.md )
pkg_setup() {
append-lfs-flags
tc-export CC
}
src_prepare() {
default
[[ "${PV}" == *9999 ]] && eautoreconf
}
src_configure() {
local myeconfargs=(
--runstatedir="${EPREFIX}"/run
$(use_with logger)
$(use_with systemd systemd $(systemd_get_systemunitdir))
)
econf "${myeconfargs[@]}"
}
src_install() {
default
insinto /etc
doins syslog.conf
keepdir /etc/syslog.d
newinitd "${FILESDIR}"/sysklogd.rc10 sysklogd
newconfd "${FILESDIR}"/sysklogd.confd3 sysklogd
if use logrotate ; then
insinto /etc/logrotate.d
newins "${FILESDIR}"/sysklogd.logrotate sysklogd
sed 's@ -r 10M:10@@' -i "${ED}"/etc/conf.d/sysklogd || die
fi
find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
}
pkg_postinst() {
if ! use logrotate && [[ -n ${REPLACING_VERSIONS} ]] && ver_test ${REPLACING_VERSIONS} -lt 2.0 ; then
elog "Starting with version 2.0 syslogd has built in log rotation"
elog "functionality that does no longer require a running cron daemon."
elog "So we no longer install any log rotation cron files for sysklogd."
fi
if [[ -n ${REPLACING_VERSIONS} ]] && ver_test ${REPLACING_VERSIONS} -lt 2.1 ; then
elog "Starting with version 2.1 sysklogd no longer provides klogd."
elog "syslogd now also logs kernel messages."
fi
}

@ -1,32 +1,35 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit kde5
KFMIN=5.60.0
QTMIN=5.12.3
inherit ecm kde.org
if [[ ${KDE_BUILD_TYPE} = release ]]; then
SRC_URI="mirror://kde/unstable/${PN}/${P}.tar.xz"
KEYWORDS="~amd64"
fi
DESCRIPTION="systemd managment utility"
DESCRIPTION="Systemd managment utility"
HOMEPAGE="https://cgit.kde.org/systemdgenie.git"
LICENSE="GPL-2+"
IUSE=""
SLOT="5"
BDEPEND="sys-devel/gettext"
DEPEND="
$(add_frameworks_dep kauth)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kcrash)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kxmlgui)
$(add_qt_dep qtdbus)
$(add_qt_dep qtgui)
$(add_qt_dep qtwidgets)
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtgui-${QTMIN}:5
>=dev-qt/qtwidgets-${QTMIN}:5
>=kde-frameworks/kauth-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/kcrash-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
sys-apps/systemd:=
"
RDEPEND="${DEPEND}"

@ -1,6 +1,2 @@
DIST terraform-0.11.13.tar.gz 10906645 BLAKE2B dafdc1acddd4ea97b41cc5899a541701731fce7b13b914c0859fe148b10b5c8ac877d71b665e8d80a65f376bb09fb8ae6fd0e0263ff711a156ca48119522f89d SHA512 1c16f20d1a65c763f1091ff2d20e0752e62903e07a12d41dd722e5c4c989f477da7d64901336d7536ed1693d5c82f4548ae5a643edae85b4e83325fc8c81b245
DIST terraform-0.12.11.tar.gz 10338506 BLAKE2B 62c33591d55345e8c3b9c61b6f9279a81f1df86f5942cee787e4b525eefdf7834f0e4a6a42835b4ae038591fd467941454be674a3c1c8b329ef52c7d5e39359b SHA512 2b9fc6157aea8e7159d7089135620433d75843f2b3dd48af18ecb7837a5ca3ea72d9dfb8b36a25a65f9b9cc29b11bc7910f124a359a6589bfb941a714e0b7b23
DIST terraform-0.12.12.tar.gz 10441883 BLAKE2B c30366c46bc77b7b5c1a44766ce891db01a139e1fa9f936962341d2b9230f85c9137ffc3236e6baad5aad5bada845fd0327846ebfb0c93037ae7c9c46fd70f13 SHA512 58e15da1cc5345e7780573bfeda4a6f34dc281682a0e3f7bf6b129d0db42ff343b79575bb06472e1c994f8d3e3d7e3ab507a4a09f1cfd166690a611af221bd8e
DIST terraform-0.12.15.tar.gz 10432372 BLAKE2B 9d8d70cf88ef56dbe891be266353fe2eb89b51740e22264f46e0b20785bbb8b6752e2465b02dba79bd9a30a6d0914ddfc7e9b7000f38fcbeb01580d1ac52eec3 SHA512 a63b0acd81e814b679a479ead8afe023d5fca0a925eef6b7ccbfa1916554e47a383dbe73f97d036c0c8ebe3e2289c9001ce24c50eef4e5d5eab3ca48d766150b
DIST terraform-0.12.16.tar.gz 10435715 BLAKE2B 1f2f221130ebe8df45cdde5fece7773af16b4dfc0a1a336109c9ea3eafcc5f8382069e60b7efe702b9683ab3ed586e1c1fbdbd1582423642485274490df01255 SHA512 8f499843f53a27587b08beb25973fccd08ee84191a53407ee3aa2e9aad483e597791665485a7ed6d7c94f96b611956e83fd610e603a2e8e7732eaa78d3920ed5
DIST terraform-0.12.17.tar.gz 10508005 BLAKE2B facef6de57333586445ce8839c03ccd633fe9ac68619e384b71fff921afeaf260e01b8783d61e4cc04882aa644e8eb706b08c88216f093d85e0fd081363c4103 SHA512 6311fdbf6764e585126a1e177dc498634a799ba1a68ba98682e2be29d14b40c09d0a780555f10bbde0587445d31a1e0d9810226f9e6bd3fcb248428ceb864c87
DIST terraform-0.12.19.tar.gz 10526213 BLAKE2B 89acdb2e099532a922d49ac3d0049c522b7936817afb7836ebf643ef21fd35f3be495cde5a92ea93add144dada0f54de55b4b42a668bff08c9db789a1d4a77d1 SHA512 3acf327bdbaeddf6f13fc1a2a2335675dd3910137ef685224e7c1eafddf18d0aaa8c24aa3b1b5027b21905d2d87fbe3d49904e196c9881063d01670c4de3db66

@ -1,39 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit golang-vcs-snapshot
DESCRIPTION="A tool for building, changing, and combining infrastructure safely"
HOMEPAGE="https://www.terraform.io/"
EGO_PN="github.com/hashicorp/${PN}"
SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=">=dev-lang/go-1.11.0"
DOCS=( README.md CHANGELOG.md )
src_compile() {
cd "src/${EGO_PN}" || die
GOPATH="${S}" GOCACHE="${T}/go-cache" go build \
-v -work -o "${S}/${PN}" ./ || die
}
src_install() {
dobin terraform
pushd "src/${EGO_PN}" >/dev/null || die
einstalldocs
popd >/dev/null || die
}
pkg_postinst() {
elog "If you would like to install shell completions please run:"
elog " terraform -install-autocomplete"
}

@ -1,36 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit golang-base go-module
DESCRIPTION="A tool for building, changing, and combining infrastructure safely"
HOMEPAGE="https://www.terraform.io/"
EGO_PN="github.com/hashicorp/${PN}"
SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0 BSD-2 BSD-4 ECL-2.0 imagemagick ISC JSON MIT MIT-with-advertising MPL-2.0 unicode"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=""
DOCS=( {README,CHANGELOG}.md )
src_compile() {
GOCACHE="${T}/go-cache" go build \
-work -o "bin/${PN}" ./ || die
}
src_install() {
dobin bin/terraform
einstalldocs
}
pkg_postinst() {
elog "If you would like to install shell completions please run:"
elog " terraform -install-autocomplete"
}

@ -1,36 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit golang-base go-module
DESCRIPTION="A tool for building, changing, and combining infrastructure safely"
HOMEPAGE="https://www.terraform.io/"
EGO_PN="github.com/hashicorp/${PN}"
SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0 BSD-2 BSD-4 ECL-2.0 imagemagick ISC JSON MIT MIT-with-advertising MPL-2.0 unicode"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=""
DOCS=( {README,CHANGELOG}.md )
src_compile() {
GOCACHE="${T}/go-cache" go build \
-work -o "bin/${PN}" ./ || die
}
src_install() {
dobin bin/terraform
einstalldocs
}
pkg_postinst() {
elog "If you would like to install shell completions please run:"
elog " terraform -install-autocomplete"
}

@ -1,45 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit golang-base go-module
DESCRIPTION="A tool for building, changing, and combining infrastructure safely"
HOMEPAGE="https://www.terraform.io/"
EGO_PN="github.com/hashicorp/${PN}"
SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0 BSD-2 BSD-4 ECL-2.0 imagemagick ISC JSON MIT MIT-with-advertising MPL-2.0 unicode"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="test"
DOCS=( {README,CHANGELOG}.md )
src_prepare() {
default
# the sed command is necessary to generate tests outside of the
# default git root of `terraform', in our case the working dir
# is `work/$PN-$PV'
# sed -i -e "s/!=\s\+\"terraform\"/!=\ \"${P}\"/" \
# ./scripts/generate-plugins.go || die
}
src_compile() {
GOCACHE="${T}/go-cache" go build \
-work -o "bin/${PN}" ./ || die
}
src_install() {
dobin bin/terraform
einstalldocs
}
pkg_postinst() {
elog "If you would like to install shell completions please run:"
elog " terraform -install-autocomplete"
}

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -13,7 +13,7 @@ SRC_URI="https://github.com/hashicorp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="Apache-2.0 BSD-2 BSD-4 ECL-2.0 imagemagick ISC JSON MIT MIT-with-advertising MPL-2.0 unicode"
SLOT="0"
KEYWORDS="~amd64"
KEYWORDS="amd64"
RESTRICT="test"

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7

Binary file not shown.

@ -1,9 +1,9 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit user systemd
inherit systemd
DESCRIPTION="Download and install third-party clamav signatures"
HOMEPAGE="https://github.com/extremeshok/clamav-unofficial-sigs"
@ -14,6 +14,12 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="cron"
# Require acct-{user,group}/clamav at build time so that we can set
# the permissions on /var/lib/${PN} in src_install rather than in
# pkg_postinst; calling "chown" on the live filesystem scares me.
DEPEND="acct-group/clamav
acct-user/clamav"
# The script relies on either net-misc/socat, or Perl's
# IO::Socket::UNIX. We already depend on Perl, and Gentoo's Perl ships
# with IO::Socket::UNIX, so we can leave out net-misc/socat here.
@ -26,12 +32,6 @@ RDEPEND="${DEPEND}
src_install() {
dosbin "${PN}.sh"
# The script's working directory (set in the conf file). By default,
# it runs as clamav/clamav. We set the owner/group later, in
# pkg_preinst, after the user/group is sure to exist (because we
# create them otherwise).
keepdir "/var/lib/${PN}"
insinto /etc/logrotate.d
doins "${FILESDIR}/${PN}.logrotate"
@ -57,15 +57,12 @@ src_install() {
# the timer is disabled by default (and won't annoy people until
# after they've configured the script).
systemd_dounit "${FILESDIR}/${PN}".{service,timer}
}
pkg_preinst() {
# Should agree with app-antivirus/clamav. We don't actually need
# clamav to function, so it isn't one of our dependencies, and
# that's why we might need to create its user ourselves.
enewgroup clamav
enewuser clamav -1 -1 /dev/null clamav
fowners clamav:clamav "/var/lib/${PN}"
# The script's working directory, as set in the configuration
# file. By default, the script runs as clamav:clamav because
# it needs write access to the clamav databases.
diropts -o clamav -g clamav
keepdir "/var/lib/${PN}"
}
pkg_postinst() {

@ -3,7 +3,7 @@
EAPI=6
inherit autotools eutils flag-o-matic user systemd
inherit autotools eutils flag-o-matic systemd
DESCRIPTION="Clam Anti-Virus Scanner"
HOMEPAGE="https://www.clamav.net/"
@ -15,7 +15,12 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-l
IUSE="bzip2 doc clamdtop clamsubmit iconv ipv6 libclamav-only libressl milter metadata-analysis-api selinux static-libs test uclibc xml"
RESTRICT="!test? ( test )"
CDEPEND="bzip2? ( app-arch/bzip2 )
# 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
bzip2? ( app-arch/bzip2 )
clamdtop? ( sys-libs/ncurses:0 )
iconv? ( virtual/libiconv )
metadata-analysis-api? ( dev-libs/json-c:= )
@ -51,11 +56,6 @@ PATCHES=(
"${FILESDIR}/${PN}-0.102.1-libxml2_pkgconfig.patch" #661328
)
pkg_setup() {
enewgroup clamav
enewuser clamav -1 -1 /dev/null clamav
}
src_prepare() {
default
eautoconf
@ -117,11 +117,6 @@ src_install() {
systemd_dounit "${FILESDIR}/clamd.service"
systemd_dounit "${FILESDIR}/freshclamd.service"
keepdir /var/lib/clamav
fowners clamav:clamav /var/lib/clamav
keepdir /var/log/clamav
fowners clamav:clamav /var/log/clamav
dodir /etc/logrotate.d
insinto /etc/logrotate.d
newins "${FILESDIR}"/clamav.logrotate clamav
@ -177,6 +172,12 @@ src_install() {
done
prune_libtool_files --all
# 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
}
src_test() {

Binary file not shown.

@ -3,7 +3,7 @@
EAPI=7
inherit cmake-utils
inherit cmake
DESCRIPTION="A tool to unpack installers created by Inno Setup"
HOMEPAGE="https://constexpr.org/innoextract/"
@ -29,5 +29,5 @@ src_configure() {
-DWITH_CONV=$(usex iconv iconv builtin)
)
cmake-utils_src_configure
cmake_src_configure
}

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -16,7 +16,7 @@ SRC_URI="mirror://sourceforge/infozip/${MY_P}.tar.gz
LICENSE="Info-ZIP"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~riscv s390 ~sh sparc ~x86 ~x86-linux"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ~mips ~ppc ppc64 ~riscv s390 ~sh sparc ~x86 ~x86-linux"
IUSE="bzip2 natspec unicode"
DEPEND="bzip2? ( app-arch/bzip2 )

Binary file not shown.

@ -1,4 +1,3 @@
DIST bacula-5.2.13.tar.gz 4243395 BLAKE2B 5cad5d2675f8a2dd28a76c1a4e4c649d1bf9b031e5e4febfb537a72a0481c2f7c3e80d39b84657238bc147b58174ce544749aed70882f66678edfaa2fb51ac2f SHA512 dfdff353f5b6ed4d85013dc292526706bbd67066f7057a114012172926c819c8df1eb8779166d5a90db3a49a5584f0a8daf7566cc93cf4fa3f1bdda245b55cf0
DIST bacula-9.0.8.tar.gz 4475511 BLAKE2B be321a2a215cc2b127423cf8d103303957c7064ba4453f0da8b82b3c23a38d45df7ee0e434da8a010911976812b23886fcf366d0dee9f1880c0f14fa641c1937 SHA512 4041525f594e23bfb231ea182a680899020347dd26e1d7f6d05c9f97aac8000a1bbeb9acaf2f73b283616fe03caf38fbb335b0e65e6a18e0322ca64da6f98e64
DIST bacula-9.2.2.tar.gz 4115575 BLAKE2B affc6efa3543836690e3d89eb37faa2d5066344308dc29a22c491374f04a2fd00bedb57a869d0bcf8a0f58d806bc9f9b9381330c22984ddb4d5acd97b757d2c8 SHA512 390ac0ad205c3694fe02c6842740b188bde0be469d0a9b89388d3f75746c7cca6a536a2386e06a5069c84863f28dae3449250ff71e63b9ff14e8f7b074df1708
DIST bacula-9.4.1.tar.gz 4162956 BLAKE2B f3fdd2ab64dc4fe50210d83a80ce16f36996f6d23bb67326e8bcee97ae9fd83b2dc8a96eabcd86c522c5e1ca5b8923110e97c03be953427a5c5f59140fdea332 SHA512 5e05a939c5f457a121879a6108ce2ac6403dde556b415af4e5013e4f100cf4d878f3d468fd680fa1633a4c8d6ce3d7a6ed351a1600ef780166cd4be9b70191ee

@ -1,397 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="threads"
inherit eutils multilib python-single-r1 systemd user libtool
MY_PV=${PV/_beta/-b}
MY_P=${PN}-${MY_PV}
DESCRIPTION="Featureful client/server network backup suite"
HOMEPAGE="https://www.bacula.org/"
SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz"
LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
IUSE="acl bacula-clientonly bacula-nodir bacula-nosd examples ipv6 libressl logwatch mysql postgres python readline +sqlite ssl static tcpd vim-syntax X"
DEPEND="
dev-libs/gmp:0
!bacula-clientonly? (
postgres? ( dev-db/postgresql:=[threads] )
mysql? ( dev-db/mysql-connector-c:= )
sqlite? ( dev-db/sqlite:3 )
!bacula-nodir? ( virtual/mta )
)
logwatch? ( sys-apps/logwatch )
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
readline? ( sys-libs/readline:0 )
static? (
acl? ( virtual/acl[static-libs] )
sys-libs/zlib[static-libs]
dev-libs/lzo[static-libs]
sys-libs/ncurses:=[static-libs]
ssl? (
!libressl? ( dev-libs/openssl:0=[static-libs] )
libressl? ( dev-libs/libressl:0=[static-libs] )
)
)
!static? (
acl? ( virtual/acl )
sys-libs/zlib
dev-libs/lzo
sys-libs/ncurses:=
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
)
python? ( ${PYTHON_DEPS} )
"
RDEPEND="${DEPEND}
!bacula-clientonly? (
!bacula-nosd? (
sys-block/mtx
app-arch/mt-st
)
)
vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )"
REQUIRED_USE="!bacula-clientonly? ( ^^ ( mysql postgres sqlite ) )
static? ( bacula-clientonly )
python? ( ${PYTHON_REQUIRED_USE} )"
S=${WORKDIR}/${MY_P}
pkg_setup() {
#XOR and !bacula-clientonly controlled by REQUIRED_USE
use mysql && export mydbtype="mysql"
use postgres && export mydbtype="postgresql"
use sqlite && export mydbtype="sqlite3"
# create the daemon group and user
if [ -z "$(egetent group bacula 2>/dev/null)" ]; then
enewgroup bacula
einfo
einfo "The group 'bacula' has been created. Any users you add to this"
einfo "group have access to files created by the daemons."
einfo
fi
if ! use bacula-clientonly; then
if [ -z "$(egetent passwd bacula 2>/dev/null)" ]; then
enewuser bacula -1 -1 /var/lib/bacula bacula,disk,tape,cdrom,cdrw
einfo
einfo "The user 'bacula' has been created. Please see the bacula manual"
einfo "for information about running bacula as a non-root user."
einfo
fi
fi
use python && python-single-r1_pkg_setup
}
src_prepare() {
# adjusts default configuration files for several binaries
# to /etc/bacula/<config> instead of ./<config>
pushd src >&/dev/null || die
for f in console/console.c dird/dird.c filed/filed.c \
stored/bcopy.c stored/bextract.c stored/bls.c \
stored/bscan.c stored/btape.c stored/stored.c \
qt-console/main.cpp; do
sed -i -e 's|^\(#define CONFIG_FILE "\)|\1/etc/bacula/|g' "${f}" \
|| die "sed on ${f} failed"
done
popd >&/dev/null || die
# bug 466688 drop deprecated categories from Desktop file
sed -i -e 's/Application;//' scripts/bat.desktop.in || die
# bug 466690 Use CXXFLAGS instead of CFLAGS
sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in || die
# drop automatic install of unneeded documentation (for bug 356499)
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-doc.patch
# bug #310087
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-as-needed.patch
# bug #311161
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-lib-search-path.patch
# stop build for errors in subdirs
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-Makefile.patch
# bat needs to respect LDFLAGS
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-ldflags.patch
# bug #328701
epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-openssl-1.patch
epatch "${FILESDIR}"/5.2.10/${PN}-5.2.10-fix-static.patch
# do not strip binaries
sed -i -e "s/strip /# strip /" src/filed/Makefile.in || die
sed -i -e "s/strip /# strip /" src/console/Makefile.in || die
# fix file not found error during make depend
epatch "${FILESDIR}"/5.2.12/${PN}-5.2.12-depend.patch
# Fix systemd unit files:
# bug 497748
sed -i -e '/Requires/d' platforms/systemd/*.service.in || die
sed -i -e '/StandardOutput/d' platforms/systemd/*.service.in || die
# bug 504370
sed -i -e '/Alias=bacula-dir/d' platforms/systemd/bacula-dir.service.in || die
# bug 584442 and 504368
sed -i -e 's/@dir_user@/root/g' platforms/systemd/bacula-dir.service.in || die
# Fix tmpfiles config for client-only (no bacula user) install
# NOTE: Change only first occurance (user) not second (group)
# bug 528398 and 577486
if use bacula-clientonly; then
sed -i -e 's/bacula/root/' platforms/systemd/bacula.conf.in || die
fi
# fix bundled libtool (bug 466696)
# But first move directory with M4 macros out of the way.
# It is only needed by autoconf and gives errors during elibtoolize.
mv autoconf/libtool autoconf/libtool1 || die
elibtoolize
}
src_configure() {
local myconf=''
if use bacula-clientonly; then
myconf="${myconf} \
$(use_enable bacula-clientonly client-only) \
$(use_enable !static libtool) \
$(use_enable static static-cons) \
$(use_enable static static-fd)"
else
myconf="${myconf} \
$(use_enable !bacula-nodir build-dird) \
$(use_enable !bacula-nosd build-stored)"
# bug #311099
# database support needed by dir-only *and* sd-only
# build as well (for building bscan, btape, etc.)
myconf="${myconf} \
--with-${mydbtype} \
--enable-batch-insert"
fi
myconf="${myconf} \
--disable-tray-monitor \
$(use_with X x) \
$(use_with python) \
$(use_enable !readline conio) \
$(use_enable readline) \
$(use_with readline readline /usr) \
$(use_with ssl openssl) \
$(use_enable ipv6) \
$(use_enable acl) \
$(use_with tcpd tcp-wrappers)"
econf \
--libdir=/usr/$(get_libdir) \
--docdir=/usr/share/doc/${PF} \
--htmldir=/usr/share/doc/${PF}/html \
--with-pid-dir=/var/run \
--sysconfdir=/etc/bacula \
--with-subsys-dir=/var/lock/subsys \
--with-working-dir=/var/lib/bacula \
--with-logdir=/var/lib/bacula \
--with-scriptdir=/usr/libexec/bacula \
--with-systemd=$(systemd_get_unitdir) \
--with-dir-user=bacula \
--with-dir-group=bacula \
--with-sd-user=root \
--with-sd-group=bacula \
--with-fd-user=root \
--with-fd-group=bacula \
--enable-smartalloc \
--disable-afs \
--host=${CHOST} \
${myconf}
}
src_compile() {
# Make build log verbose (bug #447806)
emake NO_ECHO=""
}
src_install() {
emake DESTDIR="${D}" install
doicon scripts/bacula.png
# remove some scripts we don't need at all
rm -f "${D}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql}
# rename statically linked apps
if use bacula-clientonly && use static ; then
pushd "${D}"/usr/sbin || die
mv static-bacula-fd bacula-fd || die
mv static-bconsole bconsole || die
popd || die
fi
# extra files which 'make install' doesn't cover
if ! use bacula-clientonly; then
# the database update scripts
diropts -m0750
insinto /usr/libexec/bacula/updatedb
insopts -m0754
doins "${S}"/updatedb/*
fperms 0640 /usr/libexec/bacula/updatedb/README
# the logrotate configuration
# (now unconditional wrt bug #258187)
diropts -m0755
insinto /etc/logrotate.d
insopts -m0644
newins "${S}"/scripts/logrotate bacula
# the logwatch scripts
if use logwatch; then
diropts -m0750
dodir /etc/log.d/scripts/services
dodir /etc/log.d/scripts/shared
dodir /etc/log.d/conf/logfiles
dodir /etc/log.d/conf/services
pushd "${S}"/scripts/logwatch >&/dev/null || die
emake DESTDIR="${D}" install
popd >&/dev/null || die
fi
fi
rm -vf "${D}"/usr/share/man/man1/bacula-bwxconsole.1*
rm -vf "${D}"/usr/share/man/man1/bat.1*
rm -vf "${D}"/usr/share/man/man1/bacula-tray-monitor.1*
if use bacula-clientonly || use bacula-nodir; then
rm -vf "${D}"/usr/share/man/man8/bacula-dir.8*
rm -vf "${D}"/usr/share/man/man8/dbcheck.8*
rm -vf "${D}"/usr/share/man/man1/bsmtp.1*
rm -vf "${D}"/usr/libexec/bacula/create_*_database
rm -vf "${D}"/usr/libexec/bacula/drop_*_database
rm -vf "${D}"/usr/libexec/bacula/make_*_tables
rm -vf "${D}"/usr/libexec/bacula/update_*_tables
rm -vf "${D}"/usr/libexec/bacula/drop_*_tables
rm -vf "${D}"/usr/libexec/bacula/grant_*_privileges
rm -vf "${D}"/usr/libexec/bacula/*_catalog_backup
fi
if use bacula-clientonly || use bacula-nosd; then
rm -vf "${D}"/usr/share/man/man8/bacula-sd.8*
rm -vf "${D}"/usr/share/man/man8/bcopy.8*
rm -vf "${D}"/usr/share/man/man8/bextract.8*
rm -vf "${D}"/usr/share/man/man8/bls.8*
rm -vf "${D}"/usr/share/man/man8/bscan.8*
rm -vf "${D}"/usr/share/man/man8/btape.8*
rm -vf "${D}"/usr/libexec/bacula/disk-changer
rm -vf "${D}"/usr/libexec/bacula/mtx-changer
rm -vf "${D}"/usr/libexec/bacula/dvd-handler
fi
# documentation
dodoc ChangeLog ReleaseNotes SUPPORT technotes
# install examples (bug #457504)
if use examples; then
docinto examples/
dodoc -r examples/*
fi
# vim-files
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax
doins scripts/bacula.vim
insinto /usr/share/vim/vimfiles/ftdetect
newins scripts/filetype.vim bacula_ft.vim
fi
# setup init scripts
myscripts="bacula-fd"
if ! use bacula-clientonly; then
if ! use bacula-nodir; then
myscripts="${myscripts} bacula-dir"
fi
if ! use bacula-nosd; then
myscripts="${myscripts} bacula-sd"
fi
fi
for script in ${myscripts}; do
# copy over init script and config to a temporary location
# so we can modify them as needed
cp "${FILESDIR}/${script}".confd "${T}/${script}".confd || die "failed to copy ${script}.confd"
cp "${FILESDIR}/${script}".initd "${T}/${script}".initd || die "failed to copy ${script}.initd"
# now set the database dependancy for the director init script
case "${script}" in
bacula-dir)
case "${mydbtype}" in
sqlite3)
# sqlite databases don't have a daemon
sed -i -e 's/need "%database%"/:/g' "${T}/${script}".initd || die
;;
*)
# all other databases have daemons
sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".initd || die
;;
esac
;;
*)
;;
esac
# install init script and config
newinitd "${T}/${script}".initd "${script}"
newconfd "${T}/${script}".confd "${script}"
done
systemd_dounit "${S}"/platforms/systemd/bacula-{dir,fd,sd}.service
systemd_dotmpfilesd "${S}"/platforms/systemd/bacula.conf
# make sure the working directory exists
diropts -m0750
keepdir /var/lib/bacula
# make sure bacula group can execute bacula libexec scripts
fowners -R root:bacula /usr/libexec/bacula
}
pkg_postinst() {
if use bacula-clientonly; then
fowners root:bacula /var/lib/bacula
else
fowners bacula:bacula /var/lib/bacula
fi
einfo
einfo "This Revision 6 of bacula-5.2.13 dropped support for building 'bat' as"
einfo "Qt4 is not longer supported by Gentoo. Please use it only for installations"
einfo "requiring an old file demon."
einfo
if ! use bacula-clientonly && ! use bacula-nodir; then
einfo
einfo "If this is a new install, you must create the ${mydbtype} databases with:"
einfo " /usr/libexec/bacula/create_${mydbtype}_database"
einfo " /usr/libexec/bacula/make_${mydbtype}_tables"
einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges"
einfo
fi
if use sqlite; then
einfo
einfo "Be aware that Bacula does not officially support SQLite database anymore."
einfo "Best use it only for a client-only installation. See Bug #445540."
einfo
fi
einfo "Please note that 'bconsole' will always be installed."
einfo
}

@ -1,56 +0,0 @@
--- src/console/Makefile.in.orig 2011-10-30 14:10:41.100802721 -0400
+++ src/console/Makefile.in 2011-10-30 14:14:42.330488174 -0400
@@ -29,10 +29,11 @@
GETTEXT_LIBS = @LIBINTL@
CONS_INC=@CONS_INC@
CONS_LIBS=@CONS_LIBS@
CONS_LDFLAGS=@CONS_LDFLAGS@
+ZLIBS=@ZLIBS@
.SUFFIXES: .c .o
.PHONY:
.DONTCARE:
@@ -46,17 +47,17 @@
@echo " "
bconsole: Makefile $(CONSOBJS) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE)
$(LIBTOOL_LINK) $(CXX) -L../lib -L../cats $(LDFLAGS) $(CONS_LDFLAGS) -o $@ $(CONSOBJS) \
- $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) \
- $(OPENSSL_LIBS)
+ $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(ZLIBS) $(GETTEXT_LIBS) \
+ $(OPENSSL_LIBS) $(LIBS)
static-bconsole: Makefile $(CONSOBJS) ../lib/libbac.a ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE)
$(LIBTOOL_LINK) $(CXX) -static $(LDFLAGS) $(CONS_LDFLAGS) -L../lib -L../cats -o $@ $(CONSOBJS) \
- $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) \
- $(OPENSSL_LIBS)
+ $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(ZLIBS) $(GETTEXT_LIBS) \
+ $(OPENSSL_LIBS) $(LIBS) $(ZLIBS)
strip $@
Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
cd $(topdir) \
--- src/filed/Makefile.in.orig 2012-06-28 16:52:03.000000000 +0200
+++ src/filed/Makefile.in 2012-08-16 11:08:09.000000000 +0200
@@ -96,13 +96,13 @@
bacula-fd: Makefile $(SVROBJS) ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbacpy$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) @WIN32@
@echo "Linking $@ ..."
$(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(SVROBJS) \
- $(WIN32LIBS) $(FDLIBS) $(ZLIBS) -lbacfind -lbacpy -lbaccfg -lbac -lm $(PYTHON_LIBS) $(LIBS) \
- $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZOLIBS)
+ $(WIN32LIBS) $(FDLIBS) $(ZLIBS) -lbacfind -lbacpy -lbaccfg -lbac -lm $(PYTHON_LIBS) \
+ $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZOLIBS)
static-bacula-fd: Makefile $(SVROBJS) ../findlib/libbacfind.a ../lib/libbacpy$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) @WIN32@
$(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -static -L../lib -L../findlib -o $@ $(SVROBJS) \
- $(WIN32LIBS) $(FDLIBS) $(ZLIBS) -lbacfind -lbacpy -lbaccfg -lbac -lm $(PYTHON_LIBS) $(LIBS) \
- $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZOLIBS)
+ $(WIN32LIBS) $(FDLIBS) $(ZLIBS) -lbacfind -lbacpy -lbaccfg -lbac -lm $(PYTHON_LIBS) \
+ $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZOLIBS)
strip $@
Makefile: $(srcdir)/Makefile.in $(topdir)/config.status

@ -1,12 +0,0 @@
# fix file not found error during make depend
--- src/tools/Makefile.in.orig 2012-09-20 20:42:54.000000000 +0200
+++ src/tools/Makefile.in 2012-09-20 20:35:46.000000000 +0200
@@ -194,7 +194,7 @@
@$(MV) Makefile Makefile.bak
@$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
@$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
- @$(CXX) -S -M $(CPPFLAGS) $(PYTHON_INC) -I$(srcdir) -I$(basedir) *.c >> Makefile
+ @$(CXX) -S -M $(CPPFLAGS) $(PYTHON_INC) -I$(srcdir) -I$(basedir) -I../filed -I../dird -I../stored *.c >> Makefile
@if test -f Makefile ; then \
$(RMF) Makefile.bak; \
else \

@ -1,27 +0,0 @@
# stop build if there are errors in subdirs
--- Makefile.in.orig 2010-07-20 16:53:44.000000000 +0000
+++ Makefile.in 2010-07-20 16:55:50.000000000 +0000
@@ -44,9 +44,8 @@
all: Makefile
@for I in ${all_subdirs}; \
- do (cd $$I; echo "==>Entering directory `pwd`"; \
- $(MAKE) DESTDIR=$(DESTDIR) $@ || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
- echo ""; echo ""; exit 1;)); \
+ do \
+ $(MAKE) DESTDIR=$(DESTDIR) -C $$I $@ || exit 1; \
done
depend:
@@ -55,9 +54,8 @@
bacula-fd: Makefile
@for I in ${fd_subdirs}; \
- do (cd $$I; echo "==>Entering directory `pwd`"; \
- $(MAKE) DESTDIR=$(DESTDIR) all || (echo ""; echo ""; echo " ====== Error in `pwd` ======"; \
- echo ""; echo ""; exit 1;)); \
+ do \
+ $(MAKE) DESTDIR=$(DESTDIR) -C $$I all || exit 1; \
done
#-------------------------------------------------------------------------

@ -1,13 +0,0 @@
# drop automatic installation of doc files
--- Makefile.in.orig 2011-02-26 09:05:21.000000000 +0000
+++ Makefile.in 2011-02-26 09:06:01.000000000 +0000
@@ -34,8 +34,7 @@
autoconf/config.h.in autoconf/acconfig.h autoconf/Make.common.in \
autoconf/install-sh autoconf/mkinstalldirs
-doc_files = VERIFYING technotes ChangeLog README ReleaseNotes LICENSE \
- INSTALL
+doc_files =
MKDIR = $(srcdir)/autoconf/mkinstalldirs
LIBTOOL_DEPS = @LIBTOOL_DEPS@

@ -1,11 +0,0 @@
# bat needs to respect LDFLAGS
--- src/qt-console/bat.pro.in.orig 2010-07-20 18:28:50.000000000 +0000
+++ src/qt-console/bat.pro.in 2010-07-20 18:29:25.000000000 +0000
@@ -26,6 +26,7 @@
QMAKE_LINK = $${LIBTOOL_LINK} $(CXX)
QMAKE_INSTALL_PROGRAM = $${LIBTOOL_INSTALL} install -m @SBINPERM@ -p
QMAKE_CLEAN += .libs/* bat
+QMAKE_LFLAGS += @LDFLAGS@
qwt {
INCLUDEPATH += @QWT_INC@

@ -1,12 +0,0 @@
# If upgrading the old libraries gets linked first. So fix order of lib search path.
--- src/console/Makefile.in.orig 2010-03-29 11:35:00.000000000 +0000
+++ src/console/Makefile.in 2010-03-29 11:45:14.000000000 +0000
@@ -47,7 +47,7 @@
bconsole: Makefile $(CONSOBJS) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE)
- $(LIBTOOL_LINK) $(CXX) $(LDFLAGS) $(CONS_LDFLAGS) -L../lib -L../cats -o $@ $(CONSOBJS) \
+ $(LIBTOOL_LINK) $(CXX) -L../lib -L../cats $(LDFLAGS) $(CONS_LDFLAGS) -o $@ $(CONSOBJS) \
$(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) \
$(OPENSSL_LIBS)

Binary file not shown.

@ -1,5 +1,5 @@
DIST keybase-3.0.0.tar.gz 47018995 BLAKE2B 73aaa00a94af707dc7e0713c4e0a5b2d7d7ae8a6ebd6fecae6bfdaf7c011b0d6cbea472940f718316aff45da4c4eccde73c15df6a77229bd09be704ebb949ca1 SHA512 40ddbd6fc5201bbca087490022b021e6abc201dc428327e8974953d0e5cd403324cebf1ace29a22126eee0d1e36f84e85d443a236a7271ccdd79605abfe6fa72
DIST keybase-4.4.2.tar.gz 57819398 BLAKE2B 0852aa850ad4d66457a123e97449ae24081b695b2a6a70aa0b7ad928d59aa163b9a199e806090586579cc87ee77ebd5dcb18fb137b57aec7d61007be1cba51b5 SHA512 5eccfde7cfa35277fae71c4527c0d93bcedd0657311a9c055e50330a97a24e8c339aa3778e6e926f1230542c898e6a27c4fad18c4e2486c084c6b8d58eb2e125
DIST keybase-4.5.0.tar.gz 60207510 BLAKE2B 11acd22139fa33988a13cce3db62c7000aedb9d157de37d589a450910628a9325edd38a5dab150b7b053112e3f40930c0e569be6c990cff559bdc64dd0d34376 SHA512 5299d7eab28d487299200a97beb894a2254a2d6a525053b9acac8bd2088e581097bdb8515c9d37ed54ce3f27996e0dacd5ef943acef3c976646c85f00003bf52
DIST keybase-4.7.0.tar.gz 63827539 BLAKE2B 237a638b9b4e6dad9a0b0e0146d355f94ea87c459e64edca4253dd8f2eba4ba959a0d1e4ebd768b6572d0ab9c4f05abed539a3d8a778b23ae840a202e3fc6144 SHA512 4dc49b102f7d18345c960081a0a8cfa4d36f19159ec09ab468eb3c86e0ec2c259e9c4b2b769ea57c555c79f3cfb457c7896ca05bf185c9c5725f9458377e4048
DIST keybase-4.7.2.tar.gz 63834062 BLAKE2B e4d2977982d60e191e51ea54b64d52930524a71d1159da15fac8280a4be866d51804a928b2db60fee211a9ba499a6af63a7ae2698d7879ed2eaa3704cd7f49ab SHA512 4d43e2ab222b8c82fc97c15c52c718323ea19ffb2be35d19b5f631960d452f8cfe2ac48bd87e13f8e03587a7ed32ded233774a3230bafced7adb6c6f2818c891
DIST keybase-5.1.1.tar.gz 65387553 BLAKE2B 8207fb1113a8585d562c19a9d886083b9bec57091f83dee52d4fbc735020be1dd9fc3194c29f4a736ee04fb1550cd03f3d9c4ef6b112aa1b6399e1200e3771ac SHA512 8a1bab428b3c41e7cdb45f5ea68a6c86067c9324c07ea71704bde8a5b5ae478a8468cb8d8638a41b7067b2ab5dc825d2aa28c4e7be4f33e3e3a41c942d852e09

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -9,15 +9,13 @@ DESCRIPTION="Client for keybase.io"
HOMEPAGE="https://keybase.io/"
SRC_URI="https://github.com/keybase/client/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="
~app-crypt/kbfs-2.11.0"
RDEPEND="
app-crypt/gnupg"
DEPEND=""
RDEPEND="app-crypt/gnupg"
src_unpack() {
unpack "${P}.tar.gz"

Binary file not shown.

@ -11,3 +11,4 @@ DIST elisp-manual-23.4-patches-1.tar.xz 1140 BLAKE2B 9e2ef06022acde6a3022c51aec2
DIST elisp-manual-23.4.tar.xz 686868 BLAKE2B 8a46615227c0693568021a9f065c3546465c2f148c49ef2bd4ef0b47e71d122659203bd4a96c14fdd1f83cb7eb7b410656d593efc51e3743b229c6fd5dabeca5 SHA512 bf71dd18cdce1dce8880b9e67276d9cb71ef54023b5ef2f6555c85c1ffe9b9b8f0d7434227643564c9403fe484bfaeac10ea8911f9c53a9acb3d502eddc1d62d
DIST elisp-manual-24.5.tar.xz 766300 BLAKE2B a93293646a4ddf8d9f9d3b7e1179178427c5cbf50e1ecf164158a5a0c5332b6bc49b1b91b5b6d2064db973f71dc104a94d9c0389589382ca80e63edf7696d14d SHA512 205d48eff9a044883e433e86ec0add188727300582d82deb0b0507327098a8038fef8803457e88fd0c5c9523fc4b621704507bc463409ee30f7b046251363e65
DIST elisp-manual-25.3.tar.xz 806544 BLAKE2B 15d98b6dcc104dfeba66a3dd61489957a0339dfe43c7b09196814e48c7ff525930881805c0a6fb325ba66dc60fd5390b82d2c116ee08413b234e905c737bbe54 SHA512 85da76efef7645e13633a77fef8e775f42ebc8afad6eb5ab4bc839a12d1c1708430beaba8b89c152049700aa580abf1eaea539f2784a74486df380a59c3d6528
DIST elisp-manual-26.3.tar.xz 872288 BLAKE2B b7860ea1b7745f28cd3b391d03109239c09aef09f334db485c62756af6907d93a3ba77a92f7a105e003053aac7dca398467239af76d9feb3291bb1dd42d17af2 SHA512 94779be36b9d0e10f75def88faead6cce934f95887e9310c27413bf89f7e61a081978d6164cfe781a5c8dbde9696ac1e08046a82e77420aa07b9ffca45ccc40c

@ -0,0 +1,27 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="The GNU Emacs Lisp Reference Manual"
HOMEPAGE="https://www.gnu.org/software/emacs/manual/"
# taken from doc/lispref/ (and some files from doc/emacs/) of emacs-${PV}
SRC_URI="https://dev.gentoo.org/~ulm/emacs/${P}.tar.xz"
LICENSE="FDL-1.3+"
SLOT="26"
KEYWORDS="~amd64 ~ppc ~x86"
DEPEND="sys-apps/texinfo"
S="${WORKDIR}/lispref"
PATCHES=("${FILESDIR}/${P}-direntry.patch")
src_compile() {
makeinfo -I "${WORKDIR}"/emacs elisp.texi || die
}
src_install() {
doinfo elisp${SLOT}.info*
dodoc README
}

@ -0,0 +1,22 @@
--- lispref-orig/elisp.texi
+++ lispref/elisp.texi
@@ -1,6 +1,6 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
-@setfilename ../../info/elisp.info
+@setfilename elisp26.info
@ifset VOL1
@set volflag
@@ -116,9 +116,9 @@
@end quotation
@end copying
-@dircategory Emacs lisp
+@dircategory Emacs
@direntry
-* Elisp: (elisp). The Emacs Lisp Reference Manual.
+* Elisp 26: (elisp26). The Emacs Lisp Reference Manual for Emacs 26.
@end direntry
@titlepage

Binary file not shown.

@ -1,414 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools elisp-common flag-o-matic multilib readme.gentoo-r1
if [[ ${PV##*.} = 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
EGIT_BRANCH="master"
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
S="${EGIT_CHECKOUT_DIR}"
else
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/emacs-${PV}.tar.xz
mirror://gnu-alpha/emacs/pretest/emacs-${PV}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
S="${WORKDIR}/emacs-${FULL_VERSION}"
[[ ${FULL_VERSION} != ${PV} ]] && S="${WORKDIR}/emacs"
fi
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
SLOT="27"
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gconf gfile gif +gmp gpm gsettings gtk gtk2 gzip-el harfbuzz imagemagick +inotify jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm xwidgets zlib"
REQUIRED_USE="?? ( aqua X )"
RESTRICT="test"
RDEPEND="sys-libs/ncurses:0=
>=app-eselect/eselect-emacs-1.16
>=app-emacs/emacs-common-gentoo-1.5[games?,X?]
acl? ( virtual/acl )
alsa? ( media-libs/alsa-lib )
dbus? ( sys-apps/dbus )
games? ( acct-group/gamestat )
gmp? ( dev-libs/gmp:0= )
gpm? ( sys-libs/gpm )
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
json? ( dev-libs/jansson )
kerberos? ( virtual/krb5 )
lcms? ( media-libs/lcms:2 )
libxml2? ( >=dev-libs/libxml2-2.2.0 )
mailutils? ( net-mail/mailutils[clients] )
!mailutils? ( net-libs/liblockfile )
selinux? ( sys-libs/libselinux )
ssl? ( net-libs/gnutls:0= )
systemd? ( sys-apps/systemd )
zlib? ( sys-libs/zlib )
X? (
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb
x11-misc/xbitmaps
gconf? ( >=gnome-base/gconf-2.26.2 )
gsettings? ( >=dev-libs/glib-2.28.6 )
gif? ( media-libs/giflib:0= )
jpeg? ( virtual/jpeg:0= )
png? ( >=media-libs/libpng-1.4:0= )
svg? ( >=gnome-base/librsvg-2.0 )
tiff? ( media-libs/tiff:0 )
xpm? ( x11-libs/libXpm )
imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
xft? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXft
x11-libs/libXrender
cairo? ( >=x11-libs/cairo-1.12.18 )
harfbuzz? ( media-libs/harfbuzz:0= )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
)
gtk? (
gtk2? ( x11-libs/gtk+:2 )
!gtk2? (
x11-libs/gtk+:3
xwidgets? (
net-libs/webkit-gtk:4=
x11-libs/libXcomposite
)
)
)
!gtk? (
motif? (
>=x11-libs/motif-2.3:0
x11-libs/libXpm
x11-libs/libXmu
x11-libs/libXt
)
!motif? (
Xaw3d? (
x11-libs/libXaw3d
x11-libs/libXmu
x11-libs/libXt
)
!Xaw3d? ( athena? (
x11-libs/libXaw
x11-libs/libXmu
x11-libs/libXt
) )
)
)
)"
DEPEND="${RDEPEND}
X? ( x11-base/xorg-proto )"
BDEPEND="virtual/pkgconfig
gzip-el? ( app-arch/gzip )"
if [[ ${PV##*.} = 9999 ]]; then
BDEPEND="${BDEPEND}
sys-apps/texinfo"
fi
EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}"
SITEFILE="20${PN}-${SLOT}-gentoo.el"
src_prepare() {
if [[ ${PV##*.} = 9999 ]]; then
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[ \t]*\([^ \t,)]*\).*/\1/p' \
configure.ac)
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
einfo "Emacs branch: ${EGIT_BRANCH}"
einfo "Commit: ${EGIT_VERSION}"
einfo "Emacs version number: ${FULL_VERSION}"
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|| die "Upstream version number changed to ${FULL_VERSION}"
fi
eapply_user
# Fix filename reference in redirected man page
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
AT_M4DIR=m4 eautoreconf
}
src_configure() {
strip-flags
filter-flags -pie #526948
if use sh; then
replace-flags "-O[1-9]" -O0 #262359
elif use ia64; then
replace-flags "-O[2-9]" -O1 #325373
else
replace-flags "-O[3-9]" -O2
fi
local myconf
if use alsa; then
use sound || ewarn \
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
myconf+=" --with-sound=alsa"
else
myconf+=" --with-sound=$(usex sound oss)"
fi
if use X; then
myconf+=" --with-x --without-ns"
myconf+=" $(use_with gconf)"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with toolkit-scroll-bars)"
myconf+=" $(use_with gif)"
myconf+=" $(use_with jpeg)"
myconf+=" $(use_with png)"
myconf+=" $(use_with svg rsvg)"
myconf+=" $(use_with tiff)"
myconf+=" $(use_with xpm)"
myconf+=" $(use_with imagemagick)"
if use xft; then
myconf+=" --with-xft"
myconf+=" $(use_with cairo)"
myconf+=" $(use_with harfbuzz)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
else
myconf+=" --without-xft"
myconf+=" --without-cairo"
myconf+=" --without-libotf --without-m17n-flt"
use cairo && ewarn \
"USE flag \"cairo\" has no effect if \"xft\" is not set."
use m17n-lib && ewarn \
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
fi
local f line
if use gtk; then
einfo "Configuring to build with GIMP Toolkit (GTK+)"
while read line; do ewarn "${line}"; done <<-EOF
Your version of GTK+ will have problems with closing open
displays. This is no problem if you just use one display, but
if you use more than one and close one of them Emacs may crash.
See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>.
If you intend to use more than one display, then it is strongly
recommended that you compile Emacs with the Athena/Lucid or the
Motif toolkit instead.
EOF
if use gtk2; then
myconf+=" --with-x-toolkit=gtk2 --without-xwidgets"
use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk2\" is set."
else
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
fi
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
done
elif use motif; then
einfo "Configuring to build with Motif toolkit"
myconf+=" --with-x-toolkit=motif"
for f in Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"motif\" is set."
done
elif use athena || use Xaw3d; then
einfo "Configuring to build with Athena/Lucid toolkit"
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
else
einfo "Configuring to build with no toolkit"
myconf+=" --with-x-toolkit=no"
fi
if ! use gtk; then
use gtk2 && ewarn \
"USE flag \"gtk2\" has no effect if \"gtk\" is not set."
use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
elif use aqua; then
einfo "Configuring to build with Nextstep (Cocoa) support"
myconf+=" --with-ns --disable-ns-self-contained"
myconf+=" --without-x"
else
myconf+=" --without-x --without-ns"
fi
econf \
--program-suffix="-${EMACS_SUFFIX}" \
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
--localstatedir="${EPREFIX}"/var \
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
--without-compress-install \
--without-hesiod \
--without-pop \
--with-dumping=pdumper \
--with-file-notification=$(usev inotify || usev gfile || echo no) \
$(use_enable acl) \
$(use_with dbus) \
$(use_with dynamic-loading modules) \
$(use_with games gameuser ":gamestat") \
$(use_with gmp libgmp) \
$(use_with gpm) \
$(use_with json) \
$(use_with kerberos) $(use_with kerberos kerberos5) \
$(use_with lcms lcms2) \
$(use_with libxml2 xml2) \
$(use_with mailutils) \
$(use_with selinux) \
$(use_with ssl gnutls) \
$(use_with systemd libsystemd) \
$(use_with threads) \
$(use_with wide-int) \
$(use_with zlib) \
${myconf}
}
#src_compile() {
# # Disable sandbox when dumping. For the unbelievers, see bug #131505
# emake RUN_TEMACS="SANDBOX_ON=0 LD_PRELOAD= env ./temacs"
#}
src_install () {
emake DESTDIR="${D}" NO_BIN_LINK=t install
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.appdata.xml || die
# move info dir to avoid collisions with the dir file generated by portage
mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} || die
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig
# avoid collision between slots, see bug #169033 e.g.
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el
rm -rf "${ED}"/usr/share/{appdata,applications,icons}
rm -rf "${ED}/usr/$(get_libdir)"
rm -rf "${ED}"/var
# remove unused <version>/site-lisp dir
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp
# remove COPYING file (except for etc/COPYING used by describe-copying)
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING
if use systemd; then
insinto /usr/lib/systemd/user
sed -e "/^##/d" \
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
assert
fi
if use gzip-el; then
# compress .el files when a corresponding .elc exists
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
assert "gzip .el failed"
fi
local cdir
if use source; then
cdir="/usr/share/emacs/${FULL_VERSION}/src"
insinto "${cdir}"
# This is not meant to install all the source -- just the
# C source you might find via find-function
doins src/*.{c,h,m}
elif has installsources ${FEATURES}; then
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
fi
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
X
;;; ${PN}-${SLOT} site-lisp configuration
X
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
Y (setq find-function-C-source-directory
Y "${EPREFIX}${cdir}")
X (let ((path (getenv "INFOPATH"))
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
X (and path
X ;; move Emacs Info dir before anything else in /usr/share
X (let* ((p (cons nil (split-string path ":" t))) (q p))
X (while (and (cdr q) (not (string-match re (cadr q))))
X (setq q (cdr q)))
X (setcdr q (cons dir (delete dir (cdr q))))
X (setq Info-directory-list (prune-directory-list (cdr p)))))))
EOF
elisp-site-file-install "${T}/${SITEFILE}" || die
dodoc README BUGS CONTRIBUTE
if use aqua; then
dodir /Applications/Gentoo
rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app
mv nextstep/Emacs.app \
"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die
fi
DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs
through the Emacs eselect module, which also redirects man and info
pages. Therefore, several Emacs versions can be installed at the
same time. \"man emacs.eselect\" for details.
\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is
strongly recommended that you use app-admin/emacs-updater to rebuild
all byte-compiled elisp files of the installed Emacs packages."
use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
machine would satisfy basic Emacs requirements under X11.
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
for how to enable anti-aliased fonts."
use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink
it into /Applications by yourself."
readme.gentoo_create_doc
}
pkg_preinst() {
# move Info dir file to correct name
if [[ -d ${ED}/usr/share/info ]]; then
mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{.orig,} || die
fi
}
pkg_postinst() {
elisp-site-regen
readme.gentoo_print_elog
if use livecd; then
# force an update of the emacs symlink for the livecd/dvd,
# because some microemacs packages set it with USE=livecd
eselect emacs update
elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then
# refresh symlinks in case any installed files have changed
eselect emacs set ${EMACS_SUFFIX}
else
eselect emacs update ifunset
fi
}
pkg_postrm() {
elisp-site-regen
eselect emacs update ifunset
}

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>gnu-emacs@gentoo.org</email>
<name>Gentoo GNU Emacs project</name>
</maintainer>
<longdescription>
GNU Emacs is an extensible, customizable text editor - and more. At its core
is an interpreter for Emacs Lisp, a dialect of the Lisp programming language
with extensions to support text editing. The features of GNU Emacs include:
* Content-sensitive editing modes, including syntax coloring, for a variety
of file types including plain text, source code, and HTML.
* Complete built-in documentation, including a tutorial for new users.
* Full Unicode support for nearly all human languages and their scripts.
* Highly customizable, using Emacs Lisp code or a graphical interface.
* A large number of extensions that add other functionality, including a
project planner, mail and news reader, debugger interface, calendar, and
more. Many of these extensions are distributed with GNU Emacs; others are
available separately.
</longdescription>
<use>
<flag name="athena">Enable the MIT Athena widget set
(<pkg>x11-libs/libXaw</pkg>)</flag>
<flag name="dynamic-loading">Enable loading of dynamic libraries at
runtime</flag>
<flag name="games">Support shared score files for games</flag>
<flag name="gconf">Use <pkg>gnome-base/gconf</pkg> to read the system
font name</flag>
<flag name="gfile">Use gfile (<pkg>dev-libs/glib</pkg>) for file
notification</flag>
<flag name="gsettings">Use gsettings (<pkg>dev-libs/glib</pkg>) to read the
system font name</flag>
<flag name="gtk2">Prefer version 2 of the GIMP Toolkit to version 3
(<pkg>x11-libs/gtk+</pkg>)</flag>
<flag name="gzip-el">Compress bundled Emacs Lisp source</flag>
<flag name="harfbuzz">Use <pkg>media-libs/harfbuzz</pkg> as text shaping
engine</flag>
<flag name="imagemagick">Use <pkg>media-gfx/imagemagick</pkg> for image
processing</flag>
<flag name="json">Compile with native JSON support using
<pkg>dev-libs/jansson</pkg></flag>
<flag name="libxml2">Use <pkg>dev-libs/libxml2</pkg> to parse XML instead
of the internal Lisp implementations</flag>
<flag name="mailutils">Retrieve e-mail using <pkg>net-mail/mailutils</pkg>
instead of the internal movemail substitute</flag>
<flag name="source">Install C source files and make them available for
find-function</flag>
<flag name="threads">Add elisp threading support</flag>
<flag name="toolkit-scroll-bars">Use the selected toolkit's scrollbars in
preference to Emacs' own scrollbars</flag>
<flag name="wide-int">Prefer wide Emacs integers (typically 62-bit).
This option has an effect only on architectures where "long" and
"long long" types have different size.</flag>
<flag name="xwidgets">Enable use of GTK widgets in Emacs buffers
(requires GTK3)</flag>
</use>
</pkgmetadata>

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -13,6 +13,6 @@ SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.el.xz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
KEYWORDS="amd64 ~ppc sparc x86"
SITEFILE="50${PN}-gentoo.el"

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -13,7 +13,7 @@ SRC_URI="https://github.com/hniksic/${MY_PN}/archive/release/${PV}.tar.gz -> ${P
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
KEYWORDS="amd64 ppc x86"
S="${WORKDIR}/${MY_PN}-release-${PV}"
SITEFILE="50${PN}-gentoo.el"

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -12,7 +12,7 @@ SRC_URI="http://orgmode.org/org-${PV}.tar.gz"
LICENSE="GPL-3+ FDL-1.3+ contrib? ( GPL-2+ MIT ) odt-schema? ( OASIS-Open )"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86 ~x86-macos"
KEYWORDS="amd64 ppc x86 ~x86-macos"
IUSE="contrib doc odt-schema"
RESTRICT="test"

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -12,7 +12,7 @@ SRC_URI="https://github.com/ejmr/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
KEYWORDS="amd64 ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
SITEFILE="50${PN}-gentoo.el"
DOCS="README*.md CHANGELOG.md CONTRIBUTING.md"

Binary file not shown.

@ -1,2 +1,4 @@
DIST conmon-2.0.1.tar.gz 52250 BLAKE2B 59d0786975d0332ce2eb68024bbfe4c3275388d1e12561a279918fb4d2fdc2c8fd24d5872b724ccbc32722b50debf2de5c9e904aa26e25c3363f0418f5f74f8d SHA512 ba7ccdb61b6092987a3fe0fbcf76c11edaf4e15e4af4d831a8e5fdd58202a81be4d9ddf5c1d71eba5824b284f3b4416a65864e19d65dec4dfd511210c75480b1
DIST conmon-2.0.10.tar.gz 54124 BLAKE2B 0f7b3a3a488fdcf4978c9c69bbb1649b7bca2935c824d0169bb4b6ce5a97d788e2016ed3018beac98ad31723656cca3124c3014f115ce600a4ba4c3c9c02badc SHA512 50145a0e00a595213cf5db684bb51633d8129a770cbd2aca49207b3d6b8b97090b6e6eb52b3f4664978d48c6b404be369bb7d8d5e6ce26b362c377a30ddc0411
DIST conmon-2.0.2.tar.gz 52364 BLAKE2B 6acf8265c28da6fedf43ea585a773a213bf7405fcd0b53a1b91c6eca314dde19e59e5883994d1d90a68b5cdc267d97587b7461d3f71da65055e52896a444cfc0 SHA512 f325906b0a9d884e84cb899e4eb2843f1f6a08fa03d255c7ebd4c1c47f7192defc98698c09c5ef428c31d1ccf21dc813f86fd3213e73ceb4d4ee8b2cbc4e7e89
DIST conmon-2.0.9.tar.gz 54056 BLAKE2B 8f27c13d23237d35576e037b8bd1654a019452af139f774e82a04c3272bd858cf806ac1288bc1bb7f313d6e071923103c37bfc5d911ab124e383622f8057197c SHA512 904275d6e116c15e1c373c7ee5d7d9f2cdb671f86c364bab24eb688cd618afacfd63ca5076fd5a67869b97cdbb226df8fac15f390a384e125d9007c0052ed847

@ -0,0 +1,44 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EGIT_COMMIT="7a830be343876ac381c965c7429a7fb9b3d7a609"
DESCRIPTION="An OCI container runtime monitor"
HOMEPAGE="https://github.com/containers/conmon"
SRC_URI="https://github.com/containers/conmon/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="systemd"
RDEPEND="dev-libs/glib:=
systemd? ( sys-apps/systemd:= )"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
src_prepare() {
default
if ! use systemd; then
sed -e 's| $(PKG_CONFIG) --exists libsystemd-journal | false |' \
-e 's| $(PKG_CONFIG) --exists libsystemd | false |' \
-i Makefile || die
fi
}
src_compile() {
emake GIT_COMMIT="${EGIT_COMMIT}" \
all
}
src_install() {
emake DESTDIR="${D}" \
PREFIX="/usr" \
install
dodir /usr/libexec/podman
ln "${ED}/usr/"{bin,libexec/podman}/conmon || die
dodoc README.md
}

@ -0,0 +1,42 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EGIT_COMMIT="60b42f20f222df9da07a01ee444327348b9f54ee"
DESCRIPTION="An OCI container runtime monitor"
HOMEPAGE="https://github.com/containers/conmon"
SRC_URI="https://github.com/containers/conmon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="systemd"
RDEPEND="dev-libs/glib:=
systemd? ( sys-apps/systemd:= )"
DEPEND="${RDEPEND}"
src_prepare() {
default
if ! use systemd; then
sed -e 's| $(PKG_CONFIG) --exists libsystemd-journal | false |' \
-e 's| $(PKG_CONFIG) --exists libsystemd | false |' \
-i Makefile || die
fi
}
src_compile() {
emake GIT_COMMIT="${EGIT_COMMIT}" \
all
}
src_install() {
emake DESTDIR="${D}" \
PREFIX="/usr" \
install
dodir /usr/libexec/podman
ln "${ED}/usr/"{bin,libexec/podman}/conmon || die
dodoc README.md
}

@ -3,3 +3,4 @@ DIST containerd-1.2.6.tar.gz 4874159 BLAKE2B 202e19cffbe2b5335558dc1db28ea28a05d
DIST containerd-1.2.7.tar.gz 4877757 BLAKE2B 6cf98e370547d3ca5158f546e72e3ff5fdccc08c2e9f390988d080222195f95512dbf6f7dc042b7a966283a040000b7b8777b3fbeb4c5b861caae4f6209c59c5 SHA512 b96ca236d28933c1bf309fc7204af7d2c356e19af394d5c2274a178c8f15298faf6ca9bb8e7d04acb7c3c9c41035446643a8df0103017f7ed0320bfc37cb8ca9
DIST containerd-1.3.0.tar.gz 5697153 BLAKE2B c334cfd2aa11dd430c74bc9f3fe6f31d83faf752b9794da26021033bb6af492c48ed1665fc76ddfe5b858f04d45e9b77505f331e3c3da556af2d75e3cca3bb12 SHA512 cff9f0189b9fdc2b5492c92129af284aa8cd099e48de94cafd90aed191e2d20060c96008111b05fe081de0d4fc41d35f8cba5a3dc2d8cc0a5c37f695fd3cedc1
DIST containerd-1.3.1.tar.gz 5703741 BLAKE2B 6eae3fe9714128e7a5378484115378629baf6c4f7ef4b795e625cc1fbc05323a123c2337c5b203a2c3c3b34486c81f7e5b3ad200c000c961931fc99347ef4513 SHA512 4991286d1a8a221dad24121c5e6cd31a00685d91e652546d0d97745624486450bc05ff4f889f2975c178c4c175fedd7b15f89121a7ce4e6687919aabd04501b4
DIST containerd-1.3.2.tar.gz 5704320 BLAKE2B 32ea22ff445cc66f4c8db8abdbaaa7fa0c8c620b294bda54f2319045af1925398057ba1a5cb5c265cfc73bcff5b49943013b517ecb3bd05f4504920c4a8d6f29 SHA512 768a19eb0829e196a61ddedaa11b0d6691caf8f9cc590a3e47ac77c1acad62e64b7a55017a1a6cccfcb87785a083d5ce131048b0e39e48c65e6cd5922382fc3c

@ -0,0 +1,55 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EGO_PN="github.com/containerd/${PN}"
inherit toolchain-funcs
DESCRIPTION="A daemon to control runC"
HOMEPAGE="https://containerd.io/"
if [[ ${PV} == *9999 ]]; then
inherit golang-vcs
else
MY_PV="${PV/_rc/-rc.}"
EGIT_COMMIT="v${MY_PV}"
CONTAINERD_COMMIT=ff48f57f
SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
inherit golang-vcs-snapshot
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="apparmor +btrfs +cri hardened +seccomp"
DEPEND="btrfs? ( sys-fs/btrfs-progs )
seccomp? ( sys-libs/libseccomp )"
RDEPEND=">=app-emulation/runc-1.0.0_rc9
seccomp? ( sys-libs/libseccomp )"
S=${WORKDIR}/${P}/src/${EGO_PN}
RESTRICT="strip test"
src_prepare() {
default
if [[ ${PV} != *9999* ]]; then
sed -i -e "s/git describe --match.*$/echo ${PV})/"\
-e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
-e "s/-s -w//" \
Makefile || die
fi
}
src_compile() {
local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
}
src_install() {
newinitd "${FILESDIR}"/${PN}.initd ${PN}
keepdir /var/lib/containerd
dobin bin/*
}

@ -1,2 +1,3 @@
DIST containers-storage-1.15.1.tar.gz 6037975 BLAKE2B e6d0d9adae829fd3d8cb40aa124b7149ee56ed13650b0dc57ba316ab2f03e754bdbb3e566c199b7768c612b159fa3051db39cd90127f4676255e452863aa7e24 SHA512 ea017e7dec840e5794f0ae61ebfc0cbf55b8de2c237286371eef3fd1808809e2bb149f08ba62126c741e0811839bf0af8f97bbda32e715132e42905f2ebd3a6c
DIST containers-storage-1.15.2.tar.gz 6199303 BLAKE2B 76b950892d4a3016a6df2223c66d9720334205bb1c1b6d18f09b984df9c967391329a970d9d927206f37d4557fc6f4b6c366cb6f35711d2a7d8842f7e3bf7221 SHA512 b152e85e8ebdc5016955287c289390568865d60b2b034e5d32eaa3d11d775a12788465246ff7b75cd8a079758f5d2fd90bd1443191f6a089f54862951a26cdae
DIST containers-storage-1.15.7.tar.gz 6202610 BLAKE2B 2eeeb124c0ce22b5f80aced4b0a9b8d541a00d532458c64e8a017b6d7e7364b90cf798db81b9dfe36af3a25e70383529f7e2ee649750ceaff753b9327a1713c8 SHA512 25317ec5a002274422cab7ab3928ac5e9776751bc2c7c17800def2f0f918f2356c074f1914056e24bd900fb4d951d6259461f9fe3fd7c6d669ca2e78b2c70d12

@ -0,0 +1,60 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit go-module
KEYWORDS="~amd64"
DESCRIPTION="containers/storage library"
HOMEPAGE="https://github.com/containers/storage"
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
SLOT="0"
IUSE="btrfs +device-mapper test"
EGO_PN="${HOMEPAGE#*//}"
EGIT_COMMIT="v${PV}"
SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
RDEPEND="
btrfs? ( sys-fs/btrfs-progs )
device-mapper? ( sys-fs/lvm2:= )"
DEPEND="${RDEPEND}
dev-go/go-md2man
test? (
sys-fs/btrfs-progs
sys-fs/lvm2
sys-apps/util-linux
)"
RESTRICT="test"
S=${WORKDIR}/${P#containers-}
src_prepare() {
default
sed -e 's:GO111MODULE=off:GO111MODULE=on:' -i Makefile || die
[[ -f hack/btrfs_tag.sh ]] || die
use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
"hack/btrfs_tag.sh" || die; }
[[ -f hack/libdm_tag.sh ]] || die
use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
"hack/libdm_tag.sh" || die; }
}
src_compile() {
export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
emake containers-storage docs
}
src_install() {
dobin "${PN}"
while read -r -d ''; do
mv "${REPLY}" "${REPLY%.1}" || die
done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
}
src_test() {
env -u GOFLAGS unshare -m emake local-test-unit || die
}

@ -14,7 +14,7 @@ else
DOCKER_GITCOMMIT="633a0ea"
MY_PV=${PV/_/-}
SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 ~arm ~arm64"
KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
[ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
inherit golang-vcs-snapshot
fi

@ -1,3 +1,3 @@
DIST containers-storage-1.14.0-vfs-user-xattrs.patch 14835 BLAKE2B 99c35933dcb25385ee83b80cf282c11c738d0e4d91216cc08a50522f6caa9bca5938299412908f16df404f99e80616a10b4c02c0ebc38240a987830ddaf15008 SHA512 62c7ed49728bd12b5706f59b0d4af3b18d90e8cfc2b06e681f84fe3f5d3e0cd5c0317147109c4e3ec4fec26f82c269af3c9813e47339ce102e4e97400b74627d
DIST libpod-1.6.3.tar.gz 8340471 BLAKE2B b017a29ab034d8432b3abe2d920e0a71ad6542a5f088ed0de8fc67e846b409efbfd5be2e72908b52b5d21f05ce30c31db3bd55f8d8974711eb8f48cf8c3553a5 SHA512 a4d9f4c74db42fade86c36f4b2c27b8b3ff42db90af21bccab2eae8e9d710ae102c05e1fa926ac1d8e67613e11fa40163800077b61e49d90de521ab472e9c8dd
DIST libpod-1.6.4.tar.gz 8340370 BLAKE2B f68f0e846a442aa0717d4918f24260560ee77c8abdecd5af3dec06ee95ab899d623b8797962ac416bf498f22643d45de5c6d86049eead9d5c93073957c3fd9bf SHA512 69322551ab196cd3859e03988178c59a47df6f00ef0768a56e40d785f6b2130df03ff0ea76d101e21e748ea9260ede144d31f3ec21922ffd70eb2969a77d4194
DIST libpod-1.7.0.tar.gz 8679022 BLAKE2B 8a8037b75deae9f94461ab697b2a7cf095254c68d8436655c37a40375e3dd1a2b621672643e430acc8a656fcd516fa5a542e7104d6cfdbee3d213aca6228d410 SHA512 986ec7123127d3ffb26cecc39a2ae3d8a6dd3d147327449fc4e9d17f6e6606bde278f13920d0aef59410262801251e7b4cfe099cb5caafe9773533e8476848fe

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -16,8 +16,7 @@ LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="apparmor btrfs ostree +rootless selinux"
REQUIRED_USE="!ostree"
IUSE="apparmor btrfs +rootless selinux"
RESTRICT="test"
COMMON_DEPEND="

@ -1,23 +1,20 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EGIT_COMMIT="9d087f6a766259ba53b224944f1b7b778035c370"
EGIT_COMMIT="b7ce1157b00af09f4a09e39b377aa3abff46ee05"
inherit bash-completion-r1 flag-o-matic go-module
DESCRIPTION="Library and podman tool for running OCI-based containers in Pods"
HOMEPAGE="https://github.com/containers/libpod/"
CONTAINERS_STORAGE_PATCH="containers-storage-1.14.0-vfs-user-xattrs.patch"
SRC_URI="https://github.com/containers/libpod/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/containers/storage/pull/466.patch -> ${CONTAINERS_STORAGE_PATCH}"
SRC_URI="https://github.com/containers/libpod/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="apparmor btrfs ostree +rootless selinux"
REQUIRED_USE="!ostree"
IUSE="apparmor btrfs +rootless selinux"
RESTRICT="test"
COMMON_DEPEND="
@ -41,14 +38,11 @@ RDEPEND="${COMMON_DEPEND}"
src_prepare() {
default
sed -e 's| \([ab]\)/| \1/vendor/github.com/containers/storage/|' < \
"${DISTDIR}/${CONTAINERS_STORAGE_PATCH}" > \
"${WORKDIR}/${CONTAINERS_STORAGE_PATCH}" || die
eapply "${WORKDIR}/${CONTAINERS_STORAGE_PATCH}"
# Disable installation of python modules here, since those are
# installed by separate ebuilds.
sed -e '/^GIT_.*/d' \
-e 's:GO111MODULE=off:GO111MODULE=on:' \
-e 's/$(GO) build/$(GO) build -v -work -x/' \
-e 's/^\(install:.*\) install\.python$/\1/' \
-i Makefile || die

@ -19,9 +19,6 @@
Enables dependencies for the "btrfs" graph driver, including
necessary kernel flags.
</flag>
<flag name="ostree">
Enables dependencies for handling of OSTree images.
</flag>
<flag name="rootless">
Enables dependencies for running in rootless mode.
</flag>

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
@ -14,7 +14,6 @@ IUSE="nls +zinnia"
RDEPEND="app-i18n/ibus
x11-libs/gtk+:3
x11-libs/gtkglext
nls? ( virtual/libintl )
zinnia? (
app-i18n/zinnia

@ -1,4 +1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 2015-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@ -18,15 +18,16 @@ KEYWORDS="~amd64 ~x86"
IUSE="boost lua opencc"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
BDEPEND="
BDEPEND="dev-db/sqlite:3
virtual/pkgconfig"
DEPEND="${PYTHON_DEPS}
app-i18n/ibus[python(+),${PYTHON_USEDEP}]
>=app-i18n/libpinyin-2.1.0:=
dev-db/sqlite:3
dev-libs/glib:2
dev-python/pygobject:3[${PYTHON_USEDEP}]
virtual/libintl
dev-db/sqlite:3
boost? ( dev-libs/boost:= )
lua? ( dev-lang/lua:0 )
opencc? ( app-i18n/opencc:= )"

@ -1,4 +1,4 @@
# Copyright 2004-2019 Gentoo Authors
# Copyright 2004-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@ -26,6 +26,8 @@ KEYWORDS="amd64 ~arm ~arm64 ppc ppc64 x86"
IUSE="static-libs test"
RESTRICT="!test? ( test )"
# BDEPEND="test? ( virtual/pkgconfig )"
BDEPEND="virtual/pkgconfig"
RDEPEND="dev-db/sqlite:3"
DEPEND="${RDEPEND}
test? ( sys-libs/ncurses[unicode] )"

@ -1,4 +1,4 @@
# Copyright 2004-2019 Gentoo Authors
# Copyright 2004-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@ -26,6 +26,8 @@ KEYWORDS=""
IUSE="static-libs test"
RESTRICT="!test? ( test )"
# BDEPEND="test? ( virtual/pkgconfig )"
BDEPEND="virtual/pkgconfig"
RDEPEND="dev-db/sqlite:3"
DEPEND="${RDEPEND}
test? ( sys-libs/ncurses[unicode] )"

@ -1,2 +1 @@
DIST librime-1.4.0.tar.gz 8609316 BLAKE2B cce58c398057ac82f076e3b9e9a25cd6410e738460bd58277a9e3ed6cd11e80922bbb30e8b42828cdd5dd83f6058794b4b32fedb359315186b018ca88161794d SHA512 da68983638c6f25d994060a607f2ccab8917a71dbf10b9c6f1140c87c9ef4124e29a1d0ef16bbd0edc9a3a22bd5845aa894888d678607db372750f300638f562
DIST librime-1.5.3.tar.gz 2847083 BLAKE2B 4ffb2c5ddaf52f9c9227fa4ea019ef2965e61139f678798c08ef37dc52b863763651b63ed820caad0de1b06f48ab5c1a7a2682653340d2ae7f5f9eec3cec80b2 SHA512 4d7f6ec43bd5728f59f0b3581bcd8a46128651430b6873017d80659942b8f6aa1a2f25f439ba8fba461fe22acbf701c2da7a786104a2e4852a70a89cdc0452d3

@ -1,37 +0,0 @@
# Copyright 2012-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit cmake-utils vcs-snapshot
DESCRIPTION="Rime Input Method Engine, the core library"
HOMEPAGE="https://rime.im/ https://github.com/rime/librime"
SRC_URI="https://github.com/rime/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0/1"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="app-i18n/opencc:=
dev-cpp/glog:=
dev-cpp/yaml-cpp:=
dev-libs/boost:=[nls,threads]
dev-libs/leveldb:=
dev-libs/marisa:="
DEPEND="${RDEPEND}
x11-base/xorg-proto
test? ( dev-cpp/gtest )"
DOCS=( {CHANGELOG,README}.md )
src_configure() {
local mycmakeargs=(
-DBUILD_TEST=$(usex test)
-DBOOST_USE_CXX11=ON
-DLIB_INSTALL_DIR="${EPREFIX}"/usr/$(get_libdir)
)
cmake-utils_src_configure
}

@ -0,0 +1,621 @@
https://github.com/google/mozc/issues/462
--- /src/base/gen_character_set.py
+++ /src/base/gen_character_set.py
@@ -33,7 +33,6 @@
import itertools
import optparse
import re
-import string
import sys
@@ -89,7 +88,8 @@
@staticmethod
def _LoadTable(filename, column_index, pattern, validater):
result = set()
- for line in open(filename):
+ fh = open(filename)
+ for line in fh:
if line.startswith('#'):
# Skip a comment line.
continue
@@ -100,6 +100,7 @@
ucs = int(match.group(1), 16)
if validater(ucs):
result.add(ucs)
+ fh.close()
return result
@@ -250,7 +251,7 @@
# (at most) four code points.
bit_list = []
for _, group in itertools.groupby(enumerate(category_list),
- lambda (codepoint, _): codepoint / 4):
+ lambda x: x[0] // 4):
# Fill bits from LSB to MSB for each group.
bits = 0
for index, (_, category) in enumerate(group):
@@ -263,7 +264,7 @@
# Output the content. Each line would have (at most) 16 bytes.
for _, group in itertools.groupby(enumerate(bit_list),
- lambda (index, _): index / 16):
+ lambda x: x[0] // 16):
line = [' \"']
for _, bits in group:
line.append('\\x%02X' % bits)
@@ -386,7 +387,7 @@
# Bitmap lookup.
# TODO(hidehiko): the bitmap has two huge 0-bits ranges. Reduce them.
category_map = [
- (bits, category) for category, bits in CATEGORY_BITMAP.iteritems()]
+ (bits, category) for category, bits in CATEGORY_BITMAP.items()]
category_map.sort()
lines.extend([
@@ -451,7 +452,7 @@
options.jisx0213file)
category_list = [
categorizer.GetCategory(codepoint)
- for codepoint in xrange(categorizer.MaxCodePoint() + 1)]
+ for codepoint in range(categorizer.MaxCodePoint() + 1)]
generated_character_set_header = GenerateCharacterSetHeader(category_list)
# Write the result.
--- /src/base/gen_config_file_stream_data.py
+++ /src/base/gen_config_file_stream_data.py
@@ -58,7 +58,7 @@
result = []
result.append(' { "%s", "' % os.path.basename(path))
with open(path, 'rb') as stream:
- result.extend(r'\x%02X' % ord(byte) for byte in stream.read())
+ result.extend(r'\x%02X' % byte for byte in stream.read())
result.append('", %d }' % os.path.getsize(path))
return ''.join(result)
@@ -93,8 +93,8 @@
def main():
(options, args) = ParseOptions()
if not options.output:
- print >>sys.stderr, (
- 'usage: gen_config_file_stream_data.py --output=filepath input ...')
+ print('usage: gen_config_file_stream_data.py --output=filepath input ...',
+ file=sys.stderr)
sys.exit(2)
with open(options.output, 'w') as output:
--- /src/build_mozc.py
+++ /src/build_mozc.py
@@ -943,7 +943,7 @@
logging.info('running %s...', binary)
try:
test_function(binary, gtest_report_dir, options)
- except RunOrDieError, e:
+ except RunOrDieError as e:
logging.error(e)
failed_tests.append(binary)
else:
@@ -1082,7 +1082,7 @@
# and '-c' and 'Release' are build options.
targets = []
build_options = []
- for i in xrange(len(args)):
+ for i in range(len(args)):
if args[i].startswith('-'):
# starting with build options
build_options = args[i:]
@@ -1190,14 +1190,14 @@
def ShowHelpAndExit():
"""Shows the help message."""
- print 'Usage: build_mozc.py COMMAND [ARGS]'
- print 'Commands: '
- print ' gyp Generate project files.'
- print ' build Build the specified target.'
- print ' runtests Build all tests and run them.'
- print ' clean Clean all the build files and directories.'
- print ''
- print 'See also the comment in the script for typical usage.'
+ print('Usage: build_mozc.py COMMAND [ARGS]')
+ print('Commands: ')
+ print(' gyp Generate project files.')
+ print(' build Build the specified target.')
+ print(' runtests Build all tests and run them.')
+ print(' clean Clean all the build files and directories.')
+ print('')
+ print('See also the comment in the script for typical usage.')
sys.exit(1)
--- /src/build_tools/android_util.py
+++ /src/build_tools/android_util.py
@@ -548,7 +548,7 @@
(devices_result, _) = process.communicate()
used_ports = set(int(port) for port
in re.findall(r'emulator-(\d+)', devices_result))
- return [port for port in xrange(5554, 5586, 2) if port not in used_ports]
+ return [port for port in range(5554, 5586, 2) if port not in used_ports]
def SetUpTestingSdkHomeDirectory(dest_android_sdk_home,
@@ -575,7 +575,7 @@
'create', 'avd',
'--force',
'--sdcard', '512M',]
- for key, value in options.iteritems():
+ for key, value in options.items():
args.extend([key, value])
env = {'ANDROID_SDK_HOME': os.path.abspath(dest_android_sdk_home)}
logging.info('Creating AVD: %s', args)
@@ -615,7 +615,7 @@
def main():
for arg in sys.argv[1:]:
for item in sorted(GetApkProperties(arg).items()):
- print '%s: %s' % item
+ print('%s: %s' % item)
if __name__ == '__main__':
--- /src/build_tools/binary_size_checker.py
+++ /src/build_tools/binary_size_checker.py
@@ -70,12 +70,12 @@
actual_size = os.stat(filename).st_size
expected_size = EXPECTED_MAXIMUM_SIZES[basename]
if actual_size < expected_size * 1024 * 1024:
- print 'Pass: %s (size: %d) is smaller than expected (%d MB)' % (
- filename, actual_size, expected_size)
+ print('Pass: %s (size: %d) is smaller than expected (%d MB)' % (
+ filename, actual_size, expected_size))
return True
else:
- print 'WARNING: %s (size: %d) is larger than expected (%d MB)' % (
- filename, actual_size, expected_size)
+ print('WARNING: %s (size: %d) is larger than expected (%d MB)' % (
+ filename, actual_size, expected_size))
return False
--- /src/build_tools/build_and_sign_pkg_mac.py
+++ /src/build_tools/build_and_sign_pkg_mac.py
@@ -44,8 +44,8 @@
import shutil
import sys
-from util import PrintErrorAndExit
-from util import RunOrDie
+from .util import PrintErrorAndExit
+from .util import RunOrDie
def ParseOption():
--- /src/build_tools/build_breakpad.py
+++ /src/build_tools/build_breakpad.py
@@ -54,9 +54,9 @@
try:
subprocess.check_output(command)
except subprocess.CalledProcessError as e:
- print e.output
+ print(e.output)
sys.exit(e.returncode)
- print 'Done: %s' % ' '.join(command)
+ print('Done: %s' % ' '.join(command))
def Xcodebuild(projdir, target, arch, sdk, outdir):
--- /src/build_tools/build_diskimage_mac.py
+++ /src/build_tools/build_diskimage_mac.py
@@ -90,7 +90,7 @@
# setup volume directory
temp_dir = tempfile.mkdtemp()
CopyFile(path.join(build_dir, ".keystone_install"), temp_dir)
- os.chmod(path.join(temp_dir, ".keystone_install"), 0755) # rwxr-xr-x
+ os.chmod(path.join(temp_dir, ".keystone_install"), 0o755) # rwxr-xr-x
for a in args:
CopyFile(path.join(build_dir, a), temp_dir)
--- /src/build_tools/change_reference_mac.py
+++ /src/build_tools/change_reference_mac.py
@@ -41,8 +41,8 @@
import optparse
import os
-from util import PrintErrorAndExit
-from util import RunOrDie
+from .util import PrintErrorAndExit
+from .util import RunOrDie
def ParseOption():
--- /src/build_tools/code_generator_util.py
+++ /src/build_tools/code_generator_util.py
@@ -33,27 +33,26 @@
__author__ = "hidehiko"
import struct
-import types
def ToCppStringLiteral(s):
"""Returns C-style string literal, or NULL if given s is None."""
if s is None:
- return 'NULL'
+ return b'NULL'
- if all(0x20 <= ord(c) <= 0x7E for c in s):
+ if all(0x20 <= c <= 0x7E for c in s):
# All characters are in ascii code.
- return '"%s"' % s.replace('\\', r'\\').replace('"', r'\"')
+ return b'"%b"' % s.replace(b'\\', br'\\').replace(b'"', br'\"')
else:
# One or more characters are non-ascii.
- return '"%s"' % ''.join(r'\x%02X' % ord(c) for c in s)
+ return b'"%b"' % b''.join(br'\x%02X' % c for c in s)
def FormatWithCppEscape(format_text, *args):
"""Returns a string filling format with args."""
literal_list = []
for arg in args:
- if isinstance(arg, (types.StringType, types.NoneType)):
+ if isinstance(arg, (bytes, type(None))):
arg = ToCppStringLiteral(arg)
literal_list.append(arg)
@@ -95,7 +94,7 @@
if target_compiler and target_compiler.startswith('msvs'):
stream.write('const uint64 k%s_data_wordtype[] = {\n' % variable_name)
- for word_index in xrange(0, len(data), 8):
+ for word_index in range(0, len(data), 8):
word_chunk = data[word_index:word_index + 8].ljust(8, '\x00')
stream.write('0x%016X, ' % struct.unpack('<Q', word_chunk))
if (word_index / 8) % 4 == 3:
@@ -111,7 +110,7 @@
stream.write('const char k%s_data[] =\n' % variable_name)
# Output 16bytes per line.
chunk_size = 16
- for index in xrange(0, len(data), chunk_size):
+ for index in range(0, len(data), chunk_size):
chunk = data[index:index + chunk_size]
stream.write('"')
stream.writelines(r'\x%02X' % ord(c) for c in chunk)
@@ -126,36 +125,50 @@
if type(codepoint_list) is int:
codepoint_list = (codepoint_list,)
if codepoint_list is None or len(codepoint_list) == 0:
- return 'null'
- result = r'"'
+ return b'null'
+ result = b'"'
for codepoint in codepoint_list:
- utf16_string = unichr(codepoint).encode('utf-16be')
+ utf16_string = chr(codepoint).encode('utf-16be')
if len(utf16_string) == 2:
(u0, l0) = utf16_string
- result += r'\u%02X%02X' % (ord(u0), ord(l0))
+ result += br'\u%02X%02X' % (u0, l0)
else:
(u0, l0, u1, l1) = utf16_string
- result += r'\u%02X%02X\u%02X%02X' % (ord(u0), ord(l0), ord(u1), ord(l1))
- result += r'"'
+ result += br'\u%02X%02X\u%02X%02X' % (u0, l0, u1, l1)
+ result += b'"'
return result
def SkipLineComment(stream, comment_prefix='#'):
"""Skips line comments from stream."""
for line in stream:
+ if isinstance(line, bytes):
+ if isinstance(comment_prefix, str):
+ comment_prefix = comment_prefix.encode('utf-8')
+ line_ending = b'\n'
+ else:
+ line_ending = '\n'
stripped_line = line.strip()
if stripped_line and not stripped_line.startswith(comment_prefix):
- yield line.rstrip('\n')
+ yield line.rstrip(line_ending)
def ParseColumnStream(stream, num_column=None, delimiter=None):
"""Returns parsed columns read from stream."""
if num_column is None:
for line in stream:
- yield line.rstrip('\n').split(delimiter)
+ if isinstance(line, bytes):
+ line_ending = b'\n'
+ else:
+ line_ending = '\n'
+ yield line.rstrip(line_ending).split(delimiter)
else:
for line in stream:
- yield line.rstrip('\n').split(delimiter)[:num_column]
+ if isinstance(line, bytes):
+ line_ending = b'\n'
+ else:
+ line_ending = '\n'
+ yield line.rstrip(line_ending).split(delimiter)[:num_column]
def SelectColumn(stream, column_index):
@@ -172,5 +185,5 @@
grouper extends the last chunk to make it an n-element chunk by adding
appropriate value, but this returns truncated chunk.
"""
- for index in xrange(0, len(iterable), n):
+ for index in range(0, len(iterable), n):
yield iterable[index:index + n]
--- /src/build_tools/codesign_mac.py
+++ /src/build_tools/codesign_mac.py
@@ -46,17 +46,17 @@
def RunOrDie(command):
"""Run the command, or die if it failed."""
- print "Running: " + command
+ print("Running: " + command)
try:
output = subprocess.check_output(command, shell=True)
- print >> sys.stderr, "=========="
- print >> sys.stderr, "COMMAND: " + command
- print >> sys.stderr, output
+ print("==========", file=sys.stderr)
+ print("COMMAND: " + command, file=sys.stderr)
+ print(output, file=sys.stderr)
except subprocess.CalledProcessError as e:
- print >> sys.stderr, "=========="
- print >> sys.stderr, "ERROR: " + command
- print >> sys.stderr, e.output
- print >> sys.stderr, "=========="
+ print("==========", file=sys.stderr)
+ print("ERROR: " + command, file=sys.stderr)
+ print(e.output, file=sys.stderr)
+ print("==========", file=sys.stderr)
sys.exit(1)
@@ -119,18 +119,18 @@
(options, unused_args) = parser.parse_args()
if not options.target:
- print "Error: --target should be specified."
- print parser.print_help()
+ print("Error: --target should be specified.")
+ print(parser.print_help())
sys.exit(1)
return options
def DumpEnviron():
- print "=== os.environ ==="
+ print("=== os.environ ===")
for key in sorted(os.environ):
- print "%s = %s" % (key, os.getenv(key))
- print "=================="
+ print("%s = %s" % (key, os.getenv(key)))
+ print("==================")
def main():
--- /src/build_tools/copy_dll_and_symbol.py
+++ /src/build_tools/copy_dll_and_symbol.py
@@ -38,7 +38,7 @@
import os
import shutil
-from util import PrintErrorAndExit
+from .util import PrintErrorAndExit
def ParseOption():
"""Parse command line options."""
@@ -98,7 +98,7 @@
if _GetLastModifiedTime(src) <= target_file_mtime:
# Older file found. Ignore.
continue
- print 'Copying %s to %s' % (src, target_file_abspath)
+ print('Copying %s to %s' % (src, target_file_abspath))
shutil.copy2(src, target_file_abspath)
break
--- /src/build_tools/copy_file.py
+++ /src/build_tools/copy_file.py
@@ -52,7 +52,7 @@
Args:
message: The error message to be printed to stderr.
"""
- print >>sys.stderr, message
+ print(message, file=sys.stderr)
sys.exit(1)
--- /src/build_tools/copy_qt_frameworks_mac.py
+++ /src/build_tools/copy_qt_frameworks_mac.py
@@ -41,9 +41,9 @@
import optparse
import os
-from copy_file import CopyFiles
-from util import PrintErrorAndExit
-from util import RunOrDie
+from .copy_file import CopyFiles
+from .util import PrintErrorAndExit
+from .util import RunOrDie
def ParseOption():
--- /src/build_tools/embed_file.py
+++ /src/build_tools/embed_file.py
@@ -46,10 +46,10 @@
def _FormatAsUint64LittleEndian(s):
"""Formats a string as uint64 value in little endian order."""
- for _ in xrange(len(s), 8):
- s += '\0'
+ for _ in range(len(s), 8):
+ s += b'\0'
s = s[::-1] # Reverse the string
- return '0x%s' % binascii.b2a_hex(s)
+ return b'0x%b' % binascii.b2a_hex(s)
def main():
@@ -57,30 +57,30 @@
with open(opts.input, 'rb') as infile:
with open(opts.output, 'wb') as outfile:
outfile.write(
- '#ifdef MOZC_EMBEDDED_FILE_%(name)s\n'
- '#error "%(name)s was already included or defined elsewhere"\n'
- '#else\n'
- '#define MOZC_EMBEDDED_FILE_%(name)s\n'
- 'const uint64 %(name)s_data[] = {\n'
- % {'name': opts.name})
+ b'#ifdef MOZC_EMBEDDED_FILE_%(name)b\n'
+ b'#error "%(name)b was already included or defined elsewhere"\n'
+ b'#else\n'
+ b'#define MOZC_EMBEDDED_FILE_%(name)b\n'
+ b'const uint64 %(name)b_data[] = {\n'
+ % {b'name': opts.name.encode('utf-8')})
while True:
chunk = infile.read(8)
if not chunk:
break
- outfile.write(' ')
+ outfile.write(b' ')
outfile.write(_FormatAsUint64LittleEndian(chunk))
- outfile.write(',\n')
+ outfile.write(b',\n')
outfile.write(
- '};\n'
- 'const EmbeddedFile %(name)s = {\n'
- ' %(name)s_data,\n'
- ' %(size)d,\n'
- '};\n'
- '#endif // MOZC_EMBEDDED_FILE_%(name)s\n'
- % {'name': opts.name,
- 'size': os.stat(opts.input).st_size})
+ b'};\n'
+ b'const EmbeddedFile %(name)b = {\n'
+ b' %(name)b_data,\n'
+ b' %(size)d,\n'
+ b'};\n'
+ b'#endif // MOZC_EMBEDDED_FILE_%(name)b\n'
+ % {b'name': opts.name.encode('utf-8'),
+ b'size': os.stat(opts.input).st_size})
if __name__ == '__main__':
--- /src/build_tools/embed_pathname.py
+++ /src/build_tools/embed_pathname.py
@@ -28,7 +28,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""A script to embed the given (relative) path name to C/C++ characters array.
+r"""A script to embed the given (relative) path name to C/C++ characters array.
Example:
./embed_pathname.py --path_to_be_embedded=d:\data\mozc
@@ -53,7 +53,7 @@
(options, unused_args) = parser.parse_args()
if not all(vars(options).values()):
- print parser.print_help()
+ print(parser.print_help())
sys.exit(1)
return options
@@ -63,7 +63,7 @@
opt = ParseOption()
path = os.path.abspath(opt.path_to_be_embedded)
# TODO(yukawa): Consider the case of non-ASCII characters.
- escaped_path = path.encode('string-escape')
+ escaped_path = path.replace('\\', '\\\\')
with open(opt.output, 'w') as output_file:
output_file.write(
'const char %s[] = "%s";\n' % (opt.constant_name, escaped_path))
--- /src/build_tools/ensure_gyp_module_path.py
+++ /src/build_tools/ensure_gyp_module_path.py
@@ -48,7 +48,7 @@
(options, _) = parser.parse_args()
if not options.expected:
- print parser.print_help()
+ print(parser.print_help())
sys.exit(1)
return options
@@ -59,20 +59,20 @@
opt = ParseOption()
expected_path = os.path.abspath(opt.expected)
if not os.path.exists(expected_path):
- print '%s does not exist.' % expected_path
+ print('%s does not exist.' % expected_path)
sys.exit(1)
try:
import gyp # NOLINT
except ImportError as e:
- print 'import gyp failed: %s' % e
+ print('import gyp failed: %s' % e)
sys.exit(1)
actual_path = os.path.abspath(gyp.__path__[0])
if expected_path != actual_path:
- print 'Unexpected gyp module is loaded on this environment.'
- print ' expected: %s' % expected_path
- print ' actual : %s' % actual_path
+ print('Unexpected gyp module is loaded on this environment.')
+ print(' expected: %s' % expected_path)
+ print(' actual : %s' % actual_path)
sys.exit(1)
if __name__ == '__main__':
--- /src/build_tools/gen_win32_resource_header.py
+++ /src/build_tools/gen_win32_resource_header.py
@@ -39,7 +39,7 @@
__author__ = "yukawa"
import logging
-import mozc_version
+from . import mozc_version
import optparse
import os
import sys
--- /src/build_tools/mozc_version.py
+++ /src/build_tools/mozc_version.py
@@ -94,7 +94,7 @@
last_digit = TARGET_PLATFORM_TO_DIGIT.get(target_platform, None)
if last_digit is None:
logging.critical('target_platform %s is invalid. Accetable ones are %s',
- target_platform, TARGET_PLATFORM_TO_DIGIT.keys())
+ target_platform, list(TARGET_PLATFORM_TO_DIGIT.keys()))
sys.exit(1)
if not revision:
@@ -314,13 +314,14 @@
self._properties = {}
if not os.path.isfile(path):
return
- for line in open(path):
- matchobj = re.match(r'(\w+)=(.*)', line.strip())
- if matchobj:
- var = matchobj.group(1)
- val = matchobj.group(2)
- if var not in self._properties:
- self._properties[var] = val
+ with open(path) as file:
+ for line in file:
+ matchobj = re.match(r'(\w+)=(.*)', line.strip())
+ if matchobj:
+ var = matchobj.group(1)
+ val = matchobj.group(2)
+ if var not in self._properties:
+ self._properties[var] = val
# Check mandatory properties.
for key in VERSION_PROPERTIES:

@ -0,0 +1,600 @@
https://github.com/google/mozc/issues/462
--- /src/build_tools/redirect.py
+++ /src/build_tools/redirect.py
@@ -58,14 +58,15 @@
process = subprocess.Popen(sys.argv, stdout=subprocess.PIPE,
universal_newlines=True)
except:
- print '=========='
- print ' ERROR: %s' % ' '.join(sys.argv)
- print '=========='
+ print('==========')
+ print(' ERROR: %s' % ' '.join(sys.argv))
+ print('==========')
raise
(stdout_content, _) = process.communicate()
# Write the stdout content to the output file.
output_file = open(output_file_name, 'w')
output_file.write(stdout_content)
+ output_file.close()
return process.wait()
if __name__ == '__main__':
--- /src/build_tools/run_after_chdir.py
+++ /src/build_tools/run_after_chdir.py
@@ -57,7 +57,7 @@
sys.argv.insert(0, sys.executable) # Inject the python interpreter path.
# We don't capture stdout and stderr from Popen. The output will just
# be emitted to a terminal or console.
- print sys.argv
+ print(sys.argv)
sys.exit(subprocess.call(sys.argv))
if __name__ == '__main__':
--- /src/build_tools/serialized_string_array_builder.py
+++ /src/build_tools/serialized_string_array_builder.py
@@ -58,11 +58,11 @@
f.write(struct.pack('<I', array_size))
# Offset and length array of (4 + 4) * array_size bytes.
- for i in xrange(array_size):
+ for i in range(array_size):
f.write(struct.pack('<I', offsets[i]))
f.write(struct.pack('<I', lengths[i]))
# Strings chunk.
- for i in xrange(array_size):
+ for i in range(array_size):
f.write(strings[i])
- f.write('\0')
+ f.write(b'\0')
--- /src/build_tools/test_tools/gtest_report.py
+++ /src/build_tools/test_tools/gtest_report.py
@@ -36,9 +36,9 @@
__author__ = "nona"
-import cStringIO as StringIO
+import io
import logging
-from xml.etree import cElementTree as ElementTree
+from xml.etree import ElementTree
class Failure(object):
@@ -87,13 +87,13 @@
"""Returns summarized error report text."""
if self.fail_num == 0:
return ''
- output = StringIO.StringIO()
+ output = io.StringIO()
for testcase in self.testcases:
if not testcase.failures:
continue
- print >>output, '%s.%s:' % (self.name, testcase.name)
+ print('%s.%s:' % (self.name, testcase.name), file=output)
for failure in testcase.failures:
- print >>output, failure.contents.encode('utf-8')
+ print(failure.contents.encode('utf-8'), file=output)
return output.getvalue()
@classmethod
--- /src/build_tools/test_tools/test_launcher.py
+++ /src/build_tools/test_tools/test_launcher.py
@@ -101,11 +101,11 @@
time.sleep(1)
try:
shutil.rmtree(self._path)
- except OSError, e:
+ except OSError as e:
logging.error('Failed to remove %s. error: %s', self._path, e)
-def _ExecuteTest((command, gtest_report_dir)):
+def _ExecuteTest(args):
"""Executes tests with specified Test command.
Args:
@@ -122,6 +122,7 @@
module, which is used in multiprocessing module.
(http://docs.python.org/library/pickle.html)
"""
+ (command, gtest_report_dir) = args
binary = command[0]
binary_filename = os.path.basename(binary)
tmp_dir = tempfile.mkdtemp()
--- /src/build_tools/tweak_data.py
+++ /src/build_tools/tweak_data.py
@@ -55,7 +55,7 @@
The value for the variable if the variable is defined in the
environment. Otherwise original string is returned.
"""
- if environment.has_key(matchobj.group(1)):
+ if matchobj.group(1) in environment:
return environment[matchobj.group(1)]
return matchobj.group(0)
--- /src/build_tools/tweak_info_plist.py
+++ /src/build_tools/tweak_info_plist.py
@@ -42,8 +42,8 @@
import logging
import optparse
import sys
-import mozc_version
-import tweak_data
+from . import mozc_version
+from . import tweak_data
_COPYRIGHT_YEAR = datetime.date.today().year
@@ -81,7 +81,7 @@
version = mozc_version.MozcVersion(options.version_file)
- copyright_message = (u'© %d Google Inc.' % _COPYRIGHT_YEAR).encode('utf-8')
+ copyright_message = ('© %d Google Inc.' % _COPYRIGHT_YEAR).encode('utf-8')
long_version = version.GetVersionString()
short_version = version.GetVersionInFormat('@MAJOR@.@MINOR@.@BUILD@')
--- /src/build_tools/tweak_info_plist_strings.py
+++ /src/build_tools/tweak_info_plist_strings.py
@@ -40,7 +40,7 @@
import logging
import optparse
import sys
-import tweak_data
+from . import tweak_data
_COPYRIGHT_YEAR = datetime.date.today().year
@@ -77,7 +77,7 @@
if options.branding == 'GoogleJapaneseInput':
variables = {
'CF_BUNDLE_NAME_EN': 'Google Japanese Input',
- 'CF_BUNDLE_NAME_JA': u'Google 日本語入力'.encode('utf-8'),
+ 'CF_BUNDLE_NAME_JA': 'Google 日本語入力'.encode('utf-8'),
'NS_HUMAN_READABLE_COPYRIGHT': copyright_message,
'INPUT_MODE_ANNOTATION': 'Google',
}
--- /src/build_tools/tweak_macinstaller_script.py
+++ /src/build_tools/tweak_macinstaller_script.py
@@ -39,7 +39,7 @@
import logging
import optparse
-import mozc_version
+from . import mozc_version
def _ReplaceVariables(data, environment):
--- /src/build_tools/tweak_pkgproj.py
+++ /src/build_tools/tweak_pkgproj.py
@@ -45,7 +45,7 @@
import os
import plistlib
import re
-import mozc_version
+from . import mozc_version
from os import path
@@ -71,7 +71,7 @@
The value for the variable if the variable is defined in the
environment. Otherwise original string is returned.
"""
- if environment.has_key(matchobj.group(1)):
+ if matchobj.group(1) in environment:
return environment[matchobj.group(1)]
return matchobj.group(0)
--- /src/build_tools/util.py
+++ /src/build_tools/util.py
@@ -73,11 +73,11 @@
return 1
-class RunOrDieError(StandardError):
+class RunOrDieError(Exception):
"""The exception class for RunOrDie."""
def __init__(self, message):
- StandardError.__init__(self, message)
+ Exception.__init__(self, message)
def RunOrDie(argv):
@@ -105,7 +105,7 @@
return # Do nothing if not exist.
if IsWindows():
# Read-only files cannot be deleted on Windows.
- os.chmod(file_name, 0700)
+ os.chmod(file_name, 0o700)
logging.debug('Removing file: %s', file_name)
os.unlink(file_name)
--- /src/build_tools/zlib_util.py
+++ /src/build_tools/zlib_util.py
@@ -58,7 +58,7 @@
def main():
if len(sys.argv) != 4:
- print >>sys.stderr, 'Invalid arguments'
+ print('Invalid arguments', file=sys.stderr)
return
if sys.argv[1] == 'compress':
Compress(sys.argv[2], sys.argv[3])
@@ -66,7 +66,7 @@
if sys.argv[1] == 'decompress':
Decompress(sys.argv[2], sys.argv[3])
return
- print >>sys.stderr, 'Unknown command:', sys.argv[1]
+ print('Unknown command:', sys.argv[1], file=sys.stderr)
if __name__ == '__main__':
--- /src/composer/internal/gen_typing_model.py
+++ /src/composer/internal/gen_typing_model.py
@@ -54,14 +54,13 @@
__author__ = "noriyukit"
import bisect
-import codecs
import collections
import optparse
import struct
UNDEFINED_COST = -1
-MAX_UINT16 = struct.unpack('H', '\xFF\xFF')[0]
-MAX_UINT8 = struct.unpack('B', '\xFF')[0]
+MAX_UINT16 = struct.unpack('H', b'\xFF\xFF')[0]
+MAX_UINT8 = struct.unpack('B', b'\xFF')[0]
def ParseArgs():
@@ -113,7 +112,7 @@
sorted_values = list(sorted(set(values)))
mapping_table = sorted_values[0]
mapping_table_size_without_special_value = mapping_table_size - 1
- span = len(sorted_values) / (mapping_table_size_without_special_value - 1)
+ span = len(sorted_values) // (mapping_table_size_without_special_value - 1)
mapping_table = [sorted_values[i * span]
for i
in range(0, mapping_table_size_without_special_value - 1)]
@@ -150,7 +149,7 @@
def GetValueTable(unique_characters, mapping_table, dictionary):
result = []
- for key, value in dictionary.iteritems():
+ for key, value in dictionary.items():
index = GetIndexFromKey(unique_characters, key)
while len(result) <= index:
result.append(len(mapping_table) - 1)
@@ -167,13 +166,13 @@
romaji_transition_cost)
with open(output_path, 'wb') as f:
f.write(struct.pack('<I', len(unique_characters)))
- f.write(''.join(unique_characters))
+ f.write(''.join(unique_characters).encode('utf-8'))
offset = 4 + len(unique_characters)
# Add padding to place value list size at 4-byte boundary.
if offset % 4:
padding_size = 4 - offset % 4
- f.write('\x00' * padding_size)
+ f.write(b'\x00' * padding_size)
offset += padding_size
f.write(struct.pack('<I', len(value_list)))
@@ -184,7 +183,7 @@
# Add padding to place mapping_table at 4-byte boundary.
if offset % 4:
padding_size = 4 - offset % 4
- f.write('\x00' * padding_size)
+ f.write(b'\x00' * padding_size)
offset += padding_size
for v in mapping_table:
@@ -198,7 +197,8 @@
# - trigram['vw']['x'] = -500 * log(P(x | 'vw'))
unigram = {}
trigram = collections.defaultdict(dict)
- for line in codecs.open(options.input_path, 'r', encoding='utf-8'):
+ input_file = open(options.input_path, 'r', encoding='utf-8')
+ for line in input_file:
line = line.rstrip()
ngram, cost = line.split('\t')
cost = int(cost)
@@ -206,6 +206,7 @@
unigram[ngram] = cost
else:
trigram[ngram[:-1]][ngram[-1]] = cost
+ input_file.close()
# Calculate ngram-related cost for each 'vw' and 'x':
# -500 * log( P('x' | 'vw') / P('x') )
--- /src/converter/gen_boundary_data.py
+++ /src/converter/gen_boundary_data.py
@@ -70,7 +70,8 @@
def LoadPatterns(file):
prefix = []
suffix = []
- for line in open(file, 'r'):
+ fh = open(file, 'r')
+ for line in fh:
if len(line) <= 1 or line[0] == '#':
continue
fields = line.split()
@@ -84,8 +85,9 @@
elif label == 'SUFFIX':
suffix.append([re.compile(PatternToRegexp(feature)), cost])
else:
- print 'format error %s' % (line)
+ print('format error %s' % (line))
sys.exit(0)
+ fh.close()
return (prefix, suffix)
@@ -100,19 +102,23 @@
def LoadFeatures(filename):
features = []
- for line in open(filename, 'r'):
+ fh = open(filename, 'r')
+ for line in fh:
fields = line.split()
features.append(fields[1])
+ fh.close()
return features
def CountSpecialPos(filename):
count = 0
- for line in open(filename, 'r'):
+ fh = open(filename, 'r')
+ for line in fh:
line = line.rstrip()
if not line or line[0] == '#':
continue
count += 1
+ fh.close()
return count
@@ -141,7 +147,7 @@
f.write(struct.pack('<H', GetCost(prefix, feature)))
f.write(struct.pack('<H', GetCost(suffix, feature)))
- for _ in xrange(num_special_pos):
+ for _ in range(num_special_pos):
f.write(struct.pack('<H', 0))
f.write(struct.pack('<H', 0))
--- /src/converter/gen_quality_regression_test_data.py
+++ /src/converter/gen_quality_regression_test_data.py
@@ -84,7 +84,7 @@
else _ENABLED)
id = issue.attributes['id'].value
target = GetText(issue.getElementsByTagName('target'))
- for detail in issue.getElementsByTagName(u'detail'):
+ for detail in issue.getElementsByTagName('detail'):
fields = []
fields.append('mozcsu_%s' % id)
for key in ('reading', 'output', 'actionStatus', 'rank', 'accuracy'):
@@ -104,19 +104,19 @@
def GenerateHeader(files):
try:
- print 'namespace mozc{'
- print 'struct TestCase {'
- print ' const bool enabled;'
- print ' const char *tsv;'
- print '} kTestData[] = {'
+ print('namespace mozc{')
+ print('struct TestCase {')
+ print(' const bool enabled;')
+ print(' const char *tsv;')
+ print('} kTestData[] = {')
for file in files:
for enabled, line in ParseFile(file):
- print ' {%s, "%s"},' % (enabled, EscapeString(line))
- print ' {false, nullptr},'
- print '};'
- print '} // namespace mozc'
+ print(' {%s, "%s"},' % (enabled, EscapeString(line)))
+ print(' {false, nullptr},')
+ print('};')
+ print('} // namespace mozc')
except:
- print 'cannot open %s' % (file)
+ print('cannot open %s' % (file))
sys.exit(1)
--- /src/converter/gen_segmenter_code.py
+++ /src/converter/gen_segmenter_code.py
@@ -54,18 +54,22 @@
pos = {}
max_id = 0
- for line in open(id_file, "r"):
+ fh = open(id_file, "r")
+ for line in fh:
fields = line.split()
pos[fields[1]] = fields[0]
max_id = max(int(fields[0]), max_id)
+ fh.close()
max_id = max_id + 1
- for line in open(special_pos_file, "r"):
+ fh = open(special_pos_file, "r")
+ for line in fh:
if len(line) <= 1 or line[0] == '#':
continue
fields = line.split()
pos[fields[0]] = ("%d" % max_id)
max_id = max_id + 1
+ fh.close()
return pos
@@ -79,8 +83,7 @@
pat = re.compile(PatternToRegexp(pattern))
min = -1;
max = -1;
- keys = pos.keys()
- keys.sort()
+ keys = sorted(pos.keys())
range = []
@@ -107,7 +110,7 @@
tmp.append("(%s >= %s && %s <= %s)" % (name, r[0], name, r[1]))
if len(tmp) == 0:
- print "FATAL: No rule fiind %s" % (pattern)
+ print("FATAL: No rule fiind %s" % (pattern))
sys.exit(-1)
return " || ".join(tmp)
@@ -115,19 +118,21 @@
def main():
pos = ReadPOSID(sys.argv[1], sys.argv[2])
- print HEADER % (len(pos.keys()), len(pos.keys()))
+ print(HEADER % (len(pos.keys()), len(pos.keys())))
- for line in open(sys.argv[3], "r"):
+ fh = open(sys.argv[3], "r")
+ for line in fh:
if len(line) <= 1 or line[0] == '#':
continue
(l, r, result) = line.split()
result = result.lower()
lcond = GetRange(pos, l, "rid") or "true";
rcond = GetRange(pos, r, "lid") or "true";
- print " // %s %s %s" % (l, r, result)
- print " if ((%s) && (%s)) { return %s; }" % (lcond, rcond, result)
+ print(" // %s %s %s" % (l, r, result))
+ print(" if ((%s) && (%s)) { return %s; }" % (lcond, rcond, result))
+ fh.close()
- print FOOTER
+ print(FOOTER)
if __name__ == "__main__":
main()
--- /src/data_manager/gen_connection_data.py
+++ /src/data_manager/gen_connection_data.py
@@ -32,8 +32,7 @@
__author__ = "hidehiko"
-import cStringIO as StringIO
-import itertools
+import io
import logging
import optparse
import os
@@ -45,7 +44,7 @@
INVALID_COST = 30000
INVALID_1BYTE_COST = 255
RESOLUTION_FOR_1BYTE = 64
-FILE_MAGIC = '\xAB\xCD'
+FILE_MAGIC = b'\xAB\xCD'
FALSE_VALUES = ['f', 'false', '0']
TRUE_VALUES = ['t', 'true', '1']
@@ -79,28 +78,28 @@
# The result is a square matrix.
mat_size = pos_size + special_pos_size
- matrix = [[0] * mat_size for _ in xrange(mat_size)]
+ matrix = [[0] * mat_size for _ in range(mat_size)]
with open(text_connection_file) as stream:
stream = code_generator_util.SkipLineComment(stream)
# The first line contains the matrix column/row size.
- size = stream.next().rstrip()
+ size = next(stream).rstrip()
assert (int(size) == pos_size), '%s != %d' % (size, pos_size)
for array_index, cost in enumerate(stream):
cost = int(cost.rstrip())
- rid = array_index / pos_size
+ rid = array_index // pos_size
lid = array_index % pos_size
if rid == 0 and lid == 0:
cost = 0
matrix[rid][lid] = cost
# Fill INVALID_COST in matrix elements for special POS.
- for rid in xrange(pos_size, mat_size):
- for lid in xrange(1, mat_size): # Skip EOS
+ for rid in range(pos_size, mat_size):
+ for lid in range(1, mat_size): # Skip EOS
matrix[rid][lid] = INVALID_COST
- for lid in xrange(pos_size, mat_size):
- for rid in xrange(1, mat_size): # Skip BOS
+ for lid in range(pos_size, mat_size):
+ for rid in range(1, mat_size): # Skip BOS
matrix[rid][lid] = INVALID_COST
return matrix
@@ -116,7 +115,7 @@
# Heuristically, we do not compress INVALID_COST.
continue
m[cost] = m.get(cost, 0) + 1
- mode_value = max(m.iteritems(), key=lambda (_, count): count)[0]
+ mode_value = max(m.items(), key=lambda x: x[1])[0]
result.append(mode_value)
return result
@@ -126,8 +125,8 @@
# list, and fill None into the matrix if it equals to the corresponding
# mode value.
assert len(matrix) == len(mode_value_list)
- for row, mode_value in itertools.izip(matrix, mode_value_list):
- for index in xrange(len(row)):
+ for row, mode_value in zip(matrix, mode_value_list):
+ for index in range(len(row)):
if row[index] == mode_value:
row[index] = None
@@ -179,7 +178,7 @@
resolution = RESOLUTION_FOR_1BYTE
else:
resolution = 1
- stream = StringIO.StringIO()
+ stream = io.BytesIO()
# Output header.
stream.write(FILE_MAGIC)
@@ -194,7 +193,7 @@
# 4 bytes alignment.
if len(mode_value_list) % 2:
- stream.write('\x00\x00')
+ stream.write(b'\x00\x00')
# Process each row:
for row in matrix:
@@ -218,7 +217,7 @@
if cost == INVALID_COST:
cost = INVALID_1BYTE_COST
else:
- cost /= resolution
+ cost //= resolution
assert cost != INVALID_1BYTE_COST
values.append(cost)
@@ -237,7 +236,7 @@
values_size = len(values) * 2
# Output the bits for a row.
- stream.write(struct.pack('<HH', len(compact_bits) / 8, values_size))
+ stream.write(struct.pack('<HH', len(compact_bits) // 8, values_size))
OutputBitList(chunk_bits, stream)
OutputBitList(compact_bits, stream)
if use_1byte_cost:

@ -0,0 +1,583 @@
https://github.com/google/mozc/issues/462
--- /src/dictionary/gen_pos_map.py
+++ /src/dictionary/gen_pos_map.py
@@ -39,7 +39,7 @@
from build_tools import code_generator_util
-HEADER = """// Copyright 2009 Google Inc. All Rights Reserved.
+HEADER = b"""// Copyright 2009 Google Inc. All Rights Reserved.
// Author: keni
#ifndef MOZC_DICTIONARY_POS_MAP_H_
@@ -48,13 +48,13 @@
// POS conversion rules
const POSMap kPOSMap[] = {
"""
-FOOTER = """};
+FOOTER = b"""};
#endif // MOZC_DICTIONARY_POS_MAP_H_
"""
def ParseUserPos(user_pos_file):
- with open(user_pos_file, 'r') as stream:
+ with open(user_pos_file, 'rb') as stream:
stream = code_generator_util.SkipLineComment(stream)
stream = code_generator_util.ParseColumnStream(stream, num_column=2)
return dict((key, enum_value) for key, enum_value in stream)
@@ -64,7 +64,7 @@
user_pos_map = ParseUserPos(user_pos_file)
result = {}
- with open(third_party_pos_map_file, 'r') as stream:
+ with open(third_party_pos_map_file, 'rb') as stream:
stream = code_generator_util.SkipLineComment(stream)
for columns in code_generator_util.ParseColumnStream(stream, num_column=2):
third_party_pos_name, mozc_pos = (columns + [None])[:2]
@@ -78,7 +78,7 @@
result[third_party_pos_name] = mozc_pos
# Create mozc_pos to mozc_pos map.
- for key, value in user_pos_map.iteritems():
+ for key, value in user_pos_map.items():
if key in result:
assert (result[key] == value)
continue
@@ -94,10 +94,10 @@
if value is None:
# Invalid PosType.
value = (
- 'static_cast< ::mozc::user_dictionary::UserDictionary::PosType>(-1)')
+ b'static_cast< ::mozc::user_dictionary::UserDictionary::PosType>(-1)')
else:
- value = '::mozc::user_dictionary::UserDictionary::' + value
- output.write(' { %s, %s },\n' % (key, value))
+ value = b'::mozc::user_dictionary::UserDictionary::' + value
+ output.write(b' { %s, %s },\n' % (key, value))
output.write(FOOTER)
@@ -121,7 +121,7 @@
pos_map = GeneratePosMap(options.third_party_pos_map_file,
options.user_pos_file)
- with open(options.output, 'w') as stream:
+ with open(options.output, 'wb') as stream:
OutputPosMap(pos_map, stream)
--- /src/dictionary/gen_pos_rewrite_rule.py
+++ /src/dictionary/gen_pos_rewrite_rule.py
@@ -46,29 +46,34 @@
def LoadRewriteMapRule(filename):
- fh = open(filename)
+ fh = open(filename, 'rb')
rule = []
for line in fh:
- line = line.rstrip('\n')
- if not line or line.startswith('#'):
+ line = line.rstrip(b'\n')
+ if not line or line.startswith(b'#'):
continue
fields = line.split()
rule.append([fields[0], fields[1]])
+ fh.close()
return rule
def ReadPOSID(id_file, special_pos_file):
pos_list = []
- for line in open(id_file, 'r'):
+ fh = open(id_file, 'rb')
+ for line in fh:
fields = line.split()
pos_list.append(fields[1])
+ fh.close()
- for line in open(special_pos_file, 'r'):
- if len(line) <= 1 or line[0] == '#':
+ fh = open(special_pos_file, 'rb')
+ for line in fh:
+ if len(line) <= 1 or line[0:1] == b'#':
continue
fields = line.split()
pos_list.append(fields[0])
+ fh.close()
return pos_list
@@ -112,7 +117,7 @@
ids.append(id)
with open(opts.output, 'wb') as f:
- f.write(''.join(chr(id) for id in ids))
+ f.write(''.join(chr(id) for id in ids).encode('utf-8'))
if __name__ == '__main__':
--- /src/dictionary/gen_suffix_data.py
+++ /src/dictionary/gen_suffix_data.py
@@ -52,10 +52,10 @@
opts = _ParseOptions()
result = []
- with open(opts.input, 'r') as stream:
+ with open(opts.input, 'rb') as stream:
for line in stream:
- line = line.rstrip('\r\n')
- fields = line.split('\t')
+ line = line.rstrip(b'\r\n')
+ fields = line.split(b'\t')
key = fields[0]
lid = int(fields[1])
rid = int(fields[2])
@@ -63,7 +63,7 @@
value = fields[4]
if key == value:
- value = ''
+ value = b''
result.append((key, value, lid, rid, cost))
--- /src/dictionary/gen_user_pos_data.py
+++ /src/dictionary/gen_user_pos_data.py
@@ -64,7 +64,7 @@
f.write(struct.pack('<H', conjugation_id))
serialized_string_array_builder.SerializeToFile(
- sorted(string_index.iterkeys()), output_string_array)
+ sorted(x.encode('utf-8') for x in string_index.keys()), output_string_array)
def ParseOptions():
@@ -100,7 +100,7 @@
if options.output_pos_list:
serialized_string_array_builder.SerializeToFile(
- [pos for (pos, _) in user_pos.data], options.output_pos_list)
+ [pos.encode('utf-8') for (pos, _) in user_pos.data], options.output_pos_list)
if __name__ == '__main__':
--- /src/dictionary/gen_zip_code_seed.py
+++ /src/dictionary/gen_zip_code_seed.py
@@ -83,7 +83,7 @@
address = unicodedata.normalize('NFKC', self.address)
line = '\t'.join([zip_code, '0', '0', str(ZIP_CODE_COST),
address, ZIP_CODE_LABEL])
- print line.encode('utf-8')
+ print(line.encode('utf-8'))
def ProcessZipCodeCSV(file_name):
@@ -105,26 +105,26 @@
def ReadZipCodeEntries(zip_code, level1, level2, level3):
"""Read zip code entries."""
- return [ZipEntry(zip_code, u''.join([level1, level2, town]))
+ return [ZipEntry(zip_code, ''.join([level1, level2, town]))
for town in ParseTownName(level3)]
def ReadJigyosyoEntry(zip_code, level1, level2, level3, name):
"""Read jigyosyo entry."""
return ZipEntry(zip_code,
- u''.join([level1, level2, level3, u' ', name]))
+ ''.join([level1, level2, level3, ' ', name]))
def ParseTownName(level3):
"""Parse town name."""
- if level3.find(u'以下に掲載がない場合') != -1:
+ if level3.find('以下に掲載がない場合') != -1:
return ['']
assert CanParseAddress(level3), ('failed to be merged %s'
% level3.encode('utf-8'))
# We ignore additional information here.
- level3 = re.sub(u'.*', u'', level3, re.U)
+ level3 = re.sub('.*', '', level3, re.U)
# For 地割, we have these cases.
# XX1地割
@@ -134,7 +134,7 @@
# XX第1地割、XX第2地割、
# XX第1地割〜XX第2地割、
# We simply use XX for them.
- chiwari_match = re.match(u'(\D*?)第?\d+地割.*', level3, re.U)
+ chiwari_match = re.match('(\D*?)第?\d+地割.*', level3, re.U)
if chiwari_match:
town = chiwari_match.group(1)
return [town]
@@ -144,21 +144,21 @@
# -> XX町YY and (XX町)ZZ
# YY、ZZ
# -> YY and ZZ
- chou_match = re.match(u'(.*町)?(.*)', level3, re.U)
+ chou_match = re.match('(.*町)?(.*)', level3, re.U)
if chou_match:
- chou = u''
+ chou = ''
if chou_match.group(1):
chou = chou_match.group(1)
rests = chou_match.group(2)
- return [chou + rest for rest in rests.split(u'、')]
+ return [chou + rest for rest in rests.split('、')]
return [level3]
def CanParseAddress(address):
"""Return true for valid address."""
- return (address.find(u'') == -1 or
- address.find(u'') != -1)
+ return (address.find('') == -1 or
+ address.find('') != -1)
def ParseOptions():
--- /src/dictionary/zip_code_util.py
+++ /src/dictionary/zip_code_util.py
@@ -86,11 +86,11 @@
_SPECIAL_CASES = [
- SpecialMergeZip(u'5900111', u'大阪府', u'堺市中区', [u'三原台']),
- SpecialMergeZip(u'8710046', u'大分県', u'中津市',
- [u'金谷', u'西堀端', u'東堀端', u'古金谷']),
- SpecialMergeZip(u'9218046', u'石川県', u'金沢市',
- [u'大桑町', u'三小牛町']),
+ SpecialMergeZip('5900111', '大阪府', '堺市中区', ['三原台']),
+ SpecialMergeZip('8710046', '大分県', '中津市',
+ ['金谷', '西堀端', '東堀端', '古金谷']),
+ SpecialMergeZip('9218046', '石川県', '金沢市',
+ ['大桑町', '三小牛町']),
]
--- /src/gui/character_pad/data/gen_cp932_map.py
+++ /src/gui/character_pad/data/gen_cp932_map.py
@@ -32,7 +32,6 @@
import re
import sys
-import string
kUnicodePat = re.compile(r'0x[0-9A-Fa-f]{2,4}')
def IsValidUnicode(n):
@@ -42,28 +41,29 @@
fh = open(sys.argv[1])
result = {}
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
- array = string.split(line)
+ array = line.split()
sjis = array[0]
ucs2 = array[1]
if eval(sjis) < 32 or not IsValidUnicode(ucs2):
continue
result.setdefault(ucs2, sjis)
+ fh.close()
keys = sorted(result.keys())
- print "struct CP932MapData {"
- print " unsigned int ucs4;"
- print " unsigned short int sjis;"
- print "};"
- print ""
- print "static const size_t kCP932MapDataSize = %d;" % (len(keys))
- print "static const CP932MapData kCP932MapData[] = {"
+ print("struct CP932MapData {")
+ print(" unsigned int ucs4;")
+ print(" unsigned short int sjis;")
+ print("};")
+ print("")
+ print("static const size_t kCP932MapDataSize = %d;" % (len(keys)))
+ print("static const CP932MapData kCP932MapData[] = {")
for n in keys:
- print " { %s, %s }," % (n ,result[n])
- print " { 0, 0 }";
- print "};"
+ print(" { %s, %s }," % (n ,result[n]))
+ print(" { 0, 0 }");
+ print("};")
if __name__ == "__main__":
main()
--- /src/gui/character_pad/data/gen_local_character_map.py
+++ /src/gui/character_pad/data/gen_local_character_map.py
@@ -30,7 +30,6 @@
__author__ = "taku"
-import string
import re
import sys
@@ -43,9 +42,9 @@
fh = open(filename)
result = []
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
- array = string.split(line)
+ array = line.split()
jis = array[0].replace('0x', '')
ucs2 = array[1].replace('0x', '')
if len(jis) == 2:
@@ -53,6 +52,7 @@
if IsValidUnicode(ucs2):
result.append([jis, ucs2])
+ fh.close()
return ["JISX0201", result]
@@ -60,13 +60,14 @@
fh = open(filename)
result = []
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
array = line.split()
jis = array[1].replace('0x', '')
ucs2 = array[2].replace('0x', '')
if IsValidUnicode(ucs2):
result.append([jis, ucs2])
+ fh.close()
return ["JISX0208", result]
@@ -74,13 +75,14 @@
fh = open(filename)
result = []
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
array = line.split()
jis = array[0].replace('0x', '')
ucs2 = array[1].replace('0x', '')
if IsValidUnicode(ucs2):
result.append([jis, ucs2])
+ fh.close()
return ["JISX0212", result]
@@ -88,7 +90,7 @@
fh = open(filename)
result = []
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
array = line.split()
sjis = array[0].replace('0x', '')
@@ -100,19 +102,20 @@
if IsValidUnicode(ucs2):
result.append([sjis, ucs2])
+ fh.close()
return ["CP932", result]
def Output(arg):
name = arg[0]
result = arg[1]
- print "static const size_t k%sMapSize = %d;" % (name, len(result))
- print "static const mozc::gui::CharacterPalette::LocalCharacterMap k%sMap[] = {" % (name)
+ print("static const size_t k%sMapSize = %d;" % (name, len(result)))
+ print("static const mozc::gui::CharacterPalette::LocalCharacterMap k%sMap[] = {" % (name))
for n in result:
- print " { 0x%s, 0x%s }," % (n[0] ,n[1])
- print " { 0, 0 }";
- print "};"
- print ""
+ print(" { 0x%s, 0x%s }," % (n[0] ,n[1]))
+ print(" { 0, 0 }");
+ print("};")
+ print("")
if __name__ == "__main__":
Output(LoadJISX0201(sys.argv[1]))
--- /src/gui/character_pad/data/gen_unicode_blocks.py
+++ /src/gui/character_pad/data/gen_unicode_blocks.py
@@ -33,13 +33,13 @@
import sys
import re
-re = re.compile('^(.....?)\.\.(.....?); (.+)')
+re = re.compile(r'^(.....?)\.\.(.....?); (.+)')
def main():
- print "static const mozc::gui::CharacterPalette::UnicodeBlock kUnicodeBlockTable[] = {"
+ print("static const mozc::gui::CharacterPalette::UnicodeBlock kUnicodeBlockTable[] = {")
fh = open(sys.argv[1])
for line in fh.readlines():
- if line[0] is '#':
+ if line[0] == '#':
continue
m = re.match(line)
if m is not None:
@@ -47,11 +47,12 @@
end = int(m.group(2), 16)
name = m.group(3)
if start <= 0x2FFFF and end <= 0x2FFFF:
- print " { \"%s\", { %d, %d } }," % (name, start, end)
+ print(" { \"%s\", { %d, %d } }," % (name, start, end))
+ fh.close()
- print " { NULL, { 0, 0 } }"
- print "};"
- print ""
+ print(" { NULL, { 0, 0 } }")
+ print("};")
+ print("")
if __name__ == "__main__":
main()
--- /src/gui/character_pad/data/gen_unicode_data.py
+++ /src/gui/character_pad/data/gen_unicode_data.py
@@ -46,18 +46,19 @@
code = int(code, 16)
if code < 0x2FFFF:
results.append(" { %d, \"%s\" }," % (code, desc))
+ fh.close()
- print "struct UnicodeData {";
- print " char32 ucs4;";
- print " const char *description;";
- print "};";
- print ""
- print "static const size_t kUnicodeDataSize = %d;" % (len(results))
- print "static const UnicodeData kUnicodeData[] = {";
+ print("struct UnicodeData {");
+ print(" char32 ucs4;");
+ print(" const char *description;");
+ print("};");
+ print("")
+ print("static const size_t kUnicodeDataSize = %d;" % (len(results)))
+ print("static const UnicodeData kUnicodeData[] = {");
for line in results:
- print line;
- print " { 0, NULL }";
- print "};";
+ print(line);
+ print(" { 0, NULL }");
+ print("};");
if __name__ == "__main__":
main()
--- /src/gui/character_pad/data/gen_unihan_data.py
+++ /src/gui/character_pad/data/gen_unihan_data.py
@@ -31,35 +31,34 @@
__author__ = "taku"
import re
-import string
import sys
rs = {}
def Escape(n):
- if n is not "NULL":
+ if n != "NULL":
return "\"%s\"" % (n)
else:
return "NULL"
def GetCode(n):
- if n is not "NULL":
- n = string.replace(n, '0-', 'JIS X 0208: 0x')
- n = string.replace(n, '1-', 'JIS X 0212: 0x')
- n = string.replace(n, '3-', 'JIS X 0213: 0x')
- n = string.replace(n, '4-', 'JIS X 0213: 0x')
- n = string.replace(n, 'A-', 'Vendors Ideographs: 0x')
- n = string.replace(n, '3A', 'JIS X 0213 2000: 0x')
+ if n != "NULL":
+ n = n.replace('0-', 'JIS X 0208: 0x')
+ n = n.replace('1-', 'JIS X 0212: 0x')
+ n = n.replace('3-', 'JIS X 0213: 0x')
+ n = n.replace('4-', 'JIS X 0213: 0x')
+ n = n.replace('A-', 'Vendors Ideographs: 0x')
+ n = n.replace('3A', 'JIS X 0213 2000: 0x')
return "\"%s\"" % n
else:
return "NULL"
def GetRadical(n):
pat = re.compile(r'^(\d+)\.')
- if n is not "NULL":
+ if n != "NULL":
m = pat.match(n)
if m:
result = rs[m.group(1)]
- return "\"%s\"" % (result.encode('string_escape'))
+ return "\"%s\"" % result
else:
return "NULL"
else:
@@ -73,6 +72,7 @@
id = array[1]
radical = array[2]
rs[id] = radical
+ fh.close()
dic = {}
pat = re.compile(r'^U\+(\S+)\s+(kTotalStrokes|kJapaneseKun|kJapaneseOn|kRSUnicode|kIRG_JSource)\t(.+)')
@@ -86,23 +86,24 @@
n = int(m.group(1), 16)
if n <= 65536:
dic.setdefault(key, {}).setdefault(field, value)
+ fh.close()
keys = sorted(dic.keys())
- print "struct UnihanData {";
- print " unsigned int ucs4;";
+ print("struct UnihanData {");
+ print(" unsigned int ucs4;");
# Since the total strokes defined in Unihan data is Chinese-based
# number, we can't use it.
# print " unsigned char total_strokes;";
- print " const char *japanese_kun;";
- print " const char *japanese_on;";
+ print(" const char *japanese_kun;");
+ print(" const char *japanese_on;");
# Since the radical information defined in Unihan data is Chinese-based
# number, we can't use it.
# print " const char *radical;";
- print " const char *IRG_jsource;";
- print "};"
- print "static const size_t kUnihanDataSize = %d;" % (len(keys))
- print "static const UnihanData kUnihanData[] = {"
+ print(" const char *IRG_jsource;");
+ print("};")
+ print("static const size_t kUnihanDataSize = %d;" % (len(keys)))
+ print("static const UnihanData kUnihanData[] = {")
for key in keys:
total_strokes = dic[key].get("kTotalStrokes", "0")
@@ -111,9 +112,9 @@
rad = GetRadical(dic[key].get("kRSUnicode", "NULL"))
code = GetCode(dic[key].get("kIRG_JSource", "NULL"))
# print " { 0x%s, %s, %s, %s, %s, %s }," % (key, total_strokes, kun, on, rad, code)
- print " { 0x%s, %s, %s, %s }," % (key, kun, on, code)
+ print(" { 0x%s, %s, %s, %s }," % (key, kun, on, code))
- print "};"
+ print("};")
if __name__ == "__main__":
main()

@ -0,0 +1,537 @@
https://github.com/google/mozc/issues/462
--- /src/prediction/gen_zero_query_data.py
+++ /src/prediction/gen_zero_query_data.py
@@ -59,20 +59,20 @@
Returns:
A integer indicating parsed pua.
"""
- if not s or s[0] == '>':
+ if not s or s[0:1] == b'>':
return 0
return int(s, 16)
def NormalizeString(string):
return unicodedata.normalize(
- 'NFKC', string.decode('utf-8')).encode('utf-8').replace('~', '〜')
+ 'NFKC', string.decode('utf-8')).replace('~', '〜').encode('utf-8')
def RemoveTrailingNumber(string):
if not string:
- return ''
- return re.sub(r'^([^0-9]+)[0-9]+$', r'\1', string)
+ return b''
+ return re.sub(br'^([^0-9]+)[0-9]+$', r'\1', string)
def GetReadingsFromDescription(description):
@@ -84,19 +84,19 @@
# - ビル・建物
# \xE3\x83\xBB : "・"
return [RemoveTrailingNumber(token) for token
- in re.split(r'(?:\(|\)|/|\xE3\x83\xBB)+', normalized)]
+ in re.split(br'(?:\(|\)|/|\xE3\x83\xBB)+', normalized)]
def ReadEmojiTsv(stream):
"""Reads emoji data from stream and returns zero query data."""
zero_query_dict = defaultdict(list)
stream = code_generator_util.SkipLineComment(stream)
- for columns in code_generator_util.ParseColumnStream(stream, delimiter='\t'):
+ for columns in code_generator_util.ParseColumnStream(stream, delimiter=b'\t'):
if len(columns) != 13:
- logging.critical('format error: %s', '\t'.join(columns))
+ logging.critical('format error: %s', b'\t'.join(columns))
sys.exit(1)
- code_points = columns[0].split(' ')
+ code_points = columns[0].split(b' ')
# Emoji code point.
emoji = columns[1]
@@ -114,12 +114,12 @@
# - Composite emoji which has multiple code point.
# NOTE: Some Unicode 6.0 emoji don't have PUA, and it is also omitted.
# TODO(hsumita): Check the availability of such emoji and enable it.
- logging.info('Skip %s', ' '.join(code_points))
+ logging.info('Skip %s', b' '.join(code_points))
continue
reading_list = []
# \xe3\x80\x80 is a full-width space
- for reading in re.split(r'(?: |\xe3\x80\x80)+', NormalizeString(readings)):
+ for reading in re.split(br'(?: |\xe3\x80\x80)+', NormalizeString(readings)):
if not reading:
continue
reading_list.append(reading)
@@ -158,15 +158,15 @@
zero_query_dict = defaultdict(list)
for line in input_stream:
- if line.startswith('#'):
+ if line.startswith(b'#'):
continue
- line = line.rstrip('\r\n')
+ line = line.rstrip(b'\r\n')
if not line:
continue
- tokens = line.split('\t')
+ tokens = line.split(b'\t')
key = tokens[0]
- values = tokens[1].split(',')
+ values = tokens[1].split(b',')
for value in values:
zero_query_dict[key].append(
@@ -179,16 +179,16 @@
"""Reads emoticon data from stream and returns zero query data."""
zero_query_dict = defaultdict(list)
stream = code_generator_util.SkipLineComment(stream)
- for columns in code_generator_util.ParseColumnStream(stream, delimiter='\t'):
+ for columns in code_generator_util.ParseColumnStream(stream, delimiter=b'\t'):
if len(columns) != 3:
- logging.critical('format error: %s', '\t'.join(columns))
+ logging.critical('format error: %s', b'\t'.join(columns))
sys.exit(1)
emoticon = columns[0]
readings = columns[2]
# \xe3\x80\x80 is a full-width space
- for reading in re.split(r'(?: |\xe3\x80\x80)+', readings.strip()):
+ for reading in re.split(br'(?: |\xe3\x80\x80)+', readings.strip()):
if not reading:
continue
zero_query_dict[reading].append(
@@ -202,9 +202,9 @@
"""Reads emoji data from stream and returns zero query data."""
zero_query_dict = defaultdict(list)
stream = code_generator_util.SkipLineComment(stream)
- for columns in code_generator_util.ParseColumnStream(stream, delimiter='\t'):
+ for columns in code_generator_util.ParseColumnStream(stream, delimiter=b'\t'):
if len(columns) < 3:
- logging.warning('format error: %s', '\t'.join(columns))
+ logging.warning('format error: %s', b'\t'.join(columns))
continue
symbol = columns[1]
@@ -222,7 +222,7 @@
continue
# \xe3\x80\x80 is a full-width space
- for reading in re.split(r'(?: |\xe3\x80\x80)+', readings.strip()):
+ for reading in re.split(br'(?: |\xe3\x80\x80)+', readings.strip()):
if not reading:
continue
zero_query_dict[reading].append(
@@ -247,7 +247,7 @@
def IsValidKeyForZeroQuery(key):
"""Returns if the key is valid for zero query trigger."""
- is_ascii = all(ord(char) < 128 for char in key)
+ is_ascii = all(char < 128 for char in key)
return not is_ascii
@@ -301,13 +301,13 @@
def main():
options = ParseOptions()
- with open(options.input_rule, 'r') as input_stream:
+ with open(options.input_rule, 'rb') as input_stream:
zero_query_rule_dict = ReadZeroQueryRuleData(input_stream)
- with open(options.input_symbol, 'r') as input_stream:
+ with open(options.input_symbol, 'rb') as input_stream:
zero_query_symbol_dict = ReadSymbolTsv(input_stream)
- with open(options.input_emoji, 'r') as input_stream:
+ with open(options.input_emoji, 'rb') as input_stream:
zero_query_emoji_dict = ReadEmojiTsv(input_stream)
- with open(options.input_emoticon, 'r') as input_stream:
+ with open(options.input_emoticon, 'rb') as input_stream:
zero_query_emoticon_dict = ReadEmoticonTsv(input_stream)
merged_zero_query_dict = MergeZeroQueryData(
--- /src/prediction/gen_zero_query_number_data.py
+++ /src/prediction/gen_zero_query_number_data.py
@@ -41,15 +41,15 @@
zero_query_dict = defaultdict(list)
for line in input_stream:
- if line.startswith('#'):
+ if line.startswith(b'#'):
continue
- line = line.rstrip('\r\n')
+ line = line.rstrip(b'\r\n')
if not line:
continue
- tokens = line.split('\t')
+ tokens = line.split(b'\t')
key = tokens[0]
- values = tokens[1].split(',')
+ values = tokens[1].split(b',')
for value in values:
zero_query_dict[key].append(
@@ -71,7 +71,7 @@
def main():
options = ParseOption()
- with open(options.input, 'r') as input_stream:
+ with open(options.input, 'rb') as input_stream:
zero_query_dict = ReadZeroQueryNumberData(input_stream)
util.WriteZeroQueryData(zero_query_dict,
options.output_token_array,
--- /src/prediction/gen_zero_query_util.py
+++ /src/prediction/gen_zero_query_util.py
@@ -69,7 +69,7 @@
output_string_array):
# Collect all the strings and assing index in ascending order
string_index = {}
- for key, entry_list in zero_query_dict.iteritems():
+ for key, entry_list in zero_query_dict.items():
string_index[key] = 0
for entry in entry_list:
string_index[entry.value] = 0
--- /src/rewriter/gen_counter_suffix_array.py
+++ /src/rewriter/gen_counter_suffix_array.py
@@ -43,7 +43,7 @@
with codecs.open(id_file, 'r', encoding='utf-8') as stream:
stream = code_generator_util.ParseColumnStream(stream, num_column=2)
for pos_id, pos_name in stream:
- if pos_name.startswith(u'名詞,接尾,助数詞'):
+ if pos_name.startswith('名詞,接尾,助数詞'):
pos_ids.add(pos_id)
return pos_ids
--- /src/rewriter/gen_emoji_rewriter_data.py
+++ /src/rewriter/gen_emoji_rewriter_data.py
@@ -74,19 +74,19 @@
the glyph (in other words, it has alternative (primary) code point, which
doesn't lead '>' and that's why we'll ignore it).
"""
- if not s or s[0] == '>':
+ if not s or s[0:1] == b'>':
return None
return int(s, 16)
-_FULLWIDTH_RE = re.compile(ur'[-]') # U+FF01 - U+FF5E
+_FULLWIDTH_RE = re.compile(r'[-]') # U+FF01 - U+FF5E
def NormalizeString(string):
"""Normalize full width ascii characters to half width characters."""
- offset = ord(u'') - ord(u'A')
- return _FULLWIDTH_RE.sub(lambda x: unichr(ord(x.group(0)) - offset),
- unicode(string, 'utf-8')).encode('utf-8')
+ offset = ord('') - ord('A')
+ return _FULLWIDTH_RE.sub(lambda x: chr(ord(x.group(0)) - offset),
+ string.decode('utf-8')).encode('utf-8')
def ReadEmojiTsv(stream):
@@ -96,14 +96,14 @@
token_dict = defaultdict(list)
stream = code_generator_util.SkipLineComment(stream)
- for columns in code_generator_util.ParseColumnStream(stream, delimiter='\t'):
+ for columns in code_generator_util.ParseColumnStream(stream, delimiter=b'\t'):
if len(columns) != 13:
- logging.critical('format error: %s', '\t'.join(columns))
+ logging.critical('format error: %s', b'\t'.join(columns))
sys.exit(1)
- code_points = columns[0].split(' ')
+ code_points = columns[0].split(b' ')
# Emoji code point.
- emoji = columns[1] if columns[1] else ''
+ emoji = columns[1] if columns[1] else b''
android_pua = ParseCodePoint(columns[2])
docomo_pua = ParseCodePoint(columns[3])
softbank_pua = ParseCodePoint(columns[4])
@@ -112,10 +112,10 @@
readings = columns[6]
# [7]: Name defined in Unicode. It is ignored in current implementation.
- utf8_description = columns[8] if columns[8] else ''
- docomo_description = columns[9] if columns[9] else ''
- softbank_description = columns[10] if columns[10] else ''
- kddi_description = columns[11] if columns[11] else ''
+ utf8_description = columns[8] if columns[8] else b''
+ docomo_description = columns[9] if columns[9] else b''
+ softbank_description = columns[10] if columns[10] else b''
+ kddi_description = columns[11] if columns[11] else b''
if not android_pua or len(code_points) > 1:
# Skip some emoji, which is not supported on old devices.
@@ -123,7 +123,7 @@
# - Composite emoji which has multiple code point.
# NOTE: Some Unicode 6.0 emoji don't have PUA, and it is also omitted.
# TODO(hsumita): Check the availability of such emoji and enable it.
- logging.info('Skip %s', ' '.join(code_points))
+ logging.info('Skip %s', b' '.join(code_points))
continue
# Check consistency between carrier PUA codes and descriptions for Android
@@ -132,7 +132,7 @@
(bool(softbank_pua) != bool(softbank_description)) or
(bool(kddi_pua) != bool(kddi_description))):
logging.warning('carrier PUA and description conflict: %s',
- '\t'.join(columns))
+ b'\t'.join(columns))
continue
# Check if the character is usable on Android.
@@ -140,7 +140,7 @@
android_pua = 0 # Replace None with 0.
if not emoji and not android_pua:
- logging.info('Skip: %s', '\t'.join(columns))
+ logging.info('Skip: %s', b'\t'.join(columns))
continue
index = len(emoji_data_list)
@@ -149,7 +149,7 @@
kddi_description))
# \xe3\x80\x80 is a full-width space
- for reading in re.split(r'(?: |\xe3\x80\x80)+', readings.strip()):
+ for reading in re.split(br'(?: |\xe3\x80\x80)+', readings.strip()):
if reading:
token_dict[NormalizeString(reading)].append(index)
@@ -159,7 +159,7 @@
def OutputData(emoji_data_list, token_dict,
token_array_file, string_array_file):
"""Output token and string arrays to files."""
- sorted_token_dict = sorted(token_dict.iteritems())
+ sorted_token_dict = sorted(token_dict.items())
strings = {}
for reading, _ in sorted_token_dict:
@@ -171,7 +171,7 @@
strings[docomo_description] = 0
strings[softbank_description] = 0
strings[kddi_description] = 0
- sorted_strings = sorted(strings.iterkeys())
+ sorted_strings = sorted(strings.keys())
for index, s in enumerate(sorted_strings):
strings[s] = index
@@ -205,7 +205,7 @@
def main():
options = ParseOptions()
- with open(options.input, 'r') as input_stream:
+ with open(options.input, 'rb') as input_stream:
(emoji_data_list, token_dict) = ReadEmojiTsv(input_stream)
OutputData(emoji_data_list, token_dict,
--- /src/rewriter/gen_reading_correction_data.py
+++ /src/rewriter/gen_reading_correction_data.py
@@ -63,7 +63,7 @@
def WriteData(input_path, output_value_array_path, output_error_array_path,
output_correction_array_path):
outputs = []
- with open(input_path) as input_stream:
+ with open(input_path, 'rb') as input_stream:
input_stream = code_generator_util.SkipLineComment(input_stream)
input_stream = code_generator_util.ParseColumnStream(input_stream,
num_column=3)
@@ -73,7 +73,7 @@
# In order to lookup the entries via |error| with binary search,
# sort outputs here.
- outputs.sort(lambda x, y: cmp(x[1], y[1]) or cmp(x[0], y[0]))
+ outputs.sort(key=lambda x: (x[1], x[0]))
serialized_string_array_builder.SerializeToFile(
[value for (value, _, _) in outputs], output_value_array_path)
--- /src/rewriter/gen_single_kanji_rewriter_data.py
+++ /src/rewriter/gen_single_kanji_rewriter_data.py
@@ -52,7 +52,7 @@
stream = code_generator_util.ParseColumnStream(stream, num_column=2)
outputs = list(stream)
# For binary search by |key|, sort outputs here.
- outputs.sort(lambda x, y: cmp(x[0], y[0]))
+ outputs.sort(key=lambda x: x[0])
return outputs
@@ -72,7 +72,7 @@
variant_items.append([target, original, len(variant_types) - 1])
# For binary search by |target|, sort variant items here.
- variant_items.sort(lambda x, y: cmp(x[0], y[0]))
+ variant_items.sort(key=lambda x: x[0])
return (variant_types, variant_items)
@@ -151,10 +151,10 @@
def main():
options = _ParseOptions()
- with open(options.single_kanji_file, 'r') as single_kanji_stream:
+ with open(options.single_kanji_file, 'rb') as single_kanji_stream:
single_kanji = ReadSingleKanji(single_kanji_stream)
- with open(options.variant_file, 'r') as variant_stream:
+ with open(options.variant_file, 'rb') as variant_stream:
variant_info = ReadVariant(variant_stream)
WriteSingleKanji(single_kanji,
--- /src/session/gen_session_stress_test_data.py
+++ /src/session/gen_session_stress_test_data.py
@@ -50,24 +50,26 @@
"""
result = ''
for c in s:
- hexstr = hex(ord(c))
+ hexstr = hex(c)
# because hexstr contains '0x', remove the prefix and add our prefix
result += '\\x' + hexstr[2:]
return result
def GenerateHeader(file):
try:
- print "const char *kTestSentences[] = {"
- for line in open(file, "r"):
- if line.startswith('#'):
+ print("const char *kTestSentences[] = {")
+ fh = open(file, "rb")
+ for line in fh:
+ if line.startswith(b'#'):
continue
- line = line.rstrip('\r\n')
+ line = line.rstrip(b'\r\n')
if not line:
continue
- print " \"%s\"," % escape_string(line)
- print "};"
+ print(" \"%s\"," % escape_string(line))
+ fh.close()
+ print("};")
except:
- print "cannot open %s" % (file)
+ print("cannot open %s" % (file))
sys.exit(1)
def main():
--- /src/unix/ibus/gen_mozc_xml.py
+++ /src/unix/ibus/gen_mozc_xml.py
@@ -74,7 +74,7 @@
def OutputXmlElement(param_dict, element_name, value):
- print ' <%s>%s</%s>' % (element_name, (value % param_dict), element_name)
+ print(' <%s>%s</%s>' % (element_name, (value % param_dict), element_name))
def OutputXml(param_dict, component, engine_common, engines, setup_arg):
@@ -90,26 +90,26 @@
engines: A dictionary from a property name to a list of property values of
engines. For example, {'name': ['mozc-jp', 'mozc', 'mozc-dv']}.
"""
- print '<component>'
- for key in component:
+ print('<component>')
+ for key in sorted(component):
OutputXmlElement(param_dict, key, component[key])
- print '<engines>'
+ print('<engines>')
for i in range(len(engines['name'])):
- print '<engine>'
- for key in engine_common:
+ print('<engine>')
+ for key in sorted(engine_common):
OutputXmlElement(param_dict, key, engine_common[key])
if setup_arg:
OutputXmlElement(param_dict, 'setup', ' '.join(setup_arg))
- for key in engines:
+ for key in sorted(engines):
OutputXmlElement(param_dict, key, engines[key][i])
- print '</engine>'
- print '</engines>'
- print '</component>'
+ print('</engine>')
+ print('</engines>')
+ print('</component>')
def OutputCppVariable(param_dict, prefix, variable_name, value):
- print 'const char k%s%s[] = "%s";' % (prefix, variable_name.capitalize(),
- (value % param_dict))
+ print('const char k%s%s[] = "%s";' % (prefix, variable_name.capitalize(),
+ (value % param_dict)))
def OutputCpp(param_dict, component, engine_common, engines):
@@ -122,18 +122,18 @@
engines: ditto.
"""
guard_name = 'MOZC_UNIX_IBUS_MAIN_H_'
- print CPP_HEADER % (guard_name, guard_name)
- for key in component:
+ print(CPP_HEADER % (guard_name, guard_name))
+ for key in sorted(component):
OutputCppVariable(param_dict, 'Component', key, component[key])
- for key in engine_common:
+ for key in sorted(engine_common):
OutputCppVariable(param_dict, 'Engine', key, engine_common[key])
- for key in engines:
- print 'const char* kEngine%sArray[] = {' % key.capitalize()
+ for key in sorted(engines):
+ print('const char* kEngine%sArray[] = {' % key.capitalize())
for i in range(len(engines[key])):
- print '"%s",' % (engines[key][i] % param_dict)
- print '};'
- print 'const size_t kEngineArrayLen = %s;' % len(engines['name'])
- print CPP_FOOTER % guard_name
+ print('"%s",' % (engines[key][i] % param_dict))
+ print('};')
+ print('const size_t kEngineArrayLen = %s;' % len(engines['name']))
+ print(CPP_FOOTER % guard_name)
def CheckIBusVersion(options, minimum_version):
--- /src/usage_stats/gen_stats_list.py
+++ /src/usage_stats/gen_stats_list.py
@@ -37,23 +37,24 @@
def GetStatsNameList(filename):
stats = []
- for line in open(filename, 'r'):
- stat = line.strip()
- if not stat or stat[0] == '#':
- continue
- stats.append(stat)
+ with open(filename, 'r') as file:
+ for line in file:
+ stat = line.strip()
+ if not stat or stat[0] == '#':
+ continue
+ stats.append(stat)
return stats
def main():
stats_list = GetStatsNameList(sys.argv[1])
- print '// This header file is generated by gen_stats_list.py'
+ print('// This header file is generated by gen_stats_list.py')
for stats in stats_list:
- print 'const char k%s[] = "%s";' % (stats, stats)
- print 'const char *kStatsList[] = {'
+ print('const char k%s[] = "%s";' % (stats, stats))
+ print('const char *kStatsList[] = {')
for stats in stats_list:
- print ' k%s,' % (stats)
- print '};'
+ print(' k%s,' % (stats))
+ print('};')
if __name__ == '__main__':

@ -1,8 +1,8 @@
# Copyright 2010-2019 Gentoo Authors
# Copyright 2010-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=(python2_7)
PYTHON_COMPAT=(python{3_6,3_7,3_8})
inherit elisp-common multiprocessing python-any-r1 toolchain-funcs
@ -105,6 +105,10 @@ src_unpack() {
}
src_prepare() {
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_1.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_2.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_3.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_4.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-system_libraries.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-gcc-8.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-protobuf_generated_classes_no_inheritance.patch"

@ -1,8 +1,8 @@
# Copyright 2010-2019 Gentoo Authors
# Copyright 2010-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=(python2_7)
PYTHON_COMPAT=(python{3_6,3_7,3_8})
inherit elisp-common multiprocessing python-any-r1 toolchain-funcs
@ -105,6 +105,10 @@ src_unpack() {
}
src_prepare() {
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_1.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_2.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_3.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-python-3_4.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-system_libraries.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-gcc-8.patch"
eapply -p2 "${FILESDIR}/${PN}-2.23.2815.102-protobuf_generated_classes_no_inheritance.patch"

@ -1,10 +1,4 @@
DIST JMdict-2018-06-12.gz 18306650 BLAKE2B 3ddb29bf631567717085912b1fa21c701e6183c94907f64121daedf358303df09a754bcdf51f24f0d7c95bf1bfe4ea13779f5e3532bd19a3f99a33751259a893 SHA512 cd8e0a737ccd1ccbe7c53ab0affb5d4ca068656966c75f0abbc184ffcdc69d8a1dbe0f096a16f0b59ecaed40371a29e566ee5076a7e80e3f51796e32798bed3e
DIST JMdict-2019-10-01.gz 19418133 BLAKE2B a7f3fb45fafaa0d5fdaa7366d2d299cd872edfc6834743529604cb2803f60112daccf82b6c48db0e100b52fb31b1fe2705369fb8a1c2b83c0eba65176ef59d90 SHA512 033968dfc3504611db23269361d72564fbf81a59d7f1ed94f4303c51748f4f31a2b38b3c2a6d846941a886f357d5dd320bc0f043a151ac1c70e43df9c594a599
DIST JMdict-2020-01-01.gz 19493878 BLAKE2B a797cbabffaafdcc967078ebf91ba27280d9a2ba040021fa605e674246ad3837774b2f17a7f4386cec3a2f53afb742fcd9f0bb6784b2014659d8785d59e321cd SHA512 691077030421e909dc171c217e6951edd48b567bf0821c7b68da7a2fc410e3f55d73db1943a9b99128763655d03e175e431590d869032645ae32d69dae5acdc1
DIST kanjidic2-2018-06-12.xml.gz 1482391 BLAKE2B c6f1d18f17b2107937fe07b77d6aa297d156d9c250cdc480000aeb7f8c9cd27a94e2cce1df80e4612d1bcadc94d92d5d013cfc8d923c5ceaba9ed5b0a692ae78 SHA512 700aba18e18ab271dbc583f1a1cc16dd7209e4aa48417201f0b51723d35f5aedcff299ed1503cb743151abce37c94c0facbab09dd0a46126131bb54f2004aa23
DIST kanjidic2-2019-10-01.xml.gz 1482675 BLAKE2B faf2ce4367796b18c3e858ef05203610810e38e44cf3b6e06fceda4204809fd366f6c16604618bf8b668761c9ac2045ed18484a374f2648cc88ba43fa5e5eb7b SHA512 aff301e824a1c31ff4850f709ee6c4ee6a0a54aa4823a5fcb0c5419d7b96239c16bd091f5557f02e2b7c3d0ced8cb2ae19805723c46f9a3a906adecc20ec631c
DIST kanjidic2-2020-01-01.xml.gz 1482692 BLAKE2B f50f45e982842b1fc161551640aa7bb8bc13e858c64576af25101c0bbdcb5d5734ebba86be180434781ba62d37370eae9b53bad7a30eb06bcffb86233f85f3fe SHA512 df0d0827525ff0406b33811f9b0eb24f7ab99288879dc316af8125c24448b9919224d6cc7c20648791dbbe8f29d05d977e77c9316a9aeb69513e29cf2bc40e92
DIST kanjivg-20160426.xml.gz 3587660 BLAKE2B c85291f3671f0980186e8deb296cfa743322df438d6f09fd69a4f5a30c3db6f097d6ff0a817b88c5c9a2c8d4a40c90b31c0a54cb71d681849b557ee364707c48 SHA512 1d35a8cc5d4947f6bedfc71a2f08e2d1fda832d7a02588c00953e1746812b0e51d4d1c39dff49999b4f65ec850788359f6e0d1465f0e688b1bf753c4c67b3c54
DIST tagainijisho-1.2.0_pre20180610092832.tar.gz 3634107 BLAKE2B f5cb75f45fced30c64f615147c3eb7e4d473e81dd734517710bcfdf390d1a34a1780196b6dbbb7a6d297df0bb8d73933d09a76eb6b8dd13d1c0759c562e81695 SHA512 3b17ff6972e3cfd35f4f9e8c575153a4c2021a66a238f631616452a16a151d604106586d438cdc574211bff54118d89e492f9460da4b25fef88a2354b0bd8555
DIST tagainijisho-1.2.0_pre20190507124027.tar.gz 3634210 BLAKE2B ec11eba3e20f2a1d55b24c67b95bd98d9ec96a7476533bc42d56866c87f03fd8d58133b5f6aa4e6f37a7ca4dd8b447a0414f0b9651adaa6fb0141c6df4b61073 SHA512 ace6fd4ff46d1bea329f3c85ea6df63583f256d5a26b78e3d64d47be2a37f74b262c0b6254fad4b258b6bb1cb3eff3bb4a4ed712f9ee72f21810717ce1a8f3d8
DIST tagainijisho-1.2.0_pre20191230120610.tar.gz 3635034 BLAKE2B 4f86febae1dfe1de236668bd405294c1e11510b8a942abfcb378d0e46c38cc179d16f5365dbb8322c7ad47cc333a816ce883af5993e0be90f11a43f2710cd45d SHA512 4fa93b7a51415c57f1d81748f15f23e90e4d9a1f91c3f0d96447d08a5bf1bbfc6bc2dbd4083e0b9328e32795f01de94bae834b4e7ff1830cfbe0ec215f20d7f8

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

Loading…
Cancel
Save