parent
ae8d7ee8fc
commit
709bf2a3fa
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29309 BLAKE2B b544570f9957244aa630ac88a5c854c055812a781093a8f0e4fd07454942c53026a20409c4ea9c753f4fbdb4ef8c2436e09e9b265039bd1f1bb9a763ee3e35d2 SHA512 94d746a887c0dcd4a1c3b5aebdae73197794e7f6d72b8827119652ef0276aa171ba0f9134de4de762e8586cd72ebd31fc58f43c98de2ba78183189a630042dbf
|
||||
TIMESTAMP 2021-11-01T14:09:19Z
|
||||
MANIFEST Manifest.files.gz 29316 BLAKE2B 8c3f8f4a7021f1c572be8462793ac4c5e2e6fbb159c9f3f83aecd4604f6cb4b319950342a62b57ed795456542f5a3d6a774db6e713c37705a64ae259fade2b2a SHA512 013a0f0101f96e2f0b0412f621a1c79140244d73965f5d1fdbb471554ed471e57e4a67e1feaf2f9fe868c118e45848e062577de2f96e3e22208f3f7530cac26c
|
||||
TIMESTAMP 2021-11-02T12:09:18Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmF/9Q9fFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmGBKm5fFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klC9qw/9F/io0/W5atmPRSS27p6U7iPtuZfQ50sak5zDW6gQakmCvFk0u5iynT6K
|
||||
McPuwqbEXrKQbnql9cYAiJgUO8jkaziIkIqaT8ks50FfWll9PlCiGRPAiJafTODi
|
||||
wuEHGe6kjn+63wpCU624Q8Yx1kyOqLdLyYNcdY4Ok7OJOMYFtSfm/z/r8YQDLw16
|
||||
Czn4c33PfTf87eU2/Mf9OjQgwQTETT3G1ppQNVvrQozCodzUOpYXIXSmmkT3EW9g
|
||||
KykuSBLSTAMvcXTrqv7aZJTMwH66vNOT6AU8Xiuv6GDi7OrY8DUiiGuScGBhIjlq
|
||||
96VWntfobeXk500szi6HoWUY0e/7pdqwPs+20NGwyDu7HOj4+4MleXEqn6YHInuW
|
||||
JZ/Lgmll52OSCLLpVwhLmxFpwjAyBq4r2bPKaAckQa+JGsEYthC2DhC5j/Dy9PQN
|
||||
EHzRCSKET8rzGsNY4jwkZEn4BylySaRfT+wQKS41F4uQ/G4+9zjXYy86So1af1CZ
|
||||
zGJ8lpmLvGmAg+m2cml0jtZ+uocpwiPP25X1xYGQMereQZ2OF4ezeCaP4ShZIXO1
|
||||
skxrBNy5h+3JRXLuYgHjLW9r8KMWkr305Z2AbRjqKrUrHyvdJiVLzN2sMc6HQMYo
|
||||
JxeAR2QPoJma7zB8X3lVCmdk7Au5zIKav80Vf7CF3IU4B2QLr6s=
|
||||
=FWCf
|
||||
klBoUBAAlQASDzYlir2ETc9L8QH4cSinB635jkB5aqDKLVlWoQxMB2fhhWIW/JeU
|
||||
Lf6lbCRevq60XSTIEcqgUyh2qTQfsdBjtn/+norZYUQsS2/M6GkQE5jZ3LiANGAU
|
||||
fsk9IUjrB0OUvE6pmElxShz8BhA7bPOy1F72GpCTbMv64c0zq08oYRsaqF9mJic0
|
||||
TgmbEjE2gmeFFHnIq7VxR+c7lm/jjiQSi+G0eakIA1QTto53Xqwziz0YiwA4LsN6
|
||||
Uz5YqDCR0jNq9iY69OQ//TEpgo+MTnqX46m4bx1wpRCy14Ds5OJ+R5M3a05OzInq
|
||||
nbeUXqq5Gdf/z2Y/X3mNsCI7lO7q2XYfJpB1nXenj4HAoUVewO5gvTUuZhQAmnDM
|
||||
NrA7Xwvw68kAqnPUvCiVLKuC38+cTwgFl/ZVQ9m30n1423l4EJ1azP4O/Z9egI1t
|
||||
UTO9l1/EcfGSTQpAfE85enLfJ5BEB3M6ittuirvylIDs0/a3rkc0UCaBQEWz8dXA
|
||||
yOi3aLCT7FDGxQBuOeYoItJ0ZKrA8cMWXQv7pqTwPXzSk6+ARSvFkH9y/7n4PTwY
|
||||
1411PgDSK3j8C65Hn9M9ztKK9rB/CrwvU5eDv6THXCbfW/+g3I30bSScw3GYqlnJ
|
||||
RKq2wOfqYwQqArDB3Gl4hX7dZ7Mr3IHN2CIidekknJcDUJIpdyU=
|
||||
=To1u
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,47 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{8..10} )
|
||||
inherit bash-completion-r1 distutils-r1
|
||||
|
||||
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||
HOMEPAGE="https://pypi.org/project/awscli/"
|
||||
#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
|
||||
SRC_URI="https://github.com/aws/aws-cli/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/aws-cli-${PV}"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
|
||||
# botocore is x.(y+1).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 1)).$(ver_cut 3-)"
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
dev-python/colorama[${PYTHON_USEDEP}]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/rsa[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.4.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
distutils_enable_tests --install pytest
|
||||
|
||||
python_test() {
|
||||
distutils_install_for_testing
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit}
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
DIST stress-1.0.4-r1.tar.gz 191800 BLAKE2B 560065d963823e734bb706840908998a58c07c82b21ab579f7a0fd5163e7a8591ca0f6abe430bba058bafd9a2dac1fcf33f011663cd6c3d2fdefb221a49e5e8f SHA512 623a7d9585828bed4b7673e19fb0cfdda904552cd56353d74106047b64249299d5f8da892ec135f1781ec3984c7d5835dcc6c0d8e659e06c8a1e4fb2af9fd9c4
|
||||
DIST stress_1.0.5.orig.tar.gz 105766 BLAKE2B 7bc4a1d7739828ccd4b58c814e8ded42cddbd0b226bb29e916fe220835bcfa9dcdb86191bb321247aa98bd0e58791556713770bdeda5dad399aa61f2703a766c SHA512 8ae2b74213e2a6e7d17948b8277bdd6143c135a6cee64fb43d183b10134eaea761981e1d76af86ea4700b2d41598d5ca53b17755e61982ab50802297b139b805
|
||||
EBUILD stress-1.0.4-r2.ebuild 508 BLAKE2B 135bd5cade1e0c0207b165fe8b3ec8d25ea6e5543ff11abfd9412abbae3c8854c6c5a8c46630465ff37f1e3960550cf2eb5181723fab049930daa7d7317c1b63 SHA512 df7987d9b8bf1cfdf45ae9f4d0deb24c161c0d58737d697024618b224ab709d9d8bcc417f38a3001890bcfc83163937de8b246d44d16787faa504e90aa8a379a
|
||||
EBUILD stress-1.0.5.ebuild 573 BLAKE2B 0bb970d92efc3ee9a4b83cf0d05006ad00ca9bd741cb694f8fa52f4d30785b2ad6e0254452e9c137877907249c369b207b20c7ad90619a09ed30b4ec262abdbe SHA512 00e40a500df5db3d54108eb75ed0b0a719c7e7765c1687929a7ce64253cc0cb4093c066517c4ea5d97648104dd5a678be18f64ab3b35d25f99d1ae41701f14b1
|
||||
EBUILD stress-1.0.5.ebuild 567 BLAKE2B 92b8b7a969a824607111560bad89e7db68ab702e7ddcb209b42536c082acc9428f4fa85069a14b55c678c5633beb50ac004a3d53ef89bf56ebc5feefe0bda5ee SHA512 c4c660930fad99bf1b079d1ead872805ef8b549883255b44859a767ab2968f84ee68ecc8ace37b0aef8006d7165369a1cc8719b9a47699a83387dc4392693972
|
||||
MISC metadata.xml 449 BLAKE2B 3017469519500c11712693bec0d179d89a31b9765ca4ab21939c4d5730afb664db66f746b8825d0b71410d704dfef9ad9e6e53233254e01fcb12f1f117a3995b SHA512 eaa43980bce8b1a58010b80b31396313fa50966f9b7229fa201af689308b83f8acd0acdc4b2669793cb5652871865c895ca3708097b96a048c5b10087cea8b0b
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,3 +1,5 @@
|
||||
DIST inform-6.33.1-b2.tar.gz 1822648 BLAKE2B e2ea59aa310b2f0122d1b834d98b0b827b945a8031a3e61c70bf502f7a746f43b81035cc22805ab351abf6f9df9ba898ea6ea83da863ef9aa313840ed974d725 SHA512 12cc10b7dae4118600a4d19d0aa44c3a7c93dfc8aa17bd56df7b9237f21df0ae99db6840eefaa5b11ff346369c6f6f2f128167b3479c8f540c29e3e36666c368
|
||||
EBUILD inform-6.33.1_p2.ebuild 716 BLAKE2B 8dacc53e6cc8aca22ee5d4aae28d1870163acdc4267d22e6bfe6041a4885fdfda39e083a16dcf662da24a335a9a876a9c5c68cdc5d7eeb77d40dc97cd8a648c3 SHA512 1da71e2e8498c3e89c7764c4f5c7d6ac11ff4220f907bf51ffb89ed839b530889c90f97dede5871afb63b03a491df534f0e35eddaad7a4fd4e6dcea9dbb31640
|
||||
MISC metadata.xml 2555 BLAKE2B be44edd87ba20e7b4ed8c20f6844f15b327e4f11d36794562501df85bf98b24298d336ae42fc8e7314d19cde4825f59acc8c233e3b582fb6043d53e4c47e1bea SHA512 726f266399f5a374970a22cb6ad34173304e6c20ba60880b5bd083145e0cff58c64107f1bcf71ac0faf2e0d8ad849ff450f44eb6318fd4ea8d061fabae320492
|
||||
DIST inform-6.35-r4.tar.gz 2307089 BLAKE2B 9864324fe29fe920e226a239f92f327678ed796e5f5a27b3814f62b1158673b2c14d6771abd7af6f9743bb0949c4c6de75a6b591337b0e99196f8ab4d9f0c9f7 SHA512 c30c7067786845e0c77783f7a03a151ae1238978f648f6036fe9535a33662c76abc11db21bab00fe60c4742cd4da46e4674081711b9b3852520bfb14c1b068a6
|
||||
EBUILD inform-6.33.1_p2.ebuild 738 BLAKE2B 57cd9f597bd7c18bd38ec46186f30fcda437c77bd79f450c4cf76d6e62008ac2a0036e84e3eead371cd13f162a1f8924be6de884b59c4a57813c408907e1acc0 SHA512 54f5d0e522bdaa0cb2269e87842e1eb0bf72f8d4e8c20d5fd250aeac62d35567cd604009dad8593c416c5c0389774f0939b53b9cc70cd75ae74d2b94a5192be0
|
||||
EBUILD inform-6.35_p4.ebuild 1230 BLAKE2B 20a7adedbbdac392607fb623304a9a7b438cbf4d3608e73f62b949c7924b167be7705a2f784540dbf226ec62548c5fc68dcf6cc2f7412d1de3f7bbe6ac099298 SHA512 b9abe2a03a75b1546a422208b659a5d630414edd864a8748de81f58e41c7f2eb31dfec4ba9bce1edc1376275721e72a6c96f84fa0d6fb3f81d4294d2c98fb5c1
|
||||
MISC metadata.xml 435 BLAKE2B 2f4a52609bb35b017249a38e5ef83642a9e6e70eb7fdb2cfdf329f3761c1c580d165d328012293f0fa4480b3004bd44a35209e39ad669fe024c6386eed2ab5e1 SHA512 cd8065b1a6a8206f19fd3f3ce6f99c4900eae4201a3f18c4bdf17d45a167704a4f005553d084cb4e6d310f5999c48f05ebcc86e019f835a2068c8000fe56c11f
|
||||
|
@ -1,25 +1,31 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
MY_P=${P/_p/-b}
|
||||
DESCRIPTION="design system for interactive fiction"
|
||||
HOMEPAGE="http://www.inform-fiction.org/"
|
||||
SRC_URI="http://mirror.ifarchive.org/if-archive/infocom/compilers/inform6/source/${MY_P}.tar.gz"
|
||||
EAPI=8
|
||||
|
||||
MY_P="${P/_p/-b}"
|
||||
|
||||
DESCRIPTION="Design system for interactive fiction"
|
||||
HOMEPAGE="https://www.inform-fiction.org/"
|
||||
SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="Artistic-2 Inform"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="emacs"
|
||||
PDEPEND="emacs? ( app-emacs/inform-mode )"
|
||||
|
||||
S=${WORKDIR}/${MY_P}
|
||||
PDEPEND="emacs? ( app-emacs/inform-mode )"
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
dodoc VERSION
|
||||
|
||||
docinto tutorial
|
||||
dodoc tutor/README tutor/*.inf
|
||||
mv "${ED}"/usr/share/${PN}/manual "${ED}"/usr/share/doc/${PF}/html
|
||||
rmdir "${ED}"/usr/share/inform/{include,module}
|
||||
|
||||
mv "${ED}"/usr/share/{${PN}/manual,doc/${PF}/html} || die
|
||||
rmdir "${ED}"/usr/share/inform/{include,module} || die
|
||||
rm "${ED}"/usr/share/inform/6.33b2/include/SmartCantGo.h || die #723062
|
||||
}
|
||||
|
@ -0,0 +1,51 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
MY_P="${P/_p/-r}"
|
||||
|
||||
DESCRIPTION="Design system for interactive fiction"
|
||||
HOMEPAGE="https://www.inform-fiction.org/"
|
||||
SRC_URI="https://ifarchive.org/if-archive/infocom/compilers/inform6/source/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="Artistic-2 Inform"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="emacs tools"
|
||||
# non-interactive tests use ruby, seem broken, and return true even on failure
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
tools? (
|
||||
dev-lang/perl
|
||||
dev-perl/DateTime
|
||||
)"
|
||||
PDEPEND="emacs? ( app-emacs/inform-mode )"
|
||||
|
||||
src_compile() {
|
||||
tc-export CC
|
||||
|
||||
emake PREFIX="${EPREFIX}"/usr OPTS="${CFLAGS} ${CPPFLAGS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local emakeargs=(
|
||||
PREFIX="${ED}"/usr
|
||||
REAL_PREFIX="${EPREFIX}"/usr
|
||||
MANDIR="${ED}"/usr/share/man/man1
|
||||
PUNYDOCS="${ED}"/usr/share/doc/${PF}/punyinform
|
||||
PUNYTESTS="${T}" # don't install tests
|
||||
)
|
||||
|
||||
emake -j1 "${emakeargs[@]}" install
|
||||
|
||||
dodoc AUTHORS NEWS README.md VERSION docs/README*
|
||||
|
||||
use tools || rm "${ED}"/usr/bin/*blorb* || die
|
||||
|
||||
find "${ED}"/usr/share/doc \( -name Makefile -o -name 'custom.*' \) -delete || die
|
||||
}
|
@ -1,44 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>games@gentoo.org</email>
|
||||
<name>Gentoo Games Project</name>
|
||||
</maintainer>
|
||||
<longdescription>
|
||||
A Design System for Interactive Fiction
|
||||
|
||||
Just as film might be called a form of literature which needs technology to be
|
||||
read (a cinema projector or a television set) and to be written (a camera),
|
||||
interactive fiction is read with the aid of a computer. On this analogy, Inform
|
||||
is a piece of software enabling any modern computer to be used as the camera, or
|
||||
the film studio, to create works of interactive fiction. To read the resulting
|
||||
works, you and your audience need only a simpler piece of software called an
|
||||
interpreter.
|
||||
|
||||
In this genre of fiction, the computer describes a world and the player types
|
||||
instructions like touch the mirror for the protagonist character to follow; the
|
||||
computer responds by describing the result, and so on until a story is told.
|
||||
|
||||
Interactive fiction emerged from the old-style "adventure game" (c.1975) and
|
||||
tends to be a playful genre, which must sometimes be teased out as though it were
|
||||
a cryptic crossword puzzle. But this doesn't prevent it from being an artistic
|
||||
medium, which has attracted (for instance) the former U.S. Poet Laureate, Robert
|
||||
Pinsky, and the novelists Thomas M. Disch and Michael Crichton. An interactive
|
||||
fiction is not a child's puzzle-book, with a maze on one page and a rebus on the
|
||||
next, but nor is it a novel. Neither pure interaction nor pure fiction, it lies
|
||||
in a strange and still largely unexplored land in between.
|
||||
|
||||
Since its invention (by Graham Nelson in 1993), Inform has been used to design
|
||||
some hundreds of works of interactive fiction, in eight languages, reviewed in
|
||||
periodicals ranging in specialisation from XYZZYnews to The New York Times. It
|
||||
accounts for around ten thousand postings per year to Internet newsgroups.
|
||||
Commercially, Inform has been used as a multimedia games prototyping tool.
|
||||
Academically, it has turned up in syllabuses and seminars from computer science
|
||||
to theoretical architecture, and appears in books such as Cybertext: Perspectives
|
||||
on Ergodic Literature (E. J. Aarseth, Johns Hopkins Press, 1997). Having started
|
||||
as a revival of the then-disused Infocom adventure game format, the Z-Machine,
|
||||
Inform came full circle when it produced Infocom's only text game of the 1990s:
|
||||
Zork: The Undiscovered Underground, by Mike Berlyn and Marc Blank.
|
||||
</longdescription>
|
||||
<maintainer type="project">
|
||||
<email>games@gentoo.org</email>
|
||||
<name>Gentoo Games Project</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="tools">Install blorbtools for manipulating Blorb files</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="gitlab">DavidGriffith/inform6unix</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
|
@ -0,0 +1,187 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit bash-completion-r1 prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
|
||||
|
||||
MY_P="rust-${PV}"
|
||||
|
||||
DESCRIPTION="Systems programming language from Mozilla"
|
||||
HOMEPAGE="https://www.rust-lang.org/"
|
||||
SRC_URI="$(rust_all_arch_uris ${MY_P})"
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
SLOT="stable"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
|
||||
IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rustfmt"
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND=">=app-eselect/eselect-rust-20190311"
|
||||
BDEPEND="
|
||||
prefix? ( dev-util/patchelf )
|
||||
verify-sig? ( app-crypt/openpgp-keys-rust )
|
||||
"
|
||||
|
||||
REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/${P}/bin/.*
|
||||
opt/${P}/lib/.*.so
|
||||
opt/${P}/libexec/.*
|
||||
opt/${P}/lib/rustlib/.*/bin/.*
|
||||
opt/${P}/lib/rustlib/.*/lib/.*
|
||||
"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
|
||||
die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
verify-sig_src_unpack
|
||||
mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
|
||||
}
|
||||
|
||||
patchelf_for_bin() {
|
||||
local filetype=$(file -b ${1})
|
||||
if [[ ${filetype} == *ELF*interpreter* ]]; then
|
||||
einfo "${1}'s interpreter changed"
|
||||
patchelf ${1} --set-interpreter ${2} || die
|
||||
elif [[ ${filetype} == *script* ]]; then
|
||||
hprefixify ${1}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi; then
|
||||
|
||||
# start native abi install
|
||||
pushd "${S}" >/dev/null || die
|
||||
local analysis std
|
||||
analysis="$(grep 'analysis' ./components)"
|
||||
std="$(grep 'std' ./components)"
|
||||
local components="rustc,cargo,${std}"
|
||||
use doc && components="${components},rust-docs"
|
||||
use clippy && components="${components},clippy-preview"
|
||||
use rls && components="${components},rls-preview,${analysis}"
|
||||
use rustfmt && components="${components},rustfmt-preview"
|
||||
./install.sh \
|
||||
--components="${components}" \
|
||||
--disable-verify \
|
||||
--prefix="${ED}/opt/${P}" \
|
||||
--mandir="${ED}/opt/${P}/man" \
|
||||
--disable-ldconfig \
|
||||
|| die
|
||||
|
||||
if use prefix; then
|
||||
local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash)
|
||||
ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
|
||||
find "${ED}/opt/${P}/bin" -type f -print0 | \
|
||||
while IFS= read -r -d '' filename; do
|
||||
patchelf_for_bin ${filename} ${interpreter} \; || die
|
||||
done
|
||||
eend $?
|
||||
fi
|
||||
|
||||
local symlinks=(
|
||||
cargo
|
||||
rustc
|
||||
rustdoc
|
||||
rust-gdb
|
||||
rust-gdbgui
|
||||
rust-lldb
|
||||
)
|
||||
|
||||
use clippy && symlinks+=( clippy-driver cargo-clippy )
|
||||
use rls && symlinks+=( rls )
|
||||
use rustfmt && symlinks+=( rustfmt cargo-fmt )
|
||||
|
||||
einfo "installing eselect-rust symlinks and paths"
|
||||
local i
|
||||
for i in "${symlinks[@]}"; do
|
||||
# we need realpath on /usr/bin/* symlink return version-appended binary path.
|
||||
# so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
|
||||
local ver_i="${i}-bin-${PV}"
|
||||
ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}"
|
||||
dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
|
||||
done
|
||||
|
||||
# symlinks to switch components to active rust in eselect
|
||||
dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
|
||||
dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
|
||||
dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
|
||||
dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
|
||||
|
||||
# musl logic can be improved a bit, but fine as is for now
|
||||
cat <<-_EOF_ > "${T}/50${P}"
|
||||
LDPATH="${EPREFIX}/usr/lib/rust/lib"
|
||||
MANPATH="${EPREFIX}/usr/lib/rust/man"
|
||||
$(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
|
||||
$(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
|
||||
_EOF_
|
||||
doenvd "${T}/50${P}"
|
||||
|
||||
# note: eselect-rust adds EROOT to all paths below
|
||||
cat <<-_EOF_ > "${T}/provider-${P}"
|
||||
/usr/bin/cargo
|
||||
/usr/bin/rustdoc
|
||||
/usr/bin/rust-gdb
|
||||
/usr/bin/rust-gdbgui
|
||||
/usr/bin/rust-lldb
|
||||
/usr/lib/rustlib
|
||||
/usr/lib/rust/lib
|
||||
/usr/lib/rust/man
|
||||
/usr/share/doc/rust
|
||||
_EOF_
|
||||
|
||||
if use clippy; then
|
||||
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rls; then
|
||||
echo /usr/bin/rls >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
|
||||
fi
|
||||
|
||||
insinto /etc/env.d/rust
|
||||
doins "${T}/provider-${P}"
|
||||
popd >/dev/null || die
|
||||
#end native abi install
|
||||
|
||||
else
|
||||
local rust_target
|
||||
rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
|
||||
dodir "/opt/${P}/lib/rustlib"
|
||||
cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
|
||||
"${ED}/opt/${P}/lib/rustlib" || die
|
||||
fi
|
||||
|
||||
# BUG: installs x86_64 binary on other arches
|
||||
rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect rust update
|
||||
|
||||
elog "Rust installs a helper script for calling GDB now,"
|
||||
elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
|
||||
|
||||
if has_version app-editors/emacs; then
|
||||
elog "install app-emacs/rust-mode to get emacs support for rust."
|
||||
fi
|
||||
|
||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
||||
elog "install app-vim/rust-vim to get vim support for rust."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect rust cleanup
|
||||
}
|
@ -0,0 +1,683 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7..10} )
|
||||
|
||||
inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
|
||||
multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
|
||||
|
||||
if [[ ${PV} = *beta* ]]; then
|
||||
betaver=${PV//*beta}
|
||||
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
|
||||
MY_P="rustc-beta"
|
||||
SLOT="beta/${PV}"
|
||||
SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
|
||||
else
|
||||
ABI_VER="$(ver_cut 1-2)"
|
||||
SLOT="stable/${ABI_VER}"
|
||||
MY_P="rustc-${PV}"
|
||||
SRC="${MY_P}-src.tar.xz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
|
||||
|
||||
DESCRIPTION="Systems programming language from Mozilla"
|
||||
HOMEPAGE="https://www.rust-lang.org/"
|
||||
|
||||
SRC_URI="
|
||||
https://static.rust-lang.org/dist/${SRC}
|
||||
verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
|
||||
!system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
|
||||
"
|
||||
|
||||
# keep in sync with llvm ebuild of the same version as bundled one.
|
||||
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
|
||||
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
|
||||
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
|
||||
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
|
||||
IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
|
||||
|
||||
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
|
||||
# we need to *really* make sure we're not pulling more than one slot
|
||||
# simultaneously.
|
||||
|
||||
# How to use it:
|
||||
# List all the working slots in LLVM_VALID_SLOTS, newest first.
|
||||
LLVM_VALID_SLOTS=( 13 )
|
||||
LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
|
||||
|
||||
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
|
||||
# (-) usedep needed because we may build with older llvm without that target
|
||||
LLVM_DEPEND="|| ( "
|
||||
for _s in ${LLVM_VALID_SLOTS[@]}; do
|
||||
LLVM_DEPEND+=" ( "
|
||||
for _x in ${ALL_LLVM_TARGETS[@]}; do
|
||||
LLVM_DEPEND+="
|
||||
${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
|
||||
done
|
||||
LLVM_DEPEND+=" )"
|
||||
done
|
||||
unset _s _x
|
||||
LLVM_DEPEND+=" )
|
||||
<sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
|
||||
wasm? ( sys-devel/lld )
|
||||
"
|
||||
|
||||
# to bootstrap we need at least exactly previous version, or same.
|
||||
# most of the time previous versions fail to bootstrap with newer
|
||||
# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
|
||||
# but it fails to bootstrap with 1.48.x
|
||||
# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
|
||||
RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
|
||||
RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
|
||||
BOOTSTRAP_DEPEND="||
|
||||
(
|
||||
=dev-lang/rust-"${RUST_DEP_PREV}"
|
||||
=dev-lang/rust-bin-"${RUST_DEP_PREV}"
|
||||
=dev-lang/rust-"${RUST_DEP_CURR}"
|
||||
=dev-lang/rust-bin-"${RUST_DEP_CURR}"
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="${PYTHON_DEPS}
|
||||
app-eselect/eselect-rust
|
||||
|| (
|
||||
>=sys-devel/gcc-4.7
|
||||
>=sys-devel/clang-3.5
|
||||
)
|
||||
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
|
||||
!system-llvm? (
|
||||
>=dev-util/cmake-3.13.4
|
||||
dev-util/ninja
|
||||
)
|
||||
test? ( sys-devel/gdb )
|
||||
verify-sig? ( app-crypt/openpgp-keys-rust )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
>=app-arch/xz-utils-5.2
|
||||
net-misc/curl:=[http2,ssl]
|
||||
sys-libs/zlib:=
|
||||
dev-libs/openssl:0=
|
||||
elibc_musl? ( sys-libs/libunwind:= )
|
||||
system-llvm? ( ${LLVM_DEPEND} )
|
||||
"
|
||||
|
||||
# we need to block older versions due to layout changes.
|
||||
RDEPEND="${DEPEND}
|
||||
app-eselect/eselect-rust
|
||||
!<dev-lang/rust-1.47.0-r1
|
||||
!<dev-lang/rust-bin-1.47.0-r1
|
||||
"
|
||||
|
||||
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
|
||||
miri? ( nightly )
|
||||
parallel-compiler? ( nightly )
|
||||
test? ( ${ALL_LLVM_TARGETS[*]} )
|
||||
wasm? ( llvm_targets_WebAssembly )
|
||||
x86? ( cpu_flags_x86_sse2 )
|
||||
"
|
||||
|
||||
# we don't use cmake.eclass, but can get a warnings
|
||||
CMAKE_WARN_UNUSED_CLI=no
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/lib/${PN}/${PV}/bin/.*
|
||||
usr/lib/${PN}/${PV}/libexec/.*
|
||||
usr/lib/${PN}/${PV}/lib/lib.*.so
|
||||
usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
|
||||
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
|
||||
"
|
||||
|
||||
QA_SONAME="
|
||||
usr/lib/${PN}/${PV}/lib/lib.*.so.*
|
||||
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
|
||||
"
|
||||
|
||||
# An rmeta file is custom binary format that contains the metadata for the crate.
|
||||
# rmeta files do not support linking, since they do not contain compiled object files.
|
||||
# so we can safely silence the warning for this QA check.
|
||||
QA_WX_LOAD="usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/.*rmeta"
|
||||
QA_EXECSTACK="${QA_WX_LOAD}"
|
||||
|
||||
# causes double bootstrap
|
||||
RESTRICT="test"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
|
||||
"${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${MY_P}-src"
|
||||
|
||||
toml_usex() {
|
||||
usex "${1}" true false
|
||||
}
|
||||
|
||||
bootstrap_rust_version_check() {
|
||||
# never call from pkg_pretend. eselect-rust may be not installed yet.
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
|
||||
local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
|
||||
local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
|
||||
rustc_version=${rustc_version[0]#rust-bin-}
|
||||
rustc_version=${rustc_version#rust-}
|
||||
|
||||
[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
|
||||
|
||||
if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
|
||||
eerror "Rust >=${rustc_wanted} is required"
|
||||
eerror "please run 'eselect rust' and set correct rust version"
|
||||
die "selected rust version is too old"
|
||||
elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
|
||||
eerror "Rust <${rustc_toonew} is required"
|
||||
eerror "please run 'eselect rust' and set correct rust version"
|
||||
die "selected rust version is too new"
|
||||
else
|
||||
einfo "Using rust ${rustc_version} to build"
|
||||
fi
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
local M=4096
|
||||
# multiply requirements by 1.5 if we are doing x86-multilib
|
||||
if use amd64; then
|
||||
M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
|
||||
fi
|
||||
M=$(( $(usex clippy 128 0) + ${M} ))
|
||||
M=$(( $(usex miri 128 0) + ${M} ))
|
||||
M=$(( $(usex rls 512 0) + ${M} ))
|
||||
M=$(( $(usex rustfmt 256 0) + ${M} ))
|
||||
# add 2G if we compile llvm and 256M per llvm_target
|
||||
if ! use system-llvm; then
|
||||
M=$(( 2048 + ${M} ))
|
||||
local ltarget
|
||||
for ltarget in ${ALL_LLVM_TARGETS[@]}; do
|
||||
M=$(( $(usex ${ltarget} 256 0) + ${M} ))
|
||||
done
|
||||
fi
|
||||
M=$(( $(usex wasm 256 0) + ${M} ))
|
||||
M=$(( $(usex debug 2 1) * ${M} ))
|
||||
eshopts_push -s extglob
|
||||
if is-flagq '-g?(gdb)?([1-9])'; then
|
||||
M=$(( 15 * ${M} / 10 ))
|
||||
fi
|
||||
eshopts_pop
|
||||
M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
|
||||
M=$(( $(usex doc 256 0) + ${M} ))
|
||||
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
|
||||
}
|
||||
|
||||
llvm_check_deps() {
|
||||
has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
pre_build_checks
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
export LIBGIT2_NO_PKG_CONFIG=1 #749381
|
||||
|
||||
use system-bootstrap && bootstrap_rust_version_check
|
||||
|
||||
if use system-llvm; then
|
||||
llvm_pkg_setup
|
||||
|
||||
local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
|
||||
export LLVM_LINK_SHARED=1
|
||||
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
if ! use system-bootstrap; then
|
||||
local rust_stage0_root="${WORKDIR}"/rust-stage0
|
||||
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
|
||||
|
||||
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
|
||||
--without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local rust_target="" rust_targets="" arch_cflags
|
||||
|
||||
# Collect rust target names to compile standard libs for all ABIs.
|
||||
for v in $(multilib_get_enabled_abi_pairs); do
|
||||
rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
|
||||
done
|
||||
if use wasm; then
|
||||
rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
|
||||
if use system-llvm; then
|
||||
# un-hardcode rust-lld linker for this target
|
||||
# https://bugs.gentoo.org/715348
|
||||
sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
|
||||
fi
|
||||
fi
|
||||
rust_targets="${rust_targets#,}"
|
||||
|
||||
local tools="\"cargo\","
|
||||
if use clippy; then
|
||||
tools="\"clippy\",$tools"
|
||||
fi
|
||||
if use miri; then
|
||||
tools="\"miri\",$tools"
|
||||
fi
|
||||
if use rls; then
|
||||
tools="\"rls\",\"analysis\",\"src\",$tools"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
tools="\"rustfmt\",$tools"
|
||||
fi
|
||||
|
||||
local rust_stage0_root
|
||||
if use system-bootstrap; then
|
||||
local printsysroot
|
||||
printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
|
||||
rust_stage0_root="${printsysroot}"
|
||||
else
|
||||
rust_stage0_root="${WORKDIR}"/rust-stage0
|
||||
fi
|
||||
# in case of prefix it will be already prefixed, as --print sysroot returns full path
|
||||
[[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
|
||||
|
||||
rust_target="$(rust_abi)"
|
||||
|
||||
cat <<- _EOF_ > "${S}"/config.toml
|
||||
changelog-seen = 2
|
||||
[llvm]
|
||||
download-ci-llvm = false
|
||||
optimize = $(toml_usex !debug)
|
||||
release-debuginfo = $(toml_usex debug)
|
||||
assertions = $(toml_usex debug)
|
||||
ninja = true
|
||||
targets = "${LLVM_TARGETS// /;}"
|
||||
experimental-targets = ""
|
||||
link-shared = $(toml_usex system-llvm)
|
||||
[build]
|
||||
build-stage = 2
|
||||
test-stage = 2
|
||||
doc-stage = 2
|
||||
build = "${rust_target}"
|
||||
host = ["${rust_target}"]
|
||||
target = [${rust_targets}]
|
||||
cargo = "${rust_stage0_root}/bin/cargo"
|
||||
rustc = "${rust_stage0_root}/bin/rustc"
|
||||
rustfmt = "${rust_stage0_root}/bin/rustfmt"
|
||||
docs = $(toml_usex doc)
|
||||
compiler-docs = false
|
||||
submodules = false
|
||||
python = "${EPYTHON}"
|
||||
locked-deps = true
|
||||
vendor = true
|
||||
extended = true
|
||||
tools = [${tools}]
|
||||
verbose = 2
|
||||
sanitizers = false
|
||||
profiler = false
|
||||
cargo-native-static = false
|
||||
[install]
|
||||
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
|
||||
sysconfdir = "etc"
|
||||
docdir = "share/doc/rust"
|
||||
bindir = "bin"
|
||||
libdir = "lib"
|
||||
mandir = "share/man"
|
||||
[rust]
|
||||
# https://github.com/rust-lang/rust/issues/54872
|
||||
codegen-units-std = 1
|
||||
optimize = true
|
||||
debug = $(toml_usex debug)
|
||||
debug-assertions = $(toml_usex debug)
|
||||
debug-assertions-std = $(toml_usex debug)
|
||||
debuginfo-level = $(usex debug 2 0)
|
||||
debuginfo-level-rustc = $(usex debug 2 0)
|
||||
debuginfo-level-std = $(usex debug 2 0)
|
||||
debuginfo-level-tools = $(usex debug 2 0)
|
||||
debuginfo-level-tests = 0
|
||||
backtrace = true
|
||||
incremental = false
|
||||
default-linker = "$(tc-getCC)"
|
||||
parallel-compiler = $(toml_usex parallel-compiler)
|
||||
channel = "$(usex nightly nightly stable)"
|
||||
description = "gentoo"
|
||||
rpath = false
|
||||
verbose-tests = true
|
||||
optimize-tests = $(toml_usex !debug)
|
||||
codegen-tests = true
|
||||
dist-src = false
|
||||
remap-debuginfo = true
|
||||
lld = $(usex system-llvm false $(toml_usex wasm))
|
||||
# only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
|
||||
# https://github.com/rust-lang/rust/issues/74976
|
||||
# https://github.com/rust-lang/rust/issues/76526
|
||||
deny-warnings = $(usex wasm $(usex doc false true) true)
|
||||
backtrace-on-ice = true
|
||||
jemalloc = false
|
||||
[dist]
|
||||
src-tarball = false
|
||||
compression-formats = ["gz"]
|
||||
_EOF_
|
||||
|
||||
for v in $(multilib_get_enabled_abi_pairs); do
|
||||
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
|
||||
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
|
||||
|
||||
cat <<- _EOF_ >> "${S}"/config.env
|
||||
CFLAGS_${rust_target}=${arch_cflags}
|
||||
_EOF_
|
||||
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
[target.${rust_target}]
|
||||
cc = "$(tc-getBUILD_CC)"
|
||||
cxx = "$(tc-getBUILD_CXX)"
|
||||
linker = "$(tc-getCC)"
|
||||
ar = "$(tc-getAR)"
|
||||
_EOF_
|
||||
# librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
|
||||
if use elibc_musl; then
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
crt-static = false
|
||||
_EOF_
|
||||
fi
|
||||
if use system-llvm; then
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
|
||||
_EOF_
|
||||
fi
|
||||
done
|
||||
if use wasm; then
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
[target.wasm32-unknown-unknown]
|
||||
linker = "$(usex system-llvm lld rust-lld)"
|
||||
_EOF_
|
||||
fi
|
||||
|
||||
if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
|
||||
# experimental cross support
|
||||
# discussion: https://bugs.gentoo.org/679878
|
||||
# TODO: c*flags, clang, system-llvm, cargo.eclass target support
|
||||
# it would be much better if we could split out stdlib
|
||||
# complilation to separate ebuild and abuse CATEGORY to
|
||||
# just install to /usr/lib/rustlib/<target>
|
||||
|
||||
# extra targets defined as a bash array
|
||||
# spec format: <LLVM target>:<rust-target>:<CTARGET>
|
||||
# best place would be /etc/portage/env/dev-lang/rust
|
||||
# Example:
|
||||
# RUST_CROSS_TARGETS=(
|
||||
# "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
|
||||
# )
|
||||
# no extra hand holding is done, no target transformations, all
|
||||
# values are passed as-is with just basic checks, so it's up to user to supply correct values
|
||||
# valid rust targets can be obtained with
|
||||
# rustc --print target-list
|
||||
# matching cross toolchain has to be installed
|
||||
# matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
|
||||
# only gcc toolchains installed with crossdev are checked for now.
|
||||
|
||||
# BUG: we can't pass host flags to cross compiler, so just filter for now
|
||||
# BUG: this should be more fine-grained.
|
||||
filter-flags '-mcpu=*' '-march=*' '-mtune=*'
|
||||
|
||||
local cross_target_spec
|
||||
for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
|
||||
# extracts first element form <LLVM target>:<rust-target>:<CTARGET>
|
||||
local cross_llvm_target="${cross_target_spec%%:*}"
|
||||
# extracts toolchain triples, <rust-target>:<CTARGET>
|
||||
local cross_triples="${cross_target_spec#*:}"
|
||||
# extracts first element after before : separator
|
||||
local cross_rust_target="${cross_triples%%:*}"
|
||||
# extracts last element after : separator
|
||||
local cross_toolchain="${cross_triples##*:}"
|
||||
use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
|
||||
command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
|
||||
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
[target.${cross_rust_target}]
|
||||
cc = "${cross_toolchain}-gcc"
|
||||
cxx = "${cross_toolchain}-g++"
|
||||
linker = "${cross_toolchain}-gcc"
|
||||
ar = "${cross_toolchain}-ar"
|
||||
_EOF_
|
||||
if use system-llvm; then
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
|
||||
_EOF_
|
||||
fi
|
||||
if [[ "${cross_toolchain}" == *-musl* ]]; then
|
||||
cat <<- _EOF_ >> "${S}"/config.toml
|
||||
musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
|
||||
_EOF_
|
||||
fi
|
||||
|
||||
# append cross target to "normal" target list
|
||||
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
|
||||
# becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
|
||||
|
||||
rust_targets="${rust_targets},\"${cross_rust_target}\""
|
||||
sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
|
||||
|
||||
ewarn
|
||||
ewarn "Enabled ${cross_rust_target} rust target"
|
||||
ewarn "Using ${cross_toolchain} cross toolchain"
|
||||
ewarn
|
||||
if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
|
||||
ewarn "'sys-devel/binutils[multitarget]' is not installed"
|
||||
ewarn "'strip' will be unable to strip cross libraries"
|
||||
ewarn "cross targets will be installed with full debug information"
|
||||
ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
|
||||
ewarn
|
||||
ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
|
||||
ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
|
||||
ewarn
|
||||
fi
|
||||
done
|
||||
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
|
||||
|
||||
einfo "Rust configured with the following flags:"
|
||||
echo
|
||||
echo RUSTFLAGS="${RUSTFLAGS:-}"
|
||||
echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
|
||||
echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
|
||||
env | grep "CARGO_TARGET_.*_RUSTFLAGS="
|
||||
cat "${S}"/config.env || die
|
||||
echo
|
||||
einfo "config.toml contents:"
|
||||
cat "${S}"/config.toml || die
|
||||
echo
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# we need \n IFS to have config.env with spaces loaded properly. #734018
|
||||
(
|
||||
IFS=$'\n'
|
||||
env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
|
||||
"${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
|
||||
)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# https://rustc-dev-guide.rust-lang.org/tests/intro.html
|
||||
|
||||
# those are basic and codegen tests.
|
||||
local tests=(
|
||||
codegen
|
||||
codegen-units
|
||||
compile-fail
|
||||
incremental
|
||||
mir-opt
|
||||
pretty
|
||||
run-make
|
||||
)
|
||||
|
||||
# fails if llvm is not built with ALL targets.
|
||||
# and known to fail with system llvm sometimes.
|
||||
use system-llvm || tests+=( assembly )
|
||||
|
||||
# fragile/expensive/less important tests
|
||||
# or tests that require extra builds
|
||||
# TODO: instead of skipping, just make some nonfatal.
|
||||
if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
|
||||
tests+=(
|
||||
rustdoc
|
||||
rustdoc-js
|
||||
rustdoc-js-std
|
||||
rustdoc-ui
|
||||
run-make-fulldeps
|
||||
ui
|
||||
ui-fulldeps
|
||||
)
|
||||
fi
|
||||
|
||||
local i failed=()
|
||||
einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
|
||||
for i in "${tests[@]}"; do
|
||||
local t="src/test/${i}"
|
||||
einfo "rust_src_test: running ${t}"
|
||||
if ! (
|
||||
IFS=$'\n'
|
||||
env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
|
||||
"${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
|
||||
-j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
|
||||
)
|
||||
then
|
||||
failed+=( "${t}" )
|
||||
eerror "rust_src_test: ${t} failed"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ${#failed[@]} -ne 0 ]]; then
|
||||
eerror "rust_src_test: failure summary: ${failed[@]}"
|
||||
die "aborting due to test failures"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
(
|
||||
IFS=$'\n'
|
||||
env $(cat "${S}"/config.env) DESTDIR="${D}" \
|
||||
"${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
|
||||
)
|
||||
|
||||
# bug #689562, #689160
|
||||
rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
|
||||
rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
|
||||
newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
|
||||
|
||||
local symlinks=(
|
||||
cargo
|
||||
rustc
|
||||
rustdoc
|
||||
rust-gdb
|
||||
rust-gdbgui
|
||||
rust-lldb
|
||||
)
|
||||
|
||||
use clippy && symlinks+=( clippy-driver cargo-clippy )
|
||||
use miri && symlinks+=( miri cargo-miri )
|
||||
use rls && symlinks+=( rls )
|
||||
use rustfmt && symlinks+=( rustfmt cargo-fmt )
|
||||
|
||||
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
|
||||
local i
|
||||
for i in "${symlinks[@]}"; do
|
||||
# we need realpath on /usr/bin/* symlink return version-appended binary path.
|
||||
# so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
|
||||
# need to fix eselect-rust to remove this hack.
|
||||
local ver_i="${i}-${PV}"
|
||||
if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
|
||||
einfo "Installing ${i} symlink"
|
||||
ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
|
||||
else
|
||||
ewarn "${i} symlink requested, but source file not found"
|
||||
ewarn "please report this"
|
||||
fi
|
||||
dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
|
||||
done
|
||||
|
||||
# symlinks to switch components to active rust in eselect
|
||||
dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
|
||||
dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
|
||||
dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
|
||||
dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
|
||||
dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
|
||||
|
||||
newenvd - "50${P}" <<-_EOF_
|
||||
LDPATH="${EPREFIX}/usr/lib/rust/lib"
|
||||
MANPATH="${EPREFIX}/usr/lib/rust/man"
|
||||
$(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
|
||||
$(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
|
||||
_EOF_
|
||||
|
||||
rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
|
||||
rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
|
||||
|
||||
# note: eselect-rust adds EROOT to all paths below
|
||||
cat <<-_EOF_ > "${T}/provider-${P}"
|
||||
/usr/bin/cargo
|
||||
/usr/bin/rustdoc
|
||||
/usr/bin/rust-gdb
|
||||
/usr/bin/rust-gdbgui
|
||||
/usr/bin/rust-lldb
|
||||
/usr/lib/rustlib
|
||||
/usr/lib/rust/lib
|
||||
/usr/lib/rust/libexec
|
||||
/usr/lib/rust/man
|
||||
/usr/share/doc/rust
|
||||
_EOF_
|
||||
|
||||
if use clippy; then
|
||||
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use miri; then
|
||||
echo /usr/bin/miri >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rls; then
|
||||
echo /usr/bin/rls >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
|
||||
fi
|
||||
|
||||
insinto /etc/env.d/rust
|
||||
doins "${T}/provider-${P}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect rust update
|
||||
|
||||
if has_version sys-devel/gdb || has_version dev-util/lldb; then
|
||||
elog "Rust installs a helper script for calling GDB and LLDB,"
|
||||
elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
||||
fi
|
||||
|
||||
if has_version app-editors/emacs; then
|
||||
elog "install app-emacs/rust-mode to get emacs support for rust."
|
||||
fi
|
||||
|
||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
||||
elog "install app-vim/rust-vim to get vim support for rust."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect rust cleanup
|
||||
}
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
AUX libarcus-4.8.0-deprecated-protobuf-calls.patch 1395 BLAKE2B 6488f7da07b78df1f18826a62f47cc2a7835ad66f7c5f999a4926caff9bffa8125b39f44cbb4e5849b3283c95898120c2cdc0947c9008869af91db08f0036e55 SHA512 f98cdd0d15d03752cd04466211cdaf2fb0ebb4f9a5aa887c4f9a1df5c32ced18559952f89c4549ea93376d95ec0b1bc51289ce87256804d2fc453686d48b55e5
|
||||
DIST libarcus-4.9.1.tar.gz 31967 BLAKE2B 2ee827c3f1f592ac1efa7557a2cbfa9cf9fd2d43a7be7fd803f94f7b51c9a03be1078d3df319e1bbe2bc37b6ec3a1c6f16996c4e3b6251dd06f6031dd32ad2a9 SHA512 5124b80647cb0715ad94c5eaaeac797a867319de9a8064b689783fdb28598903a69e3a61393db90f5e0b3d10ee30aed844170cab63dc4b7c70509d5129a17cdd
|
||||
EBUILD libarcus-4.9.1.ebuild 1357 BLAKE2B 9c7cf901543a6e13c8e1cf6861a028c81cc98048dd725b5981c1dc0a1c023d5482fde9d4188d971057454e175b60b8619158bcf387900e6eba7e0a7f113e1a79 SHA512 b165f573c87c6daa209b225686d0a12081a0f69b2feac846ea3d00017529f8164f00855b7476ad031ad425954f6636f4e542966046e02ed35c503d604e67a977
|
||||
EBUILD libarcus-4.9.1.ebuild 1359 BLAKE2B 103675b40d9849aaa5c9b1a077a3ca0efd2f2c539f6e7caf53115411996f8a36c4a58ef5b512076cc9c95b9c57e2ab60aca458f4f804b67c9e9de93e5ff48856 SHA512 19789acb5e8e7bd6b7db4354432372a4feffb588f48845e2ddfcef64d642570bf3396b6292ca454fb6bbb90754a29b26190fd76e0cc231fc56365c91c9101756
|
||||
MISC metadata.xml 1286 BLAKE2B 149e6008ee050d64c46009c12f18dd2e18234e4f19c1093fd0c557cc3d9369b547b07f7397975ab74b58d96ce39210f6a213b2f750ac2f844da579ff9f4ba8e3 SHA512 d6efb7fab1d6072cf8ad1ce5d2a33956eb9a8ac78992a434201d89de444b29382223e91f3c25475128a07fc81cfd4382bd396f9f16044f33b5ec4cdac8612b0c
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST libcharon-4.9.1.tar.gz 151243 BLAKE2B 8557efe4667a83297a4bcfc8307e2322a379e52d50ad1648d873a923e182b3be1651a13c7402ac041fd134036a75a42e825adf2cc27271af218db44af7e48473 SHA512 41d611f8d3bf0f762a38a00c159104df04b73cd5c4f7e9ebcfe3ac9cdd0c8e31e505c4fd4ef8f8a6f1c02bf882bb3e14ea4e92c8b15169a91cbd1815e36310fa
|
||||
EBUILD libcharon-4.9.1-r1.ebuild 1746 BLAKE2B 46a4e224043798f5f327d6b0d6b3033145a210cc5f3b80e4387d7e39cee3e8a9bcf8ff707c0fe76c6b1b20a00318eb4153002d7a89417572a8a117f4d5163447 SHA512 fe4d49ecb8b11c9e814755711628eaa3d52d5be73c24bf0c88b909d4c11d868831b360309c7072a4a6b4e746fd8526338a0287da640fa277cc6d2fc5e8fc7ab1
|
||||
EBUILD libcharon-4.9.1-r1.ebuild 1747 BLAKE2B 8a8989c27be14e430a912d220e83e12e7584010a82838ff7453c9f58b7a6e3bb045885a6f222ef49a17fbd77dbbfe7d8343bbeba387008a6f50299d2dc6b4021 SHA512 422fe986046dbb84f3cef7e1e7872a484a8a71dcd49e0dd5d096aa89a60f8c2bba1a2d2ecc5648c88668b3cdfc4a94e0448b9f24c539840244d10a409cac419d
|
||||
MISC metadata.xml 1140 BLAKE2B 356713d6a644186b8fda5d9fd9587a74a605aaa638217c62dd9f0657859322c66015d25a5b5335dbe02fcf2492ca7dec0d5e7decd5a2d4602b8b8ec8338f7821 SHA512 8aa76c3b4dc2246e0cc6c508149ff9913ef3310a3477d7596b9101f183d0e858cc3c11ebfd138cf1eb65e79c2800ad63cfaca63201aa1a63e36e5ef63bd664aa
|
||||
|
@ -1,7 +1,6 @@
|
||||
AUX libmowgli-2.1.3-cacheline-Ensure-sysconf-var-is-defined-before-use.patch 831 BLAKE2B 552140cae8b31f796826487319286fc5d59972e2036bb33a8a2c6febcf0fc8fc8bea502a0d5aa3d00e0028534c1891e19ba92ee0c4071ba3fd8b8fd9bea5158d SHA512 8f572b47fa62918be88dc11028a916897aeda46691b5b4975f87227aad2141fe472fdcff3431d61c42cdeb8322aab1e065d8ac155f2f367f4c28a6ae97799271
|
||||
AUX libmowgli-2.1.3-use-host-tools-for-ar-and-ranlib.patch 531 BLAKE2B 13627cf2420f8a9f1c90010e9b40fd4234a6c6603857f463de7d469a1e2e148bdf1ac5dc620ddfc622b2fe6da64f52f9756b2e980e529a78d519bcdd9ef36cf6 SHA512 b4e35ea2cb241a48ce698f7fe094a9a55b0c901f3a9f613a308898714496c4b3b531380d81ab34651b6f24dd877341eeb1c694120d420096854daad03240bd01
|
||||
DIST libmowgli-2.1.3.tar.gz 227742 BLAKE2B 9ef5c30880644247df3c98dabbd87694d0a7c92e7de0c44a73842d4c5bbc7f19a32db24acc52b27fe5f204b1f74a5c730c64edd1e8edd23bc320e4c0dc4a554c SHA512 bf976cf8b8bf0efaf7565230f42147adcdbe993339f58f907f5005eddf178d936cffb6cdbba59e38813854f30414856a1b9f8bdc972ea2f59cb08987ee336533
|
||||
EBUILD libmowgli-2.1.3-r2.ebuild 1036 BLAKE2B 87b25ec5f80417e482fa14e7c3c26881eef72cdfeccfe01dcc182ee5bc2aff727ab6a8314cbb7194a88fe3ea84463d3ffd6f4575f7131623180e13bb060a644d SHA512 d4e660c81986de1b8a53b93a17276012db7e1db85ccf53438dfb0c6414c4036abf246392038158bef1b1df8b45a66f264a5b005de4af186a37d9723117f4bf0a
|
||||
EBUILD libmowgli-2.1.3-r3.ebuild 995 BLAKE2B 609d1ed9e3944f844b995c4b73d47507e40ec1093a2d6c36d851f19e7556532ba57e44d9e5e01ffad1ecb5e0c04d665d77610e58a4035991e75d55039180e793 SHA512 4c490656991842bc7defbc70e2f09e35645cd167833114acb6ecb7b9df71295aca2e466b878f6bd0ed14e085da796e54388d966201fadf8346d1a1ff7b1a16ee
|
||||
EBUILD libmowgli-9999.ebuild 544 BLAKE2B 28587dc8b9503a3826127bd7eb71e6d31d98d3a3f0be5e5113f7bcd4cafff467f1251ed096edd15baefc50f31419366bd97386b2db9ce77bd710b183e9582cff SHA512 29fe335d9aa56893845413a55838e85a9d699571dad0d4d9ecd3eb06cf6a3f7cbcb0cfa67cddd361ed6574805d33d011ea92e322a661cfac597366b02beebf16
|
||||
MISC metadata.xml 395 BLAKE2B 865c24d88eb3b9457b11c25af8c2a73d44770f861df79ed9f0fedfa007dbb65c4ee0b7c1610506255322d283a7968bfb32c1ff27c35df98708e90a45d2e7484e SHA512 4db1299e9cd08caecf0288571f38f39cafd16d4e56aa69d5c272c73bba197448deea36e09a688100b879ad5fd5e25000e28559724013699d811968cf9bb3bbbc
|
||||
|
@ -1,42 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="Useful set of performance and usability-oriented extensions to C"
|
||||
HOMEPAGE="https://github.com/atheme/libmowgli-2"
|
||||
SRC_URI="https://github.com/atheme/libmowgli-2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="2"
|
||||
KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="ssl"
|
||||
|
||||
RDEPEND="ssl? (
|
||||
dev-libs/openssl:0=
|
||||
)
|
||||
!~dev-libs/libmowgli-2.1.0" # Bug 629644
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
DOCS=( AUTHORS README doc/BOOST doc/design-concepts.txt )
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-cacheline-Ensure-sysconf-var-is-defined-before-use.patch
|
||||
"${FILESDIR}"/${P}-use-host-tools-for-ar-and-ranlib.patch
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${PN}-2-${PV}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# $(MAKE) invocation will handle passing down flags.
|
||||
sed -i -e 's/${MFLAGS}//' buildsys.mk.in || die
|
||||
|
||||
AT_M4DIR="m4" eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf $(use_with ssl openssl)
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
DIST libsass-3.6.5.tar.gz 342426 BLAKE2B 8c6bb37da3f832dd462408a7ef4f80384e468295fc420b3d915899e65fb89a9d0b4c1cf0653b7288fedbf6a66daa2943c2911ad2c310f77a06deb84bec1d3abf SHA512 98cc7e12fdf74cd9e92d8d4a62b821956d3ad186fcee9a8d77b677a621342aa161b73d9adad4c1849678a3bac890443120cc8febe1b7429aab374321d635b8f7
|
||||
EBUILD libsass-3.6.5.ebuild 1132 BLAKE2B 230a36406333941434e7bf172570a80e8afaa101c5196c6420d2977a6f1a494f2f96d594943cdcc83873d8b396c8ec35e339b80585088fffd4403a083baf7322 SHA512 5b1c0d8af82085d3d729029d2d6fb07d1bd00c03380b4cfbe2d32c33297406d4bc44fc48b2a5a4804519ea8ec7c4fb4632b4e4513959ab71ca2391de82baf65e
|
||||
EBUILD libsass-3.6.5.ebuild 1138 BLAKE2B 98b741a1ad419fcd47c1617390807feb1a2c7cd101077dc4076c0c67b352a521fdbe9315b3065cb6c553f2f292e2a8dae4e576ff4473aae8429e31c641954359 SHA512 fc19a86e75832483538160db58adb193d85281cd2f0178c9de013a057fbe68107e230e59e27ab727aaf91c0aa36521af6947f2e97a8e315e9b34bdd173b38d6b
|
||||
EBUILD libsass-9999.ebuild 1129 BLAKE2B 74ce5b5d25d821a1d6dead5db25a4d5f834dd30b2f9da2e2ee8526a3842b2934b6ec5b8c5b5abdbbf4d97b846eee6aa513588f597011025ea77357667c91f2d8 SHA512 620076a106661dfcd9d332c628732eb9bafbd1db59b7619a0edc312cf7aa9f91417b6def62c12934e1f7201c8527ec52df4549b5c9c873682653df40f8483250
|
||||
MISC metadata.xml 647 BLAKE2B 2043328e18efbefdfaded61e1fd2269d8b83910a2440cfba2c692fd343889087bd861ad70b2f8f96651b9e0af28cae3bb0668177478203b2ebabab3f8764c8ec SHA512 98de3665f1c27ae03a73212a3ee947597dde27846a2f44db6ef19d362566887d999d42daf505e8a938352005e5d7a3b77f0d661e4f2170f2ec225c43442a47ff
|
||||
|
@ -1,4 +1,4 @@
|
||||
AUX libsavitar-4.7.0-use-system-pugixml.patch 162 BLAKE2B fa5f648f8288cf954cd2e1b0583d3e7ab7d55d288101576580119de6de1b3ffbe1e9037d6ee04731e34c27a3a0432f10f006ce387bee838d8acda64ebaa4ca73 SHA512 c32caa0c0a9d422cfc367b617d6ac6dd14e4c7104533377d46043734ed461a233ed436c0ae197ba78e9b02e6b3b1942b56debc11f68c17571181db18b5950f72
|
||||
DIST libsavitar-4.9.1.tar.gz 100496 BLAKE2B 7700f110522298905c1e4cf42529e83c06c337ac826007db2fca8abf462abcb8dd9245d2d81773ba3e6663d9afa093685bf955a1cc7e27d48fc904913e56d62f SHA512 2b291a17603922a4a06292282392015cf381a813b5f9a374e8cb35da6c0701ead72cbf76f17e763793225885a4209b49e73114f462b40d6999f95db6de887a44
|
||||
EBUILD libsavitar-4.9.1.ebuild 1750 BLAKE2B 10d57551bd2703e242b1c8b3a3baac10de4975d9983f3d7f4acd83e29f89134d280385699a3bc95faf8ec289c2d7d068f8938af6f2ea863ae301482f98202086 SHA512 6df6f66f81c11a6d8c5b70a175dfb2070ed1d29aa64ecac11077fbbe37a86e8a706162f431b0473324d87e86d07306736c74aacd978345b28956d559330fbe76
|
||||
EBUILD libsavitar-4.9.1.ebuild 1751 BLAKE2B 40e8748df6934c20fc4843a8194461e49242fe6b344fa40a1b31dfd64ab84263612bc669039fdc926e48c7f6150916b803a5c9f783531b71f9d794d0209f6e18 SHA512 11fe811ee9165ed118957ed7576b7af8b2c7a070e0587327f110d00657d6a88680fc357059e7078a57494fefdcc066f43c5ccd243a9899bb53aa4471f65bb36d
|
||||
MISC metadata.xml 975 BLAKE2B 0d0faa17d5fad674babdfcbb4da1366f0a25eb8e28dfd091c006da263b5915b1909d2843cf9eb2cd8ae6205c56bd9b7fd3ac0d39f7594217c69f9b3cb727bc66 SHA512 91548b2cd344eb43f8b9e2e7596d86b9eec8c856c60dd5b41710d53da1e224d7c2c83283fe04031f7e0ede2be92bed1ebb46b3e897289d7b5a5de5fe93a6f1b8
|
||||
|
@ -1,23 +0,0 @@
|
||||
--- /home/graaff/Desktop/Makefile 2009-11-06 01:57:50.000000000 +0100
|
||||
+++ Makefile 2013-07-18 10:57:32.482149252 +0200
|
||||
@@ -1,9 +1,13 @@
|
||||
include mkinc.mak
|
||||
-CFLAGS=-Iinclude
|
||||
-all: libstemmer.o stemwords
|
||||
-libstemmer.o: $(snowball_sources:.c=.o)
|
||||
- $(AR) -cru $@ $^
|
||||
-stemwords: examples/stemwords.o libstemmer.o
|
||||
- $(CC) -o $@ $^
|
||||
+CFLAGS+=-Iinclude -fPIC
|
||||
+all: libstemmer.so libstemmer.a stemwords
|
||||
+libstemmer.so: $(snowball_sources:.c=.o)
|
||||
+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,$@.0d -o $@.0d.0.0 $^
|
||||
+ ln -s $@.0d.0.0 $@.0d
|
||||
+ ln -s $@.0d.0.0 $@
|
||||
+libstemmer.a: $(snowball_sources:.c=.o)
|
||||
+ $(AR) -crs $@ $^
|
||||
+stemwords: examples/stemwords.o libstemmer.so
|
||||
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
||||
clean:
|
||||
- rm -f stemwords *.o src_c/*.o runtime/*.o libstemmer/*.o
|
||||
+ rm -f stemwords libstemmer.so* libstemmer.a *.o src_c/*.o runtime/*.o libstemmer/*.o
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
DIST ppx_typerep_conv-0.14.1.tar.gz 9453 BLAKE2B 4acafdd51df0659746697283aa3240f1b1403e4e9f9b5fafa6c4b09f4c76f6ac645e2ccab53cba7371b5b004edba38d24198334d10b295d90c8ba5814a602a23 SHA512 6e32f6c2cf6c370fcb8d3b341dbd797c3b7c2557c8604253d744b266c9a3f4984e62ffe6ec5717044378f81e5b78e7f206a7f0f4b43c0dda97a4e7ece745d26d
|
||||
DIST ppx_typerep_conv-0.14.2.tar.gz 9474 BLAKE2B 7a7ff6669d9af2ced905e5b104058d26ffe06e3784af366a1a4ce753337eeb87c9bfe02d1a6fddaac6c387105d2583194cbd06b915eb35d16e06b1d4ab977e2f SHA512 9372f13cb3f62b3732af4f8ddc00314dd71869bab5599ae0a112d32669de300346781b7fcd2bd649ccedfde54fcd86fb6186812eeb528858048bcd9d5ad443dd
|
||||
EBUILD ppx_typerep_conv-0.14.1-r1.ebuild 653 BLAKE2B f47242e7d5b9f18641a6a8748ec7ec12e0f716260ec4f61f7ffd841863194f554f796923b6a51e5dce674247487a764aef9f782c8132cc54c93db409d0786712 SHA512 46d2b4010e1d346c6450ee79ff49e5c9898d811909637a8b12666603622267c6b34719410216caa25356ec460377bc9547b762da60391c135b5e95936a44b9b1
|
||||
EBUILD ppx_typerep_conv-0.14.2.ebuild 632 BLAKE2B 209be5c997580b564c24db6541d4812f5c72e645dcf5cf5b10117d468dbfff899816652d66e44fc5c9111ce1623094db0e90902cb13d6c1e0bce3a4f4b6a5e77 SHA512 47f05f5127ecd667d63617a6f09e430e6902f57b1332ac6069d4e95ada3b2bb27c8f5f6d20390f7746d3a91f876cd7420df94aec0528b8d25124691224dad476
|
||||
EBUILD ppx_typerep_conv-0.14.2.ebuild 630 BLAKE2B 2e8c6a8e072dddf40379f2a19be50c31b46a382326168cc654dc29842010a03ef355032ecf49a646ac6e1af3fa2916d9f88c0318c6d55709689c427a3d03c053 SHA512 75784c9362cfcf25f524a3104c43bad36e0be44c1b6aa79728b31899aed9ba2816bfeedeb20022fe35deb877c34bd781a376c3e9d556a286395805f6ee9d9075
|
||||
MISC metadata.xml 430 BLAKE2B 1f8c9b9c75af8dde9e6180ce99665d6504abf4d86eda54e7104ba92c69bfd32d95ba21aa8292aa038d6827c5f73fc4e2cd6b3294ba6984b5931f5e1d29e3d2c7 SHA512 0f0f1ae7a2cecd2eb6544a8219bfd19d8e5ac638d68753ab64b34f8759e1a71d51ee9a74dc7e28b37d8ff749a131c5f701aa7ec18644aa65d99df5a3cac73d3f
|
||||
|
@ -1,7 +1,3 @@
|
||||
AUX DBI-Shell-11.950.0-local-scalar.patch 690 BLAKE2B 9c335d431c36c290a8de8b2dae1b8cf042f9500ad1604350b065964df838f2a695af1112dcaaec5b408bc126c5bc70a4cbd92e3d63179925f37281863997f1d9 SHA512 cea9657bcdf674cb1a30aaa28d4f7bea173bedbb07dd14b60866cd423f403f3946323d2831eeac6c9dc7387f15a4ce0b49e43d20b855ca177a172f5f44494057
|
||||
AUX DBI-Shell-11.950.0-nochrdir.patch 684 BLAKE2B 5172afa840872076088ac9ce367ea5cc5aaf8c0169e9948e0645a58dceeabf8b79c7957155cd99d0670fc53d5314e0ca98ad80f2e65a386a9c765d6deb59937b SHA512 95092f59cec232be5e8bab7973cd99040e25eaf77212f1673cf67f93458417b4b11f596d113f0a53385608e920d0e007a580e62733b65e72ea3a28677fb4eed8
|
||||
AUX DBI-Shell-11.950.0-perl526.patch 1291 BLAKE2B 34a23fa7e9bc4071a07ae227cfacc60fa6c332c9fd3e9d04c2888d8f8a8b501087b3c9cd11fbea268562e029d11e984ac47c09783eb2cc89f64e6f46f30bd251 SHA512 aa8bd8a9a149052da8aef526cf8b992bdfa5ca150028d68387de8a83cb1648da9a9e32f78fa136c66f32c3cd460bd0164b2cbcb3b60b6faa5d9b87c5784b789b
|
||||
AUX DBI-Shell-11.950.0-sprintf-warn.patch 732 BLAKE2B 4866aa33b1cc810201ad88ffe3f04a120ebe31e08076ace85f81418f5c2720e97a70ca6b1140d3ca8f343ddbe313ffbf3989614a475aae43568d3e9a85976083 SHA512 2808715da12581e22fceb71057fa5080188af8e5a6b1c4375b0a050973477d66f2a91f1ff473d7f3b5da19f73d06e02bd5221aa908d7d2e948ca6ca1cb1d21a2
|
||||
DIST DBI-Shell-11.97.tar.gz 57123 BLAKE2B 0c4d459dda185b6fb2ea292912da4624e1a4ed33aa4487eabf5c6c5be6571c1e8d32b29b703749fe562ebbd60aa389f62d5e3461863c5777490345451bf8cad8 SHA512 74bf7244691b8dee967bae4076b59b912d66ac08f48f8468531d003db6d85d43d836116f8314961602a002b58fc9f6d3bea88076e1d7e2783d430137dec68f4b
|
||||
EBUILD DBI-Shell-11.970.0.ebuild 823 BLAKE2B 3044528d43019ce7ae43c9e911817b2ae20366587bd5be11ff53399fe0a14c34988b4f6f1373f19b363980fc6f070589c7bde4011f3f6ff0c28db95cf69551f4 SHA512 cf80a94a1568cf484fe30513cc1fddb98d433c6e89d321c0da18de1e6af41043e488a485f2fdfaa751f75bb32f2d8e4a3ffeb0921bcd32d8eda3d44c5a8ef1d8
|
||||
MISC metadata.xml 1567 BLAKE2B 73490e98e228004b9ec03b3a8d6749d4d2c73c9dd2a1dcfa507940a24e73b461b22f76818117af06e420538257912873392a60d85858a4360c0cadda1f20737b SHA512 1e1c25d23c0e24a36df92197bc395f5c32d8952c95d5a659895e97cf01fb58c1c88c761c0897e855d02d53497c526c3b3d8bbcf06a8db658a91a36dfb80a53d2
|
||||
|
@ -1,26 +0,0 @@
|
||||
From ef8efc5b80c9395c01f23e5acd28bb3ee7810b54 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sun, 8 Oct 2017 13:08:20 +1300
|
||||
Subject: Fix useless localization of scalar assignment
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=73873
|
||||
---
|
||||
lib/DBI/Format.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/DBI/Format.pm b/lib/DBI/Format.pm
|
||||
index 49cd7dd..bc985f9 100755
|
||||
--- a/lib/DBI/Format.pm
|
||||
+++ b/lib/DBI/Format.pm
|
||||
@@ -374,7 +374,7 @@ sub header {
|
||||
|
||||
sub row {
|
||||
my($self, $rowref) = @_;
|
||||
- local( $^W = 0 );
|
||||
+ local ($^W) = 0;
|
||||
my @row = @$rowref;
|
||||
my $fh = $self->{'fh'};
|
||||
print $fh (join($self->{sep}, @row), "\n");
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 9fb29d16514530245965b932040bb4fc37ffa9bf Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sun, 8 Oct 2017 13:11:29 +1300
|
||||
Subject: Fix no_chrdir warning
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=123215
|
||||
---
|
||||
lib/DBI/Shell/FindSqlFile.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/DBI/Shell/FindSqlFile.pm b/lib/DBI/Shell/FindSqlFile.pm
|
||||
index e604290..2b56ccc 100644
|
||||
--- a/lib/DBI/Shell/FindSqlFile.pm
|
||||
+++ b/lib/DBI/Shell/FindSqlFile.pm
|
||||
@@ -62,7 +62,7 @@ sub look_for_file {
|
||||
File::Find::find(
|
||||
{
|
||||
wanted => \&wanted
|
||||
- , no_chrdir => 1
|
||||
+ , no_chdir => 1
|
||||
, bydepth => 0
|
||||
},
|
||||
@search_path);
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 792cf15cb387e58cec1ef3c6d538689d02ab44c3 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sun, 8 Oct 2017 12:46:17 +1300
|
||||
Subject: Fix '.' removal from @INC in Perl 5.26
|
||||
|
||||
Configuration files were always assumed to be explicit paths given
|
||||
by outsiders, not random entries in @INC
|
||||
|
||||
Bug: https://bugs.gentoo.org/615592
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=121136
|
||||
---
|
||||
lib/DBI/Shell.pm | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/DBI/Shell.pm b/lib/DBI/Shell.pm
|
||||
index 03dd958..7869f0f 100755
|
||||
--- a/lib/DBI/Shell.pm
|
||||
+++ b/lib/DBI/Shell.pm
|
||||
@@ -133,6 +133,7 @@ use Text::Abbrev ();
|
||||
use Term::ReadLine;
|
||||
use Getopt::Long 2.17; # upgrade from CPAN if needed: http://www.perl.com/CPAN
|
||||
use IO::File;
|
||||
+use File::Spec ();
|
||||
|
||||
use DBI 1.00 qw(:sql_types :utils);
|
||||
use DBI::Format;
|
||||
@@ -544,7 +545,8 @@ sub configuration {
|
||||
$sh->{config_file} = $ENV{DBISH_CONFIG} || "$homedir/.dbish_config";
|
||||
my $config;
|
||||
if ($sh->{config_file} && -f $sh->{config_file}) {
|
||||
- $config = require $sh->{config_file};
|
||||
+ my $full = File::Spec->rel2abs( $sh->{config_file} );
|
||||
+ $config = require $full;
|
||||
# allow for custom configuration options.
|
||||
if (exists $config->{'options'} ) {
|
||||
$sh->install_options( $config->{'options'} );
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,25 +0,0 @@
|
||||
From f44b8ba9d8cf954c76a967cbfb5d4182f109f8cf Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sun, 8 Oct 2017 13:30:36 +1300
|
||||
Subject: Silence warnings about reduntant sprintf args
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=123216
|
||||
---
|
||||
lib/DBI/Format/SQLMinus.pm | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lib/DBI/Format/SQLMinus.pm b/lib/DBI/Format/SQLMinus.pm
|
||||
index c3a9ba2..7b240c9 100755
|
||||
--- a/lib/DBI/Format/SQLMinus.pm
|
||||
+++ b/lib/DBI/Format/SQLMinus.pm
|
||||
@@ -155,6 +155,7 @@ sub header {
|
||||
|
||||
if ( exists $cf->{format} and defined $cf->{format} ) {
|
||||
$format_names = $cf->{format};
|
||||
+ no warnings 'redundant';
|
||||
$width = length sprintf( $format_names, " " );
|
||||
}
|
||||
|
||||
--
|
||||
2.14.1
|
||||
|
@ -1,4 +1,3 @@
|
||||
AUX Dist-Zilla-Plugin-NextVersion-Semantic-0.2.5-no-V-in-test.patch 1218 BLAKE2B 2a3033fb1fe091724a30cbe8d148eff774e3aa12efd09f91cf2cffca0aef0e67f330e6fa391ec3042cddf173c13063331df757ed7cc17ece8e0990a81f23ffb4 SHA512 f8bc8cef1dd685596cf8f8a149eaf872e604cf2159f433de490c5c764a406883fd40705511a9f2b5403e72abad6b37509ed6c24c0763d4f04a3adce69c75bb60
|
||||
DIST Dist-Zilla-Plugin-NextVersion-Semantic-0.2.6.tar.gz 25247 BLAKE2B 37d0a2a859149af94b44b5bc18c2d611e4c3497fa81064f36118cafe62a17ee7346b3b61f0d4810025eb83c3323e652929c8cfbb8797afed049327d6c78513f4 SHA512 59bcd4154e6ca4f9800d5fb1805d4bf5014f9055dd89ae85443abc2ef042a6a833c90f8c985b004ec77124100bba9be5c8929e8496444ee77405c384fd1ab913
|
||||
EBUILD Dist-Zilla-Plugin-NextVersion-Semantic-0.2.6.ebuild 602 BLAKE2B c4fe0701bbc2fb2c5ac4e4ceacd0b6a91f4ed46fee945370fe6f28c07e3e95cdcc2e6e0b73117b9c14bb38115d8ff21f93cd81632005b8826bdd48685cac8212 SHA512 f23c32f032ccd2f107ed888904d772dee7d32730f41d129792b46aa637f1171af7eb448e54bf6db7f984e107b0ccf5df9574bbff5a62c2134b4d753fc7ff4940
|
||||
MISC metadata.xml 745 BLAKE2B f37842432286eefa70c5288e49f870f202f9240321a77a67f9a4ceaad7b07965f4612dbd6e789b7a1f3c489a834fc5fc79e328baba3fd7cbc2bb9f8cebc932ca SHA512 68aa262a3894342c954bfaf53c2e3eb3c29ace63a5fead49d5606120bb97cd625e50a3f5654f6915619306952ee16c48ad650c2dfb6b3215354b317b04f6b4d0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From e38c5bfa847361ab251ce533fdd6e8993afbd2f3 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sat, 19 Sep 2020 22:13:21 +1200
|
||||
Subject: t/basic.t: Don't become broken when MAKEOPTS includes V=1
|
||||
|
||||
Some people set MAKEOPTS to include V=1, in order to coax autotools
|
||||
based makefiles into being more verbose.
|
||||
|
||||
But when that ENV var is used to direct perl ebuilds for Dzil things,
|
||||
well, it unintentionally uses "1" as the *next version*, and so breaks
|
||||
all code that isn't expecting that to happen.
|
||||
|
||||
Given its not the job of tests to tell people their system is weird, it
|
||||
just makes the scope "normal" ( that is, defaulting V to be unset
|
||||
internally )
|
||||
|
||||
Bug: https://bugs.gentoo.org/737308
|
||||
Bug: https://github.com/yanick/Dist-Zilla-Plugin-NextVersion-Semantic/pull/6
|
||||
---
|
||||
t/basic.t | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/t/basic.t b/t/basic.t
|
||||
index 22d04fe..b2942c8 100644
|
||||
--- a/t/basic.t
|
||||
+++ b/t/basic.t
|
||||
@@ -6,6 +6,10 @@ use Test::Exception;
|
||||
|
||||
use Test::DZil;
|
||||
|
||||
+# V=1 is common in MAKEOPTS for gnu autotools
|
||||
+# to set "verbose mode"
|
||||
+delete $ENV{V} if exists $ENV{V};
|
||||
+
|
||||
my $changes = make_changes(<<'END_CHANGES');
|
||||
- got included in an awesome test suite
|
||||
END_CHANGES
|
||||
--
|
||||
2.28.0
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 2c89bb54f233776fb8760a264286f9e0932f62c6 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentnl@gentoo.org>
|
||||
Date: Sat, 21 Oct 2017 13:15:43 +1300
|
||||
Subject: Fix tests on 5.26 without '.' in @INC
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=120848
|
||||
Bug: https://bugs.gentoo.org/615842
|
||||
Bug: https://github.com/tsee/extutils-cppguess/pull/15
|
||||
---
|
||||
t/010_module_build.t | 3 ++-
|
||||
t/011_makemaker.t | 3 ++-
|
||||
t/lib/TestUtils.pm | 3 ++-
|
||||
3 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/t/010_module_build.t b/t/010_module_build.t
|
||||
index 93b5f44..ef004d3 100644
|
||||
--- a/t/010_module_build.t
|
||||
+++ b/t/010_module_build.t
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
use strict;
|
||||
use Test::More tests => 1;
|
||||
-use t::lib::TestUtils;
|
||||
+use lib 't/lib';
|
||||
+use TestUtils;
|
||||
|
||||
my $separator = ( '=' x 40 . "\n" );
|
||||
|
||||
diff --git a/t/011_makemaker.t b/t/011_makemaker.t
|
||||
index 237636a..5986395 100644
|
||||
--- a/t/011_makemaker.t
|
||||
+++ b/t/011_makemaker.t
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
use strict;
|
||||
use Test::More tests => 1;
|
||||
-use t::lib::TestUtils;
|
||||
+use lib 't/lib';
|
||||
+use TestUtils;
|
||||
|
||||
my $separator = ( '=' x 40 . "\n" );
|
||||
|
||||
diff --git a/t/lib/TestUtils.pm b/t/lib/TestUtils.pm
|
||||
index c71572b..b3480c4 100644
|
||||
--- a/t/lib/TestUtils.pm
|
||||
+++ b/t/lib/TestUtils.pm
|
||||
@@ -1,4 +1,5 @@
|
||||
-package t::lib::TestUtils;
|
||||
+package # hide
|
||||
+ TestUtils;
|
||||
|
||||
use strict;
|
||||
|
||||
--
|
||||
2.14.2
|
||||
|
@ -1,4 +1,3 @@
|
||||
AUX File-NFSLock-1.27-no-dot-inc.patch 915 BLAKE2B d9457492dbbb7f96467b62c2269876a9df2de224afebcb886df8c6c0bd51239070b401ab7132597f53f0901e9c165357134282f3b9bfafebd537b849fc6f1934 SHA512 430296f1616706e1cb3b2e996a10080c95d76672ec3a7a9826c59cefc6624de2cde83a42fdcea9ec3f5ae84af380708282d35e3cabc1715a3b4a6c9f240a8e78
|
||||
DIST File-NFSLock-1.29.tar.gz 21743 BLAKE2B aece987567f95de22c6454c3a05d2dd2deaf1a6958eebdf7f2ba908b7c26a5894137635e4cfbd6d3b488ca5c37bfa55f50a0a66a9ef84d922d5a8a3ce8d01c36 SHA512 23ca8d6bff0b988eb7369a89c0ac2eb9fca4cc8472b996a93cd71241e76017c5a9db34e648038ec223cf0a3c843af26fc92740890e69e4db371c747c90835cc2
|
||||
EBUILD File-NFSLock-1.290.0.ebuild 324 BLAKE2B 9f226e40d8ca6019282c13d966b7cd856bb86fddfc9a992567f660eeb7a60cac956cc9953007b6103c6d964f1697a6ac3d36b5f3d3d2a12fdfcab0f5b2bbb977 SHA512 cf2211919dfbe5685a17041b24f42f7ca191cd5eb484b94774a01bf2f8996665f0cf45618863425b7d5cb407bac3a2e29260a8c63120d7e90ee57e44d39ae05b
|
||||
MISC metadata.xml 397 BLAKE2B a2c77afb83b124d62453d6affde57841860170eaea94e0e423ba96d5ded80b8b70b6c7841fb97a28e4a25511e478dcc625c04cbc23b941cf55e2b200477d1d59 SHA512 8075a163996f5411f1cb9716a402f96394631435f8e4579dfc1e21ec0b7f047fa093356381e877e28d864e79aa80c6e5f827183818457bee6226c51a2e0261af
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 08deb6590eecd9d92a38edf1b22d615175e1d8d3 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentfredric@gmail.com>
|
||||
Date: Mon, 26 Jun 2017 19:43:14 +1200
|
||||
Subject: [PATCH] Fix for '.' removal from Perl 5.26 @INC
|
||||
|
||||
---
|
||||
File-NFSLock.spec.PL | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/File-NFSLock.spec.PL b/File-NFSLock.spec.PL
|
||||
index fdf9fdf..f5586c1 100644
|
||||
--- a/File-NFSLock.spec.PL
|
||||
+++ b/File-NFSLock.spec.PL
|
||||
@@ -18,7 +18,7 @@ sub WriteMakefile {
|
||||
} elsif (my $version_from = $props{VERSION_FROM}) {
|
||||
$@ = "";
|
||||
$version = eval qq{
|
||||
- do "$version_from";
|
||||
+ do "./$version_from";
|
||||
\$$name\::VERSION || die "$version_from: Missing VERSION";
|
||||
};
|
||||
die $@ if $@;
|
||||
@@ -29,7 +29,7 @@ sub WriteMakefile {
|
||||
die "Makefile.PL: Could not determine version!";
|
||||
}
|
||||
}
|
||||
-do "Makefile.PL";
|
||||
+do "./Makefile.PL";
|
||||
if ($name) {
|
||||
$name =~ s/::/-/g;
|
||||
} else {
|
||||
--
|
||||
2.13.1
|
||||
|
@ -1,24 +1,3 @@
|
||||
AUX GnuPG-Interface-0.520.0-0001-fix-spelling-error-settting-should-be-setting.patch 1104 BLAKE2B 6275517463eec5caa865338109c151cc8c351200cfe8666a9652e7733855a29d668c22a800820caad79dc6ef9d1c6ac0569ec8cec6826f77f60029d30360d14c SHA512 154fe07541bdfa36be9ce72fee8ce1edb8fbfce73d3006b888ec141a3e5efb9eacc3cb91956606ef56b67a5fde8c19da5d92f38d02acb77d7681e1219d6c513c
|
||||
AUX GnuPG-Interface-0.520.0-0002-Generalize-the-test-suite.patch 4552 BLAKE2B 89ec43b57ed6ecdcd4b78f7b84cbbded575e8cce0785d86960bb8b1f092c53ab54cc533e757dc47501de8fa8c2db73ae42a9f705e3821b57ff1110ad6ef1f34f SHA512 8310f8b4a7e1092273fb0444e65871d5aed2eb87107fcb416f7e5c82146379c3d77ff511209ae01efeb475d62cc2e8682ece15b4a826d15a0e450871fdff50b8
|
||||
AUX GnuPG-Interface-0.520.0-0003-subkey-validity-of-an-key-when-we-have-established-n.patch 1217 BLAKE2B 5d96a0fb84d7d12ef58caf8e6b3a5363f96ed71300d37ebed5ad057f46b705456da3922f96eb58efe79864cfa0ef5b560e53a7f71c29d36b4602071f0b5bfcb9 SHA512 7cddb8e065e3380a5bf9aeb82af620bdf9c4062a9e315afb871574af6140369ce9c1e9b0ac0c8463c6158694ad78d65e328acce62a3336bce8705f3ffc393cb6
|
||||
AUX GnuPG-Interface-0.520.0-0004-ensure-that-test-covers-all-signatures.patch 1438 BLAKE2B 44ff3ea149993b7c296a91fe801e9fdc2a8f19617a7c11f2ab83c7de71e37bc26d5ed434a54c1301c74b59bfd66ea19e50ea1880b93d9b74bb2afa6bd48b2c2b SHA512 dcb3f587834d3d22ab745a6796cbb924efbc5d9985947e3884f8f4fdb47a911385d400b4a2b72ef83daed3ba572fbf3d6d4944cf63c308ae4bc64cf369191111
|
||||
AUX GnuPG-Interface-0.520.0-0005-add-gpg_is_modern-to-test-suite.patch 1522 BLAKE2B 883cbe443329b48ca91f3af2765024b22d889b9e3e49817bc9d4e883594743073314dde2145bfd6de3e234130f9c230b533c62a00897e398e4c73c93f15a41a2 SHA512 170d5231f98234614c5e8c1afb09b2fc4ff26bb8e5b280a8b91a0b886e4199c6c993af41b63db7041cc6f8b2fc676461720e64289818966f3980bcf4af75625c
|
||||
AUX GnuPG-Interface-0.520.0-0006-Modern-GnuPG-2.1-reports-more-detail-about-secret-ke.patch 5276 BLAKE2B 07621e4fc1f12da4dbed3b537412215ba5121a8ea4b2f5f85ddbb6869228db7744c5fcd884ece126be2d56547983413ee4dd63c81149c4882514bd9d8e400dd8 SHA512 7c1a588028378e2691e951a5572465c877b6ef4fb86b27aa4e3aef3aa75a49e1e53b52c78ba88b00cfb243aa10bf75aef88784d22deb7925d0cdc98687ee8804
|
||||
AUX GnuPG-Interface-0.520.0-0007-test-suite-match-plaintext-output-across-versions-of.patch 3286 BLAKE2B f1452611f761f6fd06b91e49a47016820633284d8cdddccbabb3d19f4e91e8b9264bd879d1177e64cca7755b9faa6550ac24908dcdaf2b54335e7f7fb22bf08f SHA512 eb6d4efd476d1d7582c66b90fdef21badc8d0eecd24ce642cac7f5d0e3e491c78cbc0ee49bf886ce571f2718c2aa725d6c07a7ca0cd6e5483624df6984cf8f27
|
||||
AUX GnuPG-Interface-0.520.0-0008-fix-test_default_key_passphrase-when-passphrase-come.patch 1125 BLAKE2B 12144ec6aca0407c3cd5f07ef8f4f8a2837157a9c2af082331af3f7b9f6fe18b3be461b5fd75577b3c5e1d54ef5a31301ebe56f09dc79b3899fbbcd0efc04d6c SHA512 e4f5b69a1ac61a7d39d97cb716f07cef5b612b01b64005b6f0f0974fb19b386a6e817c66fb49762c99b66917e551ab96e34a48cf25bb59b8f06844773adcd44b
|
||||
AUX GnuPG-Interface-0.520.0-0009-clean-up-trailing-whitespace.patch 3683 BLAKE2B c433dc5c563ee0472ab6d3c1c00db3326345a06aa244df5afa8be7d4e732bd8de624c8fb0b3db4b1a11d53cdd86f28b02ad970323ec743189fd015b107be6154 SHA512 f911f3d830e30d6e3e684abb7c3e90c801715a68bc2ccd02fc75a15f4c9ec9095260a56a021645cc82bc7f6381fee1f0b5e404cdd6c7be93d1cf293adaaabfbf
|
||||
AUX GnuPG-Interface-0.520.0-0010-fix-capitalization-of-GnuPG.patch 1094 BLAKE2B 5588031372f4d8d932527a96fce63cdd3a563ca937794c44b9eb124ecf3f64d64490adf2030a5ceb035cba9a2ab8f0a3576ef6890a6a6c39372234a66f490497 SHA512 5ecadeb592b73843756a7fb7e8d002e0931832f1120399072decf7586ebec6ec39c6eb33811de58849d7a986a0e87dd0a5b3c6bb0eb9328365d75e6a8eaf02be
|
||||
AUX GnuPG-Interface-0.520.0-0011-ommand_args-should-be-command_args.patch 670 BLAKE2B 3ec3023e125c2c71ec94eec02b6a103bd7f5bcd64c77d6a7b23b6a81b01e99f776b3d970e2d43806eb53fc3e63de2594703e7602acc4ac77306e9ab3f7beca2f SHA512 cd9af9b1df71f4bbbee8e97de41933c93e908626cb766c88636f9df5a4307360b302eeabe1d999da10b81237f38da673fbd9dd34417df27b3fc4a9e1fd98e73f
|
||||
AUX GnuPG-Interface-0.520.0-0012-use-fingerprints-as-inputs-during-tests-to-demonstra.patch 9909 BLAKE2B 3b416e430a693f8160b75bcb9b11d807fa9a658ef3737a177392cf9e8819131758d2e6c0b6adde4e75ee7e2205ca6cf74df1e953e6fe00274ec613b1a3417c12 SHA512 8a1dc1d4df2f1ab575256845439be416323cc4448812c28c9a3209404cfc1fbabecdf65701e9fdf9c9530c964114d8f91eae42200a4b7dae8ecb78b77c22611f
|
||||
AUX GnuPG-Interface-0.520.0-0013-move-key-files-to-generic-names.patch 1247 BLAKE2B 756fd2b7a3a07838975e6401e637e080c7cf1197197de7c76c256bc899c061f19fc7f139d9190065f50672c6e23bf601aa91c0a98ef2c8b8a226623a97009c31 SHA512 8d4a890788ce13923b0bb74c1262c8e41c2d7b4143153e3434df06640afaa7380e39b57f0ea5607e79b57cb28fb7ac8c432da7d712f3e17cb64501a58d92240f
|
||||
AUX GnuPG-Interface-0.520.0-0014-fix-spelling-s-convience-convenience.patch 2165 BLAKE2B d7d62bbb66c629c327606b9b3b138f45a04de31e81cc2373f384315cb60832598d90e37428e00e2ed659173c0a463d3a4016d085120d8ce17042cd98b808231f SHA512 57f685199115f3d2bafe6c8b088f526fcce60e838891d4f7ba74b648653f4e4f3f730c5b6e9f9143a6bf3812e2f4eb9c2871c60bce9f1db9c872831341b0a401
|
||||
AUX GnuPG-Interface-0.520.0-0015-added-new-secret-key-with-different-passphrase.patch 5950 BLAKE2B 407c7b0dc9f74a657429eb877d9731c75e5fdc7aed0b291530ef63e357cd0d07e3ee6060bc8b96908c0ff46feb14f15547100f3a1c333c45930b1e2b67e8f42a SHA512 675bfea548b7f0dcff6f6b371e9e673e9c6cf8eb3cd29483519473d7b0519358416cb3946cb14958317f1ff661248a019c3e1b51abf3f2b85b6c645e45b045b5
|
||||
AUX GnuPG-Interface-0.520.0-0016-Test-use-of-gpg-without-explicit-passphrase-agent-pi.patch 11278 BLAKE2B 581b7addc6c2aebff575d66db69bf827df749f73f98be6e14863dcfec6800eb53fd857d29c7794516f5fb905f0439d920b7352d6f54eb29ebf413949b70d5f45 SHA512 ce27eee7d1b89a8c005c34f81862f3516866aeea23fb254288917d93da4ceec46a7eabc65b2f4c05f3e33e816301934ad83e3e51a8b742e1ac781fd5fe81b609
|
||||
AUX GnuPG-Interface-0.520.0-0017-Kill-any-GnuPG-agent-before-and-after-the-test-suite.patch 1535 BLAKE2B ac7e1f395a5ce8afe1611156f65aa305ddb1f1ecb26cfc7176c81c411d92c6a71b6a3781f950c4c54b422c6205cef94fce2f45f8bc6545ddeece34af774b5ef7 SHA512 d1f5e3258543fad32cc317bd5b34ffda279fec39d533b0390ed941fee1f780b37dda767670e7ae8f6c68bcf206c089122cf46fc5f8c24e889b032132a1f85eb1
|
||||
AUX GnuPG-Interface-0.520.0-0018-Use-a-short-temporary-homedir-during-the-test-suite.patch 4096 BLAKE2B 12d9bcd4931c9d8d5c3608beadbfb08bf144794cc13ac724bc2b21ab654facdec98e6293c42bf5c12e5867abd9af77b9c665ef903c91739484a40495bf069fcd SHA512 98d6b4d976013741c614265c8b9d35458461fb4407cbe10f8600c55522128a68a2976157e3165ca99aed733d2c5dee6164fa048a7671bdb9d37612a438327242
|
||||
AUX GnuPG-Interface-0.520.0-0019-Make-things-work-with-gpg1-assuming-plain-gpg-is-mod.patch 2237 BLAKE2B f152aa512f9fbc240d1862d5439928276fb4fdc73d716fcb4941504d7bc9fcf3facde6c06d2d52a7ca0628d3aa72e65248a1bb0237afe1e6c0585608f3c44b12 SHA512 a59ac575d410b5feb14a8a2165f526a1a7fbdf4575bc7e0d8d690a4d952fb312defb1390ae0186ec65b52737643ff560d5d48e8920bfe1cdcd1702016755035e
|
||||
AUX GnuPG-Interface-0.520.0-0030-gpg-2.2.6.patch 1897 BLAKE2B eca30b9a8485f7cb960ff343d1b575f324fcf6895c0fd723d14ebcccba14c69dd775ae315130af94a3246e3f8ddedb4ea9ba9c4c894f5e63b05fa8197e82f584 SHA512 5826dbc85925ac810dce695ea747ab2a4d361811295ce4f83925416c8c5842f8486e4275a3e610069157fa37e377413a39f1684ce94f618a99c46e7f6884264c
|
||||
AUX GnuPG-Interface-0.520.0-0031-gpg-2.2.8.patch 1511 BLAKE2B 3eee783efd64848bc0e86a0e0768c8dc77f8e28819fdc466913ac029cef7fcf42ff67edf89762b4b023d58df7c740b7d3d6a56ea2598699637edf5fb12840464 SHA512 7f8597d4a25e1492475810e47fb7988d74411cbe6ad537889c65bf37119572d1ae0c24e2f5c99d77d12edee3c46dd0e635125ee7a7dde99abeddd19d43fe7aa9
|
||||
DIST GnuPG-Interface-1.02.tar.gz 75523 BLAKE2B 4b1311bbd930ae6719db9d7d25e247804c1f71f29da52b1896086ff4905cfdf09792d85fa9e90da462e974279cc673bacdcd2b6a32171eca1be861df5f712a98 SHA512 ff4365aa75fbcd2dc77c915ec36c0b578219ae1a2148e936b4769221f91c78a3bc3d371159b5130e7bee36ecf0e169b6a16e3a160d2598811d6f70850119f6e4
|
||||
EBUILD GnuPG-Interface-1.20.0.ebuild 1022 BLAKE2B 3d7acfd349b0a6b725b2f85023ab1b0586aea6859730b0992bab48addb4de670c833730042e5737b125eb53a98eb174a7ddc4121bd5e6263bc8cc705c53e0a26 SHA512 a9552b01a73de345b2d659e827e50386692c77d29d0b405d1cd985a5ffef20aaae898fcbd9fd9857bd5d563a06a293f6ad26ae4136a7cc6cacd5d9e9d06a14af
|
||||
MISC metadata.xml 1210 BLAKE2B f51743b57e5bb8b7f5335e9da2b92e0e0aab4a7ebde4a99d1c03a2c2e3de5105284d126ab128682bfdeeb284ec32fa9753599eacff1bc40146f2304d188d612a SHA512 faed617bfbb64f58bf4c9c0d4b032b39427fed287f02ebfff5e7bc249d440fa48fd4729a2e6334d87c99c2922897b87bcb7ed6bcbb4bf1d0bbf359773b50c5fd
|
||||
|
@ -1,35 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 07:26:00 +0200
|
||||
Subject: fix spelling error ("settting" should be "setting")
|
||||
|
||||
---
|
||||
README | 2 +-
|
||||
lib/GnuPG/Interface.pm | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/README b/README
|
||||
index fcb982a..f457577 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -6,7 +6,7 @@ SYNOPSIS
|
||||
use IO::Handle;
|
||||
use GnuPG::Interface;
|
||||
|
||||
- # settting up the situation
|
||||
+ # setting up the situation
|
||||
my $gnupg = GnuPG::Interface->new();
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
homedir => '/home/foobar' );
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index f952f3e..83a4b1a 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -834,7 +834,7 @@ GnuPG::Interface - Perl interface to GnuPG
|
||||
use IO::Handle;
|
||||
use GnuPG::Interface;
|
||||
|
||||
- # settting up the situation
|
||||
+ # setting up the situation
|
||||
my $gnupg = GnuPG::Interface->new();
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
homedir => '/home/foobar' );
|
@ -1,151 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 10:38:12 -0400
|
||||
Subject: Generalize the test suite
|
||||
|
||||
The test suite currently assumes it knows something about the internal
|
||||
state of GnuPG's homedir.
|
||||
|
||||
It's safer and less brittle to rely explicitly on the public interface
|
||||
that GnuPG has committed to, such as --import-keys and --list-keys,
|
||||
rather than assuming that certain files are in certain places in the
|
||||
GnuPG homedir.
|
||||
|
||||
It's also better to create a fresh homedir and allow GnuPG to populate
|
||||
it during the test suite, cleaning it up at the end, rather than hope
|
||||
that GnuPG will leave a pre-existing homedir untouched.
|
||||
|
||||
With this change, many more of the tests pass when /usr/bin/gpg is
|
||||
provided by GnuPG 2.1.
|
||||
---
|
||||
t/000_setup.t | 28 ++++++++++++++++++++++++++++
|
||||
t/MyTestSpecific.pm | 2 +-
|
||||
t/zzz_cleanup.t | 17 +++++++++++++++++
|
||||
test/fake-pinentry.pl | 28 ++++++++++++++++++++++++++++
|
||||
test/{options => gpg.conf} | 0
|
||||
test/secret-keys/1.0.test | 4 ++--
|
||||
6 files changed, 76 insertions(+), 3 deletions(-)
|
||||
create mode 100644 t/000_setup.t
|
||||
create mode 100644 t/zzz_cleanup.t
|
||||
create mode 100755 test/fake-pinentry.pl
|
||||
rename test/{options => gpg.conf} (100%)
|
||||
|
||||
diff --git a/t/000_setup.t b/t/000_setup.t
|
||||
new file mode 100644
|
||||
index 0000000..7f7f7b0
|
||||
--- /dev/null
|
||||
+++ b/t/000_setup.t
|
||||
@@ -0,0 +1,28 @@
|
||||
+#!/usr/bin/perl -w
|
||||
+
|
||||
+use strict;
|
||||
+use English qw( -no_match_vars );
|
||||
+
|
||||
+use lib './t';
|
||||
+use MyTest;
|
||||
+use MyTestSpecific;
|
||||
+use Cwd;
|
||||
+use File::Path qw (make_path);
|
||||
+use File::Copy;
|
||||
+
|
||||
+TEST
|
||||
+{
|
||||
+ make_path('test/gnupghome', { mode => 0700 });
|
||||
+ my $agentconf = IO::File->new( "> test/gnupghome/gpg-agent.conf" );
|
||||
+ $agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
|
||||
+ $agentconf->close();
|
||||
+ copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
|
||||
+ reset_handles();
|
||||
+
|
||||
+ my $pid = $gnupg->import_keys(command_args => [ 'test/pubring.gpg', 'test/secring.gpg' ],
|
||||
+ options => [ 'batch'],
|
||||
+ handles => $handles);
|
||||
+ waitpid $pid, 0;
|
||||
+
|
||||
+ return $CHILD_ERROR == 0;
|
||||
+};
|
||||
diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
|
||||
index 053b749..1af98ae 100644
|
||||
--- a/t/MyTestSpecific.pm
|
||||
+++ b/t/MyTestSpecific.pm
|
||||
@@ -40,7 +40,7 @@ use vars qw( @ISA @EXPORT
|
||||
|
||||
$gnupg = GnuPG::Interface->new( passphrase => 'test' );
|
||||
|
||||
-$gnupg->options->hash_init( homedir => 'test',
|
||||
+$gnupg->options->hash_init( homedir => 'test/gnupghome',
|
||||
armor => 1,
|
||||
meta_interactive => 0,
|
||||
meta_signing_key_id => '0xF950DA9C',
|
||||
diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
|
||||
new file mode 100644
|
||||
index 0000000..5c03a72
|
||||
--- /dev/null
|
||||
+++ b/t/zzz_cleanup.t
|
||||
@@ -0,0 +1,17 @@
|
||||
+#!/usr/bin/perl -w
|
||||
+
|
||||
+use strict;
|
||||
+use English qw( -no_match_vars );
|
||||
+
|
||||
+use lib './t';
|
||||
+use MyTest;
|
||||
+use MyTestSpecific;
|
||||
+use File::Path qw (remove_tree);
|
||||
+
|
||||
+# this is actually no test, just cleanup.
|
||||
+TEST
|
||||
+{
|
||||
+ my $err = [];
|
||||
+ remove_tree('test/gnupghome', {error => \$err});
|
||||
+ return ! @$err;
|
||||
+};
|
||||
diff --git a/test/fake-pinentry.pl b/test/fake-pinentry.pl
|
||||
new file mode 100755
|
||||
index 0000000..12d3611
|
||||
--- /dev/null
|
||||
+++ b/test/fake-pinentry.pl
|
||||
@@ -0,0 +1,28 @@
|
||||
+#!/usr/bin/perl -w
|
||||
+# Use this for your test suites when a perl interpreter is available.
|
||||
+#
|
||||
+# The encrypted keys in your test suite that you expect to work must
|
||||
+# be locked with a passphrase of "test"
|
||||
+#
|
||||
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
+#
|
||||
+# License: This trivial work is hereby explicitly placed into the
|
||||
+# public domain. Anyone may reuse it, modify it, redistribute it for
|
||||
+# any purpose.
|
||||
+
|
||||
+use strict;
|
||||
+use warnings;
|
||||
+
|
||||
+# turn off buffering
|
||||
+$| = 1;
|
||||
+
|
||||
+print "OK This is only for test suites, and should never be used in production\n";
|
||||
+while (<STDIN>) {
|
||||
+ chomp;
|
||||
+ next if (/^$/);
|
||||
+ next if (/^#/);
|
||||
+ print ("D test\n") if (/^getpin/i);
|
||||
+ print "OK\n";
|
||||
+ exit if (/^bye/i);
|
||||
+}
|
||||
+1;
|
||||
diff --git a/test/options b/test/gpg.conf
|
||||
similarity index 100%
|
||||
rename from test/options
|
||||
rename to test/gpg.conf
|
||||
diff --git a/test/secret-keys/1.0.test b/test/secret-keys/1.0.test
|
||||
index 5999484..129d472 100644
|
||||
--- a/test/secret-keys/1.0.test
|
||||
+++ b/test/secret-keys/1.0.test
|
||||
@@ -1,5 +1,5 @@
|
||||
-test/secring.gpg
|
||||
-----------------
|
||||
+test/gnupghome/secring.gpg
|
||||
+--------------------------
|
||||
sec 1024D/F950DA9C 2000-02-06
|
||||
uid GnuPG test key (for testing purposes only)
|
||||
uid Foo Bar (1)
|
@ -1,37 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 11:35:31 -0400
|
||||
Subject: subkey validity of an key when we have established no trust anchors
|
||||
|
||||
This apparently isn't tested by deep comparisons, though, so it was
|
||||
never caught.
|
||||
---
|
||||
t/get_public_keys.t | 2 +-
|
||||
t/get_secret_keys.t | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/get_public_keys.t b/t/get_public_keys.t
|
||||
index 53db021..73e320b 100644
|
||||
--- a/t/get_public_keys.t
|
||||
+++ b/t/get_public_keys.t
|
||||
@@ -175,7 +175,7 @@ TEST
|
||||
];
|
||||
|
||||
my $subkey = GnuPG::SubKey->new
|
||||
- ( validity => 'u',
|
||||
+ ( validity => '-',
|
||||
length => 768,
|
||||
algo_num => 16,
|
||||
hex_id => 'ADB99D9C2E854A6B',
|
||||
diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
|
||||
index 3a1d99f..7bba083 100644
|
||||
--- a/t/get_secret_keys.t
|
||||
+++ b/t/get_secret_keys.t
|
||||
@@ -48,7 +48,7 @@ TEST
|
||||
|
||||
|
||||
my $subkey = GnuPG::SubKey->new
|
||||
- ( validity => 'u',
|
||||
+ ( validity => '-',
|
||||
length => 768,
|
||||
algo_num => 16,
|
||||
hex_id => 'ADB99D9C2E854A6B',
|
@ -1,35 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 11:39:04 -0400
|
||||
Subject: ensure that test covers all signatures
|
||||
|
||||
The earlier test wasn't reporting on one of the known self-sigs for
|
||||
the test key for some reason.
|
||||
|
||||
This change ensures that all known signatures are present.
|
||||
---
|
||||
t/get_public_keys.t | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/t/get_public_keys.t b/t/get_public_keys.t
|
||||
index 73e320b..9e96f7d 100644
|
||||
--- a/t/get_public_keys.t
|
||||
+++ b/t/get_public_keys.t
|
||||
@@ -83,7 +83,17 @@ TEST
|
||||
date_string => '2000-02-06',
|
||||
hex_id => '53AE596EF950DA9C',
|
||||
sig_class => 0x13,
|
||||
- validity => '!'));
|
||||
+ validity => '!'),
|
||||
+ GnuPG::Signature->new(
|
||||
+ date => 1177086329,
|
||||
+ algo_num => 17,
|
||||
+ is_exportable => 1,
|
||||
+ user_id_string => 'GnuPG test key (for testing purposes only)',
|
||||
+ date_string => '2007-04-20',
|
||||
+ hex_id => '53AE596EF950DA9C',
|
||||
+ sig_class => 0x13,
|
||||
+ validity => '!'),
|
||||
+ );
|
||||
|
||||
my $uid1 = GnuPG::UserId->new( as_string => 'Foo Bar (1)',
|
||||
validity => '-');
|
@ -1,39 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 14:31:38 -0400
|
||||
Subject: add $gpg_is_modern to test suite
|
||||
|
||||
MyTestSpecific.pm now produces a new variable indicating whether it
|
||||
the version of GnuPG we run against is from the "Modern" line of GnuPG
|
||||
development (2.1 or later). This will be useful when comparing output
|
||||
that we can't expect from earlier versions.
|
||||
---
|
||||
t/MyTestSpecific.pm | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
|
||||
index 1af98ae..a309698 100644
|
||||
--- a/t/MyTestSpecific.pm
|
||||
+++ b/t/MyTestSpecific.pm
|
||||
@@ -29,17 +29,20 @@ use GnuPG::Handles;
|
||||
use vars qw( @ISA @EXPORT
|
||||
$stdin $stdout $stderr
|
||||
$gpg_program $handles $gnupg
|
||||
- %texts
|
||||
+ %texts $gpg_is_modern
|
||||
);
|
||||
|
||||
@ISA = qw( Exporter );
|
||||
@EXPORT = qw( stdin stdout stderr
|
||||
gnupg_program handles reset_handles
|
||||
- texts file_match
|
||||
+ texts file_match gpg_is_modern
|
||||
);
|
||||
|
||||
$gnupg = GnuPG::Interface->new( passphrase => 'test' );
|
||||
|
||||
+my @version = split('\.', $gnupg->version());
|
||||
+$gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
|
||||
+
|
||||
$gnupg->options->hash_init( homedir => 'test/gnupghome',
|
||||
armor => 1,
|
||||
meta_interactive => 0,
|
@ -1,120 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 14:12:40 -0400
|
||||
Subject: Modern GnuPG (2.1) reports more detail about secret keys
|
||||
|
||||
the GnuPG "modern" suite (version 2.1 or later) reports more detail
|
||||
about secret keys than previous versions did. In particular, it
|
||||
reports stored ownertrust, public key data, and designated revokers
|
||||
for secret keys. Older versions only reported those attributes for
|
||||
public keys.
|
||||
|
||||
This patch adjusts the test suite to ensure that our handmade key
|
||||
matches the produced key when /usr/bin/gpg is supplied by the modern
|
||||
suite.
|
||||
---
|
||||
t/get_secret_keys.t | 66 +++++++++++++++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 54 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
|
||||
index 7bba083..c798cce 100644
|
||||
--- a/t/get_secret_keys.t
|
||||
+++ b/t/get_secret_keys.t
|
||||
@@ -23,16 +23,34 @@ TEST
|
||||
return 0 unless @returned_keys == 1;
|
||||
|
||||
$given_key = shift @returned_keys;
|
||||
-
|
||||
- $handmade_key = GnuPG::PrimaryKey->new
|
||||
- ( length => 1024,
|
||||
+ my $pubkey_data = [
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '88FCAAA5BCDCD52084D46143F44ED1715A339794641158DE03AA2092AFD3174E3DCA2CB7DF2DDC6FEDF7C3620F5A8BDAD06713E6153F8748DD76CB97305F30CBA8F8801DB47FAC11EED725F55672CB9BDAD629178A677CBB089B3E8AE0D9A9AD7741697A35F2868C62D25670994A92D810480173DC24263EEA0F103A43C0B64B'),
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '8F2A3842C70FF17660CBB78C78FC93F534AB9A17'),
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '83E348C2AA65F56DE84E8FDCE6DA7B0991B1C75EC8CA446FA85869A43350907BFF36BE512385E8E7E095578BB2138C04E318495873218286DE2B8C86F36EA670135434967AC798EBA28581F709F0C6B696EB512D3E561E381A06E4B5239BCC655015F9A926C74E4B859B26EAD604F208A556511A76A40EDCD9C38E6BD82CCCB4'),
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '80DE04C85E30C9D62C13F90CFF927A84A5A59D0900B3533D4D6193FEF8C5DAEF9FF8A7D5F76B244FBC17644F50D524E0B19CD3A4B5FC2D78DAECA3FE58FA1C1A64E6C7B96C4EE618173543163A72EF954DFD593E84342699096E9CA76578AC1DE3D893BCCD0BF470CEF625FAF816A0F503EF75C18C6173E35C8675AF919E5704')
|
||||
+ ];
|
||||
+
|
||||
+
|
||||
+ my $args = {
|
||||
+ length => 1024,
|
||||
algo_num => 17,
|
||||
hex_id => '53AE596EF950DA9C',
|
||||
creation_date => 949813093,
|
||||
creation_date_string => '2000-02-06',
|
||||
- owner_trust => '', # secret keys do not report ownertrust?
|
||||
+ owner_trust => '-',
|
||||
usage_flags => 'scaESCA',
|
||||
- );
|
||||
+ pubkey_data => $pubkey_data,
|
||||
+ };
|
||||
+ if (!$gpg_is_modern) {
|
||||
+ # older versions don't report ownertrust or pubkey_data for secret keys:
|
||||
+ delete $args->{pubkey_data};
|
||||
+ $args->{owner_trust} = '';
|
||||
+ }
|
||||
+ $handmade_key = GnuPG::PrimaryKey->new($args);
|
||||
|
||||
$handmade_key->fingerprint
|
||||
( GnuPG::Fingerprint->new( as_hex_string =>
|
||||
@@ -42,20 +60,42 @@ TEST
|
||||
|
||||
$handmade_key->push_user_ids(
|
||||
GnuPG::UserId->new( as_string => 'GnuPG test key (for testing purposes only)',
|
||||
- validity => ''), # secret keys do not report uid validity?
|
||||
+ validity => $args->{owner_trust}),
|
||||
GnuPG::UserId->new( as_string => 'Foo Bar (1)',
|
||||
- validity => '')); # secret keys do not report uid validity?
|
||||
-
|
||||
-
|
||||
- my $subkey = GnuPG::SubKey->new
|
||||
- ( validity => '-',
|
||||
+ validity => $args->{owner_trust}));
|
||||
+
|
||||
+ my $revoker = GnuPG::Revoker->new
|
||||
+ ( algo_num => 17,
|
||||
+ class => 0x80,
|
||||
+ fingerprint => GnuPG::Fingerprint->new( as_hex_string =>
|
||||
+ '4F863BBBA8166F0A340F600356FFD10A260C4FA3'),
|
||||
+ );
|
||||
+
|
||||
+ my $subkey_pub_data = [
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '8831982DADC4C5D05CBB01D9EAF612131DDC9C24CEA7246557679423FB0BA42F74D10D8E7F5564F6A4FB8837F8DC4A46571C19B122E6DF4B443D15197A6A22688863D0685FADB6E402316DAA9B560D1F915475364580A67E6DF0A727778A5CF3'),
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '6'),
|
||||
+ Math::BigInt->from_hex('0x'.
|
||||
+ '2F3850FF130C6AC9AA0962720E86539626FAA9B67B33A74DFC0DE843FF3E90E43E2F379EE0182D914FA539CCCF5C83A20DB3A7C45E365B8A2A092E799A3DFF4AD8274EB977BAAF5B1AFB2ACB8D6F92454F01682F555565E73E56793C46EF7C3E')
|
||||
+ ];
|
||||
+
|
||||
+ my $sub_args = {
|
||||
+ validity => '-',
|
||||
length => 768,
|
||||
algo_num => 16,
|
||||
hex_id => 'ADB99D9C2E854A6B',
|
||||
creation_date => 949813119,
|
||||
creation_date_string => '2000-02-06',
|
||||
usage_flags => 'e',
|
||||
- );
|
||||
+ pubkey_data => $subkey_pub_data,
|
||||
+ };
|
||||
+
|
||||
+ if (!$gpg_is_modern) {
|
||||
+ # older versions do not report pubkey data for secret keys
|
||||
+ delete $sub_args->{pubkey_data};
|
||||
+ }
|
||||
+ my $subkey = GnuPG::SubKey->new($sub_args);
|
||||
|
||||
$subkey->fingerprint
|
||||
( GnuPG::Fingerprint->new( as_hex_string =>
|
||||
@@ -64,6 +104,8 @@ TEST
|
||||
);
|
||||
|
||||
$handmade_key->push_subkeys( $subkey );
|
||||
+ # older versions do not report designated revokers for secret keys
|
||||
+ $handmade_key->push_revokers( $revoker ) if ($gpg_is_modern);
|
||||
|
||||
$handmade_key->compare( $given_key );
|
||||
};
|
@ -1,95 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 14:46:13 -0400
|
||||
Subject: test suite: match plaintext output across versions of GnuPG
|
||||
|
||||
The human-readable version of --list-keys is *not* expected to be
|
||||
static over time or as the user's environment changes (e.g. LANG or
|
||||
LC_MESSAGES), so expecting it to be machine-parseable is probably a
|
||||
mistake.
|
||||
|
||||
That said, some users might want to pull textual information about
|
||||
specific keys to display directly to the user, so it's not a terrible
|
||||
idea to have it in the test suite.
|
||||
|
||||
Modern GnuPG (2.1 or later) changes the default structure of the
|
||||
human-readable output in a few significant ways:
|
||||
|
||||
* it writes the path to the keyring as an absolute path, even if
|
||||
$GNUPGHOME is set to a non-absolute path.
|
||||
|
||||
* it shows the calculated user id validity by default (see
|
||||
show-uid-validity in gpg's --list-options). (note that this is a
|
||||
translated string, so that "unknown" (in the default C locale)
|
||||
becomes "inconnue" when LANG or LC_MESSAGES is set to fr_CH.UTF-8,
|
||||
for example.
|
||||
|
||||
* it writes the key algorithm names differently (e.g. rsa2048 instead
|
||||
of 2048R)
|
||||
|
||||
* it does not display the key ID at all by default
|
||||
|
||||
* it displays the full fingerprint in compact form by default
|
||||
|
||||
This changeset fixes the test suite so that it can do a rough
|
||||
verification of the human-readable text output by list_secret_keys in
|
||||
the C locale in modern versions of GnuPG, while leaving it working for
|
||||
older GnuPG suites.
|
||||
---
|
||||
t/list_secret_keys.t | 15 +++++++++++++--
|
||||
test/secret-keys/1.modern.test | 8 ++++++++
|
||||
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||
create mode 100644 test/secret-keys/1.modern.test
|
||||
|
||||
diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
|
||||
index 1fe9b7e..51e3651 100644
|
||||
--- a/t/list_secret_keys.t
|
||||
+++ b/t/list_secret_keys.t
|
||||
@@ -16,13 +16,22 @@ TEST
|
||||
{
|
||||
reset_handles();
|
||||
|
||||
+ $ENV{LC_MESSAGES} = 'C';
|
||||
my $pid = $gnupg->list_secret_keys( handles => $handles );
|
||||
close $stdin;
|
||||
|
||||
$outfile = 'test/secret-keys/1.out';
|
||||
my $out = IO::File->new( "> $outfile" )
|
||||
or die "cannot open $outfile for writing: $ERRNO";
|
||||
- $out->print( <$stdout> );
|
||||
+ while (<$stdout>) {
|
||||
+ if ($gpg_is_modern && /^\/.*\/test\/gnupghome\/pubring.kbx$/) {
|
||||
+ $out->print("test/gnupghome/pubring.kbx\n");
|
||||
+ } elsif ($gpg_is_modern && /^--*$/) {
|
||||
+ $out->print("--------------------------\n");
|
||||
+ } else {
|
||||
+ $out->print( $_ );
|
||||
+ }
|
||||
+ }
|
||||
close $stdout;
|
||||
$out->close();
|
||||
waitpid $pid, 0;
|
||||
@@ -33,7 +42,9 @@ TEST
|
||||
|
||||
TEST
|
||||
{
|
||||
- my @files_to_test = ( 'test/secret-keys/1.0.test' );
|
||||
+ my $suffix = '0';
|
||||
+ $suffix = 'modern' if ($gpg_is_modern);
|
||||
+ my @files_to_test = ( 'test/secret-keys/1.'.$suffix.'.test' );
|
||||
|
||||
return file_match( $outfile, @files_to_test );
|
||||
};
|
||||
diff --git a/test/secret-keys/1.modern.test b/test/secret-keys/1.modern.test
|
||||
new file mode 100644
|
||||
index 0000000..3e46407
|
||||
--- /dev/null
|
||||
+++ b/test/secret-keys/1.modern.test
|
||||
@@ -0,0 +1,8 @@
|
||||
+test/gnupghome/pubring.kbx
|
||||
+--------------------------
|
||||
+sec dsa1024 2000-02-06 [SCA]
|
||||
+ 93AFC4B1B0288A104996B44253AE596EF950DA9C
|
||||
+uid [ unknown] GnuPG test key (for testing purposes only)
|
||||
+uid [ unknown] Foo Bar (1)
|
||||
+ssb elg768 2000-02-06 [E]
|
||||
+
|
@ -1,29 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 13 Sep 2016 15:22:27 -0400
|
||||
Subject: fix test_default_key_passphrase when passphrase comes from agent
|
||||
|
||||
In the modern GnuPG suite, where the passphrase is always managed by
|
||||
the agent, gpg itself doesn't emit the GOOD_PASSPHRASE status.
|
||||
Instead, if signing is successful it emits plain old SIG_CREATED.
|
||||
|
||||
There are probably even better ways to test whether a given key is
|
||||
unlocked in this case, but this is a straightforward baseline fix that
|
||||
should get this part of the test suite to pass with all available
|
||||
versions of GnuPG.
|
||||
---
|
||||
lib/GnuPG/Interface.pm | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 83a4b1a..1f1e6d5 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -808,7 +808,7 @@ sub test_default_key_passphrase() {
|
||||
|
||||
# all we realy want to check is the status fh
|
||||
while (<$status>) {
|
||||
- if (/^\[GNUPG:\]\s*GOOD_PASSPHRASE/) {
|
||||
+ if (/^\[GNUPG:\]\s*(GOOD_PASSPHRASE|SIG_CREATED)/) {
|
||||
waitpid $pid, 0;
|
||||
return 1;
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 19:52:13 -0400
|
||||
Subject: clean up trailing whitespace
|
||||
|
||||
---
|
||||
lib/GnuPG/Fingerprint.pm | 2 +-
|
||||
lib/GnuPG/Handles.pm | 2 +-
|
||||
lib/GnuPG/Interface.pm | 16 ++++++++--------
|
||||
3 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/lib/GnuPG/Fingerprint.pm b/lib/GnuPG/Fingerprint.pm
|
||||
index fcb1028..81c38a7 100644
|
||||
--- a/lib/GnuPG/Fingerprint.pm
|
||||
+++ b/lib/GnuPG/Fingerprint.pm
|
||||
@@ -20,7 +20,7 @@ with qw(GnuPG::HashInit);
|
||||
|
||||
has as_hex_string => (
|
||||
isa => 'Any',
|
||||
- is => 'rw',
|
||||
+ is => 'rw',
|
||||
);
|
||||
|
||||
sub compare {
|
||||
diff --git a/lib/GnuPG/Handles.pm b/lib/GnuPG/Handles.pm
|
||||
index b30ca57..3eee0e3 100644
|
||||
--- a/lib/GnuPG/Handles.pm
|
||||
+++ b/lib/GnuPG/Handles.pm
|
||||
@@ -73,7 +73,7 @@ GnuPG::Handles - GnuPG handles bundle
|
||||
= ( IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
|
||||
IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
|
||||
);
|
||||
-
|
||||
+
|
||||
my $handles = GnuPG::Handles->new
|
||||
( stdin => $stdin,
|
||||
stdout => $stdout,
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 1f1e6d5..19e8070 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -833,7 +833,7 @@ GnuPG::Interface - Perl interface to GnuPG
|
||||
# A simple example
|
||||
use IO::Handle;
|
||||
use GnuPG::Interface;
|
||||
-
|
||||
+
|
||||
# setting up the situation
|
||||
my $gnupg = GnuPG::Interface->new();
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
@@ -852,7 +852,7 @@ GnuPG::Interface - Perl interface to GnuPG
|
||||
# Now we'll go about encrypting with the options already set
|
||||
my @plaintext = ( 'foobar' );
|
||||
my $pid = $gnupg->encrypt( handles => $handles );
|
||||
-
|
||||
+
|
||||
# Now we write to the input of GnuPG
|
||||
print $input @plaintext;
|
||||
close $input;
|
||||
@@ -1144,7 +1144,7 @@ The following setup can be done before any of the following examples:
|
||||
|
||||
my $handles = GnuPG::Handles->new( stdin => $input,
|
||||
stdout => $output );
|
||||
-
|
||||
+
|
||||
# this sets up the communication
|
||||
# Note that the recipients were specified earlier
|
||||
# in the 'options' data member of the $gnupg object.
|
||||
@@ -1220,7 +1220,7 @@ The following setup can be done before any of the following examples:
|
||||
# a file written to disk
|
||||
# Make sure you "use IO::File" if you use this module!
|
||||
my $cipher_file = IO::File->new( 'encrypted.gpg' );
|
||||
-
|
||||
+
|
||||
# this sets up the communication
|
||||
my $pid = $gnupg->decrypt( handles => $handles );
|
||||
|
||||
@@ -1252,7 +1252,7 @@ The following setup can be done before any of the following examples:
|
||||
# This time we'll just let GnuPG print to our own output
|
||||
# and read from our input, because no input is needed!
|
||||
my $handles = GnuPG::Handles->new();
|
||||
-
|
||||
+
|
||||
my @ids = ( 'ftobin', '0xABCD1234' );
|
||||
|
||||
# this time we need to specify something for
|
||||
@@ -1260,7 +1260,7 @@ The following setup can be done before any of the following examples:
|
||||
# search ids as arguments
|
||||
my $pid = $gnupg->list_public_keys( handles => $handles,
|
||||
command_args => [ @ids ] );
|
||||
-
|
||||
+
|
||||
waitpid $pid, 0;
|
||||
|
||||
=head2 Creating GnuPG::PublicKey Objects
|
||||
@@ -1280,7 +1280,7 @@ The following setup can be done before any of the following examples:
|
||||
command_args => [ qw( test/key.1.asc ) ],
|
||||
handles => $handles,
|
||||
);
|
||||
-
|
||||
+
|
||||
my @out = <$handles->stdout()>;
|
||||
waitpid $pid, 0;
|
||||
|
||||
@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
-GnuPg::Interface is currently maintained by Jesse Vincent <jesse@cpan.org>.
|
||||
+GnuPg::Interface is currently maintained by Jesse Vincent <jesse@cpan.org>.
|
||||
|
||||
Frank J. Tobin, ftobin@cpan.org was the original author of the package.
|
||||
|
@ -1,35 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 19:52:58 -0400
|
||||
Subject: fix capitalization of GnuPG
|
||||
|
||||
---
|
||||
README | 2 +-
|
||||
lib/GnuPG/Interface.pm | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/README b/README
|
||||
index f457577..aa7c984 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -427,7 +427,7 @@ LICENSE
|
||||
under the same terms as Perl itself.
|
||||
|
||||
AUTHOR
|
||||
- GnuPg::Interface is currently maintained by Jesse Vincent
|
||||
+ GnuPG::Interface is currently maintained by Jesse Vincent
|
||||
<jesse@cpan.org>.
|
||||
|
||||
Frank J. Tobin, ftobin@cpan.org was the original author of the package.
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 19e8070..cf7138f 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -1357,7 +1357,7 @@ under the same terms as Perl itself.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
-GnuPg::Interface is currently maintained by Jesse Vincent <jesse@cpan.org>.
|
||||
+GnuPG::Interface is currently maintained by Jesse Vincent <jesse@cpan.org>.
|
||||
|
||||
Frank J. Tobin, ftobin@cpan.org was the original author of the package.
|
||||
|
@ -1,21 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 19:57:10 -0400
|
||||
Subject: ommand_args should be command_args
|
||||
|
||||
---
|
||||
t/list_public_keys.t | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/t/list_public_keys.t b/t/list_public_keys.t
|
||||
index 7e563c1..a36a78b 100644
|
||||
--- a/t/list_public_keys.t
|
||||
+++ b/t/list_public_keys.t
|
||||
@@ -38,7 +38,7 @@ TEST
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->list_public_keys( handles => $handles,
|
||||
- ommand_args => '0xF950DA9C'
|
||||
+ command_args => '0xF950DA9C'
|
||||
);
|
||||
close $stdin;
|
||||
|
@ -1,265 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 20:05:16 -0400
|
||||
Subject: use fingerprints as inputs during tests to demonstrate explicit usage
|
||||
|
||||
---
|
||||
README | 6 +++---
|
||||
lib/GnuPG/Interface.pm | 6 +++---
|
||||
lib/GnuPG/Options.pm | 2 +-
|
||||
t/MyTestSpecific.pm | 2 +-
|
||||
t/encrypt.t | 6 +++---
|
||||
t/export_keys.t | 4 ++--
|
||||
t/get_public_keys.t | 2 +-
|
||||
t/get_secret_keys.t | 2 +-
|
||||
t/list_public_keys.t | 4 ++--
|
||||
t/list_secret_keys.t | 4 ++--
|
||||
t/list_sigs.t | 4 ++--
|
||||
t/sign_and_encrypt.t | 2 +-
|
||||
12 files changed, 22 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/README b/README
|
||||
index aa7c984..ed94ede 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -228,7 +228,7 @@ EXAMPLES
|
||||
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
recipients => [ 'ftobin@uiuc.edu',
|
||||
- '0xABCD1234' ],
|
||||
+ '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
|
||||
meta_interactive => 0 ,
|
||||
);
|
||||
|
||||
@@ -347,7 +347,7 @@ EXAMPLES
|
||||
# and read from our input, because no input is needed!
|
||||
my $handles = GnuPG::Handles->new();
|
||||
|
||||
- my @ids = ( 'ftobin', '0xABCD1234' );
|
||||
+ my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
|
||||
|
||||
# this time we need to specify something for
|
||||
# command_args because --list-public-keys takes
|
||||
@@ -358,7 +358,7 @@ EXAMPLES
|
||||
waitpid $pid, 0;
|
||||
|
||||
Creating GnuPG::PublicKey Objects
|
||||
- my @ids = [ 'ftobin', '0xABCD1234' ];
|
||||
+ my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
|
||||
|
||||
my @keys = $gnupg->get_public_keys( @ids );
|
||||
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index cf7138f..6eaef7d 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -1130,7 +1130,7 @@ The following setup can be done before any of the following examples:
|
||||
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
recipients => [ 'ftobin@uiuc.edu',
|
||||
- '0xABCD1234' ],
|
||||
+ '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ],
|
||||
meta_interactive => 0 ,
|
||||
);
|
||||
|
||||
@@ -1253,7 +1253,7 @@ The following setup can be done before any of the following examples:
|
||||
# and read from our input, because no input is needed!
|
||||
my $handles = GnuPG::Handles->new();
|
||||
|
||||
- my @ids = ( 'ftobin', '0xABCD1234' );
|
||||
+ my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
|
||||
|
||||
# this time we need to specify something for
|
||||
# command_args because --list-public-keys takes
|
||||
@@ -1265,7 +1265,7 @@ The following setup can be done before any of the following examples:
|
||||
|
||||
=head2 Creating GnuPG::PublicKey Objects
|
||||
|
||||
- my @ids = [ 'ftobin', '0xABCD1234' ];
|
||||
+ my @ids = [ 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' ];
|
||||
|
||||
my @keys = $gnupg->get_public_keys( @ids );
|
||||
|
||||
diff --git a/lib/GnuPG/Options.pm b/lib/GnuPG/Options.pm
|
||||
index 86261a0..7788662 100644
|
||||
--- a/lib/GnuPG/Options.pm
|
||||
+++ b/lib/GnuPG/Options.pm
|
||||
@@ -198,7 +198,7 @@ GnuPG::Options - GnuPG options embodiment
|
||||
|
||||
# assuming $gnupg is a GnuPG::Interface object
|
||||
$gnupg->options->armor( 1 );
|
||||
- $gnupg->options->push_recipients( 'ftobin', '0xABCD1234' );
|
||||
+ $gnupg->options->push_recipients( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
|
||||
index a309698..c8764cc 100644
|
||||
--- a/t/MyTestSpecific.pm
|
||||
+++ b/t/MyTestSpecific.pm
|
||||
@@ -46,7 +46,7 @@ $gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
|
||||
$gnupg->options->hash_init( homedir => 'test/gnupghome',
|
||||
armor => 1,
|
||||
meta_interactive => 0,
|
||||
- meta_signing_key_id => '0xF950DA9C',
|
||||
+ meta_signing_key_id => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
|
||||
always_trust => 1,
|
||||
);
|
||||
|
||||
diff --git a/t/encrypt.t b/t/encrypt.t
|
||||
index 3183ac4..e6bdc08 100644
|
||||
--- a/t/encrypt.t
|
||||
+++ b/t/encrypt.t
|
||||
@@ -27,7 +27,7 @@ TEST
|
||||
|
||||
$gnupg->options->clear_recipients();
|
||||
$gnupg->options->clear_meta_recipients_keys();
|
||||
- $gnupg->options->push_recipients( '0x2E854A6B' );
|
||||
+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
|
||||
|
||||
my $pid = $gnupg->encrypt( handles => $handles );
|
||||
|
||||
@@ -43,7 +43,7 @@ TEST
|
||||
{
|
||||
reset_handles();
|
||||
|
||||
- my @keys = $gnupg->get_public_keys( '0xF950DA9C' );
|
||||
+ my @keys = $gnupg->get_public_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
$gnupg->options->clear_recipients();
|
||||
$gnupg->options->clear_meta_recipients_keys();
|
||||
$gnupg->options->push_meta_recipients_keys( @keys );
|
||||
@@ -64,7 +64,7 @@ TEST
|
||||
|
||||
$gnupg->options->clear_recipients();
|
||||
$gnupg->options->clear_meta_recipients_keys();
|
||||
- $gnupg->options->push_recipients( '0x2E854A6B' );
|
||||
+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
|
||||
|
||||
$handles->stdin( $texts{plain}->fh() );
|
||||
$handles->options( 'stdin' )->{direct} = 1;
|
||||
diff --git a/t/export_keys.t b/t/export_keys.t
|
||||
index cf5c82b..5add064 100644
|
||||
--- a/t/export_keys.t
|
||||
+++ b/t/export_keys.t
|
||||
@@ -15,7 +15,7 @@ TEST
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->export_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C' );
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
close $stdin;
|
||||
waitpid $pid, 0;
|
||||
|
||||
@@ -31,7 +31,7 @@ TEST
|
||||
$handles->options( 'stdout' )->{direct} = 1;
|
||||
|
||||
my $pid = $gnupg->export_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C' );
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
waitpid $pid, 0;
|
||||
return $CHILD_ERROR == 0;
|
||||
};
|
||||
diff --git a/t/get_public_keys.t b/t/get_public_keys.t
|
||||
index 9e96f7d..7893625 100644
|
||||
--- a/t/get_public_keys.t
|
||||
+++ b/t/get_public_keys.t
|
||||
@@ -19,7 +19,7 @@ TEST
|
||||
{
|
||||
reset_handles();
|
||||
|
||||
- my @returned_keys = $gnupg->get_public_keys_with_sigs( '0xF950DA9C' );
|
||||
+ my @returned_keys = $gnupg->get_public_keys_with_sigs( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
|
||||
return 0 unless @returned_keys == 1;
|
||||
|
||||
diff --git a/t/get_secret_keys.t b/t/get_secret_keys.t
|
||||
index c798cce..a7f1348 100644
|
||||
--- a/t/get_secret_keys.t
|
||||
+++ b/t/get_secret_keys.t
|
||||
@@ -18,7 +18,7 @@ TEST
|
||||
{
|
||||
reset_handles();
|
||||
|
||||
- my @returned_keys = $gnupg->get_secret_keys( '0xF950DA9C' );
|
||||
+ my @returned_keys = $gnupg->get_secret_keys( '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
|
||||
return 0 unless @returned_keys == 1;
|
||||
|
||||
diff --git a/t/list_public_keys.t b/t/list_public_keys.t
|
||||
index a36a78b..622b092 100644
|
||||
--- a/t/list_public_keys.t
|
||||
+++ b/t/list_public_keys.t
|
||||
@@ -38,7 +38,7 @@ TEST
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->list_public_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C'
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C'
|
||||
);
|
||||
close $stdin;
|
||||
|
||||
@@ -64,7 +64,7 @@ TEST
|
||||
$handles->options( 'stdout' )->{direct} = 1;
|
||||
|
||||
my $pid = $gnupg->list_public_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C',
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
|
||||
);
|
||||
|
||||
waitpid $pid, 0;
|
||||
diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
|
||||
index 51e3651..7040c38 100644
|
||||
--- a/t/list_secret_keys.t
|
||||
+++ b/t/list_secret_keys.t
|
||||
@@ -55,7 +55,7 @@ TEST
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->list_secret_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C' );
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
close $stdin;
|
||||
|
||||
$outfile = 'test/secret-keys/2.out';
|
||||
@@ -80,7 +80,7 @@ TEST
|
||||
$handles->options( 'stdout' )->{direct} = 1;
|
||||
|
||||
my $pid = $gnupg->list_secret_keys( handles => $handles,
|
||||
- command_args => '0xF950DA9C' );
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C' );
|
||||
|
||||
waitpid $pid, 0;
|
||||
|
||||
diff --git a/t/list_sigs.t b/t/list_sigs.t
|
||||
index 16cfa6a..1301fb2 100644
|
||||
--- a/t/list_sigs.t
|
||||
+++ b/t/list_sigs.t
|
||||
@@ -36,7 +36,7 @@ TEST
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->list_sigs( handles => $handles,
|
||||
- command_args => '0xF950DA9C',
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
|
||||
);
|
||||
close $stdin;
|
||||
|
||||
@@ -60,7 +60,7 @@ TEST
|
||||
$handles->options( 'stdout' )->{direct} = 1;
|
||||
|
||||
my $pid = $gnupg->list_sigs( handles => $handles,
|
||||
- command_args => '0xF950DA9C',
|
||||
+ command_args => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
|
||||
);
|
||||
|
||||
waitpid $pid, 0;
|
||||
diff --git a/t/sign_and_encrypt.t b/t/sign_and_encrypt.t
|
||||
index 5dc1c08..df0fc75 100644
|
||||
--- a/t/sign_and_encrypt.t
|
||||
+++ b/t/sign_and_encrypt.t
|
||||
@@ -14,7 +14,7 @@ TEST
|
||||
{
|
||||
reset_handles();
|
||||
|
||||
- $gnupg->options->push_recipients( '0x2E854A6B' );
|
||||
+ $gnupg->options->push_recipients( '0x7466B7E98C4CCB64C2CE738BADB99D9C2E854A6B' );
|
||||
my $pid = $gnupg->sign_and_encrypt( handles => $handles );
|
||||
|
||||
print $stdin @{ $texts{plain}->data() };
|
@ -1,33 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 20:17:49 -0400
|
||||
Subject: move key files to generic names
|
||||
|
||||
---
|
||||
t/000_setup.t | 2 +-
|
||||
test/{pubring.gpg => public_keys.pgp} | Bin
|
||||
test/{secring.gpg => secret_keys.pgp} | Bin
|
||||
3 files changed, 1 insertion(+), 1 deletion(-)
|
||||
rename test/{pubring.gpg => public_keys.pgp} (100%)
|
||||
rename test/{secring.gpg => secret_keys.pgp} (100%)
|
||||
|
||||
diff --git a/t/000_setup.t b/t/000_setup.t
|
||||
index 7f7f7b0..a8e3042 100644
|
||||
--- a/t/000_setup.t
|
||||
+++ b/t/000_setup.t
|
||||
@@ -19,7 +19,7 @@ TEST
|
||||
copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
|
||||
reset_handles();
|
||||
|
||||
- my $pid = $gnupg->import_keys(command_args => [ 'test/pubring.gpg', 'test/secring.gpg' ],
|
||||
+ my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
|
||||
options => [ 'batch'],
|
||||
handles => $handles);
|
||||
waitpid $pid, 0;
|
||||
diff --git a/test/pubring.gpg b/test/public_keys.pgp
|
||||
similarity index 100%
|
||||
rename from test/pubring.gpg
|
||||
rename to test/public_keys.pgp
|
||||
diff --git a/test/secring.gpg b/test/secret_keys.pgp
|
||||
similarity index 100%
|
||||
rename from test/secring.gpg
|
||||
rename to test/secret_keys.pgp
|
@ -1,53 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 20:25:48 -0400
|
||||
Subject: fix spelling: s/convience/convenience/
|
||||
|
||||
---
|
||||
README | 4 ++--
|
||||
lib/GnuPG/Interface.pm | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/README b/README
|
||||
index ed94ede..a05ef9b 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -143,7 +143,7 @@ OBJECT METHODS
|
||||
does not come into play. If the passphrase data member handle of the
|
||||
handles object is not defined, but the the passphrase data member
|
||||
handle of GnuPG::Interface object is, GnuPG::Interface will handle
|
||||
- passing this information into GnuPG for the user as a convience.
|
||||
+ passing this information into GnuPG for the user as a convenience.
|
||||
Note that this will result in GnuPG::Interface storing the
|
||||
passphrase in memory, instead of having it simply 'pass-through' to
|
||||
GnuPG via a handle.
|
||||
@@ -271,7 +271,7 @@ EXAMPLES
|
||||
);
|
||||
|
||||
# indicate our pasphrase through the
|
||||
- # convience method
|
||||
+ # convenience method
|
||||
$gnupg->passphrase( $passphrase );
|
||||
|
||||
# this sets up the communication
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 6eaef7d..29205f0 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -1008,7 +1008,7 @@ and so this information is not generated and does not come into play.
|
||||
If the B<passphrase> data member handle of the B<handles> object
|
||||
is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
|
||||
object is, GnuPG::Interface will handle passing this information into GnuPG
|
||||
-for the user as a convience. Note that this will result in
|
||||
+for the user as a convenience. Note that this will result in
|
||||
GnuPG::Interface storing the passphrase in memory, instead of having
|
||||
it simply 'pass-through' to GnuPG via a handle.
|
||||
|
||||
@@ -1175,7 +1175,7 @@ The following setup can be done before any of the following examples:
|
||||
);
|
||||
|
||||
# indicate our pasphrase through the
|
||||
- # convience method
|
||||
+ # convenience method
|
||||
$gnupg->passphrase( $passphrase );
|
||||
|
||||
# this sets up the communication
|
@ -1,117 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 20:59:43 -0400
|
||||
Subject: added new secret key with different passphrase
|
||||
|
||||
Adding a new secret key with a different passphrase should allow us to
|
||||
differentiate between passing the passphrase explicitly and relying on
|
||||
the agent + pinentry.
|
||||
---
|
||||
t/000_setup.t | 2 +-
|
||||
test/new_secret.pgp | 58 ++++++++++++++++++++++++++++++++++++++++++
|
||||
test/secret-keys/1.0.test | 4 +++
|
||||
test/secret-keys/1.modern.test | 5 ++++
|
||||
4 files changed, 68 insertions(+), 1 deletion(-)
|
||||
create mode 100644 test/new_secret.pgp
|
||||
|
||||
diff --git a/t/000_setup.t b/t/000_setup.t
|
||||
index a8e3042..b183241 100644
|
||||
--- a/t/000_setup.t
|
||||
+++ b/t/000_setup.t
|
||||
@@ -19,7 +19,7 @@ TEST
|
||||
copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
|
||||
reset_handles();
|
||||
|
||||
- my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp' ],
|
||||
+ my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp', 'test/new_secret.pgp' ],
|
||||
options => [ 'batch'],
|
||||
handles => $handles);
|
||||
waitpid $pid, 0;
|
||||
diff --git a/test/new_secret.pgp b/test/new_secret.pgp
|
||||
new file mode 100644
|
||||
index 0000000..5feb72c
|
||||
--- /dev/null
|
||||
+++ b/test/new_secret.pgp
|
||||
@@ -0,0 +1,58 @@
|
||||
+-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
+
|
||||
+lQPGBFf9iNIBCACZGF36JFTAggUJK85gweUquqh0kvVQICUtyiHXFXBBPzCK+RWL
|
||||
+oc5yeOfILHH7FfOztwPH1oJ7SWQtOgpuoiMHPtF7ne+MYevMf9jTYb/xCT0yZID5
|
||||
+/ieoHwUQQPiowxGewOww23RLQ1Cf46nqGBUD+fsWwT2Eq6ojLp/H72h+2lQ1ZCWd
|
||||
+Q/9MSQQgDo5tWptokFGmLBKCS59pYMBaLbKSj7lFa/ekPm9zhcdmmLrLHCS9rIUP
|
||||
+VKlWAg02MVmMB4fYm9nbtuwYHWvbDFYzpVr2WNlRZlPy0Y46ahxFbFwhtmOJAgT1
|
||||
+tgaQtDXo3kXRXngYZstDfe61Hqmc44j1vJ4VABEBAAH+BwMCnvb4v9vnhhzmdZdJ
|
||||
+EzK3ikXYQp3PcOMDlRE5qtBmXhOJXH2tdEmXjegjWGA501eeoks0VnpBba2m4B36
|
||||
+Z37fjpOEi4QOuTn6emVwijJZgmmTAC7JHNzAW+IsiRvk/2907UZCwa/1UQpC0bik
|
||||
+pHTZx+yKp33vGbkbCkKgHFQoHcS9D1by0WOkaLSlcE9CUCKb5LCe2Q1KDwZGrg60
|
||||
+4WUvg9eM2eatixAyOJEoRONlXDcQnUhSnG5+TUPNhVVWIaM/tPAgYmBG5oCSJ/N0
|
||||
+ls8cXoOVup/itBHo2Bfn+nyh0OAWdgdVmB0rPYUCLJV0FiQx5tB59OHmA3Naokj5
|
||||
+rvumyklCg314NnkEXrbPq7kKbX0X8UPoXdzAmalb4++OhgzEwd3NkWxvFSxKkQAt
|
||||
+XAU5i9XNHJXLwATAMlEaXMBmfcpjyIx4WpBUSmYMTjh0Nu5ee+kGvMY9fUxOKbet
|
||||
+IS9agFSMwVNRsX91+pKtBCQc7Je5tIrLhC8Hbvotn0GA8iFgu6LBqkrUO9Rh30Xs
|
||||
+vzz3oXm7WgHbL30m9h+rJ2dmPZOwmW/0zRUec/7alizx0T4sLx7T0qUPUxeEjkeU
|
||||
+JWtqfrcXEc3xIR9r5S2xqsUSKx6h1UhHMeMtQaDBgeH/Syq7a2gnkNoY84xxojGj
|
||||
+lGkis5PF3xFpYqvjY0thyPFNxQguRlqktN8gNB+V1dShbCpNI9bDzv4pzvogEiM0
|
||||
+EM/xvJSCkARCe6nqOugWV8j5f3+9tuyREqcidHq+PR+USoNYdUWQO14kPY6e62wO
|
||||
+lC5B4G7TDQtigCfOyEOiPXYC/qnC8sPVR2u5bCYm2YJT7L+rYRLSN+628qz7BwH3
|
||||
+9XtpnRtBFWpjI5qjn4uMM42e3k5UVB/r4GyrLXhEuO8D81TVzRQhjiqLweguk73h
|
||||
+VDjEd0yachHbtCxHbnVQRzo6SW50ZXJmYWNlIFRlc3Qga2V5IDx0ZXN0QGV4YW1w
|
||||
+bGUub3JnPokBNwQTAQgAIQUCV/2I0gIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIX
|
||||
+gAAKCRAbkTzptnR93EZkB/9groVsVMBJtGP1GSFMg2Q9loyijXT2P6hCbUTS4YMz
|
||||
+O4jQPB8UQ39XIhyWo7hVGsXeA777+7VTto7q0CG9Ph7FTGKK8W2AnzTUKNdXAC6h
|
||||
+qIc+ymvlm71GxhkKFR0vDbFg6CLJ/MX/x1Bd0TKh4RZtgOqX6A7Pzw/AI7f2YJcJ
|
||||
+BKPT+/q/F/Wp1r+mxZ5pxUvYm643GVzdnbtuoqgBLng/3n1zjIz+oIz6RGBjzHni
|
||||
+3TUTKe//ewn1lIdTxPdUZA9G4vTE5dCnM4MHTxQSXA+aUexuONswQhiANtfVCW8c
|
||||
+sf9MQpkQ/Vqv9hfeYwH4pJ8IPK1No9F0a0fvnq2JaX4gnQPGBFf9iNIBCADEQ6HK
|
||||
+s5tWN2Ph/3A6D0A2nSc6m1Mh/AXhdptka0aPhhVgspCmQ1lJP/Kdf6AnlCi6u1G7
|
||||
+QXvGX8OtbKNosLi91nIqvNwckUOvXrLcAk/epkmidopOuHUZhE+1UaLKs7UssBOe
|
||||
+TQTtADdl2786E3qbtaNrjDTvbNesU1DEZjNoBWfKYHZYv2wCF170Lwzp7NJhAueO
|
||||
+bTwfUO8EusST6d1NYB0zFxbBi60/hJHCfcAuaSn00jFQ+kj8m7jXCgcyB+1+25d2
|
||||
+gpPbs19S4pi9f7eQflhglm0wB13C6yl+YgwVZQxU/fU70jgSYhkXNPx5bEN3WGkg
|
||||
+4hnP53hrsI4p3se1ABEBAAH+BwMCAppvwSTp9Y/mu317D14a9k6m/zC2LrzPx6dl
|
||||
+P3GtDJUCs1CVH/wXsUxLY4hAgS188xPhNLuIWuXwQ7qX7E8kanxgPqeK7NTAPKxH
|
||||
+CEqJPevFRBtftHq3zqZZF9CHXulDO3KkWxIHANMclq+zcUotrc4GXIxeYjewXv9p
|
||||
+tzKEjlt27Q00VvwRM7JVxBlC3xJvKXf6zyRoUt2/Clq+CFkb2s+dAzCI52o7tlB9
|
||||
+El84sTIlJr0+b6+GcwrKonS8HcGUECfYmSiIiNmxlkJ/4OabDlDYlzvmCYv2pMjc
|
||||
+Bif70Dowb8TBD/iTFLPY2lkhqBFi3Bcqc51MVecaQk3rRbVyOqhvGaRE084/LmkN
|
||||
+gkE6vQKRSbzRmYwyKC/QUKOW5qbl5Jf3lrjVeM5tEnvJeRCfZEokKjIZul4nX4dK
|
||||
+zxH+l+sCUA+RnEeGB2y1yhnPkP4dYHEb8iMLINqXQd18FpBFSs9yv9tFWJhdblUK
|
||||
+SiS8DXmuoZI2Mk8yMZ0j0bi8mu9eh52dqYgBGD7TgjP5vpYU/zbtpNgMP0Zvne1X
|
||||
+gig6NKK1+3VAZaiOvYUUHZERJGp/eggTtF66cD/0EHJjoZ/0pAciEvWYUyXWVBdj
|
||||
+eVWBZE/RVOwrTMBVtrxQsPJ3sfeGlLt21IZYKathTZ/dn5PSlU+i4f9VyC/hHd8S
|
||||
+xouQU3nB//ihbrR65YH5E53e8+jPaRtFvLbcqmY8YftV0y/5BZwduZoxcOtxD3A0
|
||||
+J/2GVpUhs3WngCksdUAEbrEXzKKSOC7b4KDw2sTIT5xHra4CBK5L5N85ny8tG7A6
|
||||
+wmTt+6PHo51gx/W/0jiMB3rEiGoTZ86uWLaGv5SgqLP49euCIEXNKK9srFK3o7QE
|
||||
+04upH9zOXR8ytvPOLy/K5zT6YH2eyNs19sWfjAfP/bxhnrDYajsZ2WKZiQEfBBgB
|
||||
+CAAJBQJX/YjSAhsMAAoJEBuRPOm2dH3c+6kH+wWoEqTlPdPLZcTN8I5a6HHD0Ul8
|
||||
+7xt3OtiRFoMD2M+zgLvImaj8AULap4w/0G+J+7PCUER8JhcePSzLbizfpTczbDP2
|
||||
+E1LhEM8IBE6GT8yL8VB9AL1xW+hXIi5sWW/f900deOhoh7ikrP7KxT0c8zQjaaqV
|
||||
+n6bio93CvZ3yBqMO20apwWDyiSoBpXVjLrW00BdL8i9Rsf6v5UwIIy9o7pfjK5zo
|
||||
+mAZM2dKzlp9z4q5P6yE4aXI0bHz+XvG7hdpkHmjG5A+EQCnN2qoDNIA4QiRhH8TQ
|
||||
+aTaj4AlCiCAV2hEelPYve5QKccAsfC//qr+FMF+0bhZa05X2afxLYtku0Ms=
|
||||
+=ftgB
|
||||
+-----END PGP PRIVATE KEY BLOCK-----
|
||||
diff --git a/test/secret-keys/1.0.test b/test/secret-keys/1.0.test
|
||||
index 129d472..f8239a9 100644
|
||||
--- a/test/secret-keys/1.0.test
|
||||
+++ b/test/secret-keys/1.0.test
|
||||
@@ -5,3 +5,7 @@ uid GnuPG test key (for testing purposes only)
|
||||
uid Foo Bar (1)
|
||||
ssb 768g/2E854A6B 2000-02-06
|
||||
|
||||
+sec 2048R/B6747DDC 2016-10-12
|
||||
+uid GnuPG::Interface Test key <test@example.org>
|
||||
+ssb 2048R/AE441D0F 2016-10-12
|
||||
+
|
||||
diff --git a/test/secret-keys/1.modern.test b/test/secret-keys/1.modern.test
|
||||
index 3e46407..42b27a1 100644
|
||||
--- a/test/secret-keys/1.modern.test
|
||||
+++ b/test/secret-keys/1.modern.test
|
||||
@@ -6,3 +6,8 @@ uid [ unknown] GnuPG test key (for testing purposes only)
|
||||
uid [ unknown] Foo Bar (1)
|
||||
ssb elg768 2000-02-06 [E]
|
||||
|
||||
+sec rsa2048 2016-10-12 [SC]
|
||||
+ 278F850AA702911F1318F0A61B913CE9B6747DDC
|
||||
+uid [ unknown] GnuPG::Interface Test key <test@example.org>
|
||||
+ssb rsa2048 2016-10-12 [E]
|
||||
+
|
@ -1,302 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Tue, 11 Oct 2016 21:29:22 -0400
|
||||
Subject: Test use of gpg without explicit passphrase (agent+pinentry)
|
||||
|
||||
The modern GnuPG suite encourages the use of gpg-agent to control
|
||||
access to secret key material. In this use case, we avoid setting an
|
||||
explicit passphrase in code, and rely on either a correctly-configured
|
||||
and primed gpg-agent or a dedicated pinentry program to supply the
|
||||
passphrase.
|
||||
|
||||
This additional test verifies that the passphrase can be handled by
|
||||
the agent. Note that the passphrase for this additional test key is
|
||||
*not* the default passphrase, so this test should fail in the event
|
||||
that gpg can't use the agent and the pinentry for this task.
|
||||
|
||||
Unfortunately, this all assumes that we're using GnuPG "Modern". I've
|
||||
noted concerns about writing forward- and backward-compatible bindings
|
||||
for GnuPG here:
|
||||
https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html
|
||||
---
|
||||
README | 41 +++++++++++++++++++++++++++--------------
|
||||
lib/GnuPG/Interface.pm | 26 +++++++++++++++++++++++++-
|
||||
t/MyTestSpecific.pm | 10 ++++++++--
|
||||
t/decrypt.t | 27 +++++++++++++++++++++++++++
|
||||
test/encrypted.2.gpg | 12 ++++++++++++
|
||||
test/fake-pinentry.pl | 2 +-
|
||||
test/plain.2.txt | 1 +
|
||||
7 files changed, 101 insertions(+), 18 deletions(-)
|
||||
create mode 100644 test/encrypted.2.gpg
|
||||
create mode 100644 test/plain.2.txt
|
||||
|
||||
diff --git a/README b/README
|
||||
index a05ef9b..be06ef3 100644
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -5,7 +5,7 @@ SYNOPSIS
|
||||
# A simple example
|
||||
use IO::Handle;
|
||||
use GnuPG::Interface;
|
||||
-
|
||||
+
|
||||
# setting up the situation
|
||||
my $gnupg = GnuPG::Interface->new();
|
||||
$gnupg->options->hash_init( armor => 1,
|
||||
@@ -24,7 +24,7 @@ SYNOPSIS
|
||||
# Now we'll go about encrypting with the options already set
|
||||
my @plaintext = ( 'foobar' );
|
||||
my $pid = $gnupg->encrypt( handles => $handles );
|
||||
-
|
||||
+
|
||||
# Now we write to the input of GnuPG
|
||||
print $input @plaintext;
|
||||
close $input;
|
||||
@@ -140,13 +140,26 @@ OBJECT METHODS
|
||||
standard error, standard output, or standard error. If the status or
|
||||
logger handle is not defined, this channel of communication is never
|
||||
established with GnuPG, and so this information is not generated and
|
||||
- does not come into play. If the passphrase data member handle of the
|
||||
- handles object is not defined, but the the passphrase data member
|
||||
- handle of GnuPG::Interface object is, GnuPG::Interface will handle
|
||||
- passing this information into GnuPG for the user as a convenience.
|
||||
- Note that this will result in GnuPG::Interface storing the
|
||||
- passphrase in memory, instead of having it simply 'pass-through' to
|
||||
- GnuPG via a handle.
|
||||
+ does not come into play.
|
||||
+
|
||||
+ If the passphrase data member handle of the handles object is not
|
||||
+ defined, but the the passphrase data member handle of
|
||||
+ GnuPG::Interface object is, GnuPG::Interface will handle passing
|
||||
+ this information into GnuPG for the user as a convenience. Note that
|
||||
+ this will result in GnuPG::Interface storing the passphrase in
|
||||
+ memory, instead of having it simply 'pass-through' to GnuPG via a
|
||||
+ handle.
|
||||
+
|
||||
+ If neither the passphrase data member of the GnuPG::Interface nor
|
||||
+ the passphrase data member of the handles object is defined, then
|
||||
+ GnuPG::Interface assumes that access and control over the secret key
|
||||
+ will be handled by the running gpg-agent process. This represents
|
||||
+ the simplest mode of operation with the GnuPG "modern" suite
|
||||
+ (version 2.1 and later). It is also the preferred mode for tools
|
||||
+ intended to be user-facing, since the user will be prompted directly
|
||||
+ by gpg-agent for use of the secret key material. Note that for
|
||||
+ programmatic use, this mode requires the gpg-agent and pinentry to
|
||||
+ already be correctly configured.
|
||||
|
||||
Other Methods
|
||||
get_public_keys( @search_strings )
|
||||
@@ -241,7 +254,7 @@ EXAMPLES
|
||||
|
||||
my $handles = GnuPG::Handles->new( stdin => $input,
|
||||
stdout => $output );
|
||||
-
|
||||
+
|
||||
# this sets up the communication
|
||||
# Note that the recipients were specified earlier
|
||||
# in the 'options' data member of the $gnupg object.
|
||||
@@ -315,7 +328,7 @@ EXAMPLES
|
||||
# a file written to disk
|
||||
# Make sure you "use IO::File" if you use this module!
|
||||
my $cipher_file = IO::File->new( 'encrypted.gpg' );
|
||||
-
|
||||
+
|
||||
# this sets up the communication
|
||||
my $pid = $gnupg->decrypt( handles => $handles );
|
||||
|
||||
@@ -346,7 +359,7 @@ EXAMPLES
|
||||
# This time we'll just let GnuPG print to our own output
|
||||
# and read from our input, because no input is needed!
|
||||
my $handles = GnuPG::Handles->new();
|
||||
-
|
||||
+
|
||||
my @ids = ( 'ftobin', '0xABCD1234ABCD1234ABCD1234ABCD1234ABCD1234' );
|
||||
|
||||
# this time we need to specify something for
|
||||
@@ -354,7 +367,7 @@ EXAMPLES
|
||||
# search ids as arguments
|
||||
my $pid = $gnupg->list_public_keys( handles => $handles,
|
||||
command_args => [ @ids ] );
|
||||
-
|
||||
+
|
||||
waitpid $pid, 0;
|
||||
|
||||
Creating GnuPG::PublicKey Objects
|
||||
@@ -372,7 +385,7 @@ EXAMPLES
|
||||
command_args => [ qw( test/key.1.asc ) ],
|
||||
handles => $handles,
|
||||
);
|
||||
-
|
||||
+
|
||||
my @out = <$handles->stdout()>;
|
||||
waitpid $pid, 0;
|
||||
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 29205f0..5d8b0ec 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -106,6 +106,14 @@ sub fork_attach_exec( $% ) {
|
||||
my ( $self, %args ) = @_;
|
||||
|
||||
my $handles = $args{handles} or croak 'no GnuPG::Handles passed';
|
||||
+ my $use_loopback_pinentry = 0;
|
||||
+
|
||||
+ # WARNING: this assumes that we're using the "modern" GnuPG suite
|
||||
+ # -- version 2.1.x or later. It's not clear to me how we can
|
||||
+ # safely and efficiently avoid this assumption (see
|
||||
+ # https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html)
|
||||
+ $use_loopback_pinentry = 1
|
||||
+ if ($handles->passphrase());
|
||||
|
||||
# deprecation support
|
||||
$args{commands} ||= $args{gnupg_commands};
|
||||
@@ -293,8 +301,12 @@ sub fork_attach_exec( $% ) {
|
||||
$self->options->$option($fileno);
|
||||
}
|
||||
|
||||
+ my @args = $self->options->get_args();
|
||||
+ push @args, '--pinentry-mode', 'loopback'
|
||||
+ if $use_loopback_pinentry;
|
||||
+
|
||||
my @command = (
|
||||
- $self->call(), $self->options->get_args(),
|
||||
+ $self->call(), @args,
|
||||
@commands, @command_args
|
||||
);
|
||||
|
||||
@@ -1005,6 +1017,7 @@ and standard error will be tied to the running program's standard error,
|
||||
standard output, or standard error. If the B<status> or B<logger> handle
|
||||
is not defined, this channel of communication is never established with GnuPG,
|
||||
and so this information is not generated and does not come into play.
|
||||
+
|
||||
If the B<passphrase> data member handle of the B<handles> object
|
||||
is not defined, but the the B<passphrase> data member handle of GnuPG::Interface
|
||||
object is, GnuPG::Interface will handle passing this information into GnuPG
|
||||
@@ -1012,6 +1025,17 @@ for the user as a convenience. Note that this will result in
|
||||
GnuPG::Interface storing the passphrase in memory, instead of having
|
||||
it simply 'pass-through' to GnuPG via a handle.
|
||||
|
||||
+If neither the B<passphrase> data member of the GnuPG::Interface nor
|
||||
+the B<passphrase> data member of the B<handles> object is defined,
|
||||
+then GnuPG::Interface assumes that access and control over the secret
|
||||
+key will be handled by the running gpg-agent process. This represents
|
||||
+the simplest mode of operation with the GnuPG "modern" suite (version
|
||||
+2.1 and later). It is also the preferred mode for tools intended to
|
||||
+be user-facing, since the user will be prompted directly by gpg-agent
|
||||
+for use of the secret key material. Note that for programmatic use,
|
||||
+this mode requires the gpg-agent and pinentry to already be correctly
|
||||
+configured.
|
||||
+
|
||||
=back
|
||||
|
||||
=head2 Other Methods
|
||||
diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
|
||||
index c8764cc..e513c25 100644
|
||||
--- a/t/MyTestSpecific.pm
|
||||
+++ b/t/MyTestSpecific.pm
|
||||
@@ -55,9 +55,15 @@ struct( Text => { fn => "\$", fh => "\$", data => "\$" } );
|
||||
$texts{plain} = Text->new();
|
||||
$texts{plain}->fn( 'test/plain.1.txt' );
|
||||
|
||||
+$texts{alt_plain} = Text->new();
|
||||
+$texts{alt_plain}->fn( 'test/plain.2.txt' );
|
||||
+
|
||||
$texts{encrypted} = Text->new();
|
||||
$texts{encrypted}->fn( 'test/encrypted.1.gpg' );
|
||||
|
||||
+$texts{alt_encrypted} = Text->new();
|
||||
+$texts{alt_encrypted}->fn( 'test/encrypted.2.gpg' );
|
||||
+
|
||||
$texts{signed} = Text->new();
|
||||
$texts{signed}->fn( 'test/signed.1.asc' );
|
||||
|
||||
@@ -68,7 +74,7 @@ $texts{temp} = Text->new();
|
||||
$texts{temp}->fn( 'test/temp' );
|
||||
|
||||
|
||||
-foreach my $name ( qw( plain encrypted signed key ) )
|
||||
+foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
|
||||
{
|
||||
my $entry = $texts{$name};
|
||||
my $filename = $entry->fn();
|
||||
@@ -90,7 +96,7 @@ sub reset_handles
|
||||
stderr => $stderr
|
||||
);
|
||||
|
||||
- foreach my $name ( qw( plain encrypted signed key ) )
|
||||
+ foreach my $name ( qw( plain alt_plain encrypted alt_encrypted signed key ) )
|
||||
{
|
||||
my $entry = $texts{$name};
|
||||
my $filename = $entry->fn();
|
||||
diff --git a/t/decrypt.t b/t/decrypt.t
|
||||
index b2639ed..ee41448 100644
|
||||
--- a/t/decrypt.t
|
||||
+++ b/t/decrypt.t
|
||||
@@ -58,3 +58,30 @@ TEST
|
||||
{
|
||||
return compare( $texts{plain}->fn(), $texts{temp}->fn() ) == 0;
|
||||
};
|
||||
+
|
||||
+
|
||||
+# test without default_passphrase (that is, by using the agent)
|
||||
+TEST
|
||||
+{
|
||||
+ reset_handles();
|
||||
+
|
||||
+ $handles->stdin( $texts{alt_encrypted}->fh() );
|
||||
+ $handles->options( 'stdin' )->{direct} = 1;
|
||||
+
|
||||
+ $handles->stdout( $texts{temp}->fh() );
|
||||
+ $handles->options( 'stdout' )->{direct} = 1;
|
||||
+
|
||||
+ $gnupg->clear_passphrase();
|
||||
+
|
||||
+ my $pid = $gnupg->decrypt( handles => $handles );
|
||||
+
|
||||
+ waitpid $pid, 0;
|
||||
+
|
||||
+ return $CHILD_ERROR == 0;
|
||||
+};
|
||||
+
|
||||
+
|
||||
+TEST
|
||||
+{
|
||||
+ return compare( $texts{alt_plain}->fn(), $texts{temp}->fn() ) == 0;
|
||||
+};
|
||||
diff --git a/test/encrypted.2.gpg b/test/encrypted.2.gpg
|
||||
new file mode 100644
|
||||
index 0000000..105cbb3
|
||||
--- /dev/null
|
||||
+++ b/test/encrypted.2.gpg
|
||||
@@ -0,0 +1,12 @@
|
||||
+-----BEGIN PGP MESSAGE-----
|
||||
+
|
||||
+hQEMAw3NS2KuRB0PAQgAuCMQO6blPRIJZib+kDa51gac+BYPl8caXYTLqIHtiz2/
|
||||
+YRVqePJON4lNAqT6qUksIzQHtejFO6tb1SLqgX9Ti+fKAMLrQw9VGOYaJFoRrTJs
|
||||
++X33S4GHVVikRTu0dydAsekbfPSc2nRmTFUlSEV3psgAmg9xy8KA6cZroK9Xfcuh
|
||||
+xW7KLE0hLP+2NZ7zNmJMdu6LDGzvlQsnm1UeElXK8XdMGf8kA3R+GgeeOnR/oEQc
|
||||
+Uep77k/fLc+UV4fp9Dk1OBeg3Ko/irSaefk4mU7F4HmS8jIERHRvXBTiur1Zx8Nx
|
||||
+9U3fcQuc+P9+JC89iS4PJPF1Hr0MlezAghZYJrhOrtJIAe5Uaft5KMGRfy0VQnAs
|
||||
+MHqGnGtzzVWK6GK83ibgG4tTfPEHHIgNFsJf3rM4cWklUmCS9TeeDJJZfhnRA6+/
|
||||
+X82e6OI7QNbO
|
||||
+=DlGE
|
||||
+-----END PGP MESSAGE-----
|
||||
diff --git a/test/fake-pinentry.pl b/test/fake-pinentry.pl
|
||||
index 12d3611..40b8b08 100755
|
||||
--- a/test/fake-pinentry.pl
|
||||
+++ b/test/fake-pinentry.pl
|
||||
@@ -21,7 +21,7 @@ while (<STDIN>) {
|
||||
chomp;
|
||||
next if (/^$/);
|
||||
next if (/^#/);
|
||||
- print ("D test\n") if (/^getpin/i);
|
||||
+ print ("D supercalifragilisticexpialidocious\n") if (/^getpin/i);
|
||||
print "OK\n";
|
||||
exit if (/^bye/i);
|
||||
}
|
||||
diff --git a/test/plain.2.txt b/test/plain.2.txt
|
||||
new file mode 100644
|
||||
index 0000000..da5a1d5
|
||||
--- /dev/null
|
||||
+++ b/test/plain.2.txt
|
||||
@@ -0,0 +1 @@
|
||||
+test message
|
@ -1,42 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Thu, 25 May 2017 16:07:45 -0400
|
||||
Subject: Kill any GnuPG agent before and after the test suite.
|
||||
|
||||
This helps to ensure that the test suite daemon is started fresh at
|
||||
every test suite run. And it also avoids leaving a daemon running
|
||||
after the test suite, assuming the test suite manages to reach the
|
||||
end.
|
||||
|
||||
This is considered a reasonable practice by upstream.
|
||||
---
|
||||
t/000_setup.t | 3 +++
|
||||
t/zzz_cleanup.t | 2 ++
|
||||
2 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/t/000_setup.t b/t/000_setup.t
|
||||
index b183241..4dc4329 100644
|
||||
--- a/t/000_setup.t
|
||||
+++ b/t/000_setup.t
|
||||
@@ -17,6 +17,9 @@ TEST
|
||||
$agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
|
||||
$agentconf->close();
|
||||
copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
|
||||
+ # reset the state of any long-lived gpg-agent, ignoring errors:
|
||||
+ system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
|
||||
+
|
||||
reset_handles();
|
||||
|
||||
my $pid = $gnupg->import_keys(command_args => [ 'test/public_keys.pgp', 'test/secret_keys.pgp', 'test/new_secret.pgp' ],
|
||||
diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
|
||||
index 5c03a72..eea3a48 100644
|
||||
--- a/t/zzz_cleanup.t
|
||||
+++ b/t/zzz_cleanup.t
|
||||
@@ -12,6 +12,8 @@ use File::Path qw (remove_tree);
|
||||
TEST
|
||||
{
|
||||
my $err = [];
|
||||
+ # kill off any long-lived gpg-agent, ignoring errors:
|
||||
+ system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
|
||||
remove_tree('test/gnupghome', {error => \$err});
|
||||
return ! @$err;
|
||||
};
|
@ -1,110 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Fri, 26 May 2017 09:51:40 -0400
|
||||
Subject: Use a short temporary homedir during the test suite
|
||||
|
||||
This avoids problems with the length of the path to the homedir as
|
||||
compared to the size limits of sockaddr_un.sun_path, particularly on
|
||||
systems where /run/user/$(id -u) is not present or available (such as
|
||||
many minimalist build environments).
|
||||
---
|
||||
t/000_setup.t | 9 +++++----
|
||||
t/MyTestSpecific.pm | 18 +++++++++++++++++-
|
||||
t/list_secret_keys.t | 3 ++-
|
||||
t/zzz_cleanup.t | 6 ++++--
|
||||
4 files changed, 28 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/t/000_setup.t b/t/000_setup.t
|
||||
index 4dc4329..82d7005 100644
|
||||
--- a/t/000_setup.t
|
||||
+++ b/t/000_setup.t
|
||||
@@ -12,13 +12,14 @@ use File::Copy;
|
||||
|
||||
TEST
|
||||
{
|
||||
- make_path('test/gnupghome', { mode => 0700 });
|
||||
- my $agentconf = IO::File->new( "> test/gnupghome/gpg-agent.conf" );
|
||||
+ my $homedir = $gnupg->options->homedir();
|
||||
+ make_path($homedir, { mode => 0700 });
|
||||
+ my $agentconf = IO::File->new( "> " . $homedir . "/gpg-agent.conf" );
|
||||
$agentconf->write("pinentry-program " . getcwd() . "/test/fake-pinentry.pl\n");
|
||||
$agentconf->close();
|
||||
- copy('test/gpg.conf', 'test/gnupghome/gpg.conf');
|
||||
+ copy('test/gpg.conf', $homedir . '/gpg.conf');
|
||||
# reset the state of any long-lived gpg-agent, ignoring errors:
|
||||
- system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
|
||||
+ system('gpgconf', '--homedir', $homedir, '--quiet', '--kill', 'gpg-agent');
|
||||
|
||||
reset_handles();
|
||||
|
||||
diff --git a/t/MyTestSpecific.pm b/t/MyTestSpecific.pm
|
||||
index e513c25..809d55c 100644
|
||||
--- a/t/MyTestSpecific.pm
|
||||
+++ b/t/MyTestSpecific.pm
|
||||
@@ -22,6 +22,7 @@ use IO::Seekable;
|
||||
use File::Compare;
|
||||
use Exporter;
|
||||
use Class::Struct;
|
||||
+use File::Temp qw (tempdir);
|
||||
|
||||
use GnuPG::Interface;
|
||||
use GnuPG::Handles;
|
||||
@@ -40,10 +41,25 @@ use vars qw( @ISA @EXPORT
|
||||
|
||||
$gnupg = GnuPG::Interface->new( passphrase => 'test' );
|
||||
|
||||
+
|
||||
+my $homedir;
|
||||
+if (-f "test/gnupghome") {
|
||||
+ my $record = IO::File->new( "< test/gnupghome" );
|
||||
+ $homedir = <$record>;
|
||||
+ $record->close();
|
||||
+} else {
|
||||
+ $homedir = tempdir( DIR => '/tmp');
|
||||
+ my $record = IO::File->new( "> test/gnupghome" );
|
||||
+ $record->write($homedir);
|
||||
+ $record->close();
|
||||
+}
|
||||
+
|
||||
my @version = split('\.', $gnupg->version());
|
||||
$gpg_is_modern = ($version[0] > 2 || ($version[0] == 2 && $version[1] >= 1));
|
||||
|
||||
-$gnupg->options->hash_init( homedir => 'test/gnupghome',
|
||||
+
|
||||
+
|
||||
+$gnupg->options->hash_init( homedir => $homedir,
|
||||
armor => 1,
|
||||
meta_interactive => 0,
|
||||
meta_signing_key_id => '0x93AFC4B1B0288A104996B44253AE596EF950DA9C',
|
||||
diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
|
||||
index 7040c38..d1e3f30 100644
|
||||
--- a/t/list_secret_keys.t
|
||||
+++ b/t/list_secret_keys.t
|
||||
@@ -23,8 +23,9 @@ TEST
|
||||
$outfile = 'test/secret-keys/1.out';
|
||||
my $out = IO::File->new( "> $outfile" )
|
||||
or die "cannot open $outfile for writing: $ERRNO";
|
||||
+ my $modern_pubring_line = $gnupg->options->homedir() . "/pubring.kbx\n";
|
||||
while (<$stdout>) {
|
||||
- if ($gpg_is_modern && /^\/.*\/test\/gnupghome\/pubring.kbx$/) {
|
||||
+ if ($gpg_is_modern && ($_ eq $modern_pubring_line)) {
|
||||
$out->print("test/gnupghome/pubring.kbx\n");
|
||||
} elsif ($gpg_is_modern && /^--*$/) {
|
||||
$out->print("--------------------------\n");
|
||||
diff --git a/t/zzz_cleanup.t b/t/zzz_cleanup.t
|
||||
index eea3a48..c3ec16f 100644
|
||||
--- a/t/zzz_cleanup.t
|
||||
+++ b/t/zzz_cleanup.t
|
||||
@@ -11,9 +11,11 @@ use File::Path qw (remove_tree);
|
||||
# this is actually no test, just cleanup.
|
||||
TEST
|
||||
{
|
||||
+ my $homedir = $gnupg->options->homedir();
|
||||
my $err = [];
|
||||
# kill off any long-lived gpg-agent, ignoring errors:
|
||||
- system('gpgconf', '--homedir=test/gnupghome', '--quiet', '--kill', 'gpg-agent');
|
||||
- remove_tree('test/gnupghome', {error => \$err});
|
||||
+ system('gpgconf', '--homedir', $homedir, '--quiet', '--kill', 'gpg-agent');
|
||||
+ remove_tree($homedir, {error => \$err});
|
||||
+ unlink('test/gnupghome');
|
||||
return ! @$err;
|
||||
};
|
@ -1,51 +0,0 @@
|
||||
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||
Date: Fri, 26 May 2017 18:15:24 -0400
|
||||
Subject: Make things work with gpg1 (assuming plain 'gpg' is modern)
|
||||
|
||||
* avoid sending --pinentry-mode=loopback if gpg is invoked as gpg1
|
||||
* fix up t/list_secret_keys to account for the varied output
|
||||
* t/decrypt.t still fails two agent-only tests, but presumably folks
|
||||
who use gpg1 are not expecting to use the agent.
|
||||
---
|
||||
lib/GnuPG/Interface.pm | 5 ++++-
|
||||
t/list_secret_keys.t | 9 +++++----
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
|
||||
index 5d8b0ec..f80ead5 100644
|
||||
--- a/lib/GnuPG/Interface.pm
|
||||
+++ b/lib/GnuPG/Interface.pm
|
||||
@@ -112,8 +112,11 @@ sub fork_attach_exec( $% ) {
|
||||
# -- version 2.1.x or later. It's not clear to me how we can
|
||||
# safely and efficiently avoid this assumption (see
|
||||
# https://lists.gnupg.org/pipermail/gnupg-devel/2016-October/031800.html)
|
||||
+ #
|
||||
+ # as a (brittle and incomplete) cleanup, we will avoid trying to
|
||||
+ # send pinentry-loopback if the program is invoked as "gpg1"
|
||||
$use_loopback_pinentry = 1
|
||||
- if ($handles->passphrase());
|
||||
+ if ($handles->passphrase() && ! ($self->call =~ m/gpg1$/));
|
||||
|
||||
# deprecation support
|
||||
$args{commands} ||= $args{gnupg_commands};
|
||||
diff --git a/t/list_secret_keys.t b/t/list_secret_keys.t
|
||||
index d1e3f30..8e3c911 100644
|
||||
--- a/t/list_secret_keys.t
|
||||
+++ b/t/list_secret_keys.t
|
||||
@@ -23,11 +23,12 @@ TEST
|
||||
$outfile = 'test/secret-keys/1.out';
|
||||
my $out = IO::File->new( "> $outfile" )
|
||||
or die "cannot open $outfile for writing: $ERRNO";
|
||||
- my $modern_pubring_line = $gnupg->options->homedir() . "/pubring.kbx\n";
|
||||
+ my $seckey_file = $gpg_is_modern ? 'pubring.kbx' : 'secring.gpg';
|
||||
+ my $pubring_line = $gnupg->options->homedir() . '/' . $seckey_file . "\n";
|
||||
while (<$stdout>) {
|
||||
- if ($gpg_is_modern && ($_ eq $modern_pubring_line)) {
|
||||
- $out->print("test/gnupghome/pubring.kbx\n");
|
||||
- } elsif ($gpg_is_modern && /^--*$/) {
|
||||
+ if ($_ eq $pubring_line) {
|
||||
+ $out->print('test/gnupghome/'.$seckey_file."\n");
|
||||
+ } elsif (/^--*$/) {
|
||||
$out->print("--------------------------\n");
|
||||
} else {
|
||||
$out->print( $_ );
|
@ -1,54 +0,0 @@
|
||||
From 7c85ac40660861e7507c43d043323c3f1b83921b Mon Sep 17 00:00:00 2001
|
||||
From: Niko Tyni <ntyni@debian.org>
|
||||
Date: Wed, 20 Jun 2018 21:57:50 +0300
|
||||
Subject: [PATCH] Fix test suite for GnuPG >= 2.2.6 compatibility
|
||||
|
||||
GnuPG 2.2.6 (commit 1a5d95e7319e7e6f) started marking signatures
|
||||
with an expired key with '?', as seen with for instance
|
||||
|
||||
GNUPGHOME=./test/gnupghome/ gpg --list-sigs 0xF950DA9C
|
||||
|
||||
Adapt the test suite accordingly.
|
||||
|
||||
See https://dev.gnupg.org/rG1a5d95e7319e7e6f0dd11064a26cbbc371b05214
|
||||
|
||||
Bug-Debian: https://bugs.debian.org/900051
|
||||
---
|
||||
t/get_public_keys.t | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/get_public_keys.t b/t/get_public_keys.t
|
||||
index 7893625..ede080a 100644
|
||||
--- a/t/get_public_keys.t
|
||||
+++ b/t/get_public_keys.t
|
||||
@@ -13,8 +13,12 @@ use MyTestSpecific;
|
||||
use GnuPG::PrimaryKey;
|
||||
use GnuPG::SubKey;
|
||||
|
||||
+use version;
|
||||
+
|
||||
my ( $given_key, $handmade_key );
|
||||
|
||||
+my $gnupg_version = version->parse($gnupg->version);
|
||||
+
|
||||
TEST
|
||||
{
|
||||
reset_handles();
|
||||
@@ -74,7 +78,7 @@ TEST
|
||||
date_string => '2000-03-16',
|
||||
hex_id => '56FFD10A260C4FA3',
|
||||
sig_class => 0x10,
|
||||
- validity => '!'),
|
||||
+ validity => $gnupg_version < version->parse('2.2.6') ? '!' : '?'),
|
||||
GnuPG::Signature->new(
|
||||
date => 949813093,
|
||||
algo_num => 17,
|
||||
@@ -115,7 +119,7 @@ TEST
|
||||
date_string => '2000-03-16',
|
||||
hex_id => '56FFD10A260C4FA3',
|
||||
sig_class => 0x10,
|
||||
- validity => '!'),
|
||||
+ validity => $gnupg_version < version->parse('2.2.6') ? '!' : '?'),
|
||||
GnuPG::Signature->new(
|
||||
date => 953179891,
|
||||
algo_num => 17,
|
@ -1,64 +0,0 @@
|
||||
From b356e7fda15e39e037da1888a24000a96fc85c90 Mon Sep 17 00:00:00 2001
|
||||
From: Niko Tyni <ntyni@debian.org>
|
||||
Date: Sun, 24 Jun 2018 16:19:25 +0300
|
||||
Subject: [PATCH] Fix test suite for GnuPG >= 2.2.8 compatibility
|
||||
|
||||
GnuPG 2.2.8 onwards issues a hard failure when decrypting
|
||||
messages not using the MDC mode.
|
||||
|
||||
Bug-Debian: https://bugs.debian.org/900051
|
||||
---
|
||||
t/decrypt.t | 19 +++++++++++++++++--
|
||||
1 file changed, 17 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/decrypt.t b/t/decrypt.t
|
||||
index ee41448..2d6740c 100644
|
||||
--- a/t/decrypt.t
|
||||
+++ b/t/decrypt.t
|
||||
@@ -6,6 +6,7 @@
|
||||
use strict;
|
||||
use English qw( -no_match_vars );
|
||||
use File::Compare;
|
||||
+use version;
|
||||
|
||||
use lib './t';
|
||||
use MyTest;
|
||||
@@ -13,6 +14,8 @@ use MyTestSpecific;
|
||||
|
||||
my $compare;
|
||||
|
||||
+my $gnupg_version = version->parse($gnupg->version);
|
||||
+
|
||||
TEST
|
||||
{
|
||||
reset_handles();
|
||||
@@ -26,7 +29,13 @@ TEST
|
||||
close $stdout;
|
||||
waitpid $pid, 0;
|
||||
|
||||
- return $CHILD_ERROR == 0;;
|
||||
+ if ($gnupg_version < version->parse('2.2.8')) {
|
||||
+ return $CHILD_ERROR == 0;;
|
||||
+ } else {
|
||||
+ local $/ = undef;
|
||||
+ my $errstr = <$stderr>;
|
||||
+ return (($CHILD_ERROR >> 8 == 2) and ($errstr =~ /ignore-mdc-error/));
|
||||
+ }
|
||||
};
|
||||
|
||||
|
||||
@@ -50,7 +59,13 @@ TEST
|
||||
|
||||
waitpid $pid, 0;
|
||||
|
||||
- return $CHILD_ERROR == 0;
|
||||
+ if ($gnupg_version < version->parse('2.2.8')) {
|
||||
+ return $CHILD_ERROR == 0;
|
||||
+ } else {
|
||||
+ local $/ = undef;
|
||||
+ my $errstr = <$stderr>;
|
||||
+ return (($CHILD_ERROR >> 8 == 2) and ($errstr =~ /ignore-mdc-error/));
|
||||
+ }
|
||||
};
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
AUX 4.14.0-no-dot-in-inc.patch 2576 BLAKE2B 599a34aabdea3b3995704712e26ffa0a88c545185fe205f37b3c618fd7063e0ede55895a9797aa1de1490cd0ba634653aca235892f17410b257b199ed16ce612 SHA512 1fb62aee9081303c1d1186a1fd388e698f519ea5856fdf86e65af2044945b85952c2dcd96b0a0a5ec4234fe82361b2e076143918193218f54934c93120b54ccf
|
||||
AUX 4.14.0-unescaped-lbracket.patch 1656 BLAKE2B 96bc78ecbc3a2ed7408a509184f88a9ee2c9ac2b2d0b4ad8c8567dcf57646d823bc92938097a7984678c18569b9d8ceb1c9f27ae76afef6ca906c4f5997f85b6 SHA512 8ba173dff927bf5dd7193d88fe110bdaf71b44b54e3e5a3a0d8ff161ce492a36324c5e69dfca268577ecbbf81d3b99247f7fe305bd4bd2f172e59ea52b9146c1
|
||||
DIST Google-Ads-AdWords-Client-5.8.2.tar.gz 3194633 BLAKE2B b2e05294dbc60f8725d2f764defe1108db8a93f5f5e10da9ff8b7dcfe1aaf0877f92bde4ae3937310bed6ec5c73225f5edd243c5864beeb8f070ae1235087437 SHA512 d38689358872511613e0d596ee0233070848f7ea5368cbabd0b13e91bb8fa9259af83ec7cd3d852e9aed1eac0769d7c4a097adda3da730eb49aaec127cff54f6
|
||||
EBUILD Google-Ads-AdWords-Client-5.8.2.ebuild 1195 BLAKE2B 78f8a36f7834cb2654e46345442aa7f007603c6fab7f23c4adec5cdb7b021ae8ab8fcf834148847cab10474cc30119b617e82bd9f96a1342ce4b9aaa3a1261bb SHA512 52c0dccbe39ae2b5fc04194521d395cf5b1bb50c3532f0849b6071324f7a7afb5d398a03c1654b9f3209405974fd691890ff5522d9a880200004d20767b4cbcb
|
||||
MISC metadata.xml 4425 BLAKE2B e622ea7310457ef089a65d52746b929c403d93f0e740669c2a5b8af70d582a542c561998f315117a8dd08c72359443ab2ae36523456290867ef5d00580a923c4 SHA512 03af5a73b54159a9e25e4f1fa3d8804dc6aa97232a3bb7e9fbd6b1458ef04deeb2f79baf630c7151d9fc73943b83b7ad7849799e31a5a308bf01f3b23ffafc9f
|
||||
|
@ -1,83 +0,0 @@
|
||||
From a67324b5622088422b0b0c1a403c594312452d16 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentfredric@gmail.com>
|
||||
Date: Sun, 4 Jun 2017 07:35:25 +1200
|
||||
Subject: [PATCH 1/3] t/001_require.t: Force a relative path load for require
|
||||
test
|
||||
|
||||
require_ok("Foo") is implemented in terms of require "Foo"
|
||||
|
||||
This means:
|
||||
|
||||
require "Foo.pm"
|
||||
|
||||
Only loads "Foo.pm" from "." if:
|
||||
|
||||
- '.' is in @INC ( Not true by default in Perl >5.25.11 )
|
||||
- Foo.pm is not installed in Perl5lib ( dangerous assumption )
|
||||
|
||||
This forces require to side-step @INC traversal by using an explicit
|
||||
prefix of "./", which is special-cased in require.
|
||||
|
||||
This fixes RT#120674
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=120674
|
||||
---
|
||||
t/001_require.t | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/001_require.t b/t/001_require.t
|
||||
index fe0d205..d70b2d2 100755
|
||||
--- a/t/001_require.t
|
||||
+++ b/t/001_require.t
|
||||
@@ -24,7 +24,7 @@ use File::Spec;
|
||||
use Test::More qw(no_plan);
|
||||
|
||||
# Set up @INC at runtime with an absolute path.
|
||||
-my $lib_path = File::Spec->catdir(dirname($0), "..", "lib");
|
||||
+my $lib_path = File::Spec->rel2abs(File::Spec->catdir(dirname($0), "..", "lib"));
|
||||
push(@INC, $lib_path);
|
||||
|
||||
require_ok 'Google::Ads::AdWords::Client';
|
||||
@@ -38,6 +38,6 @@ sub test_require {
|
||||
local $SIG{__WARN__} = sub {
|
||||
warn @_ unless $_[0] =~ /redefine/;
|
||||
};
|
||||
- require_ok($file_name);
|
||||
+ require_ok("./$file_name");
|
||||
}
|
||||
}
|
||||
--
|
||||
2.12.2
|
||||
|
||||
From 76f5a421585b8c85b7e39b91adb0b257d1d83665 Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentfredric@gmail.com>
|
||||
Date: Sun, 4 Jun 2017 07:40:01 +1200
|
||||
Subject: [PATCH 2/3] t/020_GenerateOfflineCredentials.t: Force relative path
|
||||
for script
|
||||
|
||||
require "some/path.pl" previously fell into worknig due to '.' being
|
||||
in @INC, as this still invokes @INC traversal
|
||||
|
||||
This change simply forces a "./" so that Perl uses direct access via
|
||||
a special-cased path instead of relying on @INC traversal, which becomes
|
||||
unsafe to depend on since Perl 5.25.11
|
||||
---
|
||||
t/020_GenerateOfflineCredentials.t | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/t/020_GenerateOfflineCredentials.t b/t/020_GenerateOfflineCredentials.t
|
||||
index 0dcde9d..dfa8b50 100755
|
||||
--- a/t/020_GenerateOfflineCredentials.t
|
||||
+++ b/t/020_GenerateOfflineCredentials.t
|
||||
@@ -51,7 +51,7 @@ my $stdout;
|
||||
open(STDOUT, ">", \$stdout);
|
||||
|
||||
# Calling the offline credentials code
|
||||
-require qw(examples/oauth/generate_offline_credentials.pl);
|
||||
+require qw(./examples/oauth/generate_offline_credentials.pl);
|
||||
ok(generate_offline_credentials($client));
|
||||
|
||||
# Checking the auth mock was correctly called
|
||||
--
|
||||
2.12.2
|
||||
|
@ -1,46 +0,0 @@
|
||||
From a7e92591ac0415fbb7119e4ad7572f910e4fdb8f Mon Sep 17 00:00:00 2001
|
||||
From: Kent Fredric <kentfredric@gmail.com>
|
||||
Date: Sun, 4 Jun 2017 07:43:59 +1200
|
||||
Subject: [PATCH 3/3] Fix unescaped "{" error in tests t/022* and t/024*
|
||||
|
||||
Perl 5.26 makes use of literal unescaped { in a regex illegal,
|
||||
and this leads to test failures.
|
||||
|
||||
This change simply quotes the offending characters to make tests pass.
|
||||
|
||||
This closes RT#118509
|
||||
|
||||
Bug: https://rt.cpan.org/Ticket/Display.html?id=118509
|
||||
---
|
||||
t/022_ReportUtils.t | 2 +-
|
||||
t/024_BatchJobHandler.t | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/t/022_ReportUtils.t b/t/022_ReportUtils.t
|
||||
index 4f5f326..d0e2000 100755
|
||||
--- a/t/022_ReportUtils.t
|
||||
+++ b/t/022_ReportUtils.t
|
||||
@@ -57,7 +57,7 @@ my $report_as_string = $report_handler->get_as_string();
|
||||
ok(!$report_as_string, "report as string");
|
||||
ok($report_as_string->isa("Google::Ads::Common::ReportDownloadError"),
|
||||
"check report handler->report_as_string return type");
|
||||
-ok($report_as_string =~ /ReportDownloadError\s{[^}]+}/,
|
||||
+ok($report_as_string =~ /ReportDownloadError\s\{[^}]+}/,
|
||||
"check ReportDownloadError STRINGIFY");
|
||||
|
||||
my ($fh, $filename) = tempfile();
|
||||
diff --git a/t/024_BatchJobHandler.t b/t/024_BatchJobHandler.t
|
||||
index 15983ae..4b86703 100755
|
||||
--- a/t/024_BatchJobHandler.t
|
||||
+++ b/t/024_BatchJobHandler.t
|
||||
@@ -133,6 +133,6 @@ my $batch_job_handler_error =
|
||||
description => "test"
|
||||
});
|
||||
ok(!$batch_job_handler_error, "BOOLIFY on error false");
|
||||
-ok($batch_job_handler_error =~ /BatchJobHandlerError\s{[^}]+}/,
|
||||
+ok($batch_job_handler_error =~ /BatchJobHandlerError\s\{[^}]+}/,
|
||||
"check BatchJobHandlerError STRINGIFY");
|
||||
|
||||
--
|
||||
2.12.2
|
||||
|
@ -1,5 +1,5 @@
|
||||
DIST Gtk3-ImageView-10.tar.gz 28165 BLAKE2B 429490c02e34bbe669b209459fd90937a4148e643b6b4e26bd643cd930f728a400b4d179c7e072a72fced7b06fc9a7f16deb87d33b42b296f07f5dce14abdfb1 SHA512 2548c33c49c27bb4a69d5512c7dfaca096a39ef6d08fa1deb83a045e6c5b7ad075eb8b23b33fb794024c9b9e7fd979a5c31bff075a7ed5412a4a5a4f53824f5a
|
||||
DIST Gtk3-ImageView-9.tar.gz 16083 BLAKE2B f64723d2ee468c7ab423292bba8d995a62554877567fdfdd272e527920e037147783fcb9cea99ba1688f09303ee321abaee0e334a67db46bda6b0ed7e1ff9415 SHA512 1a52c53a03b6f9dd6abc69dbb03a8dd80df77e266eb972cb2438bd25d49765b203a70e2dfee1ae3cfdd27b4d987f9573eef3e47968c80550771dd3edbcf831cc
|
||||
EBUILD Gtk3-ImageView-10.0.0.ebuild 694 BLAKE2B 7a9e3ac2dc936524867c0d046a8be34a336e86365e6d3874f22a66d076678ebffbbebc2e079769bafb3af3b44f1fa2361c977afae5cd9716635161a280500cc8 SHA512 7adc62eeaae38106f4b0855d1195d74b42c8a923f07bb2182b27a10fcf7b399f41fbe8b33de945f43c414b570891918c34285a1f17a2c79cf57e0b79f3720a96
|
||||
EBUILD Gtk3-ImageView-10.0.0.ebuild 693 BLAKE2B 2f54394a6acd831f71d7099166824d61e4538cd9052d9522fcc4eec4b0cac121619b5fefce3990a553e03eb2e467d834c35bfd3acda641d46130cb9cf2f27f30 SHA512 41c7cb008c0a73cf85f795e5956a12e7caa204c40c97bc07f7e744b46e77a8e7e0e3759835a236f5a26885c806fc29609a534b917945e82664d6c5893fad5cb9
|
||||
EBUILD Gtk3-ImageView-9.0.0.ebuild 691 BLAKE2B 81ea41684762dddf26d7bb212119a45c9adec9dc30aa8885304117acd1d28bf7d3387351285cadc030b374a3e2786bc9df3ea27e604cf2b99469771c8564631b SHA512 021d0dd86d5125bea046f6bef25bbfbf493e8945691516b38ba963b1af9c0ff9adfb9b04180069114d29e3d1e5a4b7f6dcb0039b7889a05f84ab8b2853449e5c
|
||||
MISC metadata.xml 1018 BLAKE2B 3b984f34f2b493db7ab1fd89b6edbac39936461826a43de10c6cde112a9e1be83eebd9f6184fe2c39763ecca1c050d44211641049028e8bc5aa7cb00cf3ac1e0 SHA512 eddb5b455c5561f7ccc1f84053c6830af833cde842af7422d0b4907765d3a771a892613c64ab6bb09ee49da53c8c989f4046bc172ccc70a4a3cf9164e337474c
|
||||
|
@ -1,4 +1,3 @@
|
||||
AUX Gtk3-0.34.0-gdk-pixbuf-test.patch 1992 BLAKE2B 3f81159c626971f91ce4272ac7e89b693b6d11c430950e48bb24f9b581b2a485a562f5f5170ef44f3b26bf45c7e2b8090307bee2556dbf72fb9e569113875d0f SHA512 ee2864b036a5463df4c821c3a424a62411954e9799be485076013ff1f36b0dd19b678cbb9a7ea1bc3d5365a15986958241b15b8e4009ec91392e0401e234049a
|
||||
DIST Gtk3-0.038.tar.gz 57426 BLAKE2B 76e74320c9bfaa19bd71b58742037d4acb85920466d0af88c3a276f5e4bf2d34c94ee3b278d385914da498794086924de19f4ed1c280b6b0b793d15d5fb3ca27 SHA512 2289184a25deec342b9519028cc5ebb3a66137d7891366485e4b6a1ef52a4a28b5ba8083a317a56664d4ea6eb1bc0619477d1ca169baf79b868467fba27f82bf
|
||||
EBUILD Gtk3-0.38.0.ebuild 675 BLAKE2B f5a71b78b3dffb2d2734726bcd4248f09603722abcca939e60ede007c95368255096a4e47439c4da99d212a8dbe30b8e501cd5626a8130d1913ac1f617475a5f SHA512 cde095b6e37331412bf6d92ebb938d999d1cc986325d0747dd99fa68a174c68a854b20b366ad0f2be9f355e8ec71aabc8ea8823158b7a302f2dd36a6b34e1b77
|
||||
MISC metadata.xml 447 BLAKE2B e86451eb327d582b41d7f9bf2c0f07a4d3d043bf55b6b022c8e7164f200988f5afcd13bb6ddd696977e1c8d319e2fa1dc8bacc89fe1b1f7906fdfce18b004a32 SHA512 60e6df94c123f033be340a2ddcfdccfe49ef1dbadbc6027d783f12eba2cbc75e909fe6baeddbba891e86e873906f0ab531c5122757f83038a70c43dcf1293414
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 88bc49e7a21da0131b10546aa07ebdf98d18a37e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Torsten=20Sch=C3=B6nfeld?= <kaffeetisch@gmx.de>
|
||||
Date: Sun, 6 Jan 2019 15:18:02 +0100
|
||||
Subject: [PATCH] Load GdkPixdata introspection data if gdk-pixbuf >= 2.38.0
|
||||
|
||||
In gdk-pixbuf 2.38.0, the GdkPixdata introspection data was split out into its
|
||||
own file.
|
||||
|
||||
Based on a patch by gregor herrmann <gregoa@debian.org>.
|
||||
|
||||
https://rt.cpan.org/Ticket/Display.html?id=127071
|
||||
---
|
||||
lib/Gtk3.pm | 14 ++++++++++++++
|
||||
perl-Gtk3.doap => perl-gtk3.doap | 0
|
||||
2 files changed, 14 insertions(+)
|
||||
rename perl-Gtk3.doap => perl-gtk3.doap (100%)
|
||||
|
||||
diff --git a/lib/Gtk3.pm b/lib/Gtk3.pm
|
||||
index 6a65487..f90af7e 100644
|
||||
--- a/lib/Gtk3.pm
|
||||
+++ b/lib/Gtk3.pm
|
||||
@@ -60,6 +60,7 @@ and Perl packages:
|
||||
Gtk-3.0 | Gtk3
|
||||
Gdk-3.0 | Gtk3::Gdk
|
||||
GdkPixbuf-2.0 | Gtk3::Gdk
|
||||
+ GdkPixdata-2.0| Gtk3::Gdk
|
||||
Pango-1.0 | Pango
|
||||
|
||||
=cut
|
||||
@@ -84,6 +85,10 @@ my $_GDK_PIXBUF_BASENAME = 'GdkPixbuf';
|
||||
my $_GDK_PIXBUF_VERSION = '2.0';
|
||||
my $_GDK_PIXBUF_PACKAGE = 'Gtk3::Gdk';
|
||||
|
||||
+my $_GDK_PIXDATA_BASENAME = 'GdkPixdata';
|
||||
+my $_GDK_PIXDATA_VERSION = '2.0';
|
||||
+my $_GDK_PIXDATA_PACKAGE = 'Gtk3::Gdk';
|
||||
+
|
||||
my $_PANGO_BASENAME = 'Pango';
|
||||
my $_PANGO_VERSION = '1.0';
|
||||
my $_PANGO_PACKAGE = 'Pango';
|
||||
@@ -471,6 +476,15 @@ sub import {
|
||||
package => $_GDK_PIXBUF_PACKAGE,
|
||||
flatten_array_ref_return_for => \@_GDK_PIXBUF_FLATTEN_ARRAY_REF_RETURN_FOR);
|
||||
|
||||
+ # In gdk-pixbuf 2.38.0, the GdkPixdata introspection information was split
|
||||
+ # out into its own file.
|
||||
+ if (Gtk3::Gdk::Pixbuf::CHECK_VERSION (2, 38, 0)) {
|
||||
+ Glib::Object::Introspection->setup (
|
||||
+ basename => $_GDK_PIXDATA_BASENAME,
|
||||
+ version => $_GDK_PIXDATA_VERSION,
|
||||
+ package => $_GDK_PIXDATA_PACKAGE);
|
||||
+ }
|
||||
+
|
||||
Glib::Object::Introspection->setup (
|
||||
basename => $_PANGO_BASENAME,
|
||||
version => $_PANGO_VERSION,
|
||||
diff --git a/perl-Gtk3.doap b/perl-gtk3.doap
|
||||
similarity index 100%
|
||||
rename from perl-Gtk3.doap
|
||||
rename to perl-gtk3.doap
|
||||
--
|
||||
2.18.1
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-StripScripts-Parser-1.03.tar.gz 9524 BLAKE2B 7a3f9b7edcddd604f1e23d746ac80187c60bfc74f1c36d7b84e9a59eb4f3aefe9e0df1f1c136c1c9ce2b54f7163afc3103dc43fa17868d434c8dd93eb1a4e399 SHA512 3bc766ff738623191b23c5212751cad32b76160bf5e3dcdfad5e161288c906deb1357fc092a962da87525b7364ba924de9ef68b94966c003ee7cb23e8035dc15
|
||||
EBUILD HTML-StripScripts-Parser-1.30.0.ebuild 459 BLAKE2B f89e49af65ee4f5be5449c17dd0f02846513788d06d2dab117660ed1fd5f9d7d470fae7c5bd0c52d4415b0c23d4d5efb92d18c8c4575d4aac5655ea9ab68a132 SHA512 343b6969d79fa1f6dedb50aaaea4d94455e0f997c87ec3294f48903cbe50d7a2a30de12baaa269f0e81c0a5de4804fc9bebc60e18b57d00c180292775b04a0e1
|
||||
EBUILD HTML-StripScripts-Parser-1.30.0-r1.ebuild 421 BLAKE2B ff220e088a87eb3fd3c8ef5110c4876b4d28ef5342a5ac50bd3f64f700686495112a9533bcc2d1954997d5586ec641e61ccf0e6b32dc6d6ba0e1288d3b7830d9 SHA512 5bfdb929c01e499ec34db8ab7b3854dcfdc451cdbc693fd21decbf1fd0ebfa53f6885948d4cd65b3dfeab746bafb882b13d32bd69d4e0750a9c4559cb520050c
|
||||
MISC metadata.xml 422 BLAKE2B d5fcbbca7a0c16e8acb37a642998010dd68215cf76ae557a1c22df63c2ec7372e7f30d055e64639b55b23204c50000563cf070b90ecb05ea05f4fd6a267ff631 SHA512 0c137cc9de19cef00c031605c1f24e90a0ab046c568a7b65f3dc579b33f2e5a7fd91e4dffc23677b9c7e58c8017abc816f14067e643d455468ba8c23b632cb16
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-StripScripts-1.06.tar.gz 44745 BLAKE2B f239466e7d328113979b3676812aab4371d69e5a8d783a4cacec14ee2cee86058bef2e201105030315b7387a2e6a861d303c491066fb1750a469c5b45083005b SHA512 5d358997816653e32dba8916ac95967da345ec8c018ba7d21ef3bebca9bdda3131917b596dd25f51a3c63f85df7babfeab6133b46a7e15a0cd0409c055e2c589
|
||||
EBUILD HTML-StripScripts-1.60.0.ebuild 399 BLAKE2B 452f541cdce6acd4a87c7143972e5744f3aecdb04b35899c68ace419ed63583c50192fc79264306a6297a0fd210101b313d7b4c384d1623d18e4d5c47d95fb8d SHA512 092dbf7d2ddd06891206adfe44117755bd111a70042e29fa7ed47f134f8e795321bf61d5e5175e254b00281aabf096138f395b06321bb0202e6f4c5ba0feb592
|
||||
EBUILD HTML-StripScripts-1.60.0-r1.ebuild 257 BLAKE2B 8d3784fa94fff4209de1c973552b16a368e6212a6efd1a997ee06ff435995a6d8212f4e0ab677ba5ecb00579c027f8c09d1ef1d2b486de13c7cddce82dc68fc7 SHA512 3c9befc3c76cf2183e1346a131a84dd935463ebd26d38b801ca61efdfc289fb2396a68d908bd8464846a3c1ffd43c87de2916c2894126ce16e0ccb27e03c5e40
|
||||
MISC metadata.xml 407 BLAKE2B 56d695875dbba54b148f005761054962bdeceddde21390f3b0f668fb999365988358970ceec87742ae841b08106994e0662a0ae2a8f84333b3e5c1f92dc30a44 SHA512 6430c003f964db620c4f9b2716b006411ee991c76e287d7b8174e33ca1e0a4043e80fcb44c1916fb30c2e1035318cb132c4f3bcf4e2be40b2fcfa46fbf71f662
|
||||
|
@ -1,16 +1,12 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
EAPI=8
|
||||
|
||||
MODULE_AUTHOR=AJPEACOCK
|
||||
DIST_AUTHOR=AJPEACOCK
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="produces HTML tables"
|
||||
|
||||
LICENSE="|| ( Artistic GPL-2 )"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~ia64 ~ppc ~ppc64 sparc x86"
|
||||
IUSE=""
|
||||
|
||||
SRC_TEST="do"
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-Table-2.08a.tar.gz 23934 BLAKE2B cf08002baafc2c83929b46ad1d6695b5bd42b18e6e413da16e1804f9885a9d60507afe04fab7403f0948aab01385cfb891892023a04edec12482feb32acddf46 SHA512 fe2e0a9777a45cc7b720b33694fd9aec6626a27720dedf57238c4166163ae6d35fd8f61a4321e6951c589269c28a3ba2677bdd1f849446bfadb2c90e6d052a36
|
||||
EBUILD HTML-Table-2.08a-r1.ebuild 306 BLAKE2B 6138f53d9b18754f69e2a1da8a2e8295837c64493731b6027097ebe4edbb30fbc59bdc4ef7d571e239860b84e30465d13f180c479442931816c52df377b27419 SHA512 cf18d9579689b1ec02b1dd25cb0712cc563ec9e328dd243f7b2d252185cbde7e0b9ab1d9e79289c82dae5f8547a6e596bde6e64368f093156ce5566662448133
|
||||
EBUILD HTML-Table-2.08a-r2.ebuild 246 BLAKE2B effc4b1b61fd3db3edbbf4040bccbcd10d2e2e16216cd6126e7e4ae360bb34599b1a94d58ef05fa9e8ba9fcc3f9a5b2b50916dfa1fa9fe8d63bbcc22901e6ea5 SHA512 8cfda21496c52594796a1ad2e0adc35362dbcc587ea4f176d53ff25cdc61d3d52280a85649b4d6b5cc35c063577728c02268ccd569eea0bacbba3b45c760cf14
|
||||
MISC metadata.xml 393 BLAKE2B 70a4d8b52cd807b31c515aa9b7f97d734698b17625b3b7de7cffca2dd38c94bbd03e68beeb78f1268ef0c9244e5c5c60e627f9d719049136223bf22b15c30557 SHA512 5e71160ef44d20e18f2012acc9a17d60d50ea00be1a17c7958b8fd981903e12788419b9e99537a697e26ed62d25eb173a0bf1ccb9180d667ae8f41e2efad5f15
|
||||
|
@ -1,20 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
MODULE_AUTHOR=SDRABBLE
|
||||
MODULE_VERSION=0.13
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="Parse the content of tables in HTML"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 x86"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="dev-perl/HTML-Parser"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
SRC_TEST=do
|
||||
PATCHES=( "${FILESDIR}"/0.13-test.patch )
|
@ -0,0 +1,21 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DIST_AUTHOR=WYANT
|
||||
DIST_VERSION=0.305
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="Do interesting things with the contents of tables"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="
|
||||
virtual/perl-Carp
|
||||
dev-perl/HTML-Parser
|
||||
"
|
||||
BDEPEND="${RDEPEND}
|
||||
virtual/perl-ExtUtils-MakeMaker
|
||||
"
|
@ -1,6 +1,6 @@
|
||||
AUX 0.13-test.patch 2076 BLAKE2B 4b3e46ada5bc7e3a9c7f6b105bbf804083abcd4d3c1873ee894468bf2ac49aa089b78583c061c83a34d37149a165efc85db0a40ea5b537e1455763a58abc5cad SHA512 39037bc38e5bd95f710dbfe005b05f2a355fa075b3f6de3681e6fc812e18850f9ab727ec9012761c6167b35302462223f4d2543dce6135ba63320b0751600bf9
|
||||
DIST HTML-TableContentParser-0.13.tar.gz 4664 BLAKE2B 062dc7ac6a78ec75f7d306649710ef470c6b6f750f651cc976d9f44fa40fbf247a89e0847ed8a991cecd929f3ea328bbee69c2cb29627f6d4fb0e23d3a3ab5c5 SHA512 0707a0059a7d885052615ee7badecc8915d5f8c67fd8683a226e23a0690f1872519475c32f51f299333c3208c20ea15380624fd0ebd1dc0b11457febfb3db585
|
||||
DIST HTML-TableContentParser-0.304.tar.gz 18437 BLAKE2B 404ba11f9174cd3db019ede6078fca246722ff9ce1d2108cd689cfa3f79aebb178853143faa45022e5785daae5e79d1f21ad519099508c5554828d54da84e369 SHA512 f5b8aee24f777a7e8d6b4a88ac6b88927b6ec51a6b14ff2f48a33248702349f2f3a446bda3679b7c510cf6c9390b6a635721c696be3b49165dc9ca89116b2202
|
||||
EBUILD HTML-TableContentParser-0.130.0.ebuild 377 BLAKE2B b1b2a33a0751dc88124ce78bc75c603fcf91de3c21bbbdc74bc209d8a4d1db7cef3f19866fe893b74c7a44ad080923759065a17afbb53ac55e4132ffe9a0885b SHA512 c318fb523b0a654ea8ab89dcb2e9c36bba77365843f6d3b1479397dd9f3e0ec136a36483a3cdb26e2625919ce39fac273d0e674d336d101705e8fe2c41811b9f
|
||||
DIST HTML-TableContentParser-0.305.tar.gz 18931 BLAKE2B 616bfbb1809af1f0434fe3fb61082e635ba2cb62c1d14c47d059eb2c2dada80fa74ba577f85e9961036bf68f179ccc036410e2f3d67f497babbd3fe713bb6f2b SHA512 beee3b16e61b32e39bd7fdacbf993f18c1b11b6e0ba9704584243a629d72abed0012ee14518cd8c2490cb08a4c1323ee9b49ac2a764f37fa26c632a1d0ec2450
|
||||
EBUILD HTML-TableContentParser-0.304.0.ebuild 384 BLAKE2B 1cab7f626ee25f51b5f680c63e0dc34defba6d201315f58dedc86d579561b09fd89bb4a2aabc27753d31067e11f15ef2a1a71664382becbfee8ca19f3bf7b6b7 SHA512 f83be083b19e5197bda0fc74b961375a749f18de4f38093d9233992fffd969018a23870748fd413805434a114578306a1c8f7ddf72285a37d7c9be0125f163c4
|
||||
EBUILD HTML-TableContentParser-0.305.0.ebuild 377 BLAKE2B 32ec756b2b6847fb1dc898bbcf78a619d238280f06116aa0a7397727963c11a887cc326f94ac15e74da8f047816e8a4d26f236933d491110e5da5f719c0fcc44 SHA512 95e3ac2204cc4813b91c356224dd23ace9e66f82f4fe4e3c2165758f1134a70c4ab946bf769c6b4d88a8a979b8ac2c013c199d223cbbae89fdd949309327c2db
|
||||
MISC metadata.xml 535 BLAKE2B 13cdd17014d47497260675c128c0c7fc0ecbbbcef8743ea831d7df5d2db66556318dbf9c69a8bc674a017d6f2f1054cff9e4228447c9a853d2c6064cfb6ed65e SHA512 e21705171dee0812f3213417c721cb0ced4a0e8e0773c447dcff7f791096a4b883ec6ce273c68444980dc109c1f68a3b7aaf8d17dc61402ae57417ee86a150d1
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-TableExtract-2.15.tar.gz 36481 BLAKE2B 37562bcd8dc559b4a6dede3c3242e80726374e059841963d36c7ae83130444cadc9c080316bf5a830b12d7c6d9a01b2f27f75621afa0e0c063bf069be84e8ff8 SHA512 54fe445bd4bfc55d244ba6ba9888ea556b1a93b384be1f935ae3e93dc6d9e07167fa0fa07365d7fbc89e0a4924a40ea10fdc63d2ebf55f8d5f0d2ed90848a607
|
||||
EBUILD HTML-TableExtract-2.150.0.ebuild 581 BLAKE2B a49464257b693b84ddc3ae2540d2da98b468f4b2c826000eee77f87a05259922afad960afc860da0d7192ba7d57a633f12415387195b9756fb34e83e596923b4 SHA512 27068ebd0ec31ebb399ebd34fb0ad03982c1cf3644777df2adafc585a682470f4a7e088145b2a3eabb950185141b9223a1cfb95eac77f9d4c85e3374869b353d
|
||||
EBUILD HTML-TableExtract-2.150.0-r1.ebuild 575 BLAKE2B 017612d25b1a14e52929b4cab06b7ed068ff8cece76540cfa452d45716337ae12dc0935c2c978a294289d6274554739f1d28eaee6ba390c850ada3b783d096c4 SHA512 fb5b3ce6214889fb0722319fdc0f05f83033370ac99a214a0563fb2b8b91ebd49a726790543d9aff7ccb5ac61cf05adda53660fb4776f191f6619ea0f78a617c
|
||||
MISC metadata.xml 631 BLAKE2B 4544a38d4491ef354fcd63bcf67a4637de4530ce349205ed8d862f636fed4e2eeffdccfe2a513d4ccaad9a9327a9aadd9c414876c261a6cb0382e727346634d6 SHA512 73ad1a7440b00eca33ba693979fda0ba230047c221f317417483a08b1d8986fd20ff92da416792b6a4d6328976470e1904b09e15d8b5113e5d2c3825d4064b0c
|
||||
|
@ -1,27 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
DIST_AUTHOR=DJERIUS
|
||||
DIST_VERSION=0.42
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="Extract data from an HTML table"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm64 x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-perl/HTML-Parser-3.260.0
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
>=virtual/perl-ExtUtils-MakeMaker-6.590.0
|
||||
virtual/perl-CPAN-Meta
|
||||
test? (
|
||||
>=virtual/perl-Test-Simple-0.320.0
|
||||
)
|
||||
"
|
@ -1,5 +1,3 @@
|
||||
DIST HTML-TableParser-0.42.tar.gz 73638 BLAKE2B d422069322eada6e72a6742b32418b3c99dda824ebe98c10211b0cf0c4bf7133c6c7fe990148969c8e18cb01c2f2792ebc13ebfc04f8b5032ab48c4febfa6992 SHA512 dddde421a186ebd354c06201fdaa1379378b83acfc86fb0ed9a7959a993dd403c6d40d9aa36e143d1236c9d21ec56c851d82867783e4954f0eeba75ea8400d3d
|
||||
DIST HTML-TableParser-0.43.tar.gz 66079 BLAKE2B 5309e8b09fdff9b85b8612e4122a5732b2b85bf8e9382ba8656605d0b7faf4bc88e267226e3c7c4565637e370fa9a8526354d38e4296fa7d359004614275a91c SHA512 1f4fa5d5d91c830b6b0e53f6353af4a6016c08aeb572a9ab9d22f21d694b62cace6e745f6af3f96160b885ac2cd788331f0beb0a8777964fb80ff561c227dbf8
|
||||
EBUILD HTML-TableParser-0.420.0.ebuild 494 BLAKE2B d84ed4bdeeda30c26e06a35789f118c64ce2c0031cc9780cb9a39439bdf1cc4a55d8d3aad02ac8eb68b2755997f0a50de6572916671ce1e3b11f4d05cd8d513d SHA512 6882a6ac9b4fdb9aff29208b58732bb3ec300386f9895026e404321e9217e21ea98af7e8818ea7b5bdcc63572199686e7eda66dfc7382cd665c0f28b9d8ae44b
|
||||
EBUILD HTML-TableParser-0.430.0.ebuild 508 BLAKE2B 504be2182aba8491f7ade95e37875b1ea283cd67f9806082ea8fc2afbe616db1b77c2044aa1fcb1c063acf81a0a2b60773d9642c1f671be08e88e01bf7bcad04 SHA512 8e8dafa3bb1ac7eb2e90f79c51bdb9f241efaa8bf3e15d3c9471bbb70c2bca764e7f7d5a76e715183c5cb3d0b47ff22e89284dbdb8114456b5d5215a00018ca7
|
||||
MISC metadata.xml 476 BLAKE2B 5c03da9dd21d5b093c059b438103fe16aa34ec07226c19c157525ad7b74ac885b2b86fbdad00bba073cafb57a276bb28ba3796c888b7c462909f149ca0df85f8 SHA512 599bd2fed0f4f25132859c20bb1e3a03c35c6d8e6dbd59d0f5b621fde8f410155c9e796f059f9b951f99da62a134a2b39d9c86fe27f3d880b0ce330d85b1b3d9
|
||||
|
@ -1,20 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
MODULE_AUTHOR=SAMTREGAR
|
||||
MODULE_VERSION=0.07
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="HTML::Template extension adding expression support"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND=">=dev-perl/HTML-Template-2.8
|
||||
dev-perl/Parse-RecDescent"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
SRC_TEST="do"
|
@ -0,0 +1,20 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DIST_AUTHOR=SAMTREGAR
|
||||
DIST_VERSION=0.07
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="HTML::Template extension adding expression support"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-perl/HTML-Template-2.800.0
|
||||
dev-perl/Parse-RecDescent
|
||||
"
|
||||
BDEPEND="${RDEPEND}
|
||||
"
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-Template-Expr-0.07.tar.gz 19540 BLAKE2B d3c9e44e4b10a4bd97bb59ea35cec459f31f49d487420e346cc3aee40ffe6bcf0a675d74e6821e81f3d2486c04f52a0ba17f942f6cbfa37b7be466df92fedcdd SHA512 965e684a19160d0ca78be94736583a1402666b422432655104ead87c4b9bac4486b97ffbf21ed1f21006feed3ebf25a8dc9e8d6a1e9e1919c6a6f2bcc49dd85c
|
||||
EBUILD HTML-Template-Expr-0.70.0-r1.ebuild 387 BLAKE2B c465bce1a609a5da1367ce9bfcf6718c1ad200ef29ef969311eba5c40f1ccfe7e46061dc4ffe599787cead5c00d15a7e94b4bbb9ef25b3ac78590c0e4c5a6a30 SHA512 a8b5f0bcde9c71da74d816661bba89cbea586dc788493eb7a72d032cb01659e3f544fc0902d41e4f4ea3723ddd509bc0c5f9d6398530cf5bd75e4a7743821fed
|
||||
EBUILD HTML-Template-Expr-0.70.0-r2.ebuild 366 BLAKE2B 3796d45ad9917bd90005e19f98267ad66ca57e0eff27700ef5772c921349e5c5a48b04d63c36f254d2c3a302ca4dfce8da5fd665a93db6d9ed26001150298004 SHA512 f935f0b8baf4d8c43faf5c8bdb51357866356e62cb3e1211f0654c406ac31612d393f7a2452d98a6ad655ebb8cd0a649e6efa75566afe61ea07294d4c8d2d280
|
||||
MISC metadata.xml 410 BLAKE2B 4ab116c7178d0847ee603b56562ea2a6e17ff7a68e5dabfd3d17ecf85d4309322b0fb8756727ed68ff81f5283b7acdbc42cbc5257ff2816da355b609c325158b SHA512 eb17f90795dcd35f1ce39884c34e76fb5aded01c18a5ca545bb3e3367d4562f112175ea5c42c0670e57a74cf63522fab26be854d61a7730d89f7e2e8c4ed58f8
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST HTML-Template-2.97.tar.gz 88236 BLAKE2B 266b6d7988e04f4e2c0392c364245944cffbc5816d6038020dd1d9d56d5ebfbf6ce26d286ae6e09b17725faefc3409cadb4c562a5125fb753d59992895d98ded SHA512 e1cb68db24db1692c0fb3838739798e5716340e3e78260ee95614af5bf29ee100cc86bbd15a2dda3bb98c7f2ecdf0e3ff8ca7775171a44d9ed347d7f9c850783
|
||||
EBUILD HTML-Template-2.970.0.ebuild 706 BLAKE2B 5b539598aeb6aee352375b1134e13b70f405a5fc08fcbeed433004523509f5e8777fdfc579d07f95786cb8543cd6ce7281cb653b7eae7e892077dc2ea9494412 SHA512 8893bb021d31988dc674666083cfc1120f0d00f6ab5717cdc4224db853a879b5b09ef71a9cfd155c2fdc4434fccaf5fddb131479d49b43e60001f5968c142480
|
||||
EBUILD HTML-Template-2.970.0-r1.ebuild 669 BLAKE2B edfdeccf8213e7e067b50252a17d000e8c5c0ea6ed08eb38fd47104aa649535cddf1d15e79af68486977ad3becab38897256e17df1cd2753589f2b6cefea5b5b SHA512 efa4d976d4b5cc16b37a83d3bb5047f4db9fd272d2e7af1ef8e751ed6cb2c0af34811f9d57e74b9f3a4a14ef456b5d0ccaf07201ce4265bd00acc43013a03c33
|
||||
MISC metadata.xml 1084 BLAKE2B 36072b0cb89900805959824befdeb1790cc92e50c06db354fb09f5ffd8fde88dcd85659802a46aff0bd8ebecdf22c32faa8a71ca49fc6b73aaf2cf597e8c8220 SHA512 284ab385d4b93bded1afbc4535c5838c5bf740376dca62eb54e747dfeebd5b65b1275afcf365f301bd07f1794a7a98bd45334b13a7652f33371d78716c3c0ca9
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue