diff --git a/nfs-ganesha-2.1.0-cache_inode_getattr.patch b/nfs-ganesha-2.1.0-cache_inode_getattr.patch new file mode 100644 index 0000000..7c1e843 --- /dev/null +++ b/nfs-ganesha-2.1.0-cache_inode_getattr.patch @@ -0,0 +1,19 @@ +*** nfs-ganesha-2.1.0/src/cache_inode/cache_inode_getattr.c.orig 2014-06-27 10:06:09.273133273 -0400 +--- nfs-ganesha-2.1.0/src/cache_inode/cache_inode_getattr.c 2014-06-27 10:06:45.677133273 -0400 +*************** +*** 71,77 **** + cache_inode_getattr_cb_t cb) + { + cache_inode_status_t status; +! struct gsh_export *junction_export; + cache_entry_t *junction_entry; + uint64_t mounted_on_fileid; + +--- 71,77 ---- + cache_inode_getattr_cb_t cb) + { + cache_inode_status_t status; +! struct gsh_export *junction_export = NULL; + cache_entry_t *junction_entry; + uint64_t mounted_on_fileid; + diff --git a/nfs-ganesha-2.1.0-commonlib.patch b/nfs-ganesha-2.1.0-commonlib.patch new file mode 100644 index 0000000..9bf75df --- /dev/null +++ b/nfs-ganesha-2.1.0-commonlib.patch @@ -0,0 +1,19 @@ +*** nfs-ganesha-2.1.0/src/FSAL/commonlib.c.orig 2014-06-27 14:08:23.118133273 -0400 +--- nfs-ganesha-2.1.0/src/FSAL/commonlib.c 2014-06-27 14:09:12.677133273 -0400 +*************** +*** 752,758 **** + int change_fsid_type(struct fsal_filesystem *fs, + enum fsid_type fsid_type) + { +! uint64_t major, minor; + bool valid = false; + + if (fs->fsid_type == fsid_type) +--- 752,758 ---- + int change_fsid_type(struct fsal_filesystem *fs, + enum fsid_type fsid_type) + { +! uint64_t major = 0, minor = 0; + bool valid = false; + + if (fs->fsid_type == fsid_type) diff --git a/nfs-ganesha-2.1.0-config-h.in.cmake.patch b/nfs-ganesha-2.1.0-config-h.in.cmake.patch new file mode 100644 index 0000000..5958924 --- /dev/null +++ b/nfs-ganesha-2.1.0-config-h.in.cmake.patch @@ -0,0 +1,19 @@ +*** nfs-ganesha-2.1.0/src/include/config-h.in.cmake.orig 2014-06-27 11:38:56.845133273 -0400 +--- nfs-ganesha-2.1.0/src/include/config-h.in.cmake 2014-06-27 11:39:09.294133273 -0400 +*************** +*** 14,20 **** + #define _GIT_HEAD_COMMIT "@_GIT_HEAD_COMMIT@" + #define _GIT_DESCRIBE "@_GIT_DESCRIBE@" + #define BUILD_HOST "@BUILD_HOST_NAME@" +! #define FSAL_MODULE_LOC "@MODULES_PATH@/@FSAL_DESTINATION@" + /* Build controls */ + + #cmakedefine _MSPAC_SUPPORT 1 +--- 14,20 ---- + #define _GIT_HEAD_COMMIT "@_GIT_HEAD_COMMIT@" + #define _GIT_DESCRIBE "@_GIT_DESCRIBE@" + #define BUILD_HOST "@BUILD_HOST_NAME@" +! #define FSAL_MODULE_LOC "/usr/@FSAL_DESTINATION@" + /* Build controls */ + + #cmakedefine _MSPAC_SUPPORT 1 diff --git a/nfs-ganesha-2.1.0-config_parsing.patch b/nfs-ganesha-2.1.0-config_parsing.patch new file mode 100644 index 0000000..f4b5633 --- /dev/null +++ b/nfs-ganesha-2.1.0-config_parsing.patch @@ -0,0 +1,44 @@ +*** nfs-ganesha-2.1.0/src/config_parsing/config_parsing.c.orig 2014-06-27 07:42:33.850133273 -0400 +--- nfs-ganesha-2.1.0/src/config_parsing/config_parsing.c 2014-06-27 09:59:59.758133273 -0400 +*************** +*** 1567,1573 **** + struct config_node *sub_node; + struct config_node *top; + struct expr_parse *expr, *expr_head; +! struct config_node_list *list = NULL, *list_tail; + char *ep; + int rc = EINVAL; + bool found = false; +--- 1567,1573 ---- + struct config_node *sub_node; + struct config_node *top; + struct expr_parse *expr, *expr_head; +! struct config_node_list *list = NULL, *list_tail = NULL; + char *ep; + int rc = EINVAL; + bool found = false; +*************** +*** 1599,1607 **** + list->tree_node = sub_node; + if (*node_list == NULL) + *node_list = list; +! else + list_tail->next = list; +! list_tail = list; + found = true; + } + } +--- 1599,1611 ---- + list->tree_node = sub_node; + if (*node_list == NULL) + *node_list = list; +! else if (list_tail != NULL) + list_tail->next = list; +! else { +! for (list_tail = (*node_list)->next; +! list_tail->next != NULL; ) +! list_tail = list_tail->next; +! } + found = true; + } + } diff --git a/nfs-ganesha-2.1.0-nfs4_op_secinfo.patch b/nfs-ganesha-2.1.0-nfs4_op_secinfo.patch new file mode 100644 index 0000000..99f552e --- /dev/null +++ b/nfs-ganesha-2.1.0-nfs4_op_secinfo.patch @@ -0,0 +1,19 @@ +*** nfs-ganesha-2.1.0/src/Protocols/NFS/nfs4_op_secinfo.c.orig 2014-06-30 07:54:56.787133273 -0400 +--- nfs-ganesha-2.1.0/src/Protocols/NFS/nfs4_op_secinfo.c 2014-06-30 07:55:58.190133273 -0400 +*************** +*** 65,71 **** + cache_entry_t *entry_src = NULL; + sec_oid4 v5oid = { krb5oid.length, (char *)krb5oid.elements }; + int num_entry = 0; +! struct export_perms save_export_perms; + struct gsh_export *saved_gsh_export = NULL; + + resp->resop = NFS4_OP_SECINFO; +--- 65,71 ---- + cache_entry_t *entry_src = NULL; + sec_oid4 v5oid = { krb5oid.length, (char *)krb5oid.elements }; + int num_entry = 0; +! struct export_perms save_export_perms = {0,}; + struct gsh_export *saved_gsh_export = NULL; + + resp->resop = NFS4_OP_SECINFO; diff --git a/nfs-ganesha-2.1.0-nfs4_pseudo.patch b/nfs-ganesha-2.1.0-nfs4_pseudo.patch new file mode 100644 index 0000000..a006aec --- /dev/null +++ b/nfs-ganesha-2.1.0-nfs4_pseudo.patch @@ -0,0 +1,23 @@ +*** nfs-ganesha-2.1.0/src/Protocols/NFS/nfs4_pseudo.c.orig 2014-06-27 10:14:43.556133273 -0400 +--- nfs-ganesha-2.1.0/src/Protocols/NFS/nfs4_pseudo.c 2014-06-27 10:17:10.928133273 -0400 +*************** +*** 385,393 **** + /* Now we need to process the rest of the path, creating directories + * if necessary. + */ +! for (tok = strtok_r(rest, "/", &saveptr); +! tok; +! tok = strtok_r(NULL, "/", &saveptr)) { + rc = make_pseudofs_node(tok, &state); + if (!rc) { + /* Release reference on mount point inode +--- 385,393 ---- + /* Now we need to process the rest of the path, creating directories + * if necessary. + */ +! saveptr = NULL; +! tok = strtok_r(rest, "/", &saveptr); +! for (; tok; tok = strtok_r(NULL, "/", &saveptr)) { + rc = make_pseudofs_node(tok, &state); + if (!rc) { + /* Release reference on mount point inode diff --git a/nfs-ganesha.spec b/nfs-ganesha.spec index ab3933e..75e9387 100644 --- a/nfs-ganesha.spec +++ b/nfs-ganesha.spec @@ -1,7 +1,7 @@ # %%global prereltag rcfinal %global ntirpcname ntirpc -%global ntirpcvers 1.0.0 +%global ntirpcvers 1.1.0 %global _hardened_build 1 @@ -18,8 +18,8 @@ %global with_cephfs true Name: nfs-ganesha -Version: 2.0.0 -Release: 10%{?prereltag:.%{prereltag}}%{?dist} +Version: 2.1.0 +Release: 1%{?prereltag:.%{prereltag}}%{?dist} Summary: Ganesha NFS Server Group: System Environment/Libraries License: LGPLv3+ @@ -32,11 +32,13 @@ Source1: https://github.com/%{name}/%{ntirpcname}/archive/v%{ntirpcver Source2: nfs-ganesha.service Source3: nfs-ganesha.init Source4: nfs_ganesha.sh -Patch1: nfs-ganesha-2.0.0rc5.patch -Patch2: nfs-ganesha-2.0.0-lustre-strict.patch Patch3: nfs-ganesha-2.0.0-no-strict-aliasing.patch -Patch4: nfs-ganesha-2.0.0-dirent.patch -Patch5: nfs-ganesha-2.0.0-fsal_ceph.patch +Patch6: nfs-ganesha-2.1.0-config_parsing.patch +Patch7: nfs-ganesha-2.1.0-cache_inode_getattr.patch +Patch8: nfs-ganesha-2.1.0-nfs4_pseudo.patch +Patch9: nfs-ganesha-2.1.0-config-h.in.cmake.patch +Patch10: nfs-ganesha-2.1.0-commonlib.patch +Patch11: nfs-ganesha-2.1.0-nfs4_op_secinfo.patch %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -93,8 +95,8 @@ which operates as an NFSv4 client. %if ( 0%{?with_glusterfs:1} ) %package fsal-gluster Summary: Ganesha NFS Server GlusterFS FSAL -Requires: glusterfs-api >= 3.4.2 -BuildRequires: glusterfs-api-devel >= 3.4.2 +Requires: glusterfs-api >= 3.5.1 +BuildRequires: glusterfs-api-devel >= 3.5.1 %description fsal-gluster GlusterFS FSAL for nfs-ganesha @@ -151,13 +153,15 @@ which operates as an NFSv4 client. %setup -q -n %{name}-%{version} -a 1 rm -rf contrib/libzfswrapper mv %{ntirpcname}-%{ntirpcvers}/* src/libntirpc/ -%patch1 -p1 -%patch2 -p1 %if ( 0%{?rhel} && 0%{?rhel} < 7 ) %patch3 -p1 %endif -%patch4 -p1 -%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 %build %if ( 0%{?rhel} && 0%{?rhel} < 7 ) @@ -170,7 +174,6 @@ make VERBOSE=1 %install make install rm %{buildroot}%{_bindir}/libntirpc.* -chmod ugo+x %{buildroot}%{_bindir}/ganestat.pl rm %{buildroot}%{_libdir}/ganesha/*.so mkdir -p %{buildroot}%{_pkgdocdir} cp -p src/Docs/*.pdf %{buildroot}%{_pkgdocdir}/ @@ -205,7 +208,7 @@ install -D -p -m 0744 %{SOURCE4} %{buildroot}%{_sbindir}/nfs_ganesha.sh %endif %files -%doc src/ChangeLog src/LICENSE.txt src/TODO src/Docs/*.pdf +%doc src/ChangeLog src/LICENSE.txt src/Docs/*.pdf %exclude %{_pkgdocdir}/*.pdf %if ( 0%{?with_glusterfs:1} ) %exclude %{_libdir}/ganesha/libfsalgluster.* @@ -238,6 +241,9 @@ install -D -p -m 0744 %{SOURCE4} %{buildroot}%{_sbindir}/nfs_ganesha.sh %dir %{_pkgdocdir} %changelog +* Mon Jun 30 2014 Kaleb S. KEITHLEY 2.1.0-1 +- nfs-ganesha-2.1.0 GA + * Sat Jun 07 2014 Fedora Release Engineering - 2.0.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/sources b/sources index 9e69df5..618b1b9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -5a7c90879d6ce3d3a927defe3fbd0939 ntirpc-1.0.0.tar.gz -30335404075b43fd328708aa8ff2d39f nfs-ganesha-2.0.0.tar.gz +e0b398e92def24f5c354c17db1ee1119 nfs-ganesha-2.1.0.tar.gz +18313c48592396061fae3be6428afde8 ntirpc-1.1.0.tar.gz