summaryrefslogtreecommitdiff
path: root/sys-fs/zfs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-09-30 17:27:54 +0100
commitf70a1bfc721336d4fc7dfb711c2f518a6b18cf16 (patch)
treee907cb121b30e3c1df1710719c0ddf4029597a47 /sys-fs/zfs
parentdb063b515939ab15261136b24e4bc44386335c0c (diff)
gentoo resync : 30.09.2020
Diffstat (limited to 'sys-fs/zfs')
-rw-r--r--sys-fs/zfs/Manifest3
-rw-r--r--sys-fs/zfs/files/2.0.0_rc2-exports-d-permissions.patch189
-rw-r--r--sys-fs/zfs/zfs-2.0.0_rc2-r1.ebuild (renamed from sys-fs/zfs/zfs-2.0.0_rc2.ebuild)5
3 files changed, 195 insertions, 2 deletions
diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest
index 101b68f2115e..5cc774d275a4 100644
--- a/sys-fs/zfs/Manifest
+++ b/sys-fs/zfs/Manifest
@@ -1,8 +1,9 @@
AUX 0.8.4-initconfdir.patch 1004 BLAKE2B fd4186b5f378f562098040a8e13a12e6fd7f0f37f3b981a8d46e0e3bc943eb8dd5fa474e6c65cefd8c03fc3c45a119f6a141d42753ce4729e3a234e7f57dc4b8 SHA512 c18e9cd03d537a3ad632e1aeb354b56f5db9a8ef51c30b2e728ea527b7e9017219b1a230374238ecdd24082d9f2c62510aea68b234df84961ada5dce2ed617cc
+AUX 2.0.0_rc2-exports-d-permissions.patch 5290 BLAKE2B 40973b72df805d4e8ef4d02acbfa05e70fbdcdc0484c9f69960800a3b354998ee179e2fad3553264ecd442ffcbd1c3c9a992e48f6b81dec199501b0d0aac1207 SHA512 0a23bb1ee709c9229297388252ea657d18d368952095eb6f4598b4b17c6f693d592abd466b8be2c92f343b8f2588fcb22704c935209e1e43ea7856ed17f5fa66
AUX bash-completion-sudo.patch 905 BLAKE2B 92e58ff097893436d589f7df0134e09d2e0699ae82618c4c14caf4b26cb466367a5372d7e0a030aa857d024e3db0faef4bb5fa32c54f41f0d4766693a95ba5ab SHA512 e53c79401f4c634a94af27b2f88a40440b68a4c192fd1944668786650aaa0f1f08dff851dca5b9666ce8bba1f0e2b7cb195314cd9d1314c9bab1194d03122319
DIST zfs-0.8.4.tar.gz 9285838 BLAKE2B 776bcd6dfab8825c07d315085e288b29bf543d6957325d5d566b7b78c04505dde9bd25eb6684cb4a1b6a657de8a4e1290d04d2b9079d26d6b834a70f1ec3b569 SHA512 9086dc6a6262dd93ca6ec43f1b4c2e5c804deba708c8a7460b8531aa4802b0bf8cac0917a1a00e6af2e96d4a21cd68b85e226bf571bd94041d0325c457106eb1
DIST zfs-2.0.0-rc2.tar.gz 12854085 BLAKE2B 73cabd565c11eef1bebbc391f8c4ba18acd1610f98f1b8afb507bc844f4b6a64ba32d9727e634c7f26c48fe365a841bf071513df234b9b7a87e954610a6d7f3b SHA512 14b17d06124890efef15b3b073e103c9faeecaea761779fff9a8420e3ab72fa611df9875fa766a323d69646e9025f8b19f918ded4c6705af116cf9f14eea4f40
EBUILD zfs-0.8.4-r2.ebuild 5645 BLAKE2B 162d5f2689b7842df19fa7ffb21579faa2f0c8d5a3ab5251cb6a427667957de78ca3c4228f51874851454e3b25613c13f32d179ce308194c4af3e75d8fa07a2e SHA512 57d265e0b9128e1d2a13863f87377ba00026bd0f8ff4dc42604b0efce167224be3fb32a051735da79ce303750913b7ab2444195fcfc33b497e8842fd12b7f3b3
-EBUILD zfs-2.0.0_rc2.ebuild 5861 BLAKE2B 1a235667de2aeb65ceca37e11867ffd75a35852e91ae0e0e1141530b1eec73bffa42acc01c29dff84d6cd21333cd41481e5c4c11f5772b96f65b83d0759ccda1 SHA512 3f7b2cf46e2508feaa6b7aa31733a8117a8d5ac11defaf60a7d33e201b932c742d84202044dfcb399bb916003ca9b50d5fbb57134af82485a5a0b018e62b5e32
+EBUILD zfs-2.0.0_rc2-r1.ebuild 5911 BLAKE2B b59fd2636f280632ad6ce84da9f6336028a5ce38d60d37c6c95d93fbef860e0e24b15c7b2ecd084af5de5727adf2377c0dd8e794475da96e24fc9e19399cab71 SHA512 abdff63d208e07dea79cb1c06f587762ba770e6f30cae2780211e235ab0da5dea96077f89776092adf453cf495200596f576348a4f9e59e489b323b88d393860
EBUILD zfs-9999.ebuild 5861 BLAKE2B 1a235667de2aeb65ceca37e11867ffd75a35852e91ae0e0e1141530b1eec73bffa42acc01c29dff84d6cd21333cd41481e5c4c11f5772b96f65b83d0759ccda1 SHA512 3f7b2cf46e2508feaa6b7aa31733a8117a8d5ac11defaf60a7d33e201b932c742d84202044dfcb399bb916003ca9b50d5fbb57134af82485a5a0b018e62b5e32
MISC metadata.xml 1003 BLAKE2B 640ef6d6f178ae9c3f3281a8e8539980c4a263f6cf0c5f4e1de3f0572f2acfe409865e85a12473129eb026130c9b76b946ee7698bd990b05f14e6b26c40fcb22 SHA512 965eabb5488a3cb54b360b33c847a2eb0d326a2c6761d86d581e06c2f52db9478fe7df131f68cb57bf32a2a872ecc1597e2a1a6b457d254f578d684cf73810c5
diff --git a/sys-fs/zfs/files/2.0.0_rc2-exports-d-permissions.patch b/sys-fs/zfs/files/2.0.0_rc2-exports-d-permissions.patch
new file mode 100644
index 000000000000..4acaf465a7bc
--- /dev/null
+++ b/sys-fs/zfs/files/2.0.0_rc2-exports-d-permissions.patch
@@ -0,0 +1,189 @@
+From fe413a4d901a243d98cfef16ea330f7114a104ea Mon Sep 17 00:00:00 2001
+From: George Wilson <george.wilson@delphix.com>
+Date: Tue, 15 Sep 2020 22:57:16 -0400
+Subject: [PATCH] zpool command complains about /etc/exports.d
+
+If the /etc/exports.d directory does not exist, then we should only
+create it when we're performing an action which already requires root
+privileges.
+
+This commit moves the directory creation to the enable/disable code
+path which ensures that we have the appropriate privileges.
+
+Signed-off-by: George Wilson <gwilson@delphix.com>
+Closes #10785
+---
+ lib/libshare/os/freebsd/nfs.c | 36 +++++++++++-------
+ lib/libshare/os/linux/nfs.c | 71 ++++++++++++++++++++---------------
+ 2 files changed, 64 insertions(+), 43 deletions(-)
+
+diff --git a/lib/libshare/os/freebsd/nfs.c b/lib/libshare/os/freebsd/nfs.c
+index 65f3b11bf9b..5951b9eafa2 100644
+--- a/lib/libshare/os/freebsd/nfs.c
++++ b/lib/libshare/os/freebsd/nfs.c
+@@ -228,21 +228,33 @@ nfs_copy_entries(char *filename, const char *mountpoint)
+ int error = SA_OK;
+ char *line;
+
+- /*
+- * If the file doesn't exist then there is nothing more
+- * we need to do.
+- */
+ FILE *oldfp = fopen(ZFS_EXPORTS_FILE, "r");
+- if (oldfp == NULL)
+- return (SA_OK);
+-
+ FILE *newfp = fopen(filename, "w+");
++ if (newfp == NULL) {
++ fprintf(stderr, "failed to open %s file: %s", filename,
++ strerror(errno));
++ fclose(oldfp);
++ return (SA_SYSTEM_ERR);
++ }
+ fputs(FILE_HEADER, newfp);
+- while ((line = zgetline(oldfp, mountpoint)) != NULL)
+- fprintf(newfp, "%s\n", line);
+- if (ferror(oldfp) != 0) {
+- error = ferror(oldfp);
++
++ /*
++ * The ZFS_EXPORTS_FILE may not exist yet. If that's the
++ * case then just write out the new file.
++ */
++ if (oldfp != NULL) {
++ while ((line = zgetline(oldfp, mountpoint)) != NULL)
++ fprintf(newfp, "%s\n", line);
++ if (ferror(oldfp) != 0) {
++ error = ferror(oldfp);
++ }
++ if (fclose(oldfp) != 0) {
++ fprintf(stderr, "Unable to close file %s: %s\n",
++ filename, strerror(errno));
++ error = error != 0 ? error : SA_SYSTEM_ERR;
++ }
+ }
++
+ if (error == 0 && ferror(newfp) != 0) {
+ error = ferror(newfp);
+ }
+@@ -252,8 +264,6 @@ nfs_copy_entries(char *filename, const char *mountpoint)
+ filename, strerror(errno));
+ error = error != 0 ? error : SA_SYSTEM_ERR;
+ }
+- fclose(oldfp);
+-
+ return (error);
+ }
+
+diff --git a/lib/libshare/os/linux/nfs.c b/lib/libshare/os/linux/nfs.c
+index a6a9b33d765..1efa321b7bc 100644
+--- a/lib/libshare/os/linux/nfs.c
++++ b/lib/libshare/os/linux/nfs.c
+@@ -393,6 +393,14 @@ static char *
+ nfs_init_tmpfile(void)
+ {
+ char *tmpfile = NULL;
++ struct stat sb;
++
++ if (stat(ZFS_EXPORTS_DIR, &sb) < 0 &&
++ mkdir(ZFS_EXPORTS_DIR, 0755) < 0) {
++ fprintf(stderr, "failed to create %s: %s\n",
++ ZFS_EXPORTS_DIR, strerror(errno));
++ return (NULL);
++ }
+
+ if (asprintf(&tmpfile, "%s%s", ZFS_EXPORTS_FILE, ".XXXXXXXX") == -1) {
+ fprintf(stderr, "Unable to allocate temporary file\n");
+@@ -481,36 +489,49 @@ nfs_copy_entries(char *filename, const char *mountpoint)
+ size_t buflen = 0;
+ int error = SA_OK;
+
+- /*
+- * If the file doesn't exist then there is nothing more
+- * we need to do.
+- */
+ FILE *oldfp = fopen(ZFS_EXPORTS_FILE, "r");
+- if (oldfp == NULL)
+- return (SA_OK);
+-
+ FILE *newfp = fopen(filename, "w+");
++ if (newfp == NULL) {
++ fprintf(stderr, "failed to open %s file: %s", filename,
++ strerror(errno));
++ fclose(oldfp);
++ return (SA_SYSTEM_ERR);
++ }
+ fputs(FILE_HEADER, newfp);
+- while ((getline(&buf, &buflen, oldfp)) != -1) {
+- char *space = NULL;
+
+- if (buf[0] == '\n' || buf[0] == '#')
+- continue;
+-
+- if ((space = strchr(buf, ' ')) != NULL) {
+- int mountpoint_len = strlen(mountpoint);
++ /*
++ * The ZFS_EXPORTS_FILE may not exist yet. If that's the
++ * case then just write out the new file.
++ */
++ if (oldfp != NULL) {
++ while (getline(&buf, &buflen, oldfp) != -1) {
++ char *space = NULL;
+
+- if (space - buf == mountpoint_len &&
+- strncmp(mountpoint, buf, mountpoint_len) == 0) {
++ if (buf[0] == '\n' || buf[0] == '#')
+ continue;
++
++ if ((space = strchr(buf, ' ')) != NULL) {
++ int mountpoint_len = strlen(mountpoint);
++
++ if (space - buf == mountpoint_len &&
++ strncmp(mountpoint, buf,
++ mountpoint_len) == 0) {
++ continue;
++ }
+ }
++ fputs(buf, newfp);
+ }
+- fputs(buf, newfp);
+- }
+
+- if (oldfp != NULL && ferror(oldfp) != 0) {
+- error = ferror(oldfp);
++ if (ferror(oldfp) != 0) {
++ error = ferror(oldfp);
++ }
++ if (fclose(oldfp) != 0) {
++ fprintf(stderr, "Unable to close file %s: %s\n",
++ filename, strerror(errno));
++ error = error != 0 ? error : SA_SYSTEM_ERR;
++ }
+ }
++
+ if (error == 0 && ferror(newfp) != 0) {
+ error = ferror(newfp);
+ }
+@@ -521,8 +542,6 @@ nfs_copy_entries(char *filename, const char *mountpoint)
+ filename, strerror(errno));
+ error = error != 0 ? error : SA_SYSTEM_ERR;
+ }
+- fclose(oldfp);
+-
+ return (error);
+ }
+
+@@ -701,13 +720,5 @@ static const sa_share_ops_t nfs_shareops = {
+ void
+ libshare_nfs_init(void)
+ {
+- struct stat sb;
+-
+ nfs_fstype = register_fstype("nfs", &nfs_shareops);
+-
+- if (stat(ZFS_EXPORTS_DIR, &sb) < 0 &&
+- mkdir(ZFS_EXPORTS_DIR, 0755) < 0) {
+- fprintf(stderr, "failed to create %s: %s\n",
+- ZFS_EXPORTS_DIR, strerror(errno));
+- }
+ }
diff --git a/sys-fs/zfs/zfs-2.0.0_rc2.ebuild b/sys-fs/zfs/zfs-2.0.0_rc2-r1.ebuild
index d2f00419b0c7..1f9d81f16e60 100644
--- a/sys-fs/zfs/zfs-2.0.0_rc2.ebuild
+++ b/sys-fs/zfs/zfs-2.0.0_rc2-r1.ebuild
@@ -76,7 +76,10 @@ REQUIRED_USE="
RESTRICT="test"
-PATCHES=( "${FILESDIR}/bash-completion-sudo.patch" )
+PATCHES=(
+ "${FILESDIR}/bash-completion-sudo.patch"
+ "${FILESDIR}/${PV}-exports-d-permissions.patch"
+)
pkg_setup() {
if use kernel_linux && use test-suite; then