Merge pull request #302 from flatcar-linux/krnowak/pkg-updates-2018

Update packages and eclasses from 2018
This commit is contained in:
Krzesimir Nowak 2022-03-15 18:03:51 +01:00 committed by GitHub
commit 04d51ed887
254 changed files with 4771 additions and 14088 deletions

View File

@ -1,2 +1,2 @@
DIST efitools-1.7.0.tar.bz2 96042 BLAKE2B b0042df906282d878b1400c359c1eece24588f5df7ab753b62f5f0b95e97467cfaa17e04a2ef40a7ec85155c4d13bd438dd94471e0ec98ab23030dd54e7d4214 SHA512 1e839c5565b0a113569cf47bf98d656875f9a127b481287a553e8b1276969021e1a39a730b9ede3852e15d1ac045db7ec64767f5ac71a24567236c0938697ccb
DIST efitools-1.8.1.tar.gz 115319 BLAKE2B 3aad65defc203055122027cc3a48f50912d2f08b592841780fdc1bf337d75774116e698c4270865275ce7fe64988cd84105138ca979d81818f0065d7ae90f1d0 SHA512 114ef8e52160f5a5239ec306dbd587610849bce771ba8145ed092afd79e44f3ecee93cc1d97e2d5fdb880cc825bbbe928b3ef6701fd3b1fa444053894be1098a DIST efitools-1.8.1.tar.gz 115319 BLAKE2B 3aad65defc203055122027cc3a48f50912d2f08b592841780fdc1bf337d75774116e698c4270865275ce7fe64988cd84105138ca979d81818f0065d7ae90f1d0 SHA512 114ef8e52160f5a5239ec306dbd587610849bce771ba8145ed092afd79e44f3ecee93cc1d97e2d5fdb880cc825bbbe928b3ef6701fd3b1fa444053894be1098a
DIST efitools-1.9.2.tar.gz 116037 BLAKE2B b3540932eb112e362fd0eed47090360603807dcaec8c6a10058618f8252eeb5dcbbd703d313cb6fadae62c1312815080cf2c77fc86f9dfc9f9afca24ad97f584 SHA512 77e0ad7e865814ed388ff6daabe0f4b49ba51672bf2cbb98b7905e209cbd28f9ede2f73213ce45af8a978c1e67dba24ec88a1188661317cc22317b47e575cde8

View File

@ -1,33 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
inherit eutils
DESCRIPTION="Tools for manipulating UEFI secure boot platforms"
HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git"
SRC_URI="https://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git/snapshot/v${PV}.tar.bz2 -> ${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="libressl"
RDEPEND="
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
sys-apps/util-linux"
DEPEND="${RDEPEND}
sys-apps/help2man
>=sys-boot/gnu-efi-3.0u
app-crypt/sbsigntools
virtual/pkgconfig
dev-perl/File-Slurp"
S=${WORKDIR}/v${PV}
src_prepare() {
epatch "${FILESDIR}/1.7.0-Make.rules.patch"
epatch_user
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
@ -12,10 +12,9 @@ SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snaps
LICENSE="GPL-2 LGPL-2.1" LICENSE="GPL-2 LGPL-2.1"
SLOT="0" SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86" KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="libressl static" IUSE="static"
LIB_DEPEND="!libressl? ( dev-libs/openssl:0=[static-libs(+)] ) LIB_DEPEND="dev-libs/openssl:0=[static-libs(+)]"
libressl? ( dev-libs/libressl:0=[static-libs(+)] )"
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} ) RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
sys-apps/util-linux" sys-apps/util-linux"
@ -30,7 +29,7 @@ DEPEND="${RDEPEND}
PATCHES=( PATCHES=(
"${FILESDIR}/1.7.0-Make.rules.patch" "${FILESDIR}/1.7.0-Make.rules.patch"
"${FILESDIR}/${P}-libressl-compatibility.patch" "${FILESDIR}/1.8.1-respect-ar.patch"
) )
src_prepare() { src_prepare() {

View File

@ -0,0 +1,56 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit flag-o-matic toolchain-funcs
DESCRIPTION="Tools for manipulating UEFI secure boot platforms"
HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git"
SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 ~arm64 x86"
IUSE="static"
LIB_DEPEND="dev-libs/openssl:0=[static-libs(+)]"
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
sys-apps/util-linux"
DEPEND="${RDEPEND}
app-crypt/sbsigntools
dev-perl/File-Slurp
static? ( ${LIB_DEPEND} )
sys-apps/help2man
sys-boot/gnu-efi
virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/1.7.0-Make.rules.patch"
"${FILESDIR}/1.8.1-respect-ar.patch"
)
src_prepare() {
if use static; then
append-ldflags -static
sed -i "s/-lcrypto\b/$($(tc-getPKG_CONFIG) --static --libs libcrypto)/g" \
Makefile || die
fi
# Let it build with clang.
if tc-is-clang; then
sed -i -e 's/-fno-toplevel-reorder//g' Make.rules || die
fi
# Respect users CFLAGS
sed -i -e 's/CFLAGS.*= -O2 -g/CFLAGS += /' Make.rules || die
# Respect users LDFLAGS
sed -i -e 's/LDFLAGS/LIBS/g' Make.rules || die
sed -i -e 's/\$(CC)/& $(LDFLAGS)/g' Makefile || die
# Run 'default', to apply user patches
default
}

View File

@ -0,0 +1,25 @@
From 81503d7a43b99c036758d05c1794502c09189fa4 Mon Sep 17 00:00:00 2001
From: Matthias Maier <tamiko@43-1.org>
Date: Tue, 5 Oct 2021 22:27:52 -0500
Subject: [PATCH] Do not use ar directly
---
Make.rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Make.rules b/Make.rules
index e46d407..767070d 100644
--- a/Make.rules
+++ b/Make.rules
@@ -129,7 +129,7 @@ getvar = $(shell if [ "$(1)" = "PK" -o "$(1)" = "KEK" ]; then echo $(1); else ec
# sbsign --key KEK.key --cert KEK.crt --output $@ $<
%.a:
- ar rcv $@ $^
+ $(AR) rcv $@ $^
doc/%.1: doc/%.1.in %
$(HELP2MAN) --no-info -i $< -o $@ ./$*
--
2.32.0

View File

@ -1,11 +0,0 @@
--- a/cert-to-efi-hash-list.c 2018-04-21 20:59:24.814748503 +0200
+++ b/cert-to-efi-hash-list.c 2018-04-21 20:59:51.868581307 +0200
@@ -135,7 +135,7 @@
X509 *cert = PEM_read_bio_X509(cert_bio, NULL, NULL, NULL);
unsigned char *cert_buf = NULL;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
int cert_len = i2d_X509_CINF(cert->cert_info, &cert_buf);
#else
int cert_len = i2d_re_X509_tbs(cert, &cert_buf);

View File

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

View File

@ -1,2 +1,2 @@
DIST pinentry-1.0.0.tar.bz2 436930 BLAKE2B 949be8de8504a42cd5bd6ffebe331a825db7ff3c2ccc5fc554155b7621fddf9df957aa92063eb1a06c6964826a296bf60a4cc46cf2886552e37703a62042f35a SHA512 f109236707c51871b5020ef807a551366461fafcfbe09bf8cda19d4b163a42cf622562b905ceb41429f1d648b3f3d27807538709da6a135b67f9888709eccd62 DIST pinentry-1.1.1.tar.bz2 515723 BLAKE2B f257fe552852e6d1ff2c23aeb0c1127b43e3a60e44c78dfa764d569e659ccb78528ce3ee863114af273a4b6f6c24686cda2cb14bb04995eb8c41ccd4541a9fbd SHA512 d6ab5af8ac2f3c9c05e09703e95d8e2676f9b2b7ceb97f6a31d101d0e9da7a1e106a6d3eabe86cab1bb35a4b119a7cba1380ac64bf13c61af0b3c48803116c12
DIST pinentry-1.1.0.tar.bz2 467702 BLAKE2B cf43555848ab0dc60756fca123aba7599ebb1bfe0458b973ed9d84479f8de9ee69ef309b518b40aa340434d64d37793cf97c94f78f99820bc5c71ecd2aac7a49 SHA512 5012672925bcb5f683358c259e55e4b87c67cf063ad52c759308933733025c33f7ce08e5b8019ffc101cbf7ef30499040ef2fd34a7611698e65e1593f80948cd DIST pinentry-1.2.0.tar.bz2 498390 BLAKE2B 6e97b55fe39e9c17f8a87fa669d23fca56c1095c2533a9eebe459fafc95a3fcb0a5ea502077aae5480b5259a3096c5f85e05d4872c0b19ad33f3d9084a220cc7 SHA512 19cea79aa3982d1f0d75220c8e24ca38d6c49475c6f4c5aa7101151b4690db23ed316096a4a411136e716ba4eb471f48f9b09556e5c9837533c2356b9b384b63

View File

@ -0,0 +1,11 @@
https://bugs.gentoo.org/718028
--- a/configure.ac
+++ b/configure.ac
@@ -80,6 +80,7 @@ AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
+AM_PROG_AR
AC_PROG_RANLIB
# We need to check for cplusplus here because we may not do the test
# for Qt and autoconf does does not allow that.

View File

@ -1,47 +0,0 @@
From 1590b664d88be8386a4664c2994b685187d1eb25 Mon Sep 17 00:00:00 2001
From: Damien Goutte-Gattat <dgouttegattat@incenp.org>
Date: Thu, 3 Aug 2017 22:56:49 +0200
Subject: [PATCH 1/6] gtk: Disable tooltips in keyboard-grabbing mode.
* gtk+-2:/pinentry-gtk-2.c (show_hide_button): Do not show the
tooltip if we attempt to grab the keyboard.
(create_window): Likewise.
--
For unclear reasons, those tooltips may interfere with grabbing
under some tiling window managers.
GnuPG-bug-id: 3297
Signed-off-by: Damien Goutte-Gattat <dgouttegattat@incenp.org>
---
gtk+-2/pinentry-gtk-2.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
index d467ec5..f17a702 100644
--- a/gtk+-2/pinentry-gtk-2.c
+++ b/gtk+-2/pinentry-gtk-2.c
@@ -516,7 +516,10 @@ show_hide_button_toggled (GtkWidget *widget, gpointer data)
}
gtk_label_set_markup (GTK_LABEL(label), text);
- gtk_widget_set_tooltip_text (GTK_WIDGET(button), tooltip);
+ if (!pinentry->grab)
+ {
+ gtk_widget_set_tooltip_text (GTK_WIDGET(button), tooltip);
+ }
g_free (tooltip);
}
@@ -736,7 +739,7 @@ create_window (pinentry_t ctx)
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (qualitybar),
QUALITYBAR_EMPTY_TEXT);
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (qualitybar), 0.0);
- if (pinentry->quality_bar_tt)
+ if (pinentry->quality_bar_tt && !pinentry->grab)
{
#if !GTK_CHECK_VERSION (2, 12, 0)
gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), qualitybar,
--
2.13.6

View File

@ -1,218 +0,0 @@
From c5c7bee68730c9f66a27f9bb0d023480623a2bfb Mon Sep 17 00:00:00 2001
From: Werner Koch <wk@gnupg.org>
Date: Thu, 1 Dec 2016 09:10:08 +0100
Subject: [PATCH] Fix linkage problem in tty and emacs pinentries.
* emacs/pinentry-emacs.c (curses_cmd_handler): Remove var.
* tty/pinentry-tty.c (curses_cmd_handler): Remove var.
* pinentry/pinentry.c (flavor_flag): New local var.
(pinentry_set_flavor_flag): New function.
(cmd_getinfo): Use FLAVOR_FLAG for the "flavor" sub-command.
* gnome3/pinentry-gnome3.c (main): Call pinentry_set_flavor_flag.
* gtk+-2/pinentry-gtk-2.c (main): Ditto.
* pinentry/pinentry-emacs.c (initial_emacs_cmd_handler): Ditto.
* qt/main.cpp (main): Ditto.
--
Fixes-commit: e4e3a9cc88704dcffac660d0b92fd1ed8abecc11
Fixes-commit: d126036671e7dd631babc118cb4113f723f15748
Signed-off-by: Werner Koch <wk@gnupg.org>
---
emacs/pinentry-emacs.c | 4 ----
gnome3/pinentry-gnome3.c | 3 +++
gtk+-2/pinentry-gtk-2.c | 10 ++++++++--
pinentry/pinentry-emacs.c | 5 ++++-
pinentry/pinentry.c | 34 ++++++++++++++++++----------------
pinentry/pinentry.h | 4 ++++
qt/main.cpp | 1 +
tty/pinentry-tty.c | 3 ---
8 files changed, 38 insertions(+), 26 deletions(-)
diff --git a/emacs/pinentry-emacs.c b/emacs/pinentry-emacs.c
index b6b3eb8..3c39a96 100644
--- a/emacs/pinentry-emacs.c
+++ b/emacs/pinentry-emacs.c
@@ -29,10 +29,6 @@
pinentry_cmd_handler_t pinentry_cmd_handler = emacs_cmd_handler;
-/* needed to link cleanly; should never be used except for comparison
- * in pinentry/pinentry.c's cmd_getinfo(): */
-pinentry_cmd_handler_t curses_cmd_handler = NULL;
-
int
diff --git a/gnome3/pinentry-gnome3.c b/gnome3/pinentry-gnome3.c
index a040f9b..d5a49d6 100644
--- a/gnome3/pinentry-gnome3.c
+++ b/gnome3/pinentry-gnome3.c
@@ -517,18 +517,21 @@ main (int argc, char *argv[])
fprintf (stderr, "No $DBUS_SESSION_BUS_ADDRESS found,"
" falling back to curses\n");
pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
}
else if (!pe_gcr_system_prompt_available ())
{
fprintf (stderr, "No Gcr System Prompter available,"
" falling back to curses\n");
pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
}
else if (pe_gnome_screen_locked ())
{
fprintf (stderr, "GNOME screensaver is locked,"
" falling back to curses\n");
pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
}
#endif
diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
index 6037533..473c4aa 100644
--- a/gtk+-2/pinentry-gtk-2.c
+++ b/gtk+-2/pinentry-gtk-2.c
@@ -938,10 +938,16 @@ main (int argc, char *argv[])
if (pinentry_have_display (argc, argv))
{
if (! gtk_init_check (&argc, &argv))
- pinentry_cmd_handler = curses_cmd_handler;
+ {
+ pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
+ }
}
else
- pinentry_cmd_handler = curses_cmd_handler;
+ {
+ pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
+ }
#else
gtk_init (&argc, &argv);
#endif
diff --git a/pinentry/pinentry-emacs.c b/pinentry/pinentry-emacs.c
index df12f1b..50ba406 100644
--- a/pinentry/pinentry-emacs.c
+++ b/pinentry/pinentry-emacs.c
@@ -644,7 +644,10 @@ initial_emacs_cmd_handler (pinentry_t pe)
if (emacs_socket < 0)
pinentry_cmd_handler = fallback_cmd_handler;
else
- pinentry_cmd_handler = emacs_cmd_handler;
+ {
+ pinentry_cmd_handler = emacs_cmd_handler;
+ pinentry_set_flavor_flag ("emacs");
+ }
return (* pinentry_cmd_handler) (pe);
}
diff --git a/pinentry/pinentry.c b/pinentry/pinentry.c
index 322a651..a198fb3 100644
--- a/pinentry/pinentry.c
+++ b/pinentry/pinentry.c
@@ -67,6 +67,10 @@ static char this_pgmname[50];
struct pinentry pinentry;
+
+static const char *flavor_flag;
+
+
static void
pinentry_reset (int use_defaults)
{
@@ -793,6 +797,16 @@ pinentry_parse_opts (int argc, char *argv[])
}
}
+
+/* Set the optional flag used with getinfo. */
+void
+pinentry_set_flavor_flag (const char *string)
+{
+ flavor_flag = string;
+}
+
+
+
static gpg_error_t
option_handler (assuan_context_t ctx, const char *key, const char *value)
@@ -1444,27 +1458,15 @@ cmd_getinfo (assuan_context_t ctx, char *line)
}
else if (!strcmp (line, "flavor"))
{
- const char *flags;
-
if (!strncmp (this_pgmname, "pinentry-", 9) && this_pgmname[9])
s = this_pgmname + 9;
else
s = this_pgmname;
- if (0)
- ;
-#ifdef INSIDE_EMACS
- else if (pinentry_cmd_handler == emacs_cmd_handler)
- flags = ":emacs";
-#endif
-#ifdef FALLBACK_CURSES
- else if (pinentry_cmd_handler == curses_cmd_handler)
- flags = ":curses";
-#endif
- else
- flags = "";
-
- snprintf (buffer, sizeof buffer, "%s%s", s, flags);
+ snprintf (buffer, sizeof buffer, "%s%s%s",
+ s,
+ flavor_flag? ":":"",
+ flavor_flag? flavor_flag : "");
buffer[sizeof buffer -1] = 0;
rc = assuan_send_data (ctx, buffer, strlen (buffer));
}
diff --git a/pinentry/pinentry.h b/pinentry/pinentry.h
index 01fb373..45d35ad 100644
--- a/pinentry/pinentry.h
+++ b/pinentry/pinentry.h
@@ -275,6 +275,10 @@ int pinentry_have_display (int argc, char **argv);
or version output is requested. */
void pinentry_parse_opts (int argc, char *argv[]);
+/* Set the optional flag used with getinfo. */
+void pinentry_set_flavor_flag (const char *string);
+
+
/* The caller must define this variable to process assuan commands. */
extern pinentry_cmd_handler_t pinentry_cmd_handler;
diff --git a/qt/main.cpp b/qt/main.cpp
index 8284960..225c06b 100644
--- a/qt/main.cpp
+++ b/qt/main.cpp
@@ -308,6 +308,7 @@ main(int argc, char *argv[])
#ifdef FALLBACK_CURSES
if (!pinentry_have_display(argc, argv)) {
pinentry_cmd_handler = curses_cmd_handler;
+ pinentry_set_flavor_flag ("curses");
} else
#endif
{
diff --git a/tty/pinentry-tty.c b/tty/pinentry-tty.c
index 3d6cd5a..a509d79 100644
--- a/tty/pinentry-tty.c
+++ b/tty/pinentry-tty.c
@@ -556,9 +556,6 @@ tty_cmd_handler(pinentry_t pinentry)
pinentry_cmd_handler_t pinentry_cmd_handler = tty_cmd_handler;
-/* needed to link cleanly; should never be used except for comparison
- * in pinentry/pinentry.c's cmd_getinfo(): */
-pinentry_cmd_handler_t curses_cmd_handler = NULL;
int
--
2.8.0.rc3

View File

@ -1,47 +0,0 @@
From b0e0bdeac5d40ca645afc9017778b39a26303523 Mon Sep 17 00:00:00 2001
From: Werner Koch <wk@gnupg.org>
Date: Wed, 11 Jan 2017 18:40:17 +0100
Subject: [PATCH 01/25] gtk2: Fix a problem with fvwm
* gtk+-2/pinentry-gtk-2.c (grab_pointer): Take care of
GDK_GRAB_ALREADY_GRABBED.
--
Debian-bug-id: 850708
Co-authored-by: Vincent Lefevre <vincent@vinc17.net>
Signed-off-by: Werner Koch <wk@gnupg.org>
---
gtk+-2/pinentry-gtk-2.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c
index 473c4aa..e37601f 100644
--- a/gtk+-2/pinentry-gtk-2.c
+++ b/gtk+-2/pinentry-gtk-2.c
@@ -203,7 +203,12 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data)
(void)data;
/* Change the cursor for the duration of the grab to indicate that
- something is going on. */
+ * something is going on. The fvwm window manager grabs the pointer
+ * for a short time and thus we may end up with the already grabbed
+ * error code. Actually this error code should be used to detect a
+ * malicious grabbing application but with fvwm this renders
+ * Pinentry only unusable. Thus we try again several times also for
+ * that error code. See Debian bug 850708 for details. */
/* XXX: It would be nice to have a key cursor, unfortunately there
is none readily available. */
cursor = gdk_cursor_new_for_display (gtk_widget_get_display (win),
@@ -215,7 +220,8 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data)
NULL /* confine to */,
cursor,
gdk_event_get_time (event));
- while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE);
+ while (tries++ < max_tries && (err == GDK_GRAB_NOT_VIEWABLE
+ || err == GDK_GRAB_ALREADY_GRABBED));
if (err)
{
--
2.13.6

View File

@ -1,12 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <maintainer type="person">
<email>k_f@gentoo.org</email> <email>zlogene@gentoo.org</email>
<name>Kristian Fiskerstrand</name> <name>Mikle Kolyada</name>
</maintainer> </maintainer>
<maintainer type="project"> <maintainer type="project">
<email>crypto@gentoo.org</email> <email>base-system@gentoo.org</email>
<name>Crypto</name> <name>Gentoo Base System</name>
</maintainer> </maintainer>
<use>
<flag name="efl">Build <pkg>dev-libs/efl</pkg> based pinentry</flag>
</use>
</pkgmetadata> </pkgmetadata>

View File

@ -1,102 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2/index.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps emacs gnome-keyring gtk ncurses qt5 static"
CDEPEND="
app-eselect/eselect-pinentry
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
gnome-keyring? ( app-crypt/libsecret )
gtk? ( x11-libs/gtk+:2 )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
"
DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
"
RDEPEND="${CDEPEND}
gnome-keyring? ( app-crypt/gcr )
"
REQUIRED_USE="
gtk? ( !static )
qt5? ( !static )
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${P}-build.patch"
"${FILESDIR}/${P}-Disable-tooltips-in-keyboard-grabbing-mode.patch"
"${FILESDIR}/${P}-gtk2-Fix-a-problem-with-fvwm.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
use static && append-ldflags -static
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
--enable-pinentry-tty \
$(use_with caps libcap) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gnome-keyring pinentry-gnome3) \
$(use_enable gtk pinentry-gtk2) \
$(use_enable ncurses pinentry-curses) \
$(use_enable ncurses fallback-curses) \
$(use_enable qt5 pinentry-qt) \
MOC="$(qt5_get_bindir)"/moc
}
src_install() {
default
rm -f "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt4
}
pkg_postinst() {
if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
elog "The soft resource limit for memory locking specifies the limit an"
elog "unprivileged process may lock into memory. You can also use POSIX"
elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
elog "your users."
fi
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -1,103 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2/index.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps emacs gnome-keyring gtk ncurses qt5 static"
CDEPEND="
app-eselect/eselect-pinentry
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
gnome-keyring? ( app-crypt/libsecret )
gtk? ( x11-libs/gtk+:2 )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
"
DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
"
RDEPEND="${CDEPEND}
gnome-keyring? ( app-crypt/gcr )
"
REQUIRED_USE="
gtk? ( !static )
qt5? ( !static )
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${P}-build.patch"
"${FILESDIR}/${P}-Disable-tooltips-in-keyboard-grabbing-mode.patch"
"${FILESDIR}/${P}-gtk2-Fix-a-problem-with-fvwm.patch"
"${FILESDIR}/${P}-make-icon-work-under-Plasma-Wayland.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
use static && append-ldflags -static
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
--enable-pinentry-tty \
$(use_with caps libcap) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gnome-keyring pinentry-gnome3) \
$(use_enable gtk pinentry-gtk2) \
$(use_enable ncurses pinentry-curses) \
$(use_enable ncurses fallback-curses) \
$(use_enable qt5 pinentry-qt) \
MOC="$(qt5_get_bindir)"/moc
}
src_install() {
default
rm -f "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt4
}
pkg_postinst() {
if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
elog "The soft resource limit for memory locking specifies the limit an"
elog "unprivileged process may lock into memory. You can also use POSIX"
elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
elog "your users."
fi
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -1,100 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2/index.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps emacs gnome-keyring gtk ncurses qt5 static"
CDEPEND="
app-eselect/eselect-pinentry
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
gnome-keyring? ( app-crypt/libsecret )
gtk? ( x11-libs/gtk+:2 )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
"
DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
"
RDEPEND="${CDEPEND}
gnome-keyring? ( app-crypt/gcr )
"
REQUIRED_USE="
gtk? ( !static )
qt5? ( !static )
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-1.0.0-make-icon-work-under-Plasma-Wayland.patch"
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
use static && append-ldflags -static
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
--enable-pinentry-tty \
$(use_with caps libcap) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gnome-keyring pinentry-gnome3) \
$(use_enable gtk pinentry-gtk2) \
$(use_enable ncurses pinentry-curses) \
$(use_enable ncurses fallback-curses) \
$(use_enable qt5 pinentry-qt) \
MOC="$(qt5_get_bindir)"/moc
}
src_install() {
default
rm -f "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt4
}
pkg_postinst() {
if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
elog "The soft resource limit for memory locking specifies the limit an"
elog "unprivileged process may lock into memory. You can also use POSIX"
elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
elog "your users."
fi
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -1,102 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2/index.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps emacs gnome-keyring fltk gtk ncurses qt5 static"
CDEPEND="
app-eselect/eselect-pinentry
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
fltk? ( x11-libs/fltk )
gnome-keyring? ( app-crypt/libsecret )
gtk? ( x11-libs/gtk+:2 )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
static? ( >=sys-libs/ncurses-5.7-r5:0=[static-libs,-gpm] )
"
DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
"
RDEPEND="${CDEPEND}
gnome-keyring? ( app-crypt/gcr )
"
REQUIRED_USE="
gtk? ( !static )
qt5? ( !static )
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-1.0.0-make-icon-work-under-Plasma-Wayland.patch"
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
use static && append-ldflags -static
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
--enable-pinentry-tty \
$(use_with caps libcap) \
$(use_enable emacs pinentry-emacs) \
$(use_enable fltk pinentry-fltk) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gnome-keyring pinentry-gnome3) \
$(use_enable gtk pinentry-gtk2) \
$(use_enable ncurses pinentry-curses) \
$(use_enable ncurses fallback-curses) \
$(use_enable qt5 pinentry-qt) \
MOC="$(qt5_get_bindir)"/moc
}
src_install() {
default
rm -f "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt4
}
pkg_postinst() {
if ! has_version 'app-crypt/pinentry' || has_version '<app-crypt/pinentry-0.7.3'; then
elog "We no longer install pinentry-curses and pinentry-qt SUID root by default."
elog "Linux kernels >=2.6.9 support memory locking for unprivileged processes."
elog "The soft resource limit for memory locking specifies the limit an"
elog "unprivileged process may lock into memory. You can also use POSIX"
elog "capabilities to allow pinentry to lock memory. To do so activate the caps"
elog "USE flag and add the CAP_IPC_LOCK capability to the permitted set of"
elog "your users."
fi
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -0,0 +1,90 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps efl emacs gnome-keyring gtk ncurses qt5"
DEPEND="
>=app-eselect/eselect-pinentry-0.7.2
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
efl? ( dev-libs/efl[X] )
gnome-keyring? ( app-crypt/libsecret )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
"
RDEPEND="${DEPEND}
gtk? ( app-crypt/gcr[gtk] )
"
BDEPEND="
sys-devel/gettext
virtual/pkgconfig
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-1.0.0-make-icon-work-under-Plasma-Wayland.patch"
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${PN}-1.0.0-AR.patch"
)
src_prepare() {
default
unset FLTK_CONFIG
eautoreconf
}
src_configure() {
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
$(use_enable efl pinentry-efl) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gtk pinentry-gnome3) \
$(use_enable ncurses fallback-curses) \
$(use_enable ncurses pinentry-curses) \
$(use_enable qt5 pinentry-qt) \
$(use_with caps libcap) \
--enable-pinentry-tty \
--disable-pinentry-fltk \
--disable-pinentry-gtk2 \
MOC="$(qt5_get_bindir)"/moc \
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" \
LIBASSUAN_CONFIG="${ESYSROOT}/usr/bin/libassuan-config" \
$("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
}
src_install() {
default
rm "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt5
}
pkg_postinst() {
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -0,0 +1,90 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools flag-o-matic qmake-utils toolchain-funcs
DESCRIPTION="Simple passphrase entry dialogs which utilize the Assuan protocol"
HOMEPAGE="https://gnupg.org/aegypten2"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="caps efl emacs gnome-keyring gtk ncurses qt5"
DEPEND="
>=app-eselect/eselect-pinentry-0.7.2
>=dev-libs/libassuan-2.1
>=dev-libs/libgcrypt-1.6.3
>=dev-libs/libgpg-error-1.17
caps? ( sys-libs/libcap )
efl? ( dev-libs/efl[X] )
gnome-keyring? ( app-crypt/libsecret )
ncurses? ( sys-libs/ncurses:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
"
RDEPEND="${DEPEND}
gtk? ( app-crypt/gcr[gtk] )
"
BDEPEND="
sys-devel/gettext
virtual/pkgconfig
"
DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
PATCHES=(
"${FILESDIR}/${PN}-1.0.0-make-icon-work-under-Plasma-Wayland.patch"
"${FILESDIR}/${PN}-0.8.2-ncurses.patch"
"${FILESDIR}/${PN}-1.0.0-AR.patch"
)
src_prepare() {
default
unset FLTK_CONFIG
eautoreconf
}
src_configure() {
[[ "$(gcc-major-version)" -ge 5 ]] && append-cxxflags -std=gnu++11
export QTLIB="$(qt5_get_libdir)"
econf \
$(use_enable efl pinentry-efl) \
$(use_enable emacs pinentry-emacs) \
$(use_enable gnome-keyring libsecret) \
$(use_enable gtk pinentry-gnome3) \
$(use_enable ncurses fallback-curses) \
$(use_enable ncurses pinentry-curses) \
$(use_enable qt5 pinentry-qt) \
$(use_with caps libcap) \
--enable-pinentry-tty \
--disable-pinentry-fltk \
--disable-pinentry-gtk2 \
MOC="$(qt5_get_bindir)"/moc \
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" \
LIBASSUAN_CONFIG="${ESYSROOT}/usr/bin/libassuan-config" \
$("${S}/configure" --help | grep -- '--without-.*-prefix' | sed -e 's/^ *\([^ ]*\) .*/\1/g')
}
src_install() {
default
rm "${ED}"/usr/bin/pinentry || die
use qt5 && dosym pinentry-qt /usr/bin/pinentry-qt5
}
pkg_postinst() {
eselect pinentry update ifunset
}
pkg_postrm() {
eselect pinentry update ifunset
}

View File

@ -1,2 +1,2 @@
DIST rhash-1.3.5-src.tar.gz 316867 BLAKE2B 3ffbf2ec5aef24ef63455e21c3efcae043a321a78be522a26bd25086111430071a496ab3775ff9b4956da7304df8d8e552a061f3306a7a683be5fc65ea3fd1c4 SHA512 e8450aab0c16bfb975bf4aeee218740fb4d86d5514e426b70c3edb84e4d63865cd4051939aa95c24a87a78baaedc49e40bb509b2610e89ca3745930808b3ef6c
DIST rhash-1.3.6-src.tar.gz 328097 BLAKE2B c74993d183f0f2e479f0bd5831a9f653b9bd17bbed4d1ba896f6e33db98b7141175cd3c688dc41dfd8ec4b98acb51255ae5b795435cbc9dfb5ab77573cb25543 SHA512 54f7f238ed1fdc01c29cc1338fa86be90b69beff0df8f20d24ce9cb3c48c7f4668b84a3fe0d4d8b04b54bc8145485d493435edf3219de3a637af0f9c007c85c6 DIST rhash-1.3.6-src.tar.gz 328097 BLAKE2B c74993d183f0f2e479f0bd5831a9f653b9bd17bbed4d1ba896f6e33db98b7141175cd3c688dc41dfd8ec4b98acb51255ae5b795435cbc9dfb5ab77573cb25543 SHA512 54f7f238ed1fdc01c29cc1338fa86be90b69beff0df8f20d24ce9cb3c48c7f4668b84a3fe0d4d8b04b54bc8145485d493435edf3219de3a637af0f9c007c85c6
DIST rhash-1.4.2-src.tar.gz 416853 BLAKE2B 06322825116cb00aa4987b01610d967eb57c94aa29b43348ec2c31f053fd471a900fcee776714263213e9a79eaf389b2e79d7b34a5afd3e98d68198193b5cbe7 SHA512 41df57e8b3f32c93d8e6f2ac668b32aaa23eb2eaf90a83f109e61e511404a5036ea88bcf2854e19c1ade0f61960e0d9edf01f3d82e1c645fed36579e9d7a6a25

View File

@ -0,0 +1,23 @@
From 35a830d1968465e4ecb079273f032b754bac6c66 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
Date: Sun, 25 Mar 2018 17:40:49 +0100
Subject: [PATCH] configure: Add target OS clause for Darwin
These triplets can also have a version number suffix, for example,
x86_64-apple-darwin16.
---
configure | 1 +
1 file changed, 1 insertion(+)
diff --git a/configure b/configure
index 5b6b710..2d8ac42 100755
--- a/configure
+++ b/configure
@@ -410,6 +410,7 @@ else
amigaos) TARGET_OS=AmigaOS ;;
mingw32*) TARGET_OS=MINGW32 ;;
wine) TARGET_OS=Wine ;;
+ darwin*) TARGET_OS=Darwin ;;
esac
}
TARGET_OS="UNKNOWN"

View File

@ -0,0 +1,23 @@
From 14db7f9ee87e05450853ba0e1d8e83cc34aef3e4 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@aura-online.co.uk>
Date: Sat, 24 Mar 2018 13:51:56 +0000
Subject: [PATCH] configure: Match FreeBSD triplets with versions
Triplets such as x86_64-unknown-freebsd11.1 are common.
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index 8ebb929..5b6b710 100755
--- a/configure
+++ b/configure
@@ -398,7 +398,7 @@ else
part=$(echo $BUILD_TARGET | cut -d '-' -f $component)
case "$(echo $part | tr '[A-Z]' '[a-z]')" in
linux) TARGET_OS=Linux ;;
- freebsd) TARGET_OS=FreeBSD ;;
+ freebsd*) TARGET_OS=FreeBSD ;;
gnu/kfreebsd) TARGET_OS=FreeBSD ;;
netbsd) TARGET_OS=NetBSD ;;
bsd/os) TARGET_OS=BSD/OS ;;

View File

@ -0,0 +1,80 @@
From 4dc506066cf1727b021e6352535a8bb315c3f8dc Mon Sep 17 00:00:00 2001
From: Aleksey <rhash.admin@gmail.com>
Date: Sat, 17 Jul 2021 18:39:41 +0300
Subject: [PATCH] configure: fix clang detection on macOS
---
configure | 58 +++++++++++++++++++++++++++----------------------------
1 file changed, 28 insertions(+), 30 deletions(-)
diff --git a/configure b/configure
index 59d432b..111270a 100755
--- a/configure
+++ b/configure
@@ -519,38 +519,36 @@ else
elif run_cmd "$CC --version"; then
cc_name_tmp=$($CC --version 2>&1 | head -n 1 | cut -d ' ' -f 1)
fi
- if test -n "${cc_name_tmp}"; then
- if echo "$cc_name_tmp" | grep -q "gcc"; then
- cc_name=$cc_name_tmp
- start_check "$CC version"
- cc_vendor=gnu
- cc_version=$($CC -dumpversion 2>&1)
- if ! echo $cc_version | grep -q '^[0-9][0-9]*\.[0-9]'; then
- cc_v2=$($CC -dumpfullversion -dumpversion 2>/dev/null)
- if echo $cc_v2 | grep -q '^[0-9][0-9]*\.[0-9]'; then
- cc_version=$cc_v2
- fi
+ if echo "$cc_name_tmp" | grep -q "gcc"; then
+ cc_name=$cc_name_tmp
+ start_check "$CC version"
+ cc_vendor=gnu
+ cc_version=$($CC -dumpversion 2>&1)
+ if ! echo $cc_version | grep -q '^[0-9][0-9]*\.[0-9]'; then
+ cc_v2=$($CC -dumpfullversion -dumpversion 2>/dev/null)
+ if echo $cc_v2 | grep -q '^[0-9][0-9]*\.[0-9]'; then
+ cc_version=$cc_v2
fi
- case $cc_version in
- 2.96*)
- cc_fail=yes
- ;;
- *)
- _cc_major=$(echo $cc_version | cut -d '.' -f 1)
- _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
- _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
- ;;
- esac
- finish_check "$cc_name $cc_version"
- break
- fi
- if echo "$cc_name_tmp" | grep -q "clang"; then
- start_check "$CC version"
- cc_vendor=clang
- cc_version=$($CC -dumpversion 2>&1)
- finish_check "clang $cc_version"
- break
fi
+ case $cc_version in
+ 2.96*)
+ cc_fail=yes
+ ;;
+ *)
+ _cc_major=$(echo $cc_version | cut -d '.' -f 1)
+ _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
+ _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
+ ;;
+ esac
+ finish_check "$cc_name $cc_version"
+ break
+ elif $CC --version 2>&1 | grep -q "clang"; then
+ start_check "$CC version"
+ cc_vendor=clang
+ cc_version=$($CC -dumpversion 2>&1)
+ finish_check "clang $cc_version"
+ break
+ else
cc_name_tmp=$($CC -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
if test "$cc_name_tmp" = "Sun C"; then
start_check "$CC version"

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <maintainer type="person">
<email>chewi@gentoo.org</email> <email>chewi@gentoo.org</email>
@ -8,6 +8,7 @@
<upstream> <upstream>
<remote-id type="sourceforge">rhash</remote-id> <remote-id type="sourceforge">rhash</remote-id>
<remote-id type="github">rhash/RHash</remote-id> <remote-id type="github">rhash/RHash</remote-id>
<remote-id type="cpe">cpe:/a:rhash_project:rhash</remote-id>
<bugs-to>https://github.com/rhash/RHash/issues</bugs-to> <bugs-to>https://github.com/rhash/RHash/issues</bugs-to>
</upstream> </upstream>
<longdescription lang="en"> <longdescription lang="en">

View File

@ -1,94 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit toolchain-funcs multilib-minimal
DESCRIPTION="Console utility and library for computing and verifying file hash sums"
HOMEPAGE="http://rhash.anz.ru/"
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
IUSE="debug nls libressl ssl static-libs"
RDEPEND="
ssl? (
!libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
)"
DEPEND="${RDEPEND}
nls? ( sys-devel/gettext )"
S="${WORKDIR}/RHash-${PV}"
src_prepare() {
default
# Install /etc stuff inside the Prefix
sed -i -e 's:\$(DESTDIR)/etc:\$(DESTDIR)/$(SYSCONFDIR):g' Makefile || die
if use elibc_Darwin ; then
local ver_script='-Wl,--version-script,exports.sym,-soname,$(SONAME)'
local install_name='-install_name $(LIBDIR)/$(SONAME)'
sed -i -e '/^\(SONAME\|SHAREDLIB\)/s/\.so\.\([0-9]\+\)/.\1.dylib/' \
-e '/^SOLINK/s/\.so/.dylib/' \
-e "s:${ver_script}:${install_name}:" \
librhash/Makefile \
Makefile || die
fi
if use elibc_SunOS ; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=12548
# skip the export.sym for now
sed -i -e 's/,--version-script,exports.sym//' librhash/Makefile || die
fi
multilib_copy_sources
}
multilib_src_compile() {
local ADDCFLAGS=(
$(use debug || echo -DNDEBUG)
$(use nls && echo -DUSE_GETTEXT)
$(use ssl && echo -DOPENSSL_RUNTIME -rdynamic)
)
local ADDLDFLAGS=(
$(use ssl && echo -ldl)
)
use elibc_Darwin || use elibc_DragonFly ||
use elibc_NetBSD || use elibc_OpenBSD || use elibc_SunOS &&
ADDLDFLAGS+=( $(use nls && echo -lintl) )
emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" \
ADDCFLAGS="${ADDCFLAGS[*]}" ADDLDFLAGS="${ADDLDFLAGS[*]}" \
PREFIX="${EPREFIX}"/usr LIBDIR='$(PREFIX)'/$(get_libdir) \
build-shared $(use static-libs && echo lib-static)
}
myemake() {
emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr \
LIBDIR='$(PREFIX)'/$(get_libdir) SYSCONFDIR="${EPREFIX}"/etc "${@}"
}
multilib_src_install() {
myemake -C librhash install-lib-shared install-so-link
multilib_is_native_abi && myemake install-shared
use static-libs && myemake install-lib-static
}
multilib_src_install_all() {
myemake -C librhash install-headers
use nls && myemake install-gmo
einstalldocs
}
multilib_src_test() {
cd tests || die
LD_LIBRARY_PATH=$(pwd)/../librhash ./test_rhash.sh --full ../rhash_shared || die "tests failed"
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
@ -6,18 +6,17 @@ EAPI=6
inherit toolchain-funcs multilib-minimal inherit toolchain-funcs multilib-minimal
DESCRIPTION="Console utility and library for computing and verifying file hash sums" DESCRIPTION="Console utility and library for computing and verifying file hash sums"
HOMEPAGE="http://rhash.anz.ru/" HOMEPAGE="http://rhash.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz" SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz"
LICENSE="MIT" LICENSE="MIT"
SLOT="0" SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x64-solaris ~x86-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris ~x86-solaris"
IUSE="debug nls libressl ssl static-libs" IUSE="debug nls ssl static-libs"
RDEPEND=" RDEPEND="
ssl? ( ssl? (
!libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] ) dev-libs/openssl:0=[${MULTILIB_USEDEP}]
libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
)" )"
DEPEND="${RDEPEND} DEPEND="${RDEPEND}
@ -28,6 +27,7 @@ S="${WORKDIR}/RHash-${PV}"
PATCHES=( PATCHES=(
"${FILESDIR}"/unquote-cc.patch "${FILESDIR}"/unquote-cc.patch
"${FILESDIR}"/${P}-no_echon.patch "${FILESDIR}"/${P}-no_echon.patch
"${FILESDIR}"/{freebsd,darwin}-triplet.patch
) )
src_prepare() { src_prepare() {

View File

@ -0,0 +1,86 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs multilib-minimal
DESCRIPTION="Console utility and library for computing and verifying file hash sums"
HOMEPAGE="http://rhash.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug nls ssl static-libs"
RDEPEND="
ssl? (
dev-libs/openssl:0=[${MULTILIB_USEDEP}]
)"
DEPEND="
${RDEPEND}
"
BDEPEND="
nls? ( sys-devel/gettext )
"
S="${WORKDIR}/RHash-${PV}"
PATCHES=(
"${FILESDIR}"/${P}-clang.patch
)
src_prepare() {
default
if [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] ; then
# we lack posix_memalign
sed -i -e '/if _POSIX_VERSION/s/if .*$/if 0/' \
librhash/util.h || die
fi
multilib_copy_sources
}
multilib_src_configure() {
set -- \
./configure \
--target="${CHOST}" \
--cc="$(tc-getCC)" \
--ar="$(tc-getAR)" \
--extra-cflags="${CFLAGS}" \
--extra-ldflags="${LDFLAGS}" \
--prefix="${EPREFIX}"/usr \
--libdir="${EPREFIX}"/usr/$(get_libdir) \
--sysconfdir="${EPREFIX}"/etc \
--disable-openssl-runtime \
--disable-static \
--enable-lib-shared \
$(use_enable debug) \
$(use_enable nls gettext) \
$(use_enable ssl openssl) \
$(use_enable static-libs lib-static)
echo "${@}"
"${@}" || die "configure failed"
}
# We would add compile-gmo to the build targets but install-gmo always
# recompiles unconditionally. :(
# (note from sam: this might be fixed in >1.4.2?
# https://github.com/rhash/RHash/commit/9e4eeb1268149b24b7fbe0fc0fe91e3a266e6261)
multilib_src_install() {
# -j1 needed due to race condition.
emake DESTDIR="${D}" -j1 \
install{,-lib-headers,-pkg-config} \
$(use nls && echo install-gmo) \
$(use kernel_Winnt || echo install-lib-so-link)
}
multilib_src_test() {
emake test
}

View File

@ -1,4 +1,3 @@
DIST elt-patches-20170317.tar.xz 23356 BLAKE2B 8e402496e4c064a56a6bafbf369bf97710fa28fa0744356ce5c1b52f1866c0683b80d7d5971288bbaaf88cce0ec717956904f2f5969f22a3f1d11a8444b3866a SHA512 28da9a214cd2bccebad45f464a414fedf80fc6b497d1f6b8f30a0a67570a614065ef67ce43316872d94a144de1a154ecd164a47009ebcd7d39128ccc2dd39618 DIST elt-patches-20201205.tar.xz 39240 BLAKE2B aa2e2377f0d0cba14f38c59664174d066eff04c9d2a71346c998c4324987fbce25cfd91b79e8e40bde0d81bf7d3c43126bffd0a6b0b219aaad11f4f9f22abde4 SHA512 67e199f060e2c93e01b7a7809f52c0a18d82e86f1b1eb34b965c2acd24e5538a874b820028e363d3002cf58b43c2fe3376ae28d2bef0ca81feabb90c83ae47c2
DIST elt-patches-20170422.tar.xz 27864 BLAKE2B 0b6a764a7030d78618139f2c2a51f33b224f38e9f117ce45d119375e20566df55266f9684b53d3d311f91570803f937922f93801ad5a3664dae70828ebbedd12 SHA512 90867925f797ec815cfd8f45655cbc0bdc5f46e1a84792988ca76aaed97489907a926acf8f50c0499c56f6e70ea7081732f71c74a8d49bf24a6d265a0a4202dc DIST elt-patches-20210924.tar.xz 40140 BLAKE2B 81970936e9a362cb9ee51a381e4fd2f888c62df2fdcf7af419c3574d37857988c92daa3b1b90530f453aa532161dd0bdd3697d4c3b0a0a47a05a7546e7fd5052 SHA512 3a55d053e488590a78bbfe0a4eb3153ea51ca70784708e0131016771a1c1dab591a42442b2d97d1a335c9a209fc03410df3cd56741d6f7cffb92d0737c5944c2
DIST elt-patches-20170815.tar.xz 27864 BLAKE2B ca699e3fc3f5903f660fba70aa424603d42ef3b3aaa5e8768cfad0561d423972b21e75e578faeaaa89d8b0932f5161079a57e5d0d4ab7b56d5a09b91fb0e8d46 SHA512 deba10767b6a8cb5e8139e6f47a30e6f8a4a9312adb1d3e0199df24321d89601915fc91003da2d14fda679e7cbd30a4d4cf39d94ba57bce06432eefc168650dd DIST elt-patches-20211104.tar.xz 41608 BLAKE2B 971ec0f6753267d49a64ab65645ac547322fa4cfe64b3102bbaa4419c0ed0973c0ee44e40c15b2d34e94979cbe9c64b027f4bb7c5adf3d3acee07f3f98bd7704 SHA512 c583bfa45eb16835f83a881eb587c81f0fb2cfd3eff5239e794efb83c046f5cecceeee3f5387585b9d7f68efe5f439344d2cdfc83c9fad5b207e82dff3d8cc67
DIST elt-patches-20170826.1.tar.xz 27912 BLAKE2B 886644713651448784e040fbcde6ef11f98f12abffb347f2213b990c1f0ec2df3af6c729c18781235a393e6de907b4da6ec5d140f7fb856466de6e7cefd54b00 SHA512 30a1e8b77d2963b7c56eef3a7a0a576ea6d30f1133c7bf6ad3b5b57cbe3e2de5e8cfbc50a929fea589b42ca02802a7ed16ccf7adb868290a2cc3add5b4fc77d3

View File

@ -1,20 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~x86-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE=""
DEPEND="app-arch/xz-utils"
src_install() {
insinto /usr/share/elt-patches
doins -r .
}

View File

@ -1,24 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~x86-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE=""
RDEPEND="sys-apps/gentoo-functions"
DEPEND="app-arch/xz-utils"
src_compile() {
emake prefix="${EPREFIX}/usr" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" prefix="${EPREFIX}/usr" install
}

View File

@ -1,24 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~x86-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE=""
RDEPEND="sys-apps/gentoo-functions"
DEPEND="app-arch/xz-utils"
src_compile() {
emake rootprefix="${EPREFIX%/}" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" rootprefix="${EPREFIX%/}" install
}

View File

@ -1,24 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~x86-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE=""
RDEPEND="sys-apps/gentoo-functions"
DEPEND="app-arch/xz-utils"
src_compile() {
emake rootprefix="${EPREFIX%/}" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" rootprefix="${EPREFIX%/}" install
}

View File

@ -0,0 +1,23 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
RDEPEND="sys-apps/gentoo-functions"
BDEPEND="app-arch/xz-utils"
src_compile() {
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
}

View File

@ -0,0 +1,24 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
RDEPEND="sys-apps/gentoo-functions"
BDEPEND="app-arch/xz-utils"
src_compile() {
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
}

View File

@ -0,0 +1,25 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
DESCRIPTION="Collection of patches for libtool.eclass"
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
SRC_URI="https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
RDEPEND="sys-apps/gentoo-functions"
BDEPEND="app-arch/xz-utils"
src_compile() {
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
}
src_install() {
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="project"> <maintainer type="project">
<email>base-system@gentoo.org</email> <email>base-system@gentoo.org</email>

View File

@ -1,3 +1,2 @@
DIST bash-completion-2.4.tar.xz 276148 BLAKE2B 1ca38db1d1ad9f0bf7d1aa4e49cba1c82a6a575b05118099b609da12bf2e369637be907cba1d46e1e33fface482ebd7c63d70d56c948e45ef71725780ffb2171 SHA512 b852e0a38417dfc3754a91dae2d107f99a3c2970d835a4bbaa80f2a4db8d670bc3820ddc6ada26f68070f22fb4c1db7abe50ad489b1c0f8497b1e6e91be27627 DIST bash-completion-2.11.tar.xz 311004 BLAKE2B 98e3ab6669bd70b49b238a597f1bc1309dc7ddd51c5b17c5e054f9161115d75d26e85d547471bc087e070d10554448b790a6dfb557abc413b70079ecc94acce3 SHA512 41585f730b5114d397831ba36d10d05643c6a6179e746ddc49aa1cbef61ea5525fd2f09b2e474adee14e647f99df8d5983ee48e29a59d8a30e1daf7fb1837e06
DIST bash-completion-2.7.tar.xz 280048 BLAKE2B 88b09f451fd4e14daf8e139951a4b65aaa9d9b1d86dceade388a726ac7f3caff2546597695c3f0cbd5dd64e20472d0cf3e98e0f367898b81d696d4ccb8f2fb73 SHA512 514709ad2e5f6bd4e20027c7049a1144c1854a37b653d5c11fad1cdf7a46d0e1afca725d6ce75d49691149e0de57be85747f704ac1c429ef4cea114bfbff8fcd DIST bashcomp-2.0.3.tar.gz 3539 BLAKE2B 75304d144792cc7f6ad5455a05a65c33c646d6f7384d020a06a1fcf012cd51625a3dd0750ad539253453b1eede196c340286a1e81737f0835b5091609ba01295 SHA512 b2bd185ccbd4456939ccc731cc1983fcec2b9564a9920642a753fadd5d897fdb96b925ac1524657629d621d45b37d99076c8ae72511a827e96ff6c388d720008
DIST bashcomp-2.0.2.tar.gz 3625 BLAKE2B ebd835e23634e8a7491467ad66c53941763cea43bad75fe24982d3885be2d2ba132e5273a655fec34705224315d7a3f0248c030fb7685fc613ac4f489cde5bf5 SHA512 46bc1bcc32263135f44be68569459a409250dd2c81c18190735f11e13a26508e9d3cb91d24a8fe7b21bdea678347873b7ac1b67d5e8c78c8444011f85dfdcdce

View File

@ -0,0 +1,137 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
BASHCOMP_P=bashcomp-2.0.3
PYTHON_COMPAT=( python3_{7..9} )
inherit bash-completion-r1 python-any-r1 user-info
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="
https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
eselect? ( https://github.com/mgorny/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz )"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris"
IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc
RDEPEND=">=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles
!!net-fs/mc"
DEPEND="
test? (
${RDEPEND}
$(python_gen_any_dep '
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
')
)"
PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
strip_completions() {
# Remove unwanted completions.
local strip_completions=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
)
if [[ ${ARCH} != *-fbsd && ${ARCH} != *-freebsd ]]; then
strip_completions+=(
freebsd-update kldload kldunload portinstall portsnap
pkg_deinstall pkg_delete pkg_info
)
fi
local file
for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
}
python_check_deps() {
has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
has_version "dev-python/pytest[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
use eselect &&
eapply "${WORKDIR}/${BASHCOMP_P}/bash-completion-blacklist-support.patch"
# redhat-specific, we strip these completions
rm test/t/test_if{down,up}.py || die
# not available for icedtea
rm test/t/test_javaws.py || die
eapply_user
}
src_test() {
# portage's HOME override breaks tests
emake check HOME="$(egethome "${UID}")" PYTESTFLAGS="-vv" NETWORK=none
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
strip_completions
dodoc AUTHORS CHANGES CONTRIBUTING.md README.md
# install the eselect module
if use eselect; then
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
fi
}
pkg_postinst() {
local v
for v in ${REPLACING_VERSIONS}; do
if ver_test "${v}" -lt 2.1-r90; then
ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old"
ewarn "location. You can do this using:"
ewarn
ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
ewarn
ewarn "After the rebuild, you should remove the old setup symlinks:"
ewarn
ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
fi
done
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,98 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
BASHCOMP_P=bashcomp-2.0.2
inherit versionator
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
https://bitbucket.org/mgorny/bashcomp2/downloads/${BASHCOMP_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
IUSE=""
RDEPEND=">=app-shells/bash-4.3_p30-r1
sys-apps/miscfiles
!app-eselect/eselect-bashcomp"
DEPEND="app-arch/xz-utils"
PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
# Remove unwanted completions.
STRIP_COMPLETIONS=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# Installed by sys-apps/util-linux-2.28
mount umount mount.linux umount.linux
)
src_prepare() {
eapply "${WORKDIR}/${BASHCOMP_P}/${PN}"-2.1_p*.patch
# Bug 543100, update bug 601194
eapply "${FILESDIR}/${PN}-2.1-escape-characters-r1.patch"
eapply_user
}
src_test() { :; } # Skip testsuite because of interactive shell wrt #477066
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
local file
for file in "${STRIP_COMPLETIONS[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} || die
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
dodoc AUTHORS CHANGES CONTRIBUTING.md README.md
# install the eselect module
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
}
pkg_postinst() {
local v
for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least 2.1-r90 ${v}; then
ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old"
ewarn "location. You can do this using:"
ewarn
ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
ewarn
ewarn "After the rebuild, you should remove the old setup symlinks:"
ewarn
ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
fi
done
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,133 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
BASHCOMP_P=bashcomp-2.0.2
inherit versionator
DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz
https://bitbucket.org/mgorny/bashcomp2/downloads/${BASHCOMP_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~mips ~ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
IUSE="test"
# Multiple test failures, need to investigate the exact problem
RESTRICT="test"
# completion collision with net-fs/mc
RDEPEND=">=app-shells/bash-4.3_p30-r1
sys-apps/miscfiles
!app-eselect/eselect-bashcomp
!!net-fs/mc"
DEPEND="app-arch/xz-utils
test? (
${RDEPEND}
app-misc/dtach
dev-util/dejagnu
dev-tcltk/tcllib
)"
PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
# Remove unwanted completions.
STRIP_COMPLETIONS=(
# Slackware package stuff, quite generic names cause collisions
# (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff
ifdown ifup ifstatus
# Installed in app-editors/vim-core
xxd
# Now-dead symlinks to deprecated completions
hd ncal
# Installed by sys-apps/util-linux-2.28
mount umount mount.linux umount.linux
# Installed by sys-apps/util-linux-2.31
rfkill
)
src_prepare() {
eapply "${WORKDIR}/${BASHCOMP_P}/${PN}"-2.1_p*.patch
# Bug 543100, update bug 601194
eapply "${FILESDIR}/${PN}-2.1-escape-characters-r1.patch"
eapply_user
# Remove implicit completions for vim.
# https://bugs.gentoo.org/649986
sed -i -e 's/vi vim gvim rvim view rview rgvim rgview gview//' \
bash_completion || die
rm test/completion/vi.exp || die
}
src_test() {
# Tests need an interactive shell, #477066
# idea stolen from:
# http://pkgs.fedoraproject.org/cgit/rpms/bash-completion.git/tree/bash-completion.spec
# real-time output of the log ;-)
touch "${T}/dtach-test.log" || die
tail -f "${T}/dtach-test.log" &
local tail_pid=${!}
nonfatal dtach -N "${T}/dtach.sock" \
bash -c 'emake check &> "${T}"/dtach-test.log; echo ${?} > "${T}"/dtach-test.out'
kill "${tail_pid}"
[[ -f ${T}/dtach-test.out ]] || die "Unable to run tests"
[[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed"
}
src_install() {
# work-around race conditions, bug #526996
mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
local file
for file in "${STRIP_COMPLETIONS[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} || die
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
dodoc AUTHORS CHANGES CONTRIBUTING.md README.md
# install the eselect module
insinto /usr/share/eselect/modules
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
}
pkg_postinst() {
local v
for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least 2.1-r90 ${v}; then
ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old"
ewarn "location. You can do this using:"
ewarn
ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
ewarn
ewarn "After the rebuild, you should remove the old setup symlinks:"
ewarn
ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
fi
done
if has_version 'app-shells/zsh'; then
elog
elog "If you are interested in using the provided bash completion functions with"
elog "zsh, valuable tips on the effective use of bashcompinit are available:"
elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
elog
fi
}

View File

@ -1,90 +1,105 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
BASHCOMP_P=bashcomp-2.0.2 PYTHON_COMPAT=( python3_{7..9} )
EGIT_REPO_URI="https://github.com/scop/bash-completion" inherit autotools git-r3 python-any-r1 user-info
inherit autotools git-r3 versionator
DESCRIPTION="Programmable Completion for bash" DESCRIPTION="Programmable Completion for bash"
HOMEPAGE="https://github.com/scop/bash-completion" HOMEPAGE="https://github.com/scop/bash-completion"
SRC_URI="https://bitbucket.org/mgorny/bashcomp2/downloads/${BASHCOMP_P}.tar.gz" EGIT_REPO_URI="https://github.com/scop/bash-completion"
LICENSE="GPL-2" LICENSE="GPL-2+"
SLOT="0" SLOT="0"
KEYWORDS="" KEYWORDS=""
IUSE="test" IUSE="+eselect test"
RESTRICT="!test? ( test )"
# completion collision with net-fs/mc # completion collision with net-fs/mc
RDEPEND=">=app-shells/bash-4.3_p30-r1 RDEPEND=">=app-shells/bash-4.3_p30-r1:0
sys-apps/miscfiles sys-apps/miscfiles
!app-eselect/eselect-bashcomp
!!net-fs/mc" !!net-fs/mc"
DEPEND="app-arch/xz-utils DEPEND="
test? ( test? (
${RDEPEND} ${RDEPEND}
app-misc/dtach $(python_gen_any_dep '
dev-util/dejagnu dev-python/pexpect[${PYTHON_USEDEP}]
dev-tcltk/tcllib dev-python/pytest[${PYTHON_USEDEP}]
')
)" )"
PDEPEND=">=app-shells/gentoo-bashcomp-20140911" PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
# Remove unwanted completions. strip_completions() {
STRIP_COMPLETIONS=( # Remove unwanted completions.
# Slackware package stuff, quite generic names cause collisions local strip_completions=(
# (e.g. with sys-apps/pacman) # Slackware package stuff, quite generic names cause collisions
explodepkg installpkg makepkg pkgtool removepkg upgradepkg # (e.g. with sys-apps/pacman)
explodepkg installpkg makepkg pkgtool removepkg upgradepkg
# Debian/Red Hat network stuff # Debian/Red Hat network stuff
ifdown ifup ifstatus ifdown ifup ifquery ifstatus
# Installed in app-editors/vim-core # Installed in app-editors/vim-core
xxd xxd
# Now-dead symlinks to deprecated completions # Now-dead symlinks to deprecated completions
hd ncal hd ncal
)
if [[ ${ARCH} != *-fbsd && ${ARCH} != *-freebsd ]]; then
strip_completions+=(
freebsd-update kldload kldunload portinstall portsnap
pkg_deinstall pkg_delete pkg_info
)
fi
# Installed by sys-apps/util-linux-2.28 (and now deprecated) local file
_mount _umount _mount.linux _umount.linux for file in "${strip_completions[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# Deprecated in favor of sys-apps/util-linux-2.31 # remove deprecated completions (moved to other packages)
_rfkill rm "${ED}"/usr/share/bash-completion/completions/_* || die
) }
python_check_deps() {
has_version "dev-python/pexpect[${PYTHON_USEDEP}]" &&
has_version "dev-python/pytest[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_unpack() { src_unpack() {
git-r3_src_unpack use eselect && git-r3_fetch https://github.com/mgorny/bashcomp2
default git-r3_fetch
use eselect && git-r3_checkout https://github.com/mgorny/bashcomp2 \
"${WORKDIR}"/bashcomp2
git-r3_checkout
} }
src_prepare() { src_prepare() {
eapply "${WORKDIR}/${BASHCOMP_P}/${PN}"-2.1_p*.patch if use eselect; then
eapply_user # generate and apply patch
emake -C "${WORKDIR}"/bashcomp2 bash-completion-blacklist-support.patch
eapply "${WORKDIR}"/bashcomp2/bash-completion-blacklist-support.patch
fi
# redhat-specific, we strip these completions
rm test/t/test_if{down,up}.py || die
# not available for icedtea
rm test/t/test_javaws.py || die
eapply_user
eautoreconf eautoreconf
} }
src_test() { src_test() {
# Tests need an interactive shell, #477066 # portage's HOME override breaks tests
# idea stolen from: emake check HOME="$(egethome "${UID}")" PYTESTFLAGS="-vv" NETWORK=none
# http://pkgs.fedoraproject.org/cgit/rpms/bash-completion.git/tree/bash-completion.spec
# real-time output of the log ;-)
touch "${T}/dtach-test.log" || die
tail -f "${T}/dtach-test.log" &
local tail_pid=${!}
# override the default expect timeout and buffer size to avoid tests
# failing randomly due to cold cache, busy system or just more output
# than upstream anticipated (they run tests on pristine docker
# installs of binary distros)
nonfatal dtach -N "${T}/dtach.sock" \
bash -c 'emake check RUNTESTFLAGS="OPT_TIMEOUT=300 OPT_BUFFER_SIZE=1000000" \
&> "${T}"/dtach-test.log; echo ${?} > "${T}"/dtach-test.out'
kill "${tail_pid}"
[[ -f ${T}/dtach-test.out ]] || die "Unable to run tests"
[[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed"
} }
src_install() { src_install() {
@ -93,26 +108,20 @@ src_install() {
emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
local file strip_completions
for file in "${STRIP_COMPLETIONS[@]}"; do
rm "${ED}"/usr/share/bash-completion/completions/${file} ||
die "stripping ${file} failed"
done
# remove deprecated completions (moved to other packages)
rm "${ED}"/usr/share/bash-completion/completions/_* || die
dodoc AUTHORS CHANGES CONTRIBUTING.md README.md dodoc AUTHORS CHANGES CONTRIBUTING.md README.md
# install the eselect module # install the eselect module
insinto /usr/share/eselect/modules use eselect &&
doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect" emake -C "${WORKDIR}"/bashcomp2 DESTDIR="${D}" \
doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5" PREFIX="${EPREFIX}/usr" install
} }
pkg_postinst() { pkg_postinst() {
local v local v
for v in ${REPLACING_VERSIONS}; do for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least 2.1-r90 ${v}; then if ver_test "${v}" -lt 2.1-r90; then
ewarn "For bash-completion autoloader to work, all completions need to" ewarn "For bash-completion autoloader to work, all completions need to"
ewarn "be installed in /usr/share/bash-completion/completions. You may" ewarn "be installed in /usr/share/bash-completion/completions. You may"
ewarn "need to rebuild packages that installed completions in the old" ewarn "need to rebuild packages that installed completions in the old"

View File

@ -1,27 +0,0 @@
--- bash-completion-2.1/bash_completion.orig 2014-03-09 17:38:14 +0000
+++ bash-completion-2.1/bash_completion 2014-03-13 23:26:44 +0000
@@ -536,13 +536,23 @@
# @param $2 Name of variable to return result to
_quote_readline_by_ref()
{
- if [[ $1 == \'* ]]; then
+ if [ -z "$1" ]; then
+ # avoid quoting if empty
+ printf -v $2 %s "$1"
+ elif [[ $1 == \'* ]]; then
# Leave out first character
printf -v $2 %s "${1:1}"
+ elif [[ $1 == \~* ]]; then
+ # avoid escaping first ~
+ printf -v $2 \~%q "${1:1}"
else
printf -v $2 %q "$1"
fi
+ # Replace double escaping ( \\ ) by single ( \ )
+ # This happens always when argument is already escaped at cmdline,
+ # and passed to this function as e.g.: file\ with\ spaces
+ [[ ${!2} == *\\* ]] && printf -v $2 %s "${1//\\\\/\\}"
# If result becomes quoted like this: $'string', re-evaluate in order to
# drop the additional quoting. See also: http://www.mail-archive.com/
# bash-completion-devel@lists.alioth.debian.org/msg01942.html

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <maintainer type="person">
<email>mgorny@gentoo.org</email> <email>mgorny@gentoo.org</email>
@ -9,6 +9,12 @@
<email>shell-tools@gentoo.org</email> <email>shell-tools@gentoo.org</email>
<name>Gentoo Shell Tools Project</name> <name>Gentoo Shell Tools Project</name>
</maintainer> </maintainer>
<use>
<flag name="eselect">
Support blacklisting of completions via 'eselect bash-completion'.
This enables custom Gentoo patching of upstream completion loader.
</flag>
</use>
<longdescription> <longdescription>
Since v2.04, bash has allowed you to intelligently program and extend its Since v2.04, bash has allowed you to intelligently program and extend its
standard completion behavior to achieve complex command lines with just a standard completion behavior to achieve complex command lines with just a
@ -23,7 +29,6 @@
</longdescription> </longdescription>
<stabilize-allarches/> <stabilize-allarches/>
<upstream> <upstream>
<remote-id type="bitbucket">mgorny/bashcomp2</remote-id>
<remote-id type="github">scop/bash-completion</remote-id> <remote-id type="github">scop/bash-completion</remote-id>
</upstream> </upstream>
</pkgmetadata> </pkgmetadata>

View File

@ -1,9 +1,8 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
USE_RUBY="ruby25 ruby26 ruby27"
USE_RUBY="ruby22 ruby23 ruby24 ruby25"
inherit ruby-single inherit ruby-single
@ -17,11 +16,13 @@ SRC_URI="mirror://sourceforge/docbook/${MY_P}.tar.bz2"
LICENSE="BSD" LICENSE="BSD"
SLOT="0" SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="ruby" IUSE="ruby"
RDEPEND=">=app-text/build-docbook-catalog-1.1 RDEPEND="
ruby? ( ${RUBY_DEPS} )" >=app-text/build-docbook-catalog-1.1
ruby? ( ${RUBY_DEPS} )
"
S="${WORKDIR}/${MY_P}" S="${WORKDIR}/${MY_P}"
@ -42,7 +43,7 @@ src_prepare() {
-printf "removed %p\n" -delete || die -printf "removed %p\n" -delete || die
if ! use ruby; then if ! use ruby; then
rm -rv epub/ || die rm -rv epub/ || die
fi fi
} }
@ -83,19 +84,21 @@ src_install() {
# we can't use a symlink or it'll look for the library in the # we can't use a symlink or it'll look for the library in the
# wrong path. # wrong path.
dodir /usr/bin dodir /usr/bin
cat - > "${D}"/usr/bin/${cmd} <<EOF cat - > "${ED%/}"/usr/bin/${cmd} <<EOF
#!/usr/bin/env ruby #!/usr/bin/env ruby
load "${DOCBOOKDIR}/epub/bin/dbtoepub" load "${EPREFIX}${DOCBOOKDIR}/epub/bin/dbtoepub"
EOF EOF
fperms 0755 /usr/bin/${cmd} fperms 0755 /usr/bin/${cmd}
fi fi
} }
pkg_postinst() { pkg_postinst() {
build-docbook-catalog # See bug #816303 for rationale behind die
build-docbook-catalog || die "Failed to regenerate docbook catalog. Is /run mounted?"
} }
pkg_postrm() { pkg_postrm() {
build-docbook-catalog # See bug #816303 for rationale behind die
build-docbook-catalog || die "Failed to regenerate docbook catalog. Is /run mounted?"
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<!-- maintainer-needed --> <!-- maintainer-needed -->
<use> <use>

View File

@ -0,0 +1,5 @@
- pinentry ([1.2.0](https://dev.gnupg.org/T5566))
- quota ([4.06](https://sourceforge.net/p/linuxquota/code/ci/0acd4cc6275122fd9864cb7b5d349e65a2622920/))
- xfsprogs ([5.14.2](https://marc.info/?l=linux-xfs&m=163883318025390&w=2))
- grep ([3.7](https://savannah.gnu.org/forum/forum.php?forum_id=10037))
- less ([590](https://www.greenwoodsoftware.com/less/news.590.html))

View File

@ -1,2 +1,2 @@
DIST gflags-2.2.0.tar.gz 96408 BLAKE2B 571f07dd0972cec201eae8ce66d5e0592abb6ddb81bcf3c539f38861f0cd379de2db20ba99eab885ba030235938816d7a61e589b74a61743de7cdb2710646854 SHA512 e2106ca70ff539024f888bca12487b3bf7f4f51928acf5ae3e1022f6bbd5e3b7882196ec50b609fd52f739e1f7b13eec7d4b3535d8216ec019a3577de6b4228d
DIST gflags-2.2.1.tar.gz 96985 BLAKE2B 065dac9cf5d878e4179cb6d56ddf240052a552b72036fd06cb83197d9772a9b97fa544f809c6e1efd6f9ad8cd0222872fc6292c44bc013c5f70e235bcc5b290c SHA512 e919cbdcff1f993ddbfa9c06d8e595566a4717c27ff62f388a64c0e6b4683a93211c24ce78485eae84c2c76053341574064e6c56af185fc2782e2816b26e1fc9 DIST gflags-2.2.1.tar.gz 96985 BLAKE2B 065dac9cf5d878e4179cb6d56ddf240052a552b72036fd06cb83197d9772a9b97fa544f809c6e1efd6f9ad8cd0222872fc6292c44bc013c5f70e235bcc5b290c SHA512 e919cbdcff1f993ddbfa9c06d8e595566a4717c27ff62f388a64c0e6b4683a93211c24ce78485eae84c2c76053341574064e6c56af185fc2782e2816b26e1fc9
DIST gflags-2.2.2.tar.gz 98704 BLAKE2B 54cbf3b0a422d662e89c1921614ae9f20a4a383524d374d1e7ce1473eff0a6e121c1a2255df0b9d27ae9866c8e63094b908534c5fd2173737033cc0f184a5e4f SHA512 98c4703aab24e81fe551f7831ab797fb73d0f7dfc516addb34b9ff6d0914e5fd398207889b1ae555bac039537b1d4677067dae403b64903577078d99c1bdb447

View File

@ -1,36 +1,37 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib inherit cmake-multilib
if [[ ${PV} == 9999 ]]; then if [[ ${PV} == 9999 ]]; then
inherit git-r3 inherit git-r3
EGIT_REPO_URI="https://github.com/gflags/gflags.git" EGIT_REPO_URI="https://github.com/gflags/gflags"
else else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz" SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
fi fi
DESCRIPTION="Google's C++ argument parsing library" DESCRIPTION="Google's C++ argument parsing library"
HOMEPAGE="http://gflags.github.io/gflags/" HOMEPAGE="https://gflags.github.io/gflags/"
LICENSE="BSD" LICENSE="BSD"
SLOT="0/2.2" SLOT="0/2.2"
IUSE="static-libs test" IUSE="static-libs test"
RESTRICT="!test? ( test )"
# AUTHORS.txt only links the google group # AUTHORS.txt only links the google group
DOCS=( ChangeLog.txt README.md ) DOCS=( ChangeLog.txt README.md )
multilib_src_configure() { multilib_src_configure() {
local mycmakeargs=( local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DBUILD_STATIC_LIBS=$(usex static-libs) -DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test) -DBUILD_TESTING=$(usex test)
# avoid installing .cmake/packages, e.g.: # avoid installing .cmake/packages, e.g.:
# >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9 # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
-DREGISTER_INSTALL_PREFIX=OFF -DREGISTER_INSTALL_PREFIX=OFF
) )
cmake-utils_src_configure cmake_src_configure
} }

View File

@ -1,8 +1,9 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="6" EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib inherit cmake-multilib
if [[ ${PV} == 9999 ]]; then if [[ ${PV} == 9999 ]]; then
@ -10,27 +11,27 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/gflags/gflags" EGIT_REPO_URI="https://github.com/gflags/gflags"
else else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz" SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi fi
DESCRIPTION="Google's C++ argument parsing library" DESCRIPTION="Google's C++ argument parsing library"
HOMEPAGE="http://gflags.github.io/gflags/" HOMEPAGE="https://gflags.github.io/gflags/"
LICENSE="BSD" LICENSE="BSD"
SLOT="0/2.2" SLOT="0/2.2"
IUSE="static-libs test" IUSE="static-libs test"
RESTRICT="!test? ( test )"
# AUTHORS.txt only links the google group # AUTHORS.txt only links the google group
DOCS=( ChangeLog.txt README.md ) DOCS=( ChangeLog.txt README.md )
multilib_src_configure() { multilib_src_configure() {
local mycmakeargs=( local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DBUILD_STATIC_LIBS=$(usex static-libs) -DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test) -DBUILD_TESTING=$(usex test)
# avoid installing .cmake/packages, e.g.: # avoid installing .cmake/packages, e.g.:
# >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9 # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
-DREGISTER_INSTALL_PREFIX=OFF -DREGISTER_INSTALL_PREFIX=OFF
) )
cmake-utils_src_configure cmake_src_configure
} }

View File

@ -1,8 +1,9 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="6" EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib inherit cmake-multilib
if [[ ${PV} == 9999 ]]; then if [[ ${PV} == 9999 ]]; then
@ -10,27 +11,27 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/gflags/gflags" EGIT_REPO_URI="https://github.com/gflags/gflags"
else else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz" SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi fi
DESCRIPTION="Google's C++ argument parsing library" DESCRIPTION="Google's C++ argument parsing library"
HOMEPAGE="http://gflags.github.io/gflags/" HOMEPAGE="https://gflags.github.io/gflags/"
LICENSE="BSD" LICENSE="BSD"
SLOT="0/2.2" SLOT="0/2.2"
IUSE="static-libs test" IUSE="static-libs test"
RESTRICT="!test? ( test )"
# AUTHORS.txt only links the google group # AUTHORS.txt only links the google group
DOCS=( ChangeLog.txt README.md ) DOCS=( ChangeLog.txt README.md )
multilib_src_configure() { multilib_src_configure() {
local mycmakeargs=( local mycmakeargs=(
-DBUILD_SHARED_LIBS=ON
-DBUILD_STATIC_LIBS=$(usex static-libs) -DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test) -DBUILD_TESTING=$(usex test)
# avoid installing .cmake/packages, e.g.: # avoid installing .cmake/packages, e.g.:
# >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9 # >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
-DREGISTER_INSTALL_PREFIX=OFF -DREGISTER_INSTALL_PREFIX=OFF
) )
cmake-utils_src_configure cmake_src_configure
} }

View File

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

View File

@ -0,0 +1 @@
DIST inih-53.tar.gz 16984 BLAKE2B 1242e6273c9dd9a11ea026a3495a487b2aa72d8e01f34304d8568c88897ae9c9bb425246f992dc16f4dc2210ec14c597d0ef595cec84ff98a5d6101ee5a643b9 SHA512 99bc40c294b521e9973184bfb30d60c129735991f33b387b3d023827a34672b0489eadf91e38895ea725168dbc7b27bb02c1975debe7573b4b209d0e947b2100

View File

@ -0,0 +1,37 @@
# Copyright 2020-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit meson-multilib
DESCRIPTION="inih (INI not invented here) simple .INI file parser"
HOMEPAGE="https://github.com/benhoyt/inih"
SRC_URI="https://github.com/benhoyt/inih/archive/r${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
LICENSE="BSD"
SLOT="0"
IUSE="static-libs"
S="${WORKDIR}/inih-r${PV}"
multilib_src_configure() {
local emesonargs=(
-Ddefault_library=$(usex static-libs both shared)
-Ddistro_install=true
-Dwith_INIReader=true
)
meson_src_configure
}
multilib_src_install_all() {
local DOCS=(
LICENSE.txt
README.md
)
einstalldocs
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>base-system@gentoo.org</email>
<name>Gentoo Base System</name>
</maintainer>
<maintainer type="person" proxied="yes">
<email>hurikhan77+bgo@gmail.com</email>
<name>Kai Krakow</name>
</maintainer>
<upstream>
<bugs-to>https://github.com/benhoyt/inih/issues</bugs-to>
<remote-id type="github">benhoyt/inih</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,2 +1,3 @@
DIST libassuan-2.4.3.tar.bz2 559867 BLAKE2B b80f73573449aa1705ac3b4f12f89cac6a19bf4b2ed8f46d5576164196300baeaeb782c997078ac252a564b9f6067df87a340b46c68058d4a28c8291bbecf96b SHA512 2b0f58682b408fc58fa0ec2980b36e54ba66701bf504cf6c98ec652af43501bc7c18573bc78c5b83260f5a3bdb0ec8f4e0662bafd9bba3fe7287e77598e8e4c1 DIST libassuan-2.5.3.tar.bz2 572348 BLAKE2B ae3a5a9a03e85d62cf87271cd4a0718a2b89a4f90ea814837913e4b2bb6e5af9746e766d99685cc0cc3a801efaee597e491a2bc03d42ac26059580ea4680fd7a SHA512 e7ccb651ea75b07b2e687d48d86d0ab83cba8e2af7f30da2aec794808e13e6ec93f21d607db50d3431f1c23cb3a07a2793b71170e69fa2f5a82cffb81961f617
DIST libassuan-2.5.1.tar.bz2 564857 BLAKE2B dc046b9551183ec543d2a186c3c593471c80445b48aec1366d0b997386c57187f9b7a848973d0930ca8d2be3f138e83c22ef9292e4c8bf5614a99ea3065c7827 SHA512 c8829925221780f175cee8c4084060b0d661229f583a50d400a1903ab7303b2724b99ff9c0fa242881d4c5d779036756e1da54d9143acc0fcd92f302ecb5882d DIST libassuan-2.5.4.tar.bz2 574039 BLAKE2B 2eec42c47840741a4726fc35c3ed04300e5fbcd37f808b121534aeaa04d0d0f609a30ad48cfbe33a81ee4b2ebbb822b9a48a5c602268f1b802bf5d7d19d72e9c SHA512 764993d5311c24f0c0f970016e903e1a16783a2050c42072dbc1bc4f350f119e53b0be17ed6df25a0086bc9f8c25ee4f3134330577968480997263f95e05594f
DIST libassuan-2.5.5.tar.bz2 572263 BLAKE2B 24952e97c757b97c387ab4c2c4bf7b040f2874e9326c129805c7f5326fa14d80e083b0842e336a635531a2c8d4a66d428c816bae6b175f1c4518add1ffa3554d SHA512 70117f77aa43bbbe0ed28da5ef23834c026780a74076a92ec775e30f851badb423e9a2cb9e8d142c94e4f6f8a794988c1b788fd4bd2271e562071adf0ab16403

View File

@ -1,44 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit libtool ltprune
DESCRIPTION="IPC library used by GnuPG and GPGME"
HOMEPAGE="http://www.gnupg.org/related_software/libassuan/index.en.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
RDEPEND=">=dev-libs/libgpg-error-1.8"
DEPEND="${RDEPEND}"
src_prepare() {
default
if [[ ${CHOST} == *-solaris* ]] ; then
elibtoolize
# fix standards conflict
sed -i \
-e '/_XOPEN_SOURCE/s/500/600/' \
-e 's/_XOPEN_SOURCE_EXTENDED/_NO&/' \
-e 's/__EXTENSIONS__/_NO&/' \
configure || die
fi
}
src_configure() {
econf \
$(use_enable static-libs static)
}
src_install() {
default
# ppl need to use libassuan-config for --cflags and --libs
prune_libtool_files
}

View File

@ -1,44 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit libtool ltprune
DESCRIPTION="IPC library used by GnuPG and GPGME"
HOMEPAGE="http://www.gnupg.org/related_software/libassuan/index.en.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
RDEPEND=">=dev-libs/libgpg-error-1.8"
DEPEND="${RDEPEND}"
src_prepare() {
default
if [[ ${CHOST} == *-solaris* ]] ; then
elibtoolize
# fix standards conflict
sed -i \
-e '/_XOPEN_SOURCE/s/500/600/' \
-e 's/_XOPEN_SOURCE_EXTENDED/_NO&/' \
-e 's/__EXTENSIONS__/_NO&/' \
configure || die
fi
}
src_configure() {
econf \
$(use_enable static-libs static)
}
src_install() {
default
# ppl need to use libassuan-config for --cflags and --libs
prune_libtool_files
}

View File

@ -0,0 +1,48 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit libtool
DESCRIPTION="IPC library used by GnuPG and GPGME"
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Note: On each bump, update dep bounds on each version from configure.ac!
RDEPEND=">=dev-libs/libgpg-error-1.8"
DEPEND="${RDEPEND}"
src_prepare() {
default
if [[ ${CHOST} == *-solaris* ]] ; then
elibtoolize
# fix standards conflict
sed -i \
-e '/_XOPEN_SOURCE/s/500/600/' \
-e 's/_XOPEN_SOURCE_EXTENDED/_NO&/' \
-e 's/__EXTENSIONS__/_NO&/' \
configure || die
fi
}
src_configure() {
local myeconfargs=(
--disable-static
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
)
econf "${myeconfargs[@]}"
}
src_install() {
default
# ppl need to use libassuan-config for --cflags and --libs
find "${ED}" -type f -name '*.la' -delete || die
}

View File

@ -0,0 +1,48 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit libtool
DESCRIPTION="IPC library used by GnuPG and GPGME"
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Note: On each bump, update dep bounds on each version from configure.ac!
RDEPEND=">=dev-libs/libgpg-error-1.17"
DEPEND="${RDEPEND}"
src_prepare() {
default
if [[ ${CHOST} == *-solaris* ]] ; then
elibtoolize
# fix standards conflict
sed -i \
-e '/_XOPEN_SOURCE/s/500/600/' \
-e 's/_XOPEN_SOURCE_EXTENDED/_NO&/' \
-e 's/__EXTENSIONS__/_NO&/' \
configure || die
fi
}
src_configure() {
local myeconfargs=(
--disable-static
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
)
econf "${myeconfargs[@]}"
}
src_install() {
default
# ppl need to use libassuan-config for --cflags and --libs
find "${ED}" -type f -name '*.la' -delete || die
}

View File

@ -0,0 +1,48 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit libtool
DESCRIPTION="IPC library used by GnuPG and GPGME"
HOMEPAGE="https://www.gnupg.org/related_software/libassuan/index.en.html"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Note: On each bump, update dep bounds on each version from configure.ac!
RDEPEND=">=dev-libs/libgpg-error-1.17"
DEPEND="${RDEPEND}"
src_prepare() {
default
if [[ ${CHOST} == *-solaris* ]] ; then
elibtoolize
# fix standards conflict
sed -i \
-e '/_XOPEN_SOURCE/s/500/600/' \
-e 's/_XOPEN_SOURCE_EXTENDED/_NO&/' \
-e 's/__EXTENSIONS__/_NO&/' \
configure || die
fi
}
src_configure() {
local myeconfargs=(
--disable-static
GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config"
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
)
econf "${myeconfargs[@]}"
}
src_install() {
default
# ppl need to use libassuan-config for --cflags and --libs
find "${ED}" -type f -name '*.la' -delete || die
}

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="project"> <maintainer type="person">
<email>crypto@gentoo.org</email> <name>Lars Wendler</name>
<name>Crypto</name> <email>polynomial-c@gentoo.org</email>
</maintainer> </maintainer>
<longdescription> <longdescription>
In an ideal world, Assuan is irrelevant. Assuan's primary use is to In an ideal world, Assuan is irrelevant. Assuan's primary use is to

View File

@ -1,3 +1,2 @@
DIST libusb-1.0.19.tar.bz2 521496 BLAKE2B 9f38dcb8f053019511dc2eed93772183c5487917794abd2839e981924bf05e39aba5cee4fb9a366b78e4d265fb16a921fb64c9a083323993ce21543d37073720 SHA512 f42f0187bfec16ebabad64efef7a7651ee85dcf2af1b7cbe543b7de615f9c6432f7eea5fcc6b23335591dcad287c905eb9bd56199cc5d3b47435027ad678f2c1 DIST libusb-1.0.24.tar.bz2 606593 BLAKE2B f6188b5af1225cf8b6d1486b6efcf48e837ee4f2e3592adab3ae6aae0a74a67aa54f40f0dd547f951a194d40954f2ee33acf741d2eee0b8449ce64f2edcf1018 SHA512 5aea36a530aaa15c6dd656d0ed3ce204522c9946d8d39ffbb290dab4a98cda388a2598da4995123d1032324056090bd429e702459626d3e8d7daeebc4e7ff3dc
DIST libusb-1.0.20.tar.bz2 795247 BLAKE2B 9b3b4b9e372487ca355611917eb00a41d439df391796edf0b4fea28fcd88ca92214d05c4beb8eaf918028d833544e385e59ca38426880c293e070c5f1fc64647 SHA512 4230047dbc18db402f399a6b228f70da37ce4f9da9d57203e5c31cf0edec5ddd664865b4f16038a2ae72c26097e713b709b9e882a11b65a274e84993d617c765 DIST libusb-1.0.25.tar.bz2 609127 BLAKE2B 3aecfbf9fc068fdfb8e612918bb895988f8400dc2c3ffd96a81792ab844d632f0c098947200512ddc37cfa9003956f8454c1d0362973a5d646a225f81cc2923b SHA512 f1e6e5577d4bd1ff136927dc66c615014a06ac332ddd797b1d1ad5f7b68e2405e66068dcb210e2f0ae3e31681603ef72efbd88bf7fbe0eb41ce700fdc3f92f9d
DIST libusb-1.0.21.tar.bz2 607417 BLAKE2B c76352a19f416ad27b8940e99f38878e248cdbc04ef97752f8c8468ab0391869ab611197e3e143d69e0e23563da59f1691c14fce72958fdf28ebf10dd8c1521b SHA512 015ca07bdb559aa40af5db1302ab0b1c8a30d593699fe2f3c9f45162673dc7b608cecc58d60fde8f3bde2a68370794a045e8efa48fc55402eece11261e525762

View File

@ -0,0 +1,65 @@
From f6d2cb561402c3b6d3627c0eb89e009b503d9067 Mon Sep 17 00:00:00 2001
From: Chris Dickens <christopher.a.dickens@gmail.com>
Date: Sun, 13 Dec 2020 15:49:19 -0800
Subject: [PATCH] linux_usbfs: Fix parsing of descriptors for
multi-configuration devices
Commit e2be556bd2 ("linux_usbfs: Parse config descriptors during device
initialization") introduced a regression for devices with multiple
configurations. The logic that verifies the reported length of the
configuration descriptors failed to count the length of the
configuration descriptor itself and would truncate the actual length by
9 bytes, leading to a parsing error for subsequent descriptors.
Closes #825
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
---
libusb/os/linux_usbfs.c | 12 ++++++++----
libusb/version_nano.h | 2 +-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
index fb2ed53a..4d2dc8d6 100644
--- a/libusb/os/linux_usbfs.c
+++ b/libusb/os/linux_usbfs.c
@@ -641,7 +641,12 @@ static int seek_to_next_config(struct libusb_context *ctx,
uint8_t *buffer, size_t len)
{
struct usbi_descriptor_header *header;
- int offset = 0;
+ int offset;
+
+ /* Start seeking past the config descriptor */
+ offset = LIBUSB_DT_CONFIG_SIZE;
+ buffer += LIBUSB_DT_CONFIG_SIZE;
+ len -= LIBUSB_DT_CONFIG_SIZE;
while (len > 0) {
if (len < 2) {
@@ -718,7 +723,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
}
if (priv->sysfs_dir) {
- /*
+ /*
* In sysfs wTotalLength is ignored, instead the kernel returns a
* config descriptor with verified bLength fields, with descriptors
* with an invalid bLength removed.
@@ -727,8 +732,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
int offset;
if (num_configs > 1 && idx < num_configs - 1) {
- offset = seek_to_next_config(ctx, buffer + LIBUSB_DT_CONFIG_SIZE,
- remaining - LIBUSB_DT_CONFIG_SIZE);
+ offset = seek_to_next_config(ctx, buffer, remaining);
if (offset < 0)
return offset;
sysfs_config_len = (uint16_t)offset;
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 61a0a700..578b0979 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11584
+#define LIBUSB_NANO 11586

View File

@ -0,0 +1,32 @@
https://github.com/libusb/libusb/pull/1062
https://github.com/libusb/libusb/issues/1063
https://bugs.gentoo.org/832732
From 8bb81fe72286cdcb782c7af4f0d7ef715b2e137c Mon Sep 17 00:00:00 2001
From: Yegor Yefremov <yegorslists@googlemail.com>
Date: Sun, 6 Feb 2022 07:12:14 +0100
Subject: [PATCH] linux_usbfs: fix maybe-uninitialized error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Initialize active_config to an invalid value to avoid the following
compilation error:
os/linux_usbfs.c: In function op_get_configuration:
os/linux_usbfs.c:1452:12: error: active_config may be used uninitialized in this function [-Werror=maybe-uninitialized]
1452 | *config = (uint8_t)active_config;
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
--- a/libusb/os/linux_usbfs.c
+++ b/libusb/os/linux_usbfs.c
@@ -1429,7 +1429,7 @@ static int op_get_configuration(struct libusb_device_handle *handle,
uint8_t *config)
{
struct linux_device_priv *priv = usbi_get_device_priv(handle->dev);
- int active_config;
+ int active_config = -1; /* to please compiler */
int r;
if (priv->sysfs_dir) {

View File

@ -1,70 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils toolchain-funcs multilib-minimal
DESCRIPTION="Userspace access to USB devices"
HOMEPAGE="http://libusb.info/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="1"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE="debug doc examples static-libs test udev"
RDEPEND="udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP},static-libs?] )
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20130224-r7
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )
!udev? ( virtual/os-headers )"
multilib_src_configure() {
ECONF_SOURCE=${S} \
econf \
$(use_enable static-libs static) \
$(use_enable udev) \
$(use_enable debug debug-log) \
$(use_enable test tests-build)
}
multilib_src_compile() {
emake
if multilib_is_native_abi; then
use doc && emake -C doc docs
fi
}
multilib_src_test() {
emake check
# noinst_PROGRAMS from tests/Makefile.am
tests/stress || die
}
multilib_src_install() {
emake DESTDIR="${D}" install
if multilib_is_native_abi; then
gen_usr_ldscript -a usb-1.0
use doc && dohtml doc/html/*
fi
}
multilib_src_install_all() {
prune_libtool_files
dodoc AUTHORS ChangeLog NEWS PORTING README TODO
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins examples/*.{c,h}
insinto /usr/share/doc/${PF}/examples/getopt
doins examples/getopt/*.{c,h}
fi
}

View File

@ -1,71 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils toolchain-funcs multilib-minimal
DESCRIPTION="Userspace access to USB devices"
HOMEPAGE="http://libusb.info/ https://github.com/libusb/libusb"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE="debug doc examples static-libs test udev"
RDEPEND="udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP},static-libs?] )
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20130224-r7
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )
!udev? ( virtual/os-headers )"
multilib_src_configure() {
ECONF_SOURCE=${S} \
econf \
$(use_enable static-libs static) \
$(use_enable udev) \
$(use_enable debug debug-log) \
$(use_enable test tests-build)
}
multilib_src_compile() {
# Bug 573802
emake -j1
if multilib_is_native_abi; then
use doc && emake -C doc docs
fi
}
multilib_src_test() {
emake check
# noinst_PROGRAMS from tests/Makefile.am
tests/stress || die
}
multilib_src_install() {
emake DESTDIR="${D}" install
if multilib_is_native_abi; then
gen_usr_ldscript -a usb-1.0
use doc && dohtml doc/html/*
fi
}
multilib_src_install_all() {
prune_libtool_files
dodoc AUTHORS ChangeLog NEWS PORTING README TODO
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins examples/*.{c,h}
insinto /usr/share/doc/${PF}/examples/getopt
doins examples/getopt/*.{c,h}
fi
}

View File

@ -1,66 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils toolchain-funcs multilib-minimal
DESCRIPTION="Userspace access to USB devices"
HOMEPAGE="http://libusb.info/ https://github.com/libusb/libusb"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="1"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 -x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE="debug doc examples static-libs test udev"
RDEPEND="udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP},static-libs?] )"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )
!udev? ( virtual/os-headers )"
multilib_src_configure() {
ECONF_SOURCE=${S} \
econf \
$(use_enable static-libs static) \
$(use_enable udev) \
$(use_enable debug debug-log) \
$(use_enable test tests-build)
}
multilib_src_compile() {
emake
if multilib_is_native_abi; then
use doc && emake -C doc docs
fi
}
multilib_src_test() {
emake check
# noinst_PROGRAMS from tests/Makefile.am
tests/stress || die
}
multilib_src_install() {
emake DESTDIR="${D}" install
if multilib_is_native_abi; then
gen_usr_ldscript -a usb-1.0
use doc && dohtml doc/html/*
fi
}
multilib_src_install_all() {
prune_libtool_files
dodoc AUTHORS ChangeLog NEWS PORTING README TODO
if use examples; then
insinto /usr/share/doc/${PF}/examples
doins examples/*.{c,h}
insinto /usr/share/doc/${PF}/examples/getopt
doins examples/getopt/*.{c,h}
fi
}

View File

@ -0,0 +1,76 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib-minimal usr-ldscript
DESCRIPTION="Userspace access to USB devices"
HOMEPAGE="https://libusb.info/ https://github.com/libusb/libusb"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="1"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug doc examples static-libs test udev"
RESTRICT="!test? ( test )"
REQUIRED_USE="static-libs? ( !udev )"
RDEPEND="udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
!udev? ( virtual/os-headers )"
BDEPEND="doc? ( app-doc/doxygen )"
PATCHES=(
"${FILESDIR}/${P}-multi_device_config_parsing.patch" #759814
)
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
$(use_enable udev)
$(use_enable debug debug-log)
$(use_enable test tests-build)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_compile() {
emake
if multilib_is_native_abi; then
use doc && emake -C doc
fi
}
multilib_src_test() {
emake check
# noinst_PROGRAMS from tests/Makefile.am
if [[ -e /dev/bus/usb ]]; then
tests/stress || die
else
# https://bugs.gentoo.org/824266
ewarn "/dev/bus/usb does not exist, skipping stress test"
fi
}
multilib_src_install() {
emake DESTDIR="${D}" install
if multilib_is_native_abi; then
gen_usr_ldscript -a usb-1.0
use doc && dodoc -r doc/api-1.0
fi
}
multilib_src_install_all() {
find "${ED}" -type f -name "*.la" -delete || die
dodoc AUTHORS ChangeLog NEWS PORTING README TODO
if use examples; then
docinto examples
dodoc examples/*.{c,h}
fi
}

View File

@ -0,0 +1,78 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib-minimal usr-ldscript
DESCRIPTION="Userspace access to USB devices"
HOMEPAGE="https://libusb.info/ https://github.com/libusb/libusb"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="debug doc examples static-libs test udev"
RESTRICT="!test? ( test )"
REQUIRED_USE="static-libs? ( !udev )"
RDEPEND="udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
!udev? ( virtual/os-headers )"
BDEPEND="doc? ( app-doc/doxygen )"
PATCHES=(
"${FILESDIR}"/${P}-fix-O3-warning.patch
)
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
$(use_enable udev)
$(use_enable debug debug-log)
$(use_enable test tests-build)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_compile() {
emake
if multilib_is_native_abi; then
use doc && emake -C doc
fi
}
multilib_src_test() {
emake check
# noinst_PROGRAMS from tests/Makefile.am
if [[ -e /dev/bus/usb ]]; then
tests/stress || die
else
# bug #824266
ewarn "/dev/bus/usb does not exist, skipping stress test"
fi
}
multilib_src_install() {
emake DESTDIR="${D}" install
if multilib_is_native_abi; then
gen_usr_ldscript -a usb-1.0
use doc && dodoc -r doc/api-1.0
fi
}
multilib_src_install_all() {
find "${ED}" -type f -name "*.la" -delete || die
dodoc AUTHORS ChangeLog NEWS PORTING README TODO
if use examples; then
docinto examples
dodoc examples/*.{c,h}
fi
}

View File

@ -1,14 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="project"> <maintainer type="project">
<email>base-system@gentoo.org</email> <email>base-system@gentoo.org</email>
<name>Gentoo Base System</name> <name>Gentoo Base System</name>
</maintainer> </maintainer>
<maintainer type="person">
<email>peter@stuge.se</email>
<name>Peter Stuge</name>
</maintainer>
<upstream> <upstream>
<remote-id type="github">libusb/libusb</remote-id> <remote-id type="github">libusb/libusb</remote-id>
</upstream> </upstream>

View File

@ -1,3 +1,7 @@
DIST protobuf-3.4.1.tar.gz 4490100 BLAKE2B e2bc1ef2ee1a0af44830b3c65a6c9e73883fe6ec0d07f6a6136f5564f0e85306005440ca6f8c4eb834c7c70f909792c9e2457a761f10f95431981263a9acd7a3 SHA512 471e52198fa878a79183dc8fbc39d9c65239be4d9dff799e12281ee9b1af61a427584534b1baae1773bc6e4c86467f89ca2e7911a21effd86bc5f40cc7d94c34 DIST protobuf-3.17.0.tar.gz 5185780 BLAKE2B a168619df72cdf097c7ddfd50aca96a2101bf73e7c1c842c020e6ee08a853db8674a86ca999b7706da3dd21d4d3d2159241c93232efc693701962f3a54a382e9 SHA512 36ed2de641849ce01531ff1207f62a0748f811519c40622a119a17a1e709864382de81481fb58f374a025948971c48416e7e6de9c00512a78633c7a8a3aa3a36
DIST protobuf-3.5.1.1.tar.gz 4584489 BLAKE2B 995ee2f06a6358e9935b488269ee50f0dccede417c1757828b0108fbe8c67034301f3a9cb87517430acd9838ae71bb677f4edd8b59b2418f99c15d8ea3d33591 SHA512 f25ecf772facc8efd196b7c06012ce9ec24152b2c0cde38ed2e29ecded8f534221b008e649f4cbd991436ad3436130cd2e31d51e75019d08240d518111fb4496 DIST protobuf-3.17.1.tar.gz 5192666 BLAKE2B 7f912db7e0835aaa42628fcf564a5666e2cbfa021bb35638a5eec53c3c457f1e747225dea54f732b7239a1520febca9bc20c824b1938f100796caa3ac2133bc1 SHA512 5a18aa3c1dab040dc6d22310a8503241081106acf7ca89079d7b416533d7c2cdd47719dc9023e6bc26969f0f1c796550260a04034a403c69752f6a3a7a651bb8
DIST protobuf-3.5.2.tar.gz 4584659 BLAKE2B f582212169d802a5844574eb900c9f8cbb343b7e73f2074e5ff0bfc544ebd13f4bc2b78271fb70f4465d78fdc39972ed68339f453c0d3ffe98d8564fbf520544 SHA512 09d10cf0c07a0ba249428bbf20f5dbed840965fa06b3c09682f286a4dee9d84bb96f3b5b50e993d48ef1f20440531255ce7d0e60a648bf3fe536a5f2b0b74181 DIST protobuf-3.17.2.tar.gz 5192779 BLAKE2B 97f9561848e70b8d26ebcc7fc4fa8da51c4b8267efbe1d2d386c2785308e7ba7edc05f1b3863c274dc8838866d58b58509606d72c51a22b956d1d528584c4c95 SHA512 b3e7ad50ed772668df70a3a20ad1af13a5e82f23b109e4fecd34e6a74947bed300963c9f084907fbfafe28fc18365cde7df1975e2ff9538d2f5a3d2b458bca98
DIST protobuf-3.17.3.tar.gz 5235236 BLAKE2B 2495e678c8f9436d4e5a30ccee8b6226125d418ac7ecf7df20b078a1a16c221cbccab7d846dcd56a90220c106617fa75c410a21b62612fedec378cd7e8571350 SHA512 b4030b4474cc5fb5a62501200725dd488e6e66e3ced4ed12ab4ee029fcfed305e92ec966adafbdd343afffd186908163849422b95eaa500e7e741ac325d01d12
DIST protobuf-3.18.2.tar.gz 5272935 BLAKE2B f65caa4483d3ff4186f9ea388e2a9ef232ab758cfda846cfb5993df1f991e4574e63a33b175dd00c72f61c0a23ed12d3c62eb658cd397bf43b805c41fb34c47e SHA512 8ca613fdeefcbd93e866fab65effc38aa8508060aa3de0109dbead68f2e27eb22ad0a8aea10c8b4c3e9de181d62185c93b369fb5abf96de02a170f2e5c27e0cd
DIST protobuf-3.19.1.tar.gz 5291573 BLAKE2B a34f1a7cf99ecb6cb8a26bc858de6273bfd26aa9be1e89e48c16cb5df0f1e9576479344c8250017238dbac0d0c4ac33001125b5fc622cb64ed6b91023198b03a SHA512 f1271f5159a7be363a5f60ce4921dfea68a8468d66808330bacaeaa1cb7f652d045ab080b5d82816a6fd4e6d7d7fe79aaa6c8d66d81692721d36ce3bbf619f31
DIST protobuf-3.19.3.tar.gz 5293258 BLAKE2B c05b70ffca97f7166ea6a511a36907eed125edf1ebf17f908718221d9b851be84dfb2b1b39973f2faf35f6ade630e6ba4f9e8b91b8fbc922c5db97079323ee6e SHA512 1c003e7cbc8eae6a038f46e688b401ee202ba47f502561e909df79770f6e8b7daf3dc1ccc727e31bfb5b52cd04cb4fef7d2d2a28d650c13f396872ad4aa076c6

View File

@ -1,8 +1,8 @@
https://github.com/google/protobuf/pull/235 https://github.com/protocolbuffers/protobuf/pull/235
--- /src/google/protobuf/compiler/command_line_interface.cc --- /src/google/protobuf/compiler/command_line_interface.cc
+++ /src/google/protobuf/compiler/command_line_interface.cc +++ /src/google/protobuf/compiler/command_line_interface.cc
@@ -942,6 +942,28 @@ @@ -1110,6 +1110,28 @@
} }
if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) { if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) {
@ -31,7 +31,7 @@ https://github.com/google/protobuf/pull/235
if (codec_type_.empty()) { if (codec_type_.empty()) {
// HACK: Define an EmptyMessage type to use for decoding. // HACK: Define an EmptyMessage type to use for decoding.
DescriptorPool pool; DescriptorPool pool;
@@ -950,13 +972,20 @@ @@ -1118,13 +1140,20 @@
file.add_message_type()->set_name("EmptyMessage"); file.add_message_type()->set_name("EmptyMessage");
GOOGLE_CHECK(pool.BuildFile(file) != NULL); GOOGLE_CHECK(pool.BuildFile(file) != NULL);
codec_type_ = "EmptyMessage"; codec_type_ = "EmptyMessage";
@ -58,7 +58,7 @@ https://github.com/google/protobuf/pull/235
} }
} }
@@ -994,6 +1023,11 @@ @@ -1163,6 +1192,11 @@
for (int i = 0; i < proto_path_.size(); i++) { for (int i = 0; i < proto_path_.size(); i++) {
source_tree->MapPath(proto_path_[i].first, proto_path_[i].second); source_tree->MapPath(proto_path_[i].first, proto_path_[i].second);
} }
@ -69,10 +69,10 @@ https://github.com/google/protobuf/pull/235
+ } + }
// Map input files to virtual paths if possible. // Map input files to virtual paths if possible.
if (!MakeInputsBeProtoPathRelative(source_tree)) { if (!MakeInputsBeProtoPathRelative(source_tree, fallback_database)) {
@@ -1561,6 +1595,12 @@ @@ -1885,6 +1919,12 @@
} else if (name == "--deterministic_output") {
codec_type_ = value; deterministic_output_ = true;
+ } else if (name == "--protobuf_in") { + } else if (name == "--protobuf_in") {
+ protobuf_in_path_ = value; + protobuf_in_path_ = value;
@ -83,47 +83,53 @@ https://github.com/google/protobuf/pull/235
} else if (name == "--error_format") { } else if (name == "--error_format") {
if (value == "gcc") { if (value == "gcc") {
error_format_ = ERROR_FORMAT_GCC; error_format_ = ERROR_FORMAT_GCC;
@@ -1684,18 +1724,29 @@ @@ -2018,22 +2058,38 @@
" --version Show version info and exit.\n" --version Show version info and exit.
" -h, --help Show this text and exit.\n" -h, --help Show this text and exit.
" --encode=MESSAGE_TYPE Read a text-format message of the given type\n" --encode=MESSAGE_TYPE Read a text-format message of the given type
-" from standard input and write it in binary\n" - from standard input and write it in binary
-" to standard output. The message type must\n" - to standard output. The message type must
-" be defined in PROTO_FILES or their imports.\n" + from input protobuf file and write it in binary
-" --decode=MESSAGE_TYPE Read a binary message of the given type from\n" + to output protobuf file. The message type must
-" standard input and write it in text format\n" be defined in PROTO_FILES or their imports.
-" to standard output. The message type must\n" + The input/output protobuf files are specified
+" an write it in binary. The message type must\n" + using the --protobuf_in and --protobuf_out
" be defined in PROTO_FILES or their imports.\n" + command line flags.
-" --decode_raw Read an arbitrary protocol message from\n" --deterministic_output When using --encode, ensure map fields are
-" standard input and write the raw tag/value\n" deterministically ordered. Note that this order
-" pairs in text format to standard output. No\n" is not canonical, and changes across builds or
+" The input/output protobuf files are specified\n" releases of protoc.
+" using the --protobuf_in and --protobuf_out\n" --decode=MESSAGE_TYPE Read a binary message of the given type from
+" command line flags.\n" - standard input and write it in text format
+" --decode=MESSAGE_TYPE Read a binary message of the given type and\n" - to standard output. The message type must
+" write it in text format. The message type\n" + input protobuf file and write it in text format
+" must be defined in PROTO_FILES or their\n" + to output protobuf file. The message type must
+" imports. The input/output protobuf files are\n" be defined in PROTO_FILES or their imports.
+" specified using the --protobuf_in and \n" + The input/output protobuf files are specified
+" --protobuf_out command line flags.\n" + using the --protobuf_in and --protobuf_out
+" --decode_raw Read an arbitrary protocol message and write\n" + command line flags.
+" the raw tag/value pairs in text format. No\n" --decode_raw Read an arbitrary protocol message from
" PROTO_FILES should be given when using this\n" - standard input and write the raw tag/value
-" flag.\n" - pairs in text format to standard output. No
+" flag. The input/output protobuf files are\n" + input protobuf file and write the raw tag/value
+" specified using the --protobuf_in and \n" + pairs in text format to output protobuf file. No
+" --protobuf_out command line flags.\n" PROTO_FILES should be given when using this
+" --protobuf_in Absolute path to the protobuf file to read to\n" - flag.
+" encode/decode. If omitted, file will be read\n" + flag. The input/output protobuf files are
+" from STDIN.\n" + specified using the --protobuf_in and
+" --protobuf_out Absolute path to the protobuf file to write to\n" + --protobuf_out command line flags.
+" after encode/decode operation. If omitted,\n" + --protobuf_in=FILE Absolute path to the protobuf file from which
+" output is written to STDOUT.\n" + input of encoding/decoding operation will be
" --descriptor_set_in=FILES Specifies a delimited list of FILES\n" + read. If omitted, input will be read from
" each containing a FileDescriptorSet (a\n" + standard input.
" protocol buffer defined in descriptor.proto).\n" + --protobuf_out=FILE Absolute path to the protobuf file to which
@@ -1957,7 +2008,9 @@ + output of encoding/decoding operation will be
+ written. If omitted, output will be written to
+ standard output.
--descriptor_set_in=FILES Specifies a delimited list of FILES
each containing a FileDescriptorSet (a
protocol buffer defined in descriptor.proto).
@@ -2344,7 +2400,9 @@
return true; return true;
} }
@ -134,8 +140,8 @@ https://github.com/google/protobuf/pull/235
// Look up the type. // Look up the type.
const Descriptor* type = pool->FindMessageTypeByName(codec_type_); const Descriptor* type = pool->FindMessageTypeByName(codec_type_);
if (type == NULL) { if (type == NULL) {
@@ -1969,15 +2022,15 @@ @@ -2356,15 +2414,15 @@
google::protobuf::scoped_ptr<Message> message(dynamic_factory.GetPrototype(type)->New()); std::unique_ptr<Message> message(dynamic_factory.GetPrototype(type)->New());
if (mode_ == MODE_ENCODE) { if (mode_ == MODE_ENCODE) {
- SetFdToTextMode(STDIN_FILENO); - SetFdToTextMode(STDIN_FILENO);
@ -158,8 +164,8 @@ https://github.com/google/protobuf/pull/235
// Input is text. // Input is text.
--- /src/google/protobuf/compiler/command_line_interface.h --- /src/google/protobuf/compiler/command_line_interface.h
+++ /src/google/protobuf/compiler/command_line_interface.h +++ /src/google/protobuf/compiler/command_line_interface.h
@@ -269,7 +269,9 @@ @@ -292,7 +292,9 @@
GeneratorContext* generator_context, string* error); GeneratorContext* generator_context, std::string* error);
// Implements --encode and --decode. // Implements --encode and --decode.
- bool EncodeOrDecode(const DescriptorPool* pool); - bool EncodeOrDecode(const DescriptorPool* pool);
@ -169,23 +175,23 @@ https://github.com/google/protobuf/pull/235
// Implements the --descriptor_set_out option. // Implements the --descriptor_set_out option.
bool WriteDescriptorSet( bool WriteDescriptorSet(
@@ -402,6 +404,13 @@ @@ -427,6 +429,13 @@
// parsed FileDescriptorSets to be used for loading protos. Otherwise, empty. // parsed FileDescriptorSets to be used for loading protos. Otherwise, empty.
std::vector<string> descriptor_set_in_names_; std::vector<std::string> descriptor_set_in_names_;
+ // When using --encode / --decode / --decode_raw absolute path to the output + // When using --encode / --decode / --decode_raw absolute path to the output
+ // file. (Empty string indicates write to STDOUT). + // file. (Empty string indicates write to STDOUT).
+ string protobuf_out_path_; + std::string protobuf_out_path_;
+ // When using --encode / --decode / --decode_raw, absolute path to the input + // When using --encode / --decode / --decode_raw, absolute path to the input
+ // file. (Empty string indicates read from STDIN). + // file. (Empty string indicates read from STDIN).
+ string protobuf_in_path_; + std::string protobuf_in_path_;
+ +
// If --descriptor_set_out was given, this is the filename to which the // If --descriptor_set_out was given, this is the filename to which the
// FileDescriptorSet should be written. Otherwise, empty. // FileDescriptorSet should be written. Otherwise, empty.
string descriptor_set_out_name_; std::string descriptor_set_out_name_;
--- /src/google/protobuf/compiler/command_line_interface_unittest.cc --- /src/google/protobuf/compiler/command_line_interface_unittest.cc
+++ /src/google/protobuf/compiler/command_line_interface_unittest.cc +++ /src/google/protobuf/compiler/command_line_interface_unittest.cc
@@ -95,7 +95,7 @@ @@ -99,7 +99,7 @@
virtual void SetUp(); virtual void SetUp();
virtual void TearDown(); virtual void TearDown();
@ -193,9 +199,9 @@ https://github.com/google/protobuf/pull/235
+ // Run the CommandLineInterface with the given command line. The + // Run the CommandLineInterface with the given command line. The
// command is automatically split on spaces, and the string "$tmpdir" // command is automatically split on spaces, and the string "$tmpdir"
// is replaced with TestTempDir(). // is replaced with TestTempDir().
void Run(const string& command); void Run(const std::string& command);
@@ -2308,6 +2308,17 @@ @@ -2626,6 +2626,17 @@
EXPECT_EQ(StripCR(expected_text), StripCR(captured_stderr_)); std::string::npos);
} }
+ void ExpectBinaryFilesMatch(const string &expected_file, + void ExpectBinaryFilesMatch(const string &expected_file,
@ -212,22 +218,23 @@ https://github.com/google/protobuf/pull/235
private: private:
void WriteUnittestProtoDescriptorSet() { void WriteUnittestProtoDescriptorSet() {
unittest_proto_descriptor_set_filename_ = unittest_proto_descriptor_set_filename_ =
@@ -2398,6 +2409,18 @@ @@ -2749,6 +2760,19 @@
"google/protobuf/no_such_file.proto: No such file or directory\n"); "Can only use --deterministic_output with --encode.\n");
} }
+TEST_P(EncodeDecodeTest, RedirectInputOutput) { +TEST_P(EncodeDecodeTest, RedirectInputOutput) {
+ string out_file = TestTempDir() + "/golden_message_out.pbf"; + string out_file = TestTempDir() + "/golden_message_out.pbf";
+ string cmd = ""; + EXPECT_TRUE(
+ cmd += "google/protobuf/unittest.proto "; + Run(TestUtil::MaybeTranslatePath("net/proto2/internal/unittest.proto") +
+ cmd += "--encode=protobuf_unittest.TestAllTypes "; + " --encode=protobuf_unittest.TestAllTypes" +
+ cmd += "--protobuf_in=" + TestSourceDir() + + " --protobuf_in=" + TestUtil::GetTestDataPath(
+ "/google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt "; + "net/proto2/internal/"
+ cmd += "--protobuf_out=" + out_file; + "testdata/text_format_unittest_data_oneof_implemented.txt") +
+ EXPECT_TRUE(Run(cmd)); + " --protobuf_out=" + out_file));
+ ExpectBinaryFilesMatch(out_file, TestSourceDir() + "/google/protobuf/testdata/golden_message_oneof_implemented"); + ExpectBinaryFilesMatch(out_file, TestUtil::GetTestDataPath(
+ "net/proto2/internal/testdata/golden_message_oneof_implemented"));
+} +}
+ +
INSTANTIATE_TEST_CASE_P(FileDescriptorSetSource, INSTANTIATE_TEST_SUITE_P(FileDescriptorSetSource, EncodeDecodeTest,
EncodeDecodeTest, testing::Values(PROTO_PATH, DESCRIPTOR_SET_IN));
testing::Values(PROTO_PATH, DESCRIPTOR_SET_IN)); } // anonymous namespace

View File

@ -2,16 +2,16 @@ Disable no-warning-test which is compiled with -Werror option and whose only pur
--- /src/Makefile.am --- /src/Makefile.am
+++ /src/Makefile.am +++ /src/Makefile.am
@@ -750,7 +750,7 @@ @@ -713,7 +713,7 @@
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \ check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \ protobuf-lite-test test_plugin protobuf-lite-arena-test \
- no-warning-test $(GZCHECKPROGRAMS) - no-warning-test $(GZCHECKPROGRAMS)
+ $(GZCHECKPROGRAMS) + $(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
../gmock/gtest/lib/libgtest.la \ $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
../gmock/lib/libgmock.la \ $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
@@ -931,4 +931,4 @@ @@ -900,4 +900,4 @@
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \ TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \ google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \

View File

@ -1,12 +1,8 @@
--- /Makefile.am --- /Makefile.am
+++ /Makefile.am +++ /Makefile.am
@@ -8,31 +8,12 @@ @@ -11,28 +11,10 @@
# the right time. # Always include third_party directories in distributions.
SUBDIRS = . src DIST_SUBDIRS = src conformance benchmarks third_party/googletest
-# Always include gmock in distributions.
-DIST_SUBDIRS = $(subdirs) src conformance benchmarks
+DIST_SUBDIRS = src conformance benchmarks
-# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS -# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
-# because then "make check" would also build and run all of gmock's own tests, -# because then "make check" would also build and run all of gmock's own tests,
@ -15,8 +11,8 @@
-# the installed version of gmock if there is one. -# the installed version of gmock if there is one.
check-local: check-local:
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock" - @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
- @cd gmock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la - @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
- @cd gmock/gtest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la - @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
-# We would like to clean gmock when "make clean" is invoked. But we have to -# We would like to clean gmock when "make clean" is invoked. But we have to
-# be careful because clean-local is also invoked during "make distclean", but -# be careful because clean-local is also invoked during "make distclean", but
@ -25,9 +21,9 @@
-# cd to the directory again and "make clean" it will fail. So, check that the -# cd to the directory again and "make clean" it will fail. So, check that the
-# Makefile exists before recursing. -# Makefile exists before recursing.
clean-local: clean-local:
- @if test -e gmock/Makefile; then \ - @if test -e third_party/googletest/Makefile; then \
- echo "Making clean in gmock"; \ - echo "Making clean in googletest"; \
- cd gmock && $(MAKE) $(AM_MAKEFLAGS) clean; \ - cd third_party/googletest && $(MAKE) $(AM_MAKEFLAGS) clean; \
- fi; \ - fi; \
- if test -e conformance/Makefile; then \ - if test -e conformance/Makefile; then \
+ @if test -e conformance/Makefile; then \ + @if test -e conformance/Makefile; then \
@ -36,81 +32,89 @@
fi; \ fi; \
--- /configure.ac --- /configure.ac
+++ /configure.ac +++ /configure.ac
@@ -200,12 +200,5 @@ @@ -236,12 +236,5 @@
fi
AX_CXX_COMPILE_STDCXX([11], [noext], [optional]) AC_SUBST([LIBLOG_LIBS])
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS, -# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock -# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
-# too. -# too.
-export CFLAGS -export CFLAGS
-export CXXFLAGS -export CXXFLAGS
-AC_CONFIG_SUBDIRS([gmock]) -AC_CONFIG_SUBDIRS([third_party/googletest])
- -
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc]) AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
AC_OUTPUT AC_OUTPUT
--- /src/Makefile.am --- /src/Makefile.am
+++ /src/Makefile.am +++ /src/Makefile.am
@@ -752,11 +752,7 @@ @@ -707,19 +707,11 @@
google/protobuf/testing/file.cc \
google/protobuf/testing/file.h
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \ protobuf-lite-test test_plugin protobuf-lite-arena-test \
no-warning-test $(GZCHECKPROGRAMS) $(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- ../gmock/gtest/lib/libgtest.la \ - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- ../gmock/lib/libgmock.la \ - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- ../gmock/lib/libgmock_main.la - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_test_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include \ -protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
- -I$(srcdir)/../gmock/include - -I$(GOOGLEMOCK_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main + -lgtest -lgmock -lgmock_main
# Disable optimization for tests unless the user explicitly asked for it, # Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC). # since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info. # See configure.ac for more info.
@@ -843,12 +839,8 @@ @@ -811,12 +803,8 @@
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined. # Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \ protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
libprotoc.la \ libprotoc.la \
- ../gmock/gtest/lib/libgtest.la \ - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- ../gmock/lib/libgmock.la \ - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- ../gmock/lib/libgmock_main.la - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(srcdir)/../gmock/include \ -protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(srcdir)/../gmock/gtest/include \ - -I$(GOOGLETEST_SRC_DIR)/include \
- -DPROTOBUF_TEST_NO_DESCRIPTORS - -DPROTOBUF_TEST_NO_DESCRIPTORS
+ -lgtest -lgmock -lgmock_main + -lgtest -lgmock -lgmock_main
+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS +protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES = \ protobuf_lazy_descriptor_test_SOURCES = \
google/protobuf/compiler/cpp/cpp_unittest.cc \ google/protobuf/compiler/cpp/cpp_unittest.cc \
@@ -868,11 +860,7 @@ @@ -837,11 +825,7 @@
# full runtime and we want to make sure this test builds without full # full runtime and we want to make sure this test builds without full
# runtime. # runtime.
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \ protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- ../gmock/gtest/lib/libgtest.la \ - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- ../gmock/lib/libgmock.la \ - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- ../gmock/lib/libgmock_main.la - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_test_CPPFLAGS= -I$(srcdir)/../gmock/include \ -protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(srcdir)/../gmock/gtest/include - -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main + -lgtest -lgmock -lgmock_main
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES = \ protobuf_lite_test_SOURCES = \
google/protobuf/lite_unittest.cc \ google/protobuf/lite_unittest.cc \
@@ -883,11 +871,7 @@ @@ -853,11 +837,7 @@
# gtest when building the test internally our memory sanitizer doesn't detect # gtest when building the test internally our memory sanitizer doesn't detect
# memory leaks (don't know why). # memory leaks (don't know why).
protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \ protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- ../gmock/gtest/lib/libgtest.la \ - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- ../gmock/lib/libgmock.la \ - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- ../gmock/lib/libgmock_main.la - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_arena_test_CPPFLAGS = -I$(srcdir)/../gmock/include \ -protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(srcdir)/../gmock/gtest/include - -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main + -lgtest -lgmock -lgmock_main
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_arena_test_SOURCES = \ protobuf_lite_arena_test_SOURCES = \
google/protobuf/lite_arena_unittest.cc \ google/protobuf/lite_arena_unittest.cc \
@@ -896,8 +880,7 @@ @@ -867,8 +847,7 @@
# Test plugin binary. # Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- ../gmock/gtest/lib/libgtest.la - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
-test_plugin_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include -test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest + -lgtest
test_plugin_SOURCES = \ test_plugin_SOURCES = \
google/protobuf/compiler/mock_code_generator.cc \ google/protobuf/compiler/mock_code_generator.cc \

View File

@ -0,0 +1,36 @@
From 290073d7d4ddaa6d39ad12c90245e795c5482432 Mon Sep 17 00:00:00 2001
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Date: Sat, 29 Jan 2022 22:43:50 +0800
Subject: [PATCH] protobuf-3.18.0: disable no-warning test
Disable no-warning-test which is compiled with -Werror option
and whose only purpose is checking if compilation results in any warnings.
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
---
src/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index e6b4d0f..1cfd885 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -726,7 +726,7 @@ GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \
- no-warning-test $(GZCHECKPROGRAMS)
+ $(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
$(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
$(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
@@ -915,4 +915,4 @@ nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \
- protobuf-lite-arena-test no-warning-test
+ protobuf-lite-arena-test
--
2.34.1

View File

@ -0,0 +1,146 @@
From 10b2d5bb5a4d1b7529cb781e5513940ad6db4ada Mon Sep 17 00:00:00 2001
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Date: Sat, 29 Jan 2022 22:46:38 +0800
Subject: [PATCH] protobuf-3.18.0: system_libraries
Use system version of GoogleTest,
which will unbundle gtest, gmock libraries
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
---
Makefile.am | 20 +-------------------
configure.ac | 7 -------
src/Makefile.am | 33 ++++++---------------------------
3 files changed, 7 insertions(+), 53 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 7ce954e..c1493e0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,28 +11,10 @@ SUBDIRS = . src
# Always include third_party directories in distributions.
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
-# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
-# because then "make check" would also build and run all of gmock's own tests,
-# which takes a lot of time and is generally not useful to us. Also, we don't
-# want "make install" to recurse into gmock since we don't want to overwrite
-# the installed version of gmock if there is one.
check-local:
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
-# We would like to clean gmock when "make clean" is invoked. But we have to
-# be careful because clean-local is also invoked during "make distclean", but
-# "make distclean" already recurses into gmock because it's listed among the
-# DIST_SUBDIRS. distclean will delete gmock/Makefile, so if we then try to
-# cd to the directory again and "make clean" it will fail. So, check that the
-# Makefile exists before recursing.
clean-local:
- @if test -e third_party/googletest/Makefile; then \
- echo "Making clean in googletest"; \
- cd third_party/googletest && $(MAKE) $(AM_MAKEFLAGS) clean; \
- fi; \
- if test -e conformance/Makefile; then \
+ @if test -e conformance/Makefile; then \
echo "Making clean in conformance"; \
cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \
fi; \
diff --git a/configure.ac b/configure.ac
index 4a6d50a..6301bd6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then
fi
AC_SUBST([LIBLOG_LIBS])
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
-# too.
-export CFLAGS
-export CXXFLAGS
-AC_CONFIG_SUBDIRS([third_party/googletest])
-
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index 1cfd885..73c2c6d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -720,19 +720,11 @@ COMMON_TEST_SOURCES = \
google/protobuf/testing/googletest.cc \
google/protobuf/testing/googletest.h
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \
$(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
- -I$(GOOGLEMOCK_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
# Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info.
@@ -825,12 +817,8 @@ $(am_protobuf_test_OBJECTS): unittest_proto_middleman
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include \
- -DPROTOBUF_TEST_NO_DESCRIPTORS
+ -lgtest -lgmock -lgmock_main
+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES = \
google/protobuf/compiler/cpp/cpp_unittest.cc \
@@ -851,11 +839,7 @@ COMMON_LITE_TEST_SOURCES = \
# full runtime and we want to make sure this test builds without full
# runtime.
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES = \
google/protobuf/lite_unittest.cc \
@@ -867,11 +851,7 @@ $(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
# gtest when building the test internally our memory sanitizer doesn't detect
# memory leaks (don't know why).
protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_arena_test_SOURCES = \
google/protobuf/lite_arena_unittest.cc \
@@ -881,8 +861,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
-test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest
test_plugin_SOURCES = \
google/protobuf/compiler/mock_code_generator.cc \
google/protobuf/compiler/test_plugin.cc \
--
2.34.1

View File

@ -0,0 +1,36 @@
From 12e381222a8cdce50845dfb7d8fdf863f6f8bb8a Mon Sep 17 00:00:00 2001
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Date: Fri, 28 Jan 2022 15:08:40 +0800
Subject: [PATCH] protobuf-3.19.0: disable no-warning test
Disable no-warning-test which is compiled with -Werror option
and whose only purpose is checking if compilation results in any warnings.
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
---
src/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 3312e5d..7e86b62 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -722,7 +722,7 @@ GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \
- no-warning-test $(GZCHECKPROGRAMS)
+ $(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
$(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
$(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
@@ -911,4 +911,4 @@ nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \
- protobuf-lite-arena-test no-warning-test
+ protobuf-lite-arena-test
--
2.34.1

View File

@ -0,0 +1,146 @@
From c080d329298e841d7d4e1380ff7ec88de5cb3b02 Mon Sep 17 00:00:00 2001
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Date: Fri, 28 Jan 2022 15:14:59 +0800
Subject: [PATCH] protobuf-3.19.0: system_libraries
Use system version of GoogleTest,
which will unbundle gtest, gmock libraries
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
---
Makefile.am | 20 +-------------------
configure.ac | 7 -------
src/Makefile.am | 33 ++++++---------------------------
3 files changed, 7 insertions(+), 53 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 41d4061..b24f8f4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,28 +11,10 @@ SUBDIRS = . src
# Always include third_party directories in distributions.
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
-# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
-# because then "make check" would also build and run all of gmock's own tests,
-# which takes a lot of time and is generally not useful to us. Also, we don't
-# want "make install" to recurse into gmock since we don't want to overwrite
-# the installed version of gmock if there is one.
check-local:
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
-# We would like to clean gmock when "make clean" is invoked. But we have to
-# be careful because clean-local is also invoked during "make distclean", but
-# "make distclean" already recurses into gmock because it's listed among the
-# DIST_SUBDIRS. distclean will delete gmock/Makefile, so if we then try to
-# cd to the directory again and "make clean" it will fail. So, check that the
-# Makefile exists before recursing.
clean-local:
- @if test -e third_party/googletest/Makefile; then \
- echo "Making clean in googletest"; \
- cd third_party/googletest && $(MAKE) $(AM_MAKEFLAGS) clean; \
- fi; \
- if test -e conformance/Makefile; then \
+ @if test -e conformance/Makefile; then \
echo "Making clean in conformance"; \
cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \
fi; \
diff --git a/configure.ac b/configure.ac
index 02085ca..449fb3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then
fi
AC_SUBST([LIBLOG_LIBS])
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
-# too.
-export CFLAGS
-export CXXFLAGS
-AC_CONFIG_SUBDIRS([third_party/googletest])
-
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index 7e86b62..47d759f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -716,19 +716,11 @@ COMMON_TEST_SOURCES = \
google/protobuf/testing/googletest.cc \
google/protobuf/testing/googletest.h
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
protobuf-lite-test test_plugin protobuf-lite-arena-test \
$(GZCHECKPROGRAMS)
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
- -I$(GOOGLEMOCK_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
# Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info.
@@ -820,12 +812,8 @@ $(am_protobuf_test_OBJECTS): unittest_proto_middleman
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include \
- -DPROTOBUF_TEST_NO_DESCRIPTORS
+ -lgtest -lgmock -lgmock_main
+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES = \
google/protobuf/compiler/cpp/cpp_unittest.cc \
@@ -847,11 +835,7 @@ COMMON_LITE_TEST_SOURCES = \
# full runtime and we want to make sure this test builds without full
# runtime.
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES = \
google/protobuf/lite_unittest.cc \
@@ -863,11 +847,7 @@ $(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
# gtest when building the test internally our memory sanitizer doesn't detect
# memory leaks (don't know why).
protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
-protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
- -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest -lgmock -lgmock_main
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_arena_test_SOURCES = \
google/protobuf/lite_arena_unittest.cc \
@@ -877,8 +857,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
-test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
+ -lgtest
test_plugin_SOURCES = \
google/protobuf/compiler/mock_code_generator.cc \
google/protobuf/compiler/test_plugin.cc \
--
2.34.1

View File

@ -1,21 +0,0 @@
https://github.com/google/protobuf/issues/3937
https://github.com/google/protobuf/pull/3955
https://github.com/google/protobuf/commit/642e1ac635f2563b4a14c255374f02645ae85dac
--- /src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
+++ /src/google/protobuf/stubs/atomicops_internals_generic_gcc.h
@@ -146,6 +146,14 @@
return __atomic_load_n(ptr, __ATOMIC_RELAXED);
}
+inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
+ Atomic64 old_value,
+ Atomic64 new_value) {
+ __atomic_compare_exchange_n(ptr, &old_value, new_value, false,
+ __ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
+ return old_value;
+}
+
#endif // defined(__LP64__)
} // namespace internal

View File

@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <maintainer type="person" proxied="yes">
<email>arfrever.fta@gmail.com</email> <email>arfrever.fta@gmail.com</email>
<name>Arfrever Frehtes Taifersar Arahesis</name> <name>Arfrever Frehtes Taifersar Arahesis</name>
</maintainer> </maintainer>
<maintainer type="project"> <maintainer type="project">
<email>proxy-maint@gentoo.org</email> <email>cjk@gentoo.org</email>
<name>Proxy Maintainers</name> <name>Cjk</name>
</maintainer> </maintainer>
<slots> <slots>
<subslots>Soname version number</subslots> <subslots>Soname version number</subslots>
</slots> </slots>
<upstream> <upstream>
<remote-id type="github">google/protobuf</remote-id> <remote-id type="cpe">cpe:/a:google:protobuf</remote-id>
<remote-id type="github">protocolbuffers/protobuf</remote-id>
</upstream> </upstream>
</pkgmetadata> </pkgmetadata>

View File

@ -0,0 +1,143 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/28"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,143 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/28"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,143 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/28"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,143 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/28"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,147 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/29"
# -hppa for bug #831728
KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.18.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.18.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/9433
sed -e "/^[[:space:]]*static_assert(alignof(T) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,141 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
LICENSE="BSD"
SLOT="0/30"
# -hppa for bug #831728
KEYWORDS="~alpha amd64 arm arm64 -hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.17.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.17.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -0,0 +1,146 @@
# Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/30"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
# https://github.com/protocolbuffers/protobuf/issues/7413
sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/8082
sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8459
sed \
-e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
-i src/google/protobuf/arena_unittest.cc || die
# https://github.com/protocolbuffers/protobuf/issues/8460
sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
# https://github.com/protocolbuffers/protobuf/issues/9392
sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
# https://github.com/protocolbuffers/protobuf/issues/9433
sed -e "/^[[:space:]]*static_assert(alignof(T) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
if tc-ld-is-gold; then
# https://sourceware.org/bugzilla/show_bug.cgi?id=24527
tc-ld-disable-gold
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local options=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# Build system uses protoc when building, so protoc copy runnable on host is needed.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${options[@]}"
options+=(--with-protoc="$(pwd)/src/protoc")
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${options[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -1,101 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/google/protobuf"
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0/14"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x86-macos"
IUSE="emacs examples static-libs test zlib"
RDEPEND="emacs? ( virtual/emacs )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.4.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.4.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.4.0-protoc_input_output_files.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
default
eautoreconf
}
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# The build system wants `protoc` when building, so we need a copy that
# runs on the host. This is more hermetic than relying on the version
# installed in the host being the exact same version.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${myeconfargs[@]}"
myeconfargs+=(--with-protoc="${PWD}"/src/protoc)
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -1,106 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/google/protobuf"
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0/15"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x86-macos"
IUSE="emacs examples static-libs test zlib"
RDEPEND="emacs? ( virtual/emacs )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}/${PN}-3.4.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.4.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.4.0-protoc_input_output_files.patch"
"${FILESDIR}/${PN}-3.5.0-atomic_operations.patch"
)
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
src_prepare() {
default
eautoreconf
}
src_configure() {
append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
multilib-minimal_src_configure
}
multilib_src_configure() {
local myeconfargs=(
$(use_enable static-libs static)
$(use_with zlib)
)
if tc-is-cross-compiler; then
# The build system wants `protoc` when building, so we need a copy that
# runs on the host. This is more hermetic than relying on the version
# installed in the host being the exact same version.
mkdir -p "${WORKDIR}/build" || die
pushd "${WORKDIR}/build" > /dev/null || die
ECONF_SOURCE="${S}" econf_build "${myeconfargs[@]}"
myeconfargs+=(--with-protoc="${PWD}"/src/protoc)
popd > /dev/null || die
fi
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
src_compile() {
multilib-minimal_src_compile
if use emacs; then
elisp-compile editors/protobuf-mode.el
fi
}
multilib_src_compile() {
if tc-is-cross-compiler; then
emake -C "${WORKDIR}/build/src" protoc
fi
default
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/proto.vim"
if use emacs; then
elisp-install ${PN} editors/protobuf-mode.el*
elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
fi
if use examples; then
DOCS+=(examples)
docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

View File

@ -1,29 +1,41 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 2008-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI="6" EAPI="7"
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
EGIT_SUBMODULES=()
fi
DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/google/protobuf" HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD" LICENSE="BSD"
SLOT="0/15" SLOT="0/30"
KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x86-macos" KEYWORDS=""
IUSE="emacs examples static-libs test zlib" IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
RDEPEND="emacs? ( virtual/emacs ) BDEPEND="emacs? ( app-editors/emacs:* )"
DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
RDEPEND="emacs? ( app-editors/emacs:* )
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
PATCHES=( PATCHES=(
"${FILESDIR}/${PN}-3.4.0-disable_no-warning-test.patch" "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
"${FILESDIR}/${PN}-3.4.0-system_libraries.patch" "${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
"${FILESDIR}/${PN}-3.4.0-protoc_input_output_files.patch" "${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
"${FILESDIR}/${PN}-3.5.0-atomic_operations.patch"
) )
DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md) DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
@ -77,6 +89,8 @@ multilib_src_test() {
} }
multilib_src_install_all() { multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
insinto /usr/share/vim/vimfiles/syntax insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect insinto /usr/share/vim/vimfiles/ftdetect

View File

@ -1,2 +1 @@
DIST libintl-perl-1.24.tar.gz 605626 BLAKE2B 6949f895ba54853704d5470e8a736e799d74ddbd569378254ac19ada9cc43c644f78bea1949b7a4c0072d4fe54f0744b7ad011539c6a1dd1191c6792c9347f1a SHA512 1c2c5d6d7ab21c45897195952a9f0f6ba26a9bbb7bfef0b5f3e9da282fcf94ab4ee80721164e5e3293d8abda0158e77ffbc331b8bed66aa56dd7fc7a6a91323d DIST libintl-perl-1.32.tar.gz 598209 BLAKE2B 1aa9ef3e2d4c1c15eb5301880e2141864d53e3e8620656276ceb07f0946612d56801021bc78bb132fee910f3ce3e55e3a092cd0305831680a9adcd731249c680 SHA512 fca6c8863dfd36c7604bc80a401e825eb707bc75016521c09006c34c170a41b009d30ec93d7e2a7f61caa1dbdf0333511c3d515d4fdc0fea32242eca68a7e35d
DIST libintl-perl-1.28.tar.gz 470898 BLAKE2B 6217a37f2176869dc945bd64a87a82710645153e3777fb5e4ddc674f179040d2268f326411a578314efafaa0edbd0e67aed99c4da86e20e811e1116d5cf2a86a SHA512 50f0836c1a84a22fcc8fca0fff2faeaae66774ec67b96c09a911c4969e8a610bbf20ba38167c13339b9ad9617e1fca07cb0cb1f12732f973b1cf618d502f59aa

View File

@ -1,51 +0,0 @@
diff -ruN libintl-perl-1.24.orig/Makefile.PL libintl-perl-1.24/Makefile.PL
--- libintl-perl-1.24.orig/Makefile.PL 2015-04-03 15:28:12.000000000 +0200
+++ libintl-perl-1.24/Makefile.PL 2016-06-01 00:06:12.000000000 +0200
@@ -163,47 +163,6 @@
package MY;
-# FIXME: This is really a hack! Problem: Depending on the build system,
-# we may or may not build and install the XS version. If the XS version
-# is being built, the directory blib/arch will be populated, if it is
-# not being built, blib/arch will be empty. Unfortunately, if blib/arch
-# is not empty, *all* library files will be installed in the architecture
-# dependent locations, if it is empty, they will be installed in the
-# architecture independent tree.
-#
-# Unfortunately, ExtUtils::MakeMaker does not take care of uninstalling
-# files from previous installations. Consequently, we cannot determine
-# which version of the library will be loaded, since this depends on the
-# current value of @INC.
-#
-# The solution does not really make me happy. The Makefile will be patched,
-# so that instead of ExtUtils::Install a custom module MyInstall.pm will
-# be used. This custom module overwrites the subroutine that detects
-# whether a directory is empty in ExtUtils::Install, and will lie if that
-# directory happens to be "blib/arch". This little hack effectively disables
-# the annoying behavior of ExtUtils::Install (and I sincerely hope that
-# this is portable).
-sub libscan
-{
- my ($self, $file) = @_;
-
- return if 'MyInstall.pm' eq $file;
-
- $self->SUPER::libscan ($file);
-}
-
-sub tools_other
-{
- my $self = shift;
-
- my $fragment = $self->SUPER::tools_other (@_);
-
- $fragment =~ s/^MOD_INSTALL\s*=\s*(.*?)-MExtUtils::Install
- /MOD_INSTALL =$1-MMyInstall/msx;
-
- return $fragment;
-}
-
package main;
my $name = $0;

View File

@ -1,35 +0,0 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DIST_AUTHOR=GUIDO
DIST_VERSION=1.24
inherit perl-module
DESCRIPTION="High-Level Interface to Uniforum Message Translation"
HOMEPAGE="http://guido-flohr.net/projects/libintl-perl ${HOMEPAGE}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE=""
RDEPEND="virtual/libintl"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
"
PATCHES=( "${FILESDIR}/${P}-sanity-2.patch" )
src_test() {
if grep -q '^de_' <( locale -a ) ; then
if grep -q '^de_AT$' <( locale -a ) ; then
perl-module_src_test
else
ewarn "Skipping tests, known broken with de_ and without de_AT"
fi
else
perl-module_src_test
fi
}

View File

@ -1,23 +0,0 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DIST_AUTHOR=GUIDO
DIST_VERSION=1.28
inherit perl-module
DESCRIPTION="High-Level Interface to Uniforum Message Translation"
HOMEPAGE="http://guido-flohr.net/projects/libintl-perl ${HOMEPAGE}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE=""
RDEPEND="virtual/libintl"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
"
PATCHES=( "${FILESDIR}/${P}-sanity-2.patch" )

View File

@ -0,0 +1,33 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DIST_AUTHOR=GUIDO
DIST_VERSION=1.32
DIST_EXAMPLES=("sample/*")
inherit perl-module
DESCRIPTION="High-Level Interface to Uniforum Message Translation"
HOMEPAGE="http://guido-flohr.net/projects/libintl-perl https://metacpan.org/release/libintl-perl"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="minimal"
RDEPEND="
virtual/libintl
!minimal? (
dev-perl/File-ShareDir
)
virtual/perl-File-Spec
>=virtual/perl-version-0.770.0
"
DEPEND="${RDEPEND}
"
BDEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
"
PATCHES=( "${FILESDIR}/${PN}-1.280.0-sanity-2.patch" )

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="project"> <maintainer type="project">
<email>perl@gentoo.org</email> <email>perl@gentoo.org</email>

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
@ -9,7 +9,7 @@ SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
LICENSE="GPL-2" LICENSE="GPL-2"
SLOT="0" SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="" IUSE=""
DEPEND=" DEPEND="

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="project"> <maintainer type="project">
<email>freedesktop-bugs@gentoo.org</email> <email>freedesktop-bugs@gentoo.org</email>

View File

@ -1,91 +0,0 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: autotools-multilib.eclass
# @MAINTAINER:
# gx86-multilib team <multilib@gentoo.org>
# @AUTHOR:
# Author: Michał Górny <mgorny@gentoo.org>
# @SUPPORTED_EAPIS: 4 5
# @BLURB: autotools-utils wrapper for multilib builds
# @DESCRIPTION:
# The autotools-multilib.eclass provides a glue between
# autotools-utils.eclass(5) and multilib-minimal.eclass(5), aiming
# to provide a convenient way to build packages using autotools
# for multiple ABIs.
#
# Inheriting this eclass sets IUSE and exports default multilib_src_*()
# sub-phases that call autotools-utils phase functions for each ABI
# enabled. The multilib_src_*() functions can be defined in ebuild just
# like in multilib-minimal.
# EAPI=4 is required for meaningful MULTILIB_USEDEP.
case ${EAPI:-0} in
6) die "${ECLASS}.eclass is banned in EAPI ${EAPI}";;
4|5) ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
inherit autotools-utils eutils multilib-build multilib-minimal
EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test src_install
# Note: _at_args[@] passing is a backwards compatibility measure.
# Don't use it in new packages.
autotools-multilib_src_prepare() {
autotools-utils_src_prepare "${@}"
[[ ${AUTOTOOLS_IN_SOURCE_BUILD} ]] && multilib_copy_sources
}
multilib_src_configure() {
[[ ${AUTOTOOLS_IN_SOURCE_BUILD} ]] && local ECONF_SOURCE=${BUILD_DIR}
autotools-utils_src_configure "${_at_args[@]}"
}
autotools-multilib_src_configure() {
local _at_args=( "${@}" )
multilib-minimal_src_configure
}
multilib_src_compile() {
emake "${_at_args[@]}"
}
autotools-multilib_src_compile() {
local _at_args=( "${@}" )
multilib-minimal_src_compile
}
multilib_src_test() {
autotools-utils_src_test "${_at_args[@]}"
}
autotools-multilib_src_test() {
local _at_args=( "${@}" )
multilib-minimal_src_test
}
multilib_src_install() {
emake DESTDIR="${D}" "${_at_args[@]}" install
}
multilib_src_install_all() {
einstalldocs
# Remove libtool files and unnecessary static libs
local prune_ltfiles=${AUTOTOOLS_PRUNE_LIBTOOL_FILES}
if [[ ${prune_ltfiles} != none ]]; then
prune_libtool_files ${prune_ltfiles:+--${prune_ltfiles}}
fi
}
autotools-multilib_src_install() {
local _at_args=( "${@}" )
multilib-minimal_src_install
}

View File

@ -1,220 +0,0 @@
# Copyright 1999-2018 Jason Zaman
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: bazel.eclass
# @MAINTAINER:
# Jason Zaman <perfinion@gentoo.org>
# @AUTHOR:
# Jason Zaman <perfinion@gentoo.org>
# @BLURB: Utility functions for packages using Bazel Build
# @DESCRIPTION:
# A utility eclass providing functions to run the Bazel Build system.
#
# This eclass does not export any phase functions.
case "${EAPI:-0}" in
0|1|2|3|4|5|6)
die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
;;
7)
;;
*)
die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
;;
esac
if [[ ! ${_BAZEL_ECLASS} ]]; then
inherit multiprocessing toolchain-funcs
BDEPEND=">=dev-util/bazel-0.20"
# @FUNCTION: bazel_get_flags
# @DESCRIPTION:
# Obtain and print the bazel flags for target and host *FLAGS.
#
# To add more flags to this, append the flags to the
# appropriate variable before calling this function
bazel_get_flags() {
local i fs=()
for i in ${CFLAGS}; do
fs+=( "--conlyopt=${i}" )
done
for i in ${BUILD_CFLAGS}; do
fs+=( "--host_conlyopt=${i}" )
done
for i in ${CXXFLAGS}; do
fs+=( "--cxxopt=${i}" )
done
for i in ${BUILD_CXXFLAGS}; do
fs+=( "--host_cxxopt=${i}" )
done
for i in ${CPPFLAGS}; do
fs+=( "--conlyopt=${i}" "--cxxopt=${i}" )
done
for i in ${BUILD_CPPFLAGS}; do
fs+=( "--host_conlyopt=${i}" "--host_cxxopt=${i}" )
done
for i in ${LDFLAGS}; do
fs+=( "--linkopt=${i}" )
done
for i in ${BUILD_LDFLAGS}; do
fs+=( "--host_linkopt=${i}" )
done
echo "${fs[*]}"
}
# @FUNCTION: bazel_setup_bazelrc
# @DESCRIPTION:
# Creates the bazelrc with common options that will be passed
# to bazel. This will be called by ebazel automatically so
# does not need to be called from the ebuild.
bazel_setup_bazelrc() {
if [[ -f "${T}/bazelrc" ]]; then
return
fi
# F: fopen_wr
# P: /proc/self/setgroups
# Even with standalone enabled, the Bazel sandbox binary is run for feature test:
# https://github.com/bazelbuild/bazel/blob/7b091c1397a82258e26ab5336df6c8dae1d97384/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java#L61
# https://github.com/bazelbuild/bazel/blob/76555482873ffcf1d32fb40106f89231b37f850a/src/main/tools/linux-sandbox-pid1.cc#L113
addpredict /proc
mkdir -p "${T}/bazel-cache" || die
mkdir -p "${T}/bazel-distdir" || die
cat > "${T}/bazelrc" <<-EOF || die
startup --batch
# dont strip HOME, portage sets a temp per-package dir
build --action_env HOME
# make bazel respect MAKEOPTS
build --jobs=$(makeopts_jobs)
build --compilation_mode=opt --host_compilation_mode=opt
# FLAGS
build $(bazel_get_flags)
# Use standalone strategy to deactivate the bazel sandbox, since it
# conflicts with FEATURES=sandbox.
build --spawn_strategy=standalone --genrule_strategy=standalone
test --spawn_strategy=standalone --genrule_strategy=standalone
build --strip=never
build --verbose_failures --noshow_loading_progress
test --verbose_test_summary --verbose_failures --noshow_loading_progress
# make bazel only fetch distfiles from the cache
fetch --repository_cache="${T}/bazel-cache/" --distdir="${T}/bazel-distdir/"
build --repository_cache="${T}/bazel-cache/" --distdir="${T}/bazel-distdir/"
build --define=PREFIX=${EPREFIX%/}/usr
build --define=LIBDIR=\$(PREFIX)/$(get_libdir)
EOF
if tc-is-cross-compiler; then
echo "build --nodistinct_host_configuration" >> "${T}/bazelrc" || die
fi
}
# @FUNCTION: ebazel
# @USAGE: [<args>...]
# @DESCRIPTION:
# Run bazel with the bazelrc and output_base.
#
# output_base will be specific to $BUILD_DIR (if unset, $S).
# bazel_setup_bazelrc will be called and the created bazelrc
# will be passed to bazel.
#
# Will automatically die if bazel does not exit cleanly.
ebazel() {
bazel_setup_bazelrc
# Use different build folders for each multibuild variant.
local output_base="${BUILD_DIR:-${S}}"
output_base="${output_base%/}-bazel-base"
mkdir -p "${output_base}" || die
set -- bazel --bazelrc="${T}/bazelrc" --output_base="${output_base}" ${@}
echo "${*}" >&2
"${@}" || die "ebazel failed"
}
# @FUNCTION: bazel_load_distfiles
# @USAGE: <distfiles>...
# @DESCRIPTION:
# Populate the bazel distdir to fetch from since it cannot use
# the network. Bazel looks in distdir but will only look for the
# original filename, not the possibly renamed one that portage
# downloaded. If the line has -> we to rename it back. This also
# handles use-conditionals that SRC_URI does.
#
# Example:
# @CODE
# bazel_external_uris="http://a/file-2.0.tgz
# python? ( http://b/1.0.tgz -> foo-1.0.tgz )"
# SRC_URI="http://c/${PV}.tgz
# ${bazel_external_uris}"
#
# src_unpack() {
# unpack ${PV}.tgz
# bazel_load_distfiles "${bazel_external_uris}"
# }
# @CODE
bazel_load_distfiles() {
local file=""
local rename=0
[[ "${@}" ]] || die "Missing args"
mkdir -p "${T}/bazel-distdir" || die
for word in ${@}
do
if [[ "${word}" == "->" ]]; then
# next word is a dest filename
rename=1
elif [[ "${word}" == ")" ]]; then
# close conditional block
continue
elif [[ "${word}" == "(" ]]; then
# open conditional block
continue
elif [[ "${word}" == ?(\!)[A-Za-z0-9]*([A-Za-z0-9+_@-])\? ]]; then
# use-conditional block
# USE-flags can contain [A-Za-z0-9+_@-], and start with alphanum
# https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-200003.1.4
# ?(\!) matches zero-or-one !'s
# *(...) zero-or-more characters
# ends with a ?
continue
elif [[ ${rename} -eq 1 ]]; then
# Make sure the distfile is used
if [[ "${A}" == *"${word}"* ]]; then
echo "Copying ${file} to bazel distdir as ${word}"
ln -s "${DISTDIR}/${word}" "${T}/bazel-distdir/${file}" || die
fi
rename=0
file=""
else
# another URL, current one may or may not be a rename
# if there was a previous one, its not renamed so copy it now
if [[ -n "${file}" && "${A}" == *"${file}"* ]]; then
echo "Copying ${file} to bazel distdir"
ln -s "${DISTDIR}/${file}" "${T}/bazel-distdir/${file}" || die
fi
# save the current URL, later we will find out if its a rename or not.
file="${word##*/}"
fi
done
# handle last file
if [[ -n "${file}" ]]; then
echo "Copying ${file} to bazel distdir"
ln -s "${DISTDIR}/${file}" "${T}/bazel-distdir/${file}" || die
fi
}
_BAZEL_ECLASS=1
fi

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