diff options
author | Anton Fischl <github@fischl-online.de> | 2022-08-09 08:36:08 +0200 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-08-10 05:09:56 +0100 |
commit | 2023986b99552df0336306e0e37ab7d5b2f6554d (patch) | |
tree | 80de009d5a92a25dbd23cfeb7acab9190e5ea373 /app-backup | |
parent | dev-haskell/path: refresh metadata.xml (diff) | |
download | gentoo-2023986b99552df0336306e0e37ab7d5b2f6554d.tar.gz gentoo-2023986b99552df0336306e0e37ab7d5b2f6554d.tar.bz2 gentoo-2023986b99552df0336306e0e37ab7d5b2f6554d.zip |
app-backup/burp: fix strptime for musl
Closes: https://bugs.gentoo.org/862019
Signed-off-by: Anton Fischl <github@fischl-online.de>
Closes: https://github.com/gentoo/gentoo/pull/26790
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-backup')
-rw-r--r-- | app-backup/burp/burp-2.4.0-r1.ebuild | 118 | ||||
-rw-r--r-- | app-backup/burp/burp-2.5.4-r1.ebuild | 118 | ||||
-rw-r--r-- | app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch | 86 |
3 files changed, 322 insertions, 0 deletions
diff --git a/app-backup/burp/burp-2.4.0-r1.ebuild b/app-backup/burp/burp-2.4.0-r1.ebuild new file mode 100644 index 000000000000..fdcea9103813 --- /dev/null +++ b/app-backup/burp/burp-2.4.0-r1.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Network backup and restore client and server for Unix and Windows" +HOMEPAGE="https://burp.grke.org/" +SRC_URI="https://github.com/grke/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="AGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="acl ipv6 test xattr" + +RESTRICT="!test? ( test )" + +COMMON_DEPEND="acct-group/burp + acct-user/burp + dev-libs/uthash + dev-libs/openssl:0= + net-libs/librsync:= + sys-libs/ncurses:0= + sys-libs/libcap + sys-libs/zlib + virtual/libcrypt:= + acl? ( sys-apps/acl ) + xattr? ( sys-apps/attr )" +DEPEND="${COMMON_DEPEND} + elibc_musl? ( sys-libs/queue-standalone ) + test? ( dev-libs/check )" +BDEPEND=">=sys-devel/autoconf-2.71 + virtual/pkgconfig" +RDEPEND="${COMMON_DEPEND} + virtual/logger" + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.20-no_mkdir_run.patch + "${FILESDIR}"/${PN}-2.1.20-protocol1_by_default.patch + "${FILESDIR}"/${PN}-2.0.54-server_user.patch + "${FILESDIR}"/${PN}-2.4.0-fix-musl-strptime.patch +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local myeconfargs=( + --localstatedir=/var + --sysconfdir=/etc/burp + --enable-largefile + --runstatedir=/run + $(use_enable acl) + $(use_enable ipv6) + $(use_enable xattr) + ) + econf "${myeconfargs[@]}" +} + +src_test() { + # See https://github.com/grke/burp/issues/869 + local -x CK_DEFAULT_TIMEOUT=10 + default +} + +src_install() { + default + keepdir /var/spool/burp + fowners -R root:${PN} /var/spool/burp + fperms 0770 /var/spool/burp + + emake DESTDIR="${D}" install-configs + fowners -R root:${PN} /etc/burp + fperms 0750 /etc/burp + fperms 0640 /etc/burp/burp-server.conf + fperms 0750 /etc/burp/clientconfdir + + newinitd "${FILESDIR}"/${PN}.initd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_postinst() { + elog "Burp ebuilds now support the autoupgrade mechanism in both" + elog "client and server mode. In both cases it is disabled by" + elog "default. You almost certainly do NOT want to enable it in" + elog "client mode because upgrades obtained this way will not be" + elog "managed by Portage." + + if [[ ! -e ${EROOT}/etc/burp/CA/index.txt ]]; then + elog "" + elog "At first run burp server will generate DH parameters and SSL" + elog "certificates. You should adjust configuration before." + elog "Server configuration is located at" + elog "" + elog " ${EROOT}/etc/burp/burp-server.conf" + elog "" + fi + + # According to PMS this can be a space-separated list of version + # numbers, even though in practice it is typically just one. + local oldver + for oldver in ${REPLACING_VERSIONS}; do + if [[ $(ver_cut 1 ${oldver}) -lt 2 ]]; then + ewarn "Starting with version 2.0.54 we no longer patch bedup to use" + ewarn "the server config file by default. If you use bedup, please" + ewarn "update your scripts to invoke it as" + ewarn "" + ewarn " bedup -c ${EROOT}/etc/burp/burp-server.conf" + ewarn "" + ewarn "Otherwise deduplication will not work!" + break + fi + done +} diff --git a/app-backup/burp/burp-2.5.4-r1.ebuild b/app-backup/burp/burp-2.5.4-r1.ebuild new file mode 100644 index 000000000000..fdcea9103813 --- /dev/null +++ b/app-backup/burp/burp-2.5.4-r1.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools systemd + +DESCRIPTION="Network backup and restore client and server for Unix and Windows" +HOMEPAGE="https://burp.grke.org/" +SRC_URI="https://github.com/grke/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="AGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="acl ipv6 test xattr" + +RESTRICT="!test? ( test )" + +COMMON_DEPEND="acct-group/burp + acct-user/burp + dev-libs/uthash + dev-libs/openssl:0= + net-libs/librsync:= + sys-libs/ncurses:0= + sys-libs/libcap + sys-libs/zlib + virtual/libcrypt:= + acl? ( sys-apps/acl ) + xattr? ( sys-apps/attr )" +DEPEND="${COMMON_DEPEND} + elibc_musl? ( sys-libs/queue-standalone ) + test? ( dev-libs/check )" +BDEPEND=">=sys-devel/autoconf-2.71 + virtual/pkgconfig" +RDEPEND="${COMMON_DEPEND} + virtual/logger" + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.20-no_mkdir_run.patch + "${FILESDIR}"/${PN}-2.1.20-protocol1_by_default.patch + "${FILESDIR}"/${PN}-2.0.54-server_user.patch + "${FILESDIR}"/${PN}-2.4.0-fix-musl-strptime.patch +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + local myeconfargs=( + --localstatedir=/var + --sysconfdir=/etc/burp + --enable-largefile + --runstatedir=/run + $(use_enable acl) + $(use_enable ipv6) + $(use_enable xattr) + ) + econf "${myeconfargs[@]}" +} + +src_test() { + # See https://github.com/grke/burp/issues/869 + local -x CK_DEFAULT_TIMEOUT=10 + default +} + +src_install() { + default + keepdir /var/spool/burp + fowners -R root:${PN} /var/spool/burp + fperms 0770 /var/spool/burp + + emake DESTDIR="${D}" install-configs + fowners -R root:${PN} /etc/burp + fperms 0750 /etc/burp + fperms 0640 /etc/burp/burp-server.conf + fperms 0750 /etc/burp/clientconfdir + + newinitd "${FILESDIR}"/${PN}.initd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service +} + +pkg_postinst() { + elog "Burp ebuilds now support the autoupgrade mechanism in both" + elog "client and server mode. In both cases it is disabled by" + elog "default. You almost certainly do NOT want to enable it in" + elog "client mode because upgrades obtained this way will not be" + elog "managed by Portage." + + if [[ ! -e ${EROOT}/etc/burp/CA/index.txt ]]; then + elog "" + elog "At first run burp server will generate DH parameters and SSL" + elog "certificates. You should adjust configuration before." + elog "Server configuration is located at" + elog "" + elog " ${EROOT}/etc/burp/burp-server.conf" + elog "" + fi + + # According to PMS this can be a space-separated list of version + # numbers, even though in practice it is typically just one. + local oldver + for oldver in ${REPLACING_VERSIONS}; do + if [[ $(ver_cut 1 ${oldver}) -lt 2 ]]; then + ewarn "Starting with version 2.0.54 we no longer patch bedup to use" + ewarn "the server config file by default. If you use bedup, please" + ewarn "update your scripts to invoke it as" + ewarn "" + ewarn " bedup -c ${EROOT}/etc/burp/burp-server.conf" + ewarn "" + ewarn "Otherwise deduplication will not work!" + break + fi + done +} diff --git a/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch b/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch new file mode 100644 index 000000000000..e8afca8fefa7 --- /dev/null +++ b/app-backup/burp/files/burp-2.4.0-fix-musl-strptime.patch @@ -0,0 +1,86 @@ +https://github.com/grke/burp/commit/76b7f1ba9f4445108059b13f3d79a7fde8a292a3 +https://github.com/grke/burp/issues/908 +https://bugs.gentoo.org/862019 + +From 76b7f1ba9f4445108059b13f3d79a7fde8a292a3 Mon Sep 17 00:00:00 2001 +From: Graham Keeling <grke@grke.net> +Date: Mon, 8 Aug 2022 07:53:38 +1000 +Subject: [PATCH] 908: Only glibc supports %z in strptime() + +Change-Id: I220e4529073c92df856b892559725b323dc84334 +--- + src/times.h | 8 ++++---- + utest/client/monitor/test_json_input.c | 15 +++++++++++---- + utest/test_times.c | 7 ++++--- + 3 files changed, 19 insertions(+), 11 deletions(-) + +diff --git a/src/times.h b/src/times.h +index 325419c2b..b0fd3876f 100644 +--- a/src/times.h ++++ b/src/times.h +@@ -3,11 +3,11 @@ + + #define DEFAULT_TIMESTAMP_FORMAT_OLD "%Y-%m-%d %H:%M:%S" + +-// Windows does not seem to support %z. +-#ifdef HAVE_WIN32 +-#define DEFAULT_TIMESTAMP_FORMAT DEFAULT_TIMESTAMP_FORMAT_OLD +-#else ++#ifdef __GLIBC__ + #define DEFAULT_TIMESTAMP_FORMAT "%Y-%m-%d %H:%M:%S %z" ++#else ++// Only glibc supports %z in strptime. ++#define DEFAULT_TIMESTAMP_FORMAT DEFAULT_TIMESTAMP_FORMAT_OLD + #endif + + extern const char *getdatestr(const time_t t); +diff --git a/utest/client/monitor/test_json_input.c b/utest/client/monitor/test_json_input.c +index 516fc779b..aea2a4154 100644 +--- a/utest/client/monitor/test_json_input.c ++++ b/utest/client/monitor/test_json_input.c +@@ -162,13 +162,20 @@ static struct sd sd1[] = { + + static void assert_bu_minimal(struct bu *bu, struct sd *s) + { +- const char *sd_timestamp; ++ const char *cp; ++ const char *cp_end; + fail_unless(bu!=NULL); + fail_unless(s->bno==bu->bno); + fail_unless(s->flags==bu->flags); +- fail_unless((sd_timestamp=strchr(s->timestamp, ' '))!=NULL); +- sd_timestamp++; +- ck_assert_str_eq(sd_timestamp, bu->timestamp); ++ fail_unless((cp=strchr(s->timestamp, ' '))!=NULL); ++ cp++; ++#ifdef __GLIBC__ ++ cp_end=s->timestamp+strlen(s->timestamp)-1; ++#else ++ // Only glibc supports %z in strptime. ++ fail_unless((cp_end=strrchr(s->timestamp, ' '))!=NULL); ++#endif ++ fail_unless(strncmp(cp, bu->timestamp, cp_end-cp)==0); + } + + static void do_test_json_clients_with_backup(const char *path, +diff --git a/utest/test_times.c b/utest/test_times.c +index 98be11fd1..5a68203a6 100644 +--- a/utest/test_times.c ++++ b/utest/test_times.c +@@ -35,12 +35,13 @@ struct ds + + static struct ds ds[] = { + { 0, "", "never" }, +-#ifdef HAVE_WIN32 +- { 1000, "", "1970-01-01 00:16:40" }, +-#else ++#ifdef __GLIBC__ + { 1000, "", "1970-01-01 00:16:40 +0000" }, + { 1000, "UTC+10", "1969-12-31 14:16:40 -1000" }, + { 1000, "UTC+10", "1969-12-31 14:16:40 -1000" }, ++#else ++ // Only glibc supports %z in strptime. ++ { 1000, "", "1970-01-01 00:16:40" }, + #endif + }; + |