app-backup/snapper: fix swap() err
authorYixun Lan <dlan@gentoo.org>
Mon, 17 Dec 2018 07:18:19 +0000 (15:18 +0800)
committerYixun Lan <dlan@gentoo.org>
Mon, 17 Dec 2018 07:38:48 +0000 (15:38 +0800)
workaround swap() err with btrfs-4.19

Closes: https://bugs.gentoo.org/670952
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Yixun Lan <dlan@gentoo.org>
app-backup/snapper/files/snapper-0.5.6-swap.patch [new file with mode: 0644]
app-backup/snapper/snapper-0.5.6-r1.ebuild [new file with mode: 0644]

diff --git a/app-backup/snapper/files/snapper-0.5.6-swap.patch b/app-backup/snapper/files/snapper-0.5.6-swap.patch
new file mode 100644 (file)
index 0000000..aa24330
--- /dev/null
@@ -0,0 +1,36 @@
+commit 22bc1d808ebb6c3958e8231a36b73cd45a7f2c30
+Author: Spencer Janssen <spencerjanssen@gmail.com>
+Date:   Mon Dec 3 17:33:49 2018 -0600
+
+    Work around btrfs v4.19
+    
+    Addresses #459
+
+diff --git a/snapper/Btrfs.cc b/snapper/Btrfs.cc
+index cb9f7b3..c05557b 100644
+--- a/snapper/Btrfs.cc
++++ b/snapper/Btrfs.cc
+@@ -41,6 +41,9 @@
+ #include <btrfs/send.h>
+ #include <btrfs/send-stream.h>
+ #include <btrfs/send-utils.h>
++#ifdef swap
++#undef swap
++#endif
+ #include <boost/version.hpp>
+ #include <boost/thread.hpp>
+ #endif
+diff --git a/snapper/BtrfsUtils.cc b/snapper/BtrfsUtils.cc
+index bada3f8..9edc325 100644
+--- a/snapper/BtrfsUtils.cc
++++ b/snapper/BtrfsUtils.cc
+@@ -34,6 +34,9 @@
+ #ifdef HAVE_LIBBTRFS
+ #include <btrfs/ioctl.h>
+ #include <btrfs/send-utils.h>
++#ifdef swap
++#undef swap
++#endif
+ #endif
+ #include <algorithm>
+ #include <functional>
diff --git a/app-backup/snapper/snapper-0.5.6-r1.ebuild b/app-backup/snapper/snapper-0.5.6-r1.ebuild
new file mode 100644 (file)
index 0000000..27233b7
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit systemd
+
+DESCRIPTION="Command-line program for btrfs and lvm snapshot management"
+HOMEPAGE="http://snapper.io/"
+SRC_URI="ftp://ftp.suse.com/pub/projects/snapper/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="lvm pam xattr"
+
+RDEPEND="dev-libs/boost:=[threads]
+       dev-libs/libxml2
+       dev-libs/icu:=
+       sys-apps/acl
+       sys-apps/dbus
+       sys-apps/util-linux
+       >=sys-fs/btrfs-progs-3.17.1
+       sys-libs/zlib
+       virtual/libintl
+       lvm? ( sys-fs/lvm2 )
+       pam? ( sys-libs/pam )
+       xattr? ( sys-apps/attr )"
+
+DEPEND="${RDEPEND}
+       sys-devel/gettext
+       virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/cron-confd.patch
+       "${FILESDIR}"/${P}-swap.patch
+)
+
+src_prepare() {
+       default
+
+       sed -e "s,/usr/lib/systemd/system,$(systemd_get_systemunitdir),g" \
+               -i data/Makefile.* \
+               || die "Failed to fix systemd services and timers installation path"
+}
+
+src_configure() {
+       # ext4 code does not work anymore
+       # snapper does not build without btrfs
+       local myeconfargs=(
+               --with-conf="/etc/conf.d"
+               --docdir="/usr/share/doc/${PF}"
+               --disable-zypp
+               --enable-rollback
+               --disable-ext4
+               --enable-btrfs
+               $(use_enable lvm)
+               $(use_enable pam)
+               $(use_enable xattr xattrs)
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+       # Existing configuration file required to function
+       newconfd data/sysconfig.snapper snapper
+       find "${D}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+       elog "In order to use Snapper, you need to set up"
+       elog "at least one config first. To do this, run:"
+       elog "snapper create-config <subvolume>"
+       elog "For more information, see man (8) snapper or"
+       elog "http://snapper.io/documentation.html"
+}