From d7141e7dbb07864b5a5529a7cd798d6be3cc5d9595072ca6bd7591f4c2de8fe4 Mon Sep 17 00:00:00 2001 From: Christof Hanke Date: Wed, 14 Aug 2024 09:50:41 +0000 Subject: [PATCH] - update to latest git branch stable-1_8_x - change version to openafs-1.8.12-g... since the new stable release is 1.8.12 - apply intermediate patches for kernel 6.10 * 03b280649f5e22ed74c217d7c98c3416a2fa9052: Linux-6.10: remove includes for asm/ia32_unistd.h * 0f6a3a402f4a66114da9231032bd68cdc4dee7bc: Linux-6.10: Use filemap_alloc_folio when avail * 658942f2791fad5e33ec7542158c16dfc66eed39: Linux-6.10: define a wrapper for vmalloc * d8b56f21994ce66d8daebb7d69e792f34c1a19ed: afs: avoid empty-body warning * 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7: Linux 6.10: Move 'inline' before func return type OBS-URL: https://build.opensuse.org/package/show/filesystems/openafs?expand=0&rev=127 --- .gitattributes | 23 + .gitignore | 1 + 03b280649f5e22ed74c217d7c98c3416a2fa9052 | 111 ++ 0f6a3a402f4a66114da9231032bd68cdc4dee7bc | 96 ++ 658942f2791fad5e33ec7542158c16dfc66eed39 | 66 + 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 | 51 + ChangeLog | 1419 ++++++++++++++++++++++ README.SUSE.openafs | 109 ++ RELNOTES-stable-1_8_x | 104 ++ afs3-bos.xml | 6 + afs3-callback.xml | 6 + afs3-fileserver.xml | 6 + afs3-prserver.xml | 6 + afs3-rmtsys.xml | 6 + afs3-update.xml | 6 + afs3-vlserver.xml | 6 + afs3-volser.xml | 6 + d8b56f21994ce66d8daebb7d69e792f34c1a19ed | 76 ++ handle_backports.diff | 11 + kernel-source.build-modules.sh | 64 + kmp_only.files | 99 ++ logrotate.openafs-server | 11 + openafs-client.service | 21 + openafs-client.service.allow_unsupported | 20 + openafs-fuse-client.service | 19 + openafs-server.service | 11 + openafs-stable-1_8_x-doc.tar.bz2 | 3 + openafs-stable-1_8_x-doc.tar.bz2.md5 | 1 + openafs-stable-1_8_x-doc.tar.bz2.sha256 | 1 + openafs-stable-1_8_x-src.tar.bz2 | 3 + openafs-stable-1_8_x-src.tar.bz2.md5 | 1 + openafs-stable-1_8_x-src.tar.bz2.sha256 | 1 + openafs.CellAlias | 1 + openafs.SuidCells | 0 openafs.ThisCell | 1 + openafs.cacheinfo | 1 + openafs.changes | 910 ++++++++++++++ openafs.spec | 1014 ++++++++++++++++ preamble | 3 + sysconfig.openafs-client | 17 + sysconfig.openafs-fuse-client | 17 + sysconfig.openafs-server | 4 + 42 files changed, 4338 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 03b280649f5e22ed74c217d7c98c3416a2fa9052 create mode 100644 0f6a3a402f4a66114da9231032bd68cdc4dee7bc create mode 100644 658942f2791fad5e33ec7542158c16dfc66eed39 create mode 100644 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 create mode 100644 ChangeLog create mode 100644 README.SUSE.openafs create mode 100644 RELNOTES-stable-1_8_x create mode 100644 afs3-bos.xml create mode 100644 afs3-callback.xml create mode 100644 afs3-fileserver.xml create mode 100644 afs3-prserver.xml create mode 100644 afs3-rmtsys.xml create mode 100644 afs3-update.xml create mode 100644 afs3-vlserver.xml create mode 100644 afs3-volser.xml create mode 100644 d8b56f21994ce66d8daebb7d69e792f34c1a19ed create mode 100644 handle_backports.diff create mode 100644 kernel-source.build-modules.sh create mode 100644 kmp_only.files create mode 100644 logrotate.openafs-server create mode 100644 openafs-client.service create mode 100644 openafs-client.service.allow_unsupported create mode 100644 openafs-fuse-client.service create mode 100644 openafs-server.service create mode 100644 openafs-stable-1_8_x-doc.tar.bz2 create mode 100644 openafs-stable-1_8_x-doc.tar.bz2.md5 create mode 100644 openafs-stable-1_8_x-doc.tar.bz2.sha256 create mode 100644 openafs-stable-1_8_x-src.tar.bz2 create mode 100644 openafs-stable-1_8_x-src.tar.bz2.md5 create mode 100644 openafs-stable-1_8_x-src.tar.bz2.sha256 create mode 100644 openafs.CellAlias create mode 100644 openafs.SuidCells create mode 100644 openafs.ThisCell create mode 100644 openafs.cacheinfo create mode 100644 openafs.changes create mode 100644 openafs.spec create mode 100644 preamble create mode 100644 sysconfig.openafs-client create mode 100644 sysconfig.openafs-fuse-client create mode 100644 sysconfig.openafs-server diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/03b280649f5e22ed74c217d7c98c3416a2fa9052 b/03b280649f5e22ed74c217d7c98c3416a2fa9052 new file mode 100644 index 0000000..0ade45a --- /dev/null +++ b/03b280649f5e22ed74c217d7c98c3416a2fa9052 @@ -0,0 +1,111 @@ +commit 03b280649f5e22ed74c217d7c98c3416a2fa9052 +Author: Cheyenne Wills +Date: Wed Jun 12 13:56:44 2024 -0600 + + Linux-6.10: remove includes for asm/ia32_unistd.h + + The Linux 6.10 commit: + "x86/syscall/compat: Remove ia32_unistd.h" (e2d168328e) + + Removed the header ia32_unistd.h since it was just a wrapper for the + unistd_32_ia32.h. + + The commit: + "linux-afs-translator-xen-20060731" (29dd792381) + added an ia32_unistd.h include to several files; all were not needed + (as they didn't reference any of the contents from the header file, e.g + _NR_ia32_*). + + The commit: + "amd64-hook-ia32-table-20030519" (831e172463) + added an include for ia32_unistd.h to osi_module.c. + + A later commit: + "osi-probe-syscall-20050129" (f126dbdbe2) + removed many of the references to defines from ia32_unistd.h, but did + not remove the include for the header. + + Currently the only remaining files (linux-kernel-syscall-probe.m4, + LINUX/osi_probe.c and LINUX/osi_syscall.c) continue to reference the + items from ia32_unistd.h, but only when building older kernels that + either don't have LINUX_KEYRING_SUPPORT or when + ENABLE_LINUX_SYSCALL_PROBING is enabled (in both cases, these are only + applicable for older kernels where the asm/ia32_unistd.h file would be + present). + + For the files that don't have references (i.e. _NR_ia32_*), we can + simply remove the include for asm/ia32_unistd.h. For the remaining set + of files, we can leave the include for asm/ia32_unistd.h since the code + already has preprocessor conditionals so it's only included for older + Linux kernels where the header file will be present. + + We noted above, the include for asm/ia32_unistd.h is already conditional + on the checks for LINUX_KEYRING_SUPPORT and ENABLE_LINUX_SYSCALL_PROBING + so we do not need to add any additional configure checks. + + Change-Id: I901b5c0f0ff86272b02f898f3951325533d22f4f + Reviewed-on: https://gerrit.openafs.org/15763 + Reviewed-by: Michael Meffie + Tested-by: BuildBot + Reviewed-by: Andrew Deason + +diff --git a/src/afs/LINUX/osi_ioctl.c b/src/afs/LINUX/osi_ioctl.c +index 3e797745c..d964d8103 100644 +--- a/src/afs/LINUX/osi_ioctl.c ++++ b/src/afs/LINUX/osi_ioctl.c +@@ -21,10 +21,6 @@ + #include /* For syscall numbers. */ + #include + +-#ifdef AFS_AMD64_LINUX_ENV +-#include +-#endif +- + #include + #include + #include +diff --git a/src/afs/LINUX/osi_module.c b/src/afs/LINUX/osi_module.c +index 8ace127f4..499810cc6 100644 +--- a/src/afs/LINUX/osi_module.c ++++ b/src/afs/LINUX/osi_module.c +@@ -21,10 +21,6 @@ + #include /* For syscall numbers. */ + #include + +-#ifdef AFS_AMD64_LINUX_ENV +-#include +-#endif +- + #include + #include + #include +diff --git a/src/afs/LINUX/osi_pag_module.c b/src/afs/LINUX/osi_pag_module.c +index ea3d1bd2c..346108489 100644 +--- a/src/afs/LINUX/osi_pag_module.c ++++ b/src/afs/LINUX/osi_pag_module.c +@@ -20,10 +20,6 @@ + #include /* For syscall numbers. */ + #include + +-#ifdef AFS_AMD64_LINUX_ENV +-#include +-#endif +- + #include + #include + #include +diff --git a/src/afs/LINUX/osi_proc.c b/src/afs/LINUX/osi_proc.c +index 9c5a080f0..ad7c695b9 100644 +--- a/src/afs/LINUX/osi_proc.c ++++ b/src/afs/LINUX/osi_proc.c +@@ -25,10 +25,6 @@ + #include /* For syscall numbers. */ + #include + +-#ifdef AFS_AMD64_LINUX_ENV +-# include +-#endif +- + #include + #include + #include diff --git a/0f6a3a402f4a66114da9231032bd68cdc4dee7bc b/0f6a3a402f4a66114da9231032bd68cdc4dee7bc new file mode 100644 index 0000000..cf55c23 --- /dev/null +++ b/0f6a3a402f4a66114da9231032bd68cdc4dee7bc @@ -0,0 +1,96 @@ +commit 0f6a3a402f4a66114da9231032bd68cdc4dee7bc +Author: Cheyenne Wills +Date: Wed Jun 12 14:13:59 2024 -0600 + + Linux-6.10: Use filemap_alloc_folio when avail + + The Linux 6.10 commit: + "mm: remove page_cache_alloc()" (3f2ae4ebd5) + removed the page_cache_alloc(), with a note that callers would be using + filemap_alloc_folio instead. + + The function filemap_alloc_folio() was introduced in Linux 5.15 commit: + "mm/filemap: Add filemap_alloc_folio" (bb3c579e25) + + Add a configure check for filemap_alloc_folio and update the function + afs_linux_read_cache() to use a wrapper that calls filemap_alloc_folio() + if available otherwise calls page_cache_alloc(). + + Minor whitespace/style cleanup + + Note: The function filemap_alloc_folio() was introduced in Linux 5.15, + so this change affects builds using the Linux kernel 5.15 and later. + + Change-Id: Ia17aefc38fe9787e54b315c864da726d610b8bb9 + Reviewed-on: https://gerrit.openafs.org/15764 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + +diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c +index 511b0838f..18809c89f 100644 +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -2320,6 +2320,24 @@ mapping_read_page(struct address_space *mapping, struct page *page) + #endif + } + ++/* ++ * small compat wrapper for filemap_alloc_folio/page_cache_alloc ++ */ ++static struct page * ++afs_page_cache_alloc(struct address_space *cachemapping) ++{ ++#if defined(HAVE_LINUX_FILEMAP_ALLOC_FOLIO) ++ struct folio *folio; ++ folio = filemap_alloc_folio(mapping_gfp_mask(cachemapping), 0); ++ if (folio == NULL) { ++ return NULL; ++ } ++ return &folio->page; ++#else ++ return page_cache_alloc(cachemapping); ++#endif ++} ++ + /* Populate a page by filling it from the cache file pointed at by cachefp + * (which contains indicated chunk) + * If task is NULL, the page copy occurs syncronously, and the routine +@@ -2358,11 +2376,12 @@ afs_linux_read_cache(struct file *cachefp, struct page *page, + pageindex = (offset - AFS_CHUNKTOBASE(chunk)) >> PAGE_SHIFT; + + while (cachepage == NULL) { +- cachepage = find_get_page(cachemapping, pageindex); ++ cachepage = find_get_page(cachemapping, pageindex); + if (!cachepage) { +- if (!newpage) +- newpage = page_cache_alloc(cachemapping); +- if (!newpage) { ++ if (newpage == NULL) { ++ newpage = afs_page_cache_alloc(cachemapping); ++ } ++ if (newpage == NULL) { + code = -ENOMEM; + goto out; + } +diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4 +index 93f96f5ad..83ea354b0 100644 +--- a/src/cf/linux-kernel-func.m4 ++++ b/src/cf/linux-kernel-func.m4 +@@ -253,6 +253,16 @@ AC_CHECK_LINUX_FUNC([no_strlcpy], + size_t s; + s = strlcpy(buff);]]) + ++dnl Linux 5.15 introduced filemap_alloc_folio() as a replacement for ++dnl page_cache_alloc(). page_cache_alloc() was updated to become just a ++dnl wrapper for filemap_alloc_folio(). ++dnl Linux 6.10 removed page_cache_alloc(). ++AC_CHECK_LINUX_FUNC([filemap_alloc_folio], ++ [#include ++ #include ], ++ [[static struct folio *folio; ++ folio = filemap_alloc_folio(0, 0);]]) ++ + dnl Consequences - things which get set as a result of the + dnl above tests + AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"], diff --git a/658942f2791fad5e33ec7542158c16dfc66eed39 b/658942f2791fad5e33ec7542158c16dfc66eed39 new file mode 100644 index 0000000..0753ecc --- /dev/null +++ b/658942f2791fad5e33ec7542158c16dfc66eed39 @@ -0,0 +1,66 @@ +commit 658942f2791fad5e33ec7542158c16dfc66eed39 +Author: Cheyenne Wills +Date: Wed Jun 12 14:16:43 2024 -0600 + + Linux-6.10: define a wrapper for vmalloc + + The Linux 6.10 commit: + "mm: vmalloc: enable memory allocation profiling" (88ae5fb755) + changed vmalloc from a function to a wrapper macro. + + This change results in build errors: + "error: implicit declaration of function ‘vmalloc’; did you mean + ‘kmalloc’? [-Werror=implicit-function-declaration]" + + when vmalloc is passed as a parameter to the afs_atomlist_create() and + afs_lhash_create() functions. + + Add a little wrapper function around vmalloc() to use for the parameter + to afs_atomlist_create() and afs_lhash_create(). + + Note: A configure test was not needed for this change since the name + and functionality of Linux's vmalloc did not change. + + Change-Id: I69c1da9eea5d1de11c1628bbcef427f81f5c01e1 + Reviewed-on: https://gerrit.openafs.org/15765 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + +diff --git a/src/afs/LINUX/osi_alloc.c b/src/afs/LINUX/osi_alloc.c +index 86cd0e571..7c4b4a1ca 100644 +--- a/src/afs/LINUX/osi_alloc.c ++++ b/src/afs/LINUX/osi_alloc.c +@@ -196,6 +196,15 @@ local_free(void *p, size_t n) + vfree(p); + } + ++/* ++ * wrapper for vmalloc(), since vmalloc() may be a macro ++ */ ++static void * ++local_vmalloc(size_t size) ++{ ++ return vmalloc(size); ++} ++ + /* linux_alloc_init(): Initializes the kernel memory allocator. As part + * of this process, it also initializes a pool of osi_linux_mem + * structures as well as the hash table itself. +@@ -209,14 +218,14 @@ linux_alloc_init(void) + /* initiate our pool of osi_linux_mem structs */ + al_mem_pool = + afs_atomlist_create(sizeof(struct osi_linux_mem), sizeof(long) * 1024, +- (void *)vmalloc, local_free); ++ local_vmalloc, local_free); + if (!al_mem_pool) { + printf("afs_osi_Alloc: Error in initialization(atomlist_create)\n"); + return 0; + } + + /* initialize the hash table to hold references to alloc'ed chunks */ +- lh_mem_htab = afs_lhash_create(hash_equal, (void *)vmalloc, local_free); ++ lh_mem_htab = afs_lhash_create(hash_equal, local_vmalloc, local_free); + if (!lh_mem_htab) { + printf("afs_osi_Alloc: Error in initialization(lhash_create)\n"); + return 0; diff --git a/7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 b/7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 new file mode 100644 index 0000000..85b61e0 --- /dev/null +++ b/7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 @@ -0,0 +1,51 @@ +commit 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 +Author: Cheyenne Wills +Date: Thu Jun 6 10:42:57 2024 -0600 + + Linux 6.10: Move 'inline' before func return type + + With Linux 6.10 commit: + "kbuild: turn on -Wextra by default" (f5982cceb3) + there are additional compiler warnings that can turn + into build errors when --enable-checking is used. + + "error: ‘inline’ is not at beginning of declaration + [-Werror=old-style-declaration]" + + The error is due to the return type preceding the "inline" keyword + in function declarations. + + Fix the declarations for file_can_read_pages() and + afs_linux_readpage_fastpath() to have the proper ordering of the + static/inline keywords attributes so they precede the return type. + + Just a note that the `static` and `inline` keywords must precede a + function's return type. + + Change-Id: I3ff9d45c119e70a90faf18fbf6d49fb6b9adcf33 + Reviewed-on: https://gerrit.openafs.org/15768 + Reviewed-by: Andrew Deason + Tested-by: Andrew Deason + +diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c +index 18809c89f..c6c3bfe39 100644 +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -2443,7 +2443,7 @@ afs_linux_read_cache(struct file *cachefp, struct page *page, + /* + * Return true if the file has a mapping that can read pages + */ +-static int inline ++static inline int + file_can_read_pages(struct file *fp) + { + #if defined(STRUCT_ADDRESS_SPACE_OPERATIONS_HAS_READ_FOLIO) +@@ -2456,7 +2456,7 @@ file_can_read_pages(struct file *fp) + return 0; + } + +-static int inline ++static inline int + afs_linux_readpage_fastpath(struct file *fp, struct page *pp, int *codep) + { + loff_t offset = page_offset(pp); diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..3f98394 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1419 @@ +commit d8eab602c3279378f344cdde2f14fe05707ac71d +Author: Michael Meffie +Date: Thu May 30 16:56:18 2024 -0400 + + Make OpenAFS 1.8.12pre1 + + Update version strings for the first 1.8.12 prerelease. + + Change-Id: I0a314eb7d96183c40c995b9415aaf1c679defee5 + Reviewed-on: https://gerrit.openafs.org/15759 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + +commit 1ccee780e109c06917612390c54978bb13fce767 +Author: Michael Meffie +Date: Thu May 23 20:20:11 2024 -0400 + + Update NEWS for OpenAFS 1.8.12pre1 + + Add news items for the upcoming 1.8.12 pre-release. + + Change-Id: Iab9167e93526f7f5b83a7bc47341a76c8ad54c52 + Reviewed-on: https://gerrit.openafs.org/15753 + Reviewed-by: Cheyenne Wills + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + +commit 308ee38a30549afd38ad1f83bb537fd6b43513a8 +Author: Mark Vitale +Date: Thu May 30 12:54:57 2024 -0400 + + afs: Correct comment typo in DNew() + + Commit aed4a0c4b91c5ce185547e83bfff443f3d3831f9 "afs: avoid panic in + DNew when afs_WriteDCache fails" introduced Doxygen comments for DNew(). + However, due to a cut-and-paste error, the name of the second parameter + is incorrect. + + Correct the Doxygen comments. + + No functional change is incurred by this commit; it is just + documentation. + + Reviewed-on: https://gerrit.openafs.org/15757 + Reviewed-by: Michael Meffie + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit abb15d449ca6792d9145c13c01d573ce32545916) + + Change-Id: Ie540b13a040ac47bbaa2f753a9bbd21c046d4b49 + Reviewed-on: https://gerrit.openafs.org/15758 + Tested-by: BuildBot + Reviewed-by: Cheyenne Wills + Reviewed-by: Benjamin Kaduk + +commit 4022359253fb6a645b01f99b820b7331c019115a +Author: Mark Vitale +Date: Fri Jul 19 14:41:55 2019 -0400 + + afs: avoid panic in DNew when afs_WriteDCache fails + + afs_WriteDCache may fail for an IO error, or if interrupted (EINTR). + Unfortunately, DNew will panic in this case, crashing the entire + machine. + + In order to avoid an outage in this case, don't panic. Instead, reflect + the error back to the caller of DNew. + + While here, add Doxygen comments to DNew. + + Reviewed-on: https://gerrit.openafs.org/13804 + Reviewed-by: Benjamin Kaduk + Tested-by: BuildBot + (cherry picked from commit aed4a0c4b91c5ce185547e83bfff443f3d3831f9) + + Change-Id: I634ce4b3c7c8b6029c5236b51f6ab8c0a5463ce9 + Reviewed-on: https://gerrit.openafs.org/15744 + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit 837e6a4ad28588f22b4e9ace9bfa4bb4f412485c +Author: Mark Vitale +Date: Wed Feb 5 17:49:03 2020 -0500 + + dir: check DNew return code + + Commit 0284e65f97861e888d95576f22a93cd681813c39 'dir: Explicitly state + buffer locations for data' changed DNew and DRead to return a return + code. However, the callers of DNew were not modified to check the new + return code. (This commit applied only to the implementations dealing + with AFS directories, in afs/afs_buffer.c and dir/dir.c. The ubik + implmentations of DNew and DRead, dealing with ubik databases, were not + modified.) + + Modify all (non-ubik) callers of DNew to check the return code. In + addition, modify code as needed so return codes are properly propagated + to the callers. + + While here, add Doxygen comments for AddPage and FindBlobs. + + Reviewed-on: https://gerrit.openafs.org/13801 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 6bd94fe29d1aa6ce61ba02e681defea79770ccdd) + + Change-Id: I8d036748fa18365b843a69f2f0710eab31aa723d + Reviewed-on: https://gerrit.openafs.org/15743 + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit db39f77f0ec931816ba5cc265e87954173b435e2 +Author: Mark Vitale +Date: Sun Mar 3 20:20:58 2019 -0500 + + dir: check afs_dir_Create return code in afs_dir_MakeDir + + afs_dir_MakeDir() ignores the return code from afs_dir_Create() for the + '.' and '..' ("dot" and "dotdot") directories. This has been the case + from the earliest implementation (MakeDir() calling Create()) in the + original IBM import. + + Instead, check the return codes to prevent the possibility of creating + malformed directories. + + Reviewed-on: https://gerrit.openafs.org/13800 + Reviewed-by: Benjamin Kaduk + Reviewed-by: Mark Vitale + Tested-by: BuildBot + (cherry picked from commit dcce956df4fc8d368962cb36d8b3c801be69a85a) + + Change-Id: Ib7066ab307fe6ab0e78407566d0fd32bd6827859 + Reviewed-on: https://gerrit.openafs.org/15742 + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit 3ff310182926ab783f0f07fa8667d1ebaabbc5de +Author: Andrew Deason +Date: Thu Apr 25 15:58:49 2024 -0500 + + afs: Reintroduce and use DFlushDCache() + + This reverts commit 432ac5810e51bb5bb2cf1df0bfebc64d1c4d7a39 (afs: + Remove DFlushDCache()). This also re-adds the caller of DFlushDCache() + removed by commit 4045f3d5350955de91e019b09ad2ed7941f6dadb + (disconnected-shadow-directory-fixes-20090121), and the prototype + removed by commit 5ad1e6cb904b953fbb04603f3ce1466dcc38cd48 (dir: + Prototype and function name cleanup). + + The removal of the DFlushDCache() call in commit 4045f3d535 seems like + a mistake. If the directory in question has dirty pages in memory, we + need to flush those to the cache before making a copy of the + directory's data, because we read the existing dir's data from the + cache. If we don't flush, afs_MakeShadowDir() might make a copy of the + dcache that is missing updates to the directory blob. + + Reviewed-on: https://gerrit.openafs.org/15740 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + Reviewed-by: Cheyenne Wills + (cherry picked from commit 799d789fbaefc8c4dbcb803b885deb35f4947d26) + + Change-Id: I3bffab4bae4214503591ac102aba59c7072b39af + Reviewed-on: https://gerrit.openafs.org/15741 + Tested-by: BuildBot + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit de7bc4890e4368b88f20e15a7d795fc1c54cef29 +Author: Cheyenne Wills +Date: Mon Apr 15 08:22:37 2024 -0600 + + Linux-6.9: file_lock mbrs moved to file_lock_core + + In the Linux 6.9 commit: + 'filelock: split common fields into struct file_lock_core' (a69ce85ec9) + several fields were relocated into a new structure, file_lock_core, + which was added as a member the file_lock structure. The names where + changed (fl_x to flc_x). + + Add a configure test to determine if the new members (flc_type, flc_pid, + and flc_flags) are available as part of the file_lock_core structure. + + Add static inline getter/setter routines to handle accessing the + flc_type or flc_pid members in the file_lock_core structure, or the + fl_type, fl_pid members in the file_lock structure as appropriate. Add + static inline function to clear FL_SLEEP in the flc_flag in the + file_lock_core structure or the fl_flag in the file_lock structure as + appropriate. + + Minor surrounding white space cleanup. + + Reviewed-on: https://gerrit.openafs.org/15708 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 9937cce3f35f4e3aad0802189457bf16b84d7ab4) + + Change-Id: I51343e1c2e360b68eabe2cc4069c25948b6c0729 + Reviewed-on: https://gerrit.openafs.org/15739 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 95e67f9c3e6e605da07081b9521ed2eaa2add648 +Author: Cheyenne Wills +Date: Fri Mar 15 16:24:05 2024 -0600 + + tests: rx/perf wait for server init before client + + The rx/perf test can occasionally fail due to the rxperf server not + being fully initialized before the client started. This can cause test + errors, even without changes to the rx code. + + C_TAP_VERBOSE=1 make check TESTS="rx/perf" + ... + rx/perf + + 1..4 + ok 1 - Started rxperf server + not ok 2 - single threaded client ran successfully + RPC: threads 30, times 1, write bytes 1048576, read bytes... + ok 3 - multi threaded client ran succesfully + ok 4 - Server exited succesfully + FAILED 2 (exit status 1) + + Add a routine that waits for the rx_perf server to become available. + Loop several times trying the connection via the rx_perf client, with + a short delay between retries. If the connection cannot be established, + fail the test. + + Clean up trailing whitespace on a couple of lines. + + Note: This failure was observed in an OpenAFS buildbot worker that + included a make tests, and which would occasionally fail when there was + no rx related code changes. The intermittent failure could be duplicated + on a slower virtual test system, but would not fail on a faster system. + + Thanks to mmeffie@sinenomine.net for the 'wait_for_server' contribution. + + Reviewed-on: https://gerrit.openafs.org/15676 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + Reviewed-by: Andrew Deason + (cherry picked from commit 6ace773fdcff0486663a0cc4381d7b6ce2352c04) + + Change-Id: I75c6cd1e4e724d4803b62e2f74e5307cb8fcb14d + Reviewed-on: https://gerrit.openafs.org/15736 + Reviewed-by: Michael Meffie + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit 4fc27548be88947ef58e2a3a3654a08ec6c334d9 +Author: Michael Meffie +Date: Tue Apr 9 10:57:26 2024 -0400 + + rxperf: Add -o option to rxperf client + + Add the -o (output) option to the rxperf client specify the output file. + + If not specified, the output is written to stdout, as before. + + Reviewed-on: https://gerrit.openafs.org/15731 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit e6bc50524e1bde199f6643d9784fe331577bee90) + + Change-Id: I94a2f43c70f9cb5236c3ab4c5d2de66906eb68b3 + Reviewed-on: https://gerrit.openafs.org/15735 + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Tested-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit dfb6b53a6802e90f6bc2cd3cd39da467ce8e4488 +Author: Cheyenne Wills +Date: Wed Apr 3 11:36:54 2024 -0600 + + Linux: Define afs_thread_wrapper() as static + + When building against a Linux 6.8 kernel, functions that are missing + prototypes or declarations are flagged. + + We can add the static attribute to functions that are not referenced + outside of the file that implements them to avoid having these functions + flagged by the compiler. + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + This is an openafs-1.8.x specific commit. + + The function afs_thread_wrapper() in LINUX/osi_misc.c on the master + branch was changed to a static function with commit: + 'afs: Drop GLOCK for various Rx calls' (d5e1428a3b) + However this is a larger change than needed to fix the build problem and + the commit could have a significant impact for 1.8.x since it is + changing rx locking. To avoid introducing such a change, just change + the afs_thread_wrapper() to static as a 1.8.x specific commit. + + There are no functional changes in this commit. + + Change-Id: I4edc61e6a4989c16ccf41b935e205dbf209bf2a5 + Reviewed-on: https://gerrit.openafs.org/15727 + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + +commit d1a42401fddc51bd2f16da39dfebe0f60fc670ad +Author: Cheyenne Wills +Date: Thu Feb 29 17:58:17 2024 -0700 + + Linux: Remove weak attribute for key_type_keyring + + The reference to the Linux symbol key_type_keyring uses a weak + attribute to assist in determining if the symbol is exported. This + method was introduced in commit: 'keyring-updated-20080310' (b7fb842b1c) + as a way to detect if the symbol was exported by the Linux kernel. A + later commit: 'linux-keyring-export-check-20090701' (4ca66112c2) + introduced an autoconf test that eliminated the need for using the weak + attribute, but the commit did not remove the attribute. + + On a Debian-12 system on ARM64 the use of the weak attribute in this + case causes an error when loading the kernel module: + "ERROR: could not insert 'openafs': Exec format error". + The error is due to the Linux module loader not supporting the + relocation entry type in the openafs kernel module for the + key_type_keyring. Further investigation showed that this problem could + occur with gcc-12 on a ARM64 system (see below for additional + information). + + The code in osi_groups.c uses a pointer, __key_type_keyring, to the + key_type_keyring. When this symbol is exported by the Linux kernel, the + loader would resolve the address and __key_type_keyring would contain + the address. If the key_type_keyring symbol was not exported, + __key_type_keyring would be set to NULL (due to the weak attribute + associated with key_type_keyring). + + Remove the weak attribute for key_type_keyring when the configure + test, introduced in the 4ca66112c2 commit, determines that the symbol + is exported (EXPORTED_KEY_TYPE_KEYRING is defined). When the symbol + isn't exported (pre Linux 2.6.22), just set the pointer, + __key_type_keyring to NULL. + + NOTE: + + The load error was reported on the openafs IRC channel by "clarkb" + + The problem of loading the openafs kernel module was also observed + on a NixOS system as well, and is described in the NixOS ticket + + https://github.com/NixOS/nixpkgs/issues/284501 + + A Debian-11 system did not have a problem loading the openafs kernel + module. Investigation of the differences between Debian-11 and Debian-12 + showed that the problem is due to a series of fixes in the toolchain + (in particular gcc-12) to address 'Cortex-A53 erratum #843419', which + deals with how the ARM64 ADRP instruction is used. With gcc-12, the + code generated uses a R_AARCH64_ADR_GOT for this particular case (which + isn't supported by the Linux kernel module loader). Gcc-11 created a + R_AARCH64_ABS64 relocation entry type for the symbol. + + Reviewed-on: https://gerrit.openafs.org/15668 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Mark Vitale + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 2f260825b96b76556aba82fc364c841357a23a7d) + + Change-Id: Ifce08cb01f0b642ee9c2d90480b8a1766dfc52ff + Reviewed-on: https://gerrit.openafs.org/15728 + Tested-by: BuildBot + Reviewed-by: Michael Meffie + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit 7b4802efaf29ef76969c8b931a31e93dd4fbb000 +Author: Cheyenne Wills +Date: Mon Mar 11 09:05:33 2024 -0600 + + Linux 6.8: Use roken's strlcpy() in kernel module + + The Linux 6.8 commit 'string: Remove strlcpy()' (d26270061a) removed the + the strlcpy function from the Linux kernel. The replacement function, + strscpy(), cannot be used as a drop-in replacement as its currently a + Linux kernel specific function and there are differences in the returned + value. + + We can use roken's strlcpy() (provided in roken/strlcpy.c). + + Create a configure test to that defines its own strlcpy() to test + if the kernel doesn't provide one itself. Note, we need to use a + different function signature for strlcpy() from what the kernel might + have otherwise the test build succeeds when the kernel does provide a + strlcpy(). + + Update the OpenAFS kernel specific roken.h to define the prototype for + strlcpy when it's not present in the Linux kernel. We need to match the + defines used in the 'real' roken.h so the roken/strlcpy.c can build + properly. Add defines for ROKEN_LIB_FUNCTION, ROKEN_LIB_CALL and + ROKEN_LIB_VARIABLE to the kernel roken.h + + Update Linux's osi_machdep.h to include roken.h so the strlcpy protoype + is available. + + Update the Linux MakefileProto to include the strcpy-kernel object + when building the kernel module. + + Reviewed-on: https://gerrit.openafs.org/15646 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 30b18c165752e6d0ce7b6daa6a90453f5e5e6d17) + + Change-Id: I8013623e8f735d15bb7d4ac84ed0867f12b77783 + Reviewed-on: https://gerrit.openafs.org/15706 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 6333fae573f8a7b7656e9c1b05d445a37b951b88 +Author: Cheyenne Wills +Date: Tue Mar 5 08:37:47 2024 -0700 + + Linux 6.8: Remove ctl_table sentinels + + The Linux 6.8 commit 'sysctl: Remove the now superfluous sentinel + elements from ctl_table array' (c8a65501d3) was a clean up commit + that removed the sentinel entry in the ctl_table array (e.g. the + "null" entry at the end of the table). + + As of Linux 6.8, including the sentinel entry (.procname =) in the + ctl_table is unnecessary, but doesn't yet break anything. But it is + likely that including the sentinel will start to cause runtime errors in + future Linux versions very soon, so avoid the sentinel when we can, to + avoid possible problems in the future. + + Define a new macro that can be used as the last entry of a ctl_table + that will either add a "null" entry, or nothing. + + There is not a specific build test we can use within configure, so we + must explicitly test the Linux version to decide if we need to use a + sentinel or not when defining the macro. We are selecting 6.8 to match + the version where the Linux kernel is removing the sentinels from the in + kernel filesystems. + + Note: See the Linux merge commits 'Merge tag 'sysctl-6.8-rc1' of + git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux' (a05aea98d4) + for more details behind the staged removal of the sentinels in the + ctl_table structures and the potential future change for removing the + actual check for the sentinel within the Linux kernel. + + Reviewed-on: https://gerrit.openafs.org/15645 + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 35c8c1bf0b1cb48178f676ba5bcf16ad59c5a33b) + + Change-Id: I34cb7586003e10a6c7438d7205123d57af30585e + Reviewed-on: https://gerrit.openafs.org/15705 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 18a2a932df9c1b6b3c7513a6c161d4259f052ca9 +Author: Cheyenne Wills +Date: Mon Feb 12 12:31:30 2024 -0700 + + Linux 6.8: use hlist iteration for dentry children + + Linux 6.8 commit 'dentry: switch the lists of children to hlist' + (da549bdd15) replaces the dentry lists d_subdirs/d_child with the hlist + d_children/d_sib. + + Add an autoconf test for a d_children member in the dentry structure. + + Define a macro that uses the applicable Linux function for iterating + over a dentry's children. + + Reviewed-on: https://gerrit.openafs.org/15632 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 8e0bbe6a07523dd2e7efb3c9d1b4ad9e19fc9bb7) + + Change-Id: Ief4c334c4ef3e54822e068dcdf654541e86b9176 + Reviewed-on: https://gerrit.openafs.org/15704 + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Tested-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + +commit fef1fc6f740c6f7395cf51ce99ed296652579c7d +Author: Cheyenne Wills +Date: Tue Mar 5 07:40:08 2024 -0700 + + rxgen: Declare generated PKG_OpCodeStats() + + The function {PKG}_OpCodeStats() is generated by rxgen, however a + prototype for the function is not generated. + + The functions h_ProcMainBody_setup() and h_HeadofOldStyleProc_setup() + in rpc_parse.c emit prototypes for {PKG}_ExecuteRequest() and + {PKG}_TranslateOpCode(), but do not emit a prototype for + {PKG}_OpCodeStats(). + + Update rxgen to emit a function prototype for {PKG}_OpCodeStats() in the + generated header file. + + Use a variable to point to "PackagePrefix[PackageIndex]" in + h_ProcMainBody_setup to improve readability. + + {PKG}_OpCodeStats(), specifically RXSTATS_OpCodeStats(), is flagged due + to a missing prototype when building against a Linux 6.8 kernel (which + sets the -Wmissing-declarations and -Wmissing-prototypes compiler flags + as default). Linux 6.8 commit: 'Makefile.extrawarn: turn on + missing-prototypes globally' (0fcb70851f). When building against a + kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15631 + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 26bb4d143b31ba027cf2721ac731df67a174c43b) + + Change-Id: I9072d22d142b5b7a2f59b0cfc4026066ef1d9501 + Reviewed-on: https://gerrit.openafs.org/15703 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 57e0192a690942c2a0f4f1f685cfadf2106b763a +Author: Andrew Deason +Date: Tue Dec 7 15:43:35 2021 -0600 + + rxgen: Declare generated PKG_TranslateOpCode() + + Ever since commit 5c77a6ca (rxgen: add *TranslateOpcode functions to + XDR code), rxgen generates a PKG_TranslateOpCode function in the + relevant .xdr.c source, which can translate an RPC opcode into the RPC + name. But we never declare this function in a header file, making it + impossible to use without compiler warnings (unless the caller + declares the function itself). + + To make it possible to actually use this function, declare this + function in the generated header file. + + Reviewed-on: https://gerrit.openafs.org/14871 + Reviewed-by: Cheyenne Wills + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 9b2c27fc6d299cb0b23eca3e8cb25b7e0c41b11a) + + Change-Id: I2479ff7f6579769b3319b2939ffde60fe570c880 + Reviewed-on: https://gerrit.openafs.org/15702 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 4c92936aefede187e57a9a433c0c192af2fc5e84 +Author: Cheyenne Wills +Date: Fri Jan 12 15:30:23 2024 -0700 + + rx: Add static attribute to internal functions + + When building against a Linux 6.8 kernel, functions that are missing + prototypes or declarations are flagged. + + We can add the static attribute to functions that are not referenced + outside of the file that implements them to avoid having these functions + flagged by the compiler. + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15626 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 55adceba2d561ec4e89235de329782a68e603a11) + + Change-Id: I1b2a6e1c07bd4b75b7b83e177f17865eb903e488 + Reviewed-on: https://gerrit.openafs.org/15701 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 195f154aaf2d8aff1f6debdb47c0db8f07cb5c5e +Author: Cheyenne Wills +Date: Thu Feb 29 17:53:31 2024 -0700 + + afs: Add static attribute to internal functions + + When building against a Linux 6.8 kernel, functions that are missing + prototypes or declarations are flagged. + + We can add the static attribute to functions that are not referenced + outside of the file that implements them to avoid having these functions + flagged by the compiler. + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15625 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit efee796f28b53bf3ffc03186f81790c36c23c94c) + + Change-Id: I0d923a65731f825d6c190056b0ccc3d362236706 + Reviewed-on: https://gerrit.openafs.org/15700 + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + +commit 90b8dcff36e9b03ec01550ad1a070a0ab7db8c46 +Author: Cheyenne Wills +Date: Fri Feb 9 09:01:33 2024 -0700 + + afs: fix 'ops' variable may be used uninitialized + + When the function rxfs_storeInit() has the static attribute, gcc flags + the variable 'ops' as possibly uninitialized. + + In function 'afs_CacheStoreDCaches', + inlined from 'afs_CacheStoreVCache' at + .../src/afs/afs_fetchstore.c:630:14: + .../afs/afs_fetchstore.c:535:17: error: 'ops' may be used + uninitialized [-Werror=maybe-uninitialized] + 535 | code = (*ops->destroy)(&rock, code); + | ~^~~~~~~~~~~~~~ + ...src/afs/afs_fetchstore.c: In function 'afs_CacheStoreVCache': + ...src/afs/afs_fetchstore.c:567:22: note: 'ops' was declared here + 567 | struct storeOps *ops; + | ^~~ + cc1: all warnings being treated as errors + + This is a false positive report by the gcc compiler. + + The function rxfs_storeInit() returns a 0 only when it has successfully + assigned a value to the ops variable, and afs_CacheStoreDcaches() is + only called if the return value from rxfs_storeInit() is 0. + + The ops variable is only used within a block that is within a for loop, + which could leave a stray value if the variable isn't initialized within + that loop. + + Assigning a NULL to ops is sufficient to avoid the compiler error, and + relocating the declaration of the ops variable into the block where it + is actually used ensures that it's always initialized before its use + within the loop. + + Clean up whitespace in the statement that follows the new location for + the ops variable. + + Note, this commit is being added before a commit that adds the static + attribute to the rxfs_storeInit() function which also "fixes" the + compiler error (see: afs: Add static attribute to internal functions). + + Reviewed-on: https://gerrit.openafs.org/15630 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 36e4c02ff27b9d66755b9544778896b9b1e5c391) + + Change-Id: I9d8a07e576c6bf889f8f182c6fc0d34dc997c004 + Reviewed-on: https://gerrit.openafs.org/15699 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 09f9660fbbb4f3c20ba9f2283169818372c3f474 +Author: Cheyenne Wills +Date: Wed Feb 7 19:34:29 2024 -0700 + + rx: Add function prototypes to rx_prototypes.h + + The prototype for rxk_NewSocketHost() is not in a header file, but is + defined in the referencing .c file. The ARCH/rx_knet.c files that + implement rxk_NewSocketHost() do not have a prototype (but when the + rx_kcommon.c implementation is used it does have a prototype, since + rx_kcommon.c is the "referencing .c file"). + + Add the prototype for rxk_NewSocketHost() to rx_prototypes.h and + remove the prototype from rx_kcommon.c + + The prototypes for the functions rx_DebugOnOff() and rx_StatsOnOff() + are defined within rx_prototypes.h, but are within a preprocessor + conditional for AFS_NT40_ENV, however the implementation for these + 2 functions do not have the preprocessor conditional. + + Rearrange the prototypes for rx_DebugOnOff() and rx_StatsOnOff() so they + are outside the AFS_NT40_ENV preprocessor conditional. + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + There are no functional changes in this commit. + + Reviewed-on: https://gerrit.openafs.org/15624 + Reviewed-by: Mark Vitale + Reviewed-by: Cheyenne Wills + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 8528c36b96fe2935f42188caabf4feed0d5dbcbd) + + Change-Id: Ieae8be7f89f5c675c6580d8cfb02ea77ce4088f7 + Reviewed-on: https://gerrit.openafs.org/15698 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 53752b01bc734f4bd5f5da24ac116c7fcb2ac07f +Author: Cheyenne Wills +Date: Mon Feb 12 09:43:29 2024 -0700 + + afs: Remove SRXAFSCB* protos from afs_prototypes.h + + The prototypes for the afscbint RPC functions (SRXAFSCB_*) implemented + in afs_callback.c are defined in 2 locations, afs_protypes.h and + afscbint.h (which is generated by rxgen). + + Remove the protoypes for the SRXAFSCB_* functions from afs_prototypes.h + as they are redundant and are currently out of sync (the prototypes + for SRXAFSCB_GetCellByNum() and SRXAFSCB_TellMeAboutYourself() are + not present in afs_prototypes.h). Also remove a redundant prototype for + afs_RXCallBackServer() which was prototyped both before and in the + middle of the SRXAFSCB* prototypes. + + Since afs_callback.c only pulled in afs_prototypes.h and not afscbint.h, + add an include for afscbint.h to ensure that the all the prototypes for + the SRXAFSCB_* functions are present. + + The 2 functions listed above are flagged due to missing prototypes when + building against a Linux 6.8 kernel (which sets the + -Wmissing-declarations and -Wmissing-prototypes compiler flags as + default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15644 + Reviewed-by: Mark Vitale + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + (cherry picked from commit fae4003b403420d0b548920c7837a2d2b6e432ae) + + Change-Id: I7d435455fc60cc10200ee91d0d76534367ab5883 + Reviewed-on: https://gerrit.openafs.org/15697 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 96932160fa8ef1cf4422e9e1d1ca2a449f8ffe93 +Author: Cheyenne Wills +Date: Mon Feb 12 08:59:32 2024 -0700 + + afs: Add afs_xioctl prototyes to afs_prototypes.h + + Several .c files have external function prototypes for the afs_xioctl + function, while the implementing files do not have the prototype. + + Move these prototypes into afs_prototypes.h so that the prototypes are + available to both the caller and the implementation. + + Because the file holding the implementation does not have a prototypes, + afs_xioctl() is being flagged when building against a Linux 6.8 kernel + (which sets the -Wmissing-declarations and -Wmissing-prototypes compiler + flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a Linux kernel with CONFIG_WERROR=y, the build + fails. + + Note that the function afs_xioctl() has platform specific + implementations. + + Reviewed-on: https://gerrit.openafs.org/15643 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 575d986aa6c18ac27ea42fb66ae8b8cb0e27fe6c) + + Change-Id: If746111fdcf6a00459f524711623d322d5fc7942 + Reviewed-on: https://gerrit.openafs.org/15696 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit c04c2d07226583846c3949a4855c7db4316438da +Author: Cheyenne Wills +Date: Thu Feb 15 09:00:05 2024 -0700 + + afs: Move function prototypes into headers + + Several .c files contain external function prototypes, while the + implementing files do not have these prototypes. + + Move these prototypes into header files so that the prototypes are + available to both the caller and the implementation. + + Because the file holding the implementation does not have prototypes, + these functions are flagged when building against a Linux 6.8 kernel + (which sets the -Wmissing-declarations and -Wmissing-prototypes compiler + flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Add the prototypes for the following to afs_prototypes.h: + exporter_add + afs_syscall (AFS_LINUX_ENV) + BlobScan + + Remove the prototypes from the .c files where they are referenced. + + Reviewed-on: https://gerrit.openafs.org/15642 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Mark Vitale + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 85781d7e83ae4501d8ab267bf55ef63f90f63101) + + Change-Id: I74333e99e08af88bebdcbff4767d79397acac358 + Reviewed-on: https://gerrit.openafs.org/15695 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 8b516820abf1edace60276152e9ed18a0b30fc13 +Author: Cheyenne Wills +Date: Mon Feb 12 08:25:47 2024 -0700 + + afs: Add includes to pick up function prototypes + + The functions defined in LINUX/osi_crypto.c, osi_pagecopy.c, + osi_probe.c, and osi_syscall.c have function prototypes defined in + existing header files, however either due to missing includes or + preprocessor conditionals that skip the includes, these function + prototypes are not being pulled in. + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Add the necessary includes to osi_crypto.c and osi_pagecopy.c and + re-arrange the includes in osi_probe.c and osi_syscall.c to ensure that + the function prototypes are present when building the Linux kernel + module. + + Reviewed-on: https://gerrit.openafs.org/15641 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 3683f15278e34e13d7272928eaf666f0acc4e1e9) + + Change-Id: Iac704fc98d0d685358224049f383d68aa7a105f8 + Reviewed-on: https://gerrit.openafs.org/15694 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 25e17fe7196fd4a46e6a9408d135812ca53ddf80 +Author: Cheyenne Wills +Date: Thu Feb 8 11:50:16 2024 -0700 + + afs: Declare init_hckernel_mutex() + + The function init_hckernel_mutex() (in rand.c) is flagged due to a + missing prototype when building against a Linux 6.8 kernel (which sets + the -Wmissing-declarations and -Wmissing-prototypes compiler flags as + default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Add a function prototype for init_hckernel_mutex() to afs_osi.h and + remove the prototype from afs_osi.c + + There are no functional changes with this commit. + + Reviewed-on: https://gerrit.openafs.org/15622 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit ccc2af429710104793fb4659b10697cceab182b3) + + Change-Id: Ic5eb4584a980657a01a1cb4411c0c1f03b1f3560 + Reviewed-on: https://gerrit.openafs.org/15693 + Reviewed-by: Andrew Deason + Tested-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit b1c93f13870e24795b857cb483320871703d00e8 +Author: Cheyenne Wills +Date: Wed Feb 7 15:25:10 2024 -0700 + + Linux 6.8: Add function prototypes for krb5 + + The external files for heimdal/krb5 do not provide function prototypes + in a header file that is used when building files that we use from + heimdal/krb5 (e.g. crypto.c). + + These functions are flagged due to missing prototypes when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + We cannot modify the external source files, however there is the local + OpenAFS include file, krb5_locl.h, that does contain OpenAFS specific + changes. + + Add declarations to krb5_locl.h for the functions defined in the + heimdal/krb5 source. + + There are no functional changes with this commit. + + Reviewed-on: https://gerrit.openafs.org/15621 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 612927dd1dd44bbd08eda790de12b24213583156) + + Change-Id: Iaae28186a24c3c5ca4407de9563c8cfed9644921 + Reviewed-on: https://gerrit.openafs.org/15692 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 15357006d9e8e45ac0be9e0c7e87456ee3857d90 +Author: Andrew Deason +Date: Tue Jan 30 20:44:48 2024 -0600 + + roken: Declare ct_memcmp in hcrypto kernel roken.h + + Currently, we build roken's ct.c for our kernel module to provide + ct_memcmp(). We declare a prototype for ct_memcmp() in krb5_locl.h, + and all of our kernel callers of ct_memcmp() include krb5_locl.h, so + all callers get a prototype and avoid "implicit declaration" compiler + warnings. + + However, roken's ct.c itself does not include krb5_locl.h, so it + doesn't get a prototype for ct_memcmp(). This is dangerous, since if + the prototype ever slightly differs from the implementation for any + reason, it could cause a variety of issues. + + This also causes warnings when building against a Linux 6.8 kernel + (which sets the -Wmissing-declarations and -Wmissing-prototypes + compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + We cannot change ct.c, since it is an external source file. To fix + this, instead move the prototype of ct_memcmp() to our stub + kernel-only roken.h header, which is included by ct.c. Make + krb5_locl.h also include roken.h when building kernel code, so all of + the ct_memcmp() callers also get the prototype. + + While we're here, add some informative comments and an include guard + to our previously-blank roken.h stub. + + Written in collaboration with cwills@sinenomine.net. + + Reviewed-on: https://gerrit.openafs.org/15620 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit be236069e9d26339ed5f9939965bca0dd3f8bf4e) + + Change-Id: I1112881938b0585263871f8f83d63b8909b12f0d + Reviewed-on: https://gerrit.openafs.org/15691 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 5d2c4a0a8ada4a87d7f39dc21dbce14b3b2a978f +Author: Cheyenne Wills +Date: Fri Jan 12 15:52:57 2024 -0700 + + afs: Add declaration for RXAFS_ResidencyCmd() + + The function RXAFS_ResidencyCmd() is 'manually' defined within the + afsint.xg, so a prototype for the function is not defined. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Add a prototype for RXAFS_ResidencyCmd + + There are no functional changes with this commit + + The function RXAFS_ResidencyCmd() was introduced with commit: + 'rename-residency-from-mrafs-to-osd-20090427' (8655541d1e) + + Reviewed-on: https://gerrit.openafs.org/15619 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 1d6cfbc5f627abf3808aae97afb72662301483b5) + + Change-Id: I42d0868b83e119b0c3348a3af8aaf5961c040bb2 + Reviewed-on: https://gerrit.openafs.org/15690 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 73844a4939a7b8198bf11d4dcbce9e28b621bd11 +Author: Cheyenne Wills +Date: Thu Feb 8 16:10:57 2024 -0700 + + afs: Remove afs_DbgDisconFiles() + + The function afs_DbgDisconFiles() is not referenced anywhere within the + source tree. + + Remove the function afs_DbgDisconFiles(). + + The commit: 'disconnected-rw-20080922' (433afd4779) introduced + afs_DbgDisconFiles(), but the function was never used. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15640 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 32bb90047782f41df521bba5ab4aba8b4ed34203) + + Change-Id: I61d06515845dbb18a370f7856285596514242e99 + Reviewed-on: https://gerrit.openafs.org/15689 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit be8001f1d64a2d9da4fdaeff59fdc40e205d4526 +Author: Cheyenne Wills +Date: Thu Feb 8 12:22:13 2024 -0700 + + afs: Remove SRXAFSCB_FetchData/StoreData + + Commit 'client-64bit-file-size-support-20011031' (971b18bc42) introduced + the RPC functions SRXAFSCB_FetchData() and SRXAFSCB_StoreData with RPC + numbers of 65536 and 65537 respectively. + + Commit 'more-64bit-file-size-support-20011031' (c5b1a3775f) removed the + references from afscbint.xg, but did not remove the actual code. The + 65536 RPC number was reassigned to SRXAFSCB_GetCE64, and the commit: + 'This is mostly a rewrite of src/afs/afs_cell.c, and associated changes' + (629d08065) assigned the 65537 RPC to SRXAFSCB_GetCellByNum. + + Remove the 2 functions since there are no references other than the + prototype in afs_prototypes.h. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + Reviewed-on: https://gerrit.openafs.org/15639 + Reviewed-by: Andrew Deason + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 379f7fc51d411990189ec28e48c91edc87d76120) + + Change-Id: I1a3539227d22e6df89d78245634dfeb14943035a + Reviewed-on: https://gerrit.openafs.org/15688 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit bb7eaafb2e87d313eeb0a7bedebe2aa7a797b005 +Author: Cheyenne Wills +Date: Fri Jan 12 08:56:31 2024 -0700 + + afs: Remove DFlushDCache() + + The function DFlushDcache() is not referenced anywhere within the + source tree. + + Remove the function DFlushDCache(). + + The commit: 'disconnected-shadow-directory-fixes-20090121' (4045f3d535) + removed the code reference to DFlushDCache() and the commit: + "dir: Prototype and function name cleanup" (5ad1e6cb90) removed the + function prototype. The function was introduced in the commit: + "disconnected-flush-before-shadowing-20090119" (e1cc987ea5). + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + "Makefile.extrawarn: turn on missing-prototypes globally" (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15615 + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 432ac5810e51bb5bb2cf1df0bfebc64d1c4d7a39) + + Change-Id: Ib8ab79c76c633632215e02235f47fdb1d744e721 + Reviewed-on: https://gerrit.openafs.org/15684 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit bd2828f1ab4c88b95a5d075e29a942922aa86dba +Author: Cheyenne Wills +Date: Fri Jan 12 09:28:02 2024 -0700 + + afs: Remove dummy_PSetAcl() + + The function dummy_PSetAcl() is not referenced anywhere within the + source tree. + + Remove the function dummy_PSetAcl(). + + The commit: 'doxygen-comments-20081010' (4b72f8765c) + introduced the function, but dummy_PSetAcl() has never been referenced + or defined within a header file. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15618 + Reviewed-by: Benjamin Kaduk + Tested-by: Benjamin Kaduk + (cherry picked from commit 05ca98687d882c72915e91430e29a4f2a36c502c) + + Change-Id: Ie4420a365e07d2d8564530e004df75330e86bea5 + Reviewed-on: https://gerrit.openafs.org/15687 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit cc8053e86eef75bff308e7606f2618e9fdc4ec5d +Author: Cheyenne Wills +Date: Fri Jan 12 09:13:27 2024 -0700 + + afs: Remove afs_osi_UnmaskUserLoop() + + The function afs_osi_UnmaskUserLoop() is not referenced anywhere within + the source tree. + + Remove the function afs_osi_UnmaskUserLoop(). + + The commit: 'darwin-afsdb-handler-signal-mask-20040728' (9728182c00) + introduced the function, but afs_osi_UnmaskUserLoop() has never been + referenced or defined within a header file. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Reviewed-on: https://gerrit.openafs.org/15617 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 587cfce29cb4e014e5b8d96e0433c5e7d2c6729a) + + Change-Id: I0fe91a41e8f00773cb1d5976a8c3e39e4415f6bc + Reviewed-on: https://gerrit.openafs.org/15686 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 4881af8e3cf3f7d09670ba4b5bb9b644a329530d +Author: Cheyenne Wills +Date: Fri Jan 12 09:09:39 2024 -0700 + + afs: Remove afs_MemExtendEntry() + + The function afs_MemExtendEntry() is not referenced anywhere within + the source tree. + + Remove the function afs_MemExtendEntry(). + + The commit: 'memcache: add extend-entry function' (f821c7e5c8) + introduced the function, but afs_MemExtendEntry() has never been + referenced or defined within a header file. + + This function is flagged due to a missing prototype when building + against a Linux 6.8 kernel (which sets the -Wmissing-declarations and + -Wmissing-prototypes compiler flags as default). Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f). + + When building against a kernel with CONFIG_WERROR=y, the build fails. + + Note, afsMemExtendedEntry() was a wrapper for the function + _afs_MemExtendedEntry(), which is still used. + + Reviewed-on: https://gerrit.openafs.org/15616 + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + (cherry picked from commit eab2a4ae758876bb7547d289f936f9cfc4227cf5) + + Change-Id: I37f241a6df33ab15249c6708d5ca820353c8b413 + Reviewed-on: https://gerrit.openafs.org/15685 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit ef7b8c578790d84c89f09c3236f1718725770e75 +Author: Cheyenne Wills +Date: Wed Feb 7 14:51:23 2024 -0700 + + cf: Add function prototypes for linux conftest + + The Linux 6.8 commit: + 'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f) + + added the compiler flags -Wmissing-declarations and -Wmissing-prototypes + as defaults for all kernel modules builds. This change causes configure + to fail for various Linux kernel tests. + + Update the template used to create the conftest.c file to provide a + function declaration for conftest(). + + Use a 'static' attribute when defining functions used within tests. + + Note: 2 configure tests (LINUX_INIT_WORK_AS_DATA and + LINUX_IOP_CREATE_TAKES_MODE_T) defined nested functions. Relocate the + nested functions to outside the body of conftest() to avoid compiler + errors due to nested function definitions. + + Reviewed-on: https://gerrit.openafs.org/15614 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 1440843b80e28db908bd8c264b8adbfb2c95b4d9) + + Change-Id: I38acb7b0cb08dec8e9bca5f3792fbf981884a74c + Reviewed-on: https://gerrit.openafs.org/15683 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 05ac6149f2f7998b6110c403d26757151b8e8ffe +Author: Mark Vitale +Date: Thu Mar 11 15:36:54 2021 -0500 + + afs: remove dead ICL (fstrace) code + + The ICL code (afs/afs_icl.c) which supports fstrace includes a number of + functions that have been dead code since the original IBM code import. + Some of these seem to have been intended to support fine-grained event + tracing, but the implementation was never completed. + + Remove the dead code. No functional change is incurred by this commit. + + Reviewed-on: https://gerrit.openafs.org/14555 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit ba58d9912cff07a6f2af7275017cf70115f1a88d) + + Change-Id: Ic0a6d5dac200e7e130fa8df66005bdaf291cf088 + Reviewed-on: https://gerrit.openafs.org/15682 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 9f052c137d1184a783c8ac3182c3544b275484f5 +Author: Andrew Deason +Date: Sat Jan 9 12:50:03 2021 -0600 + + afs: Remove SRXAFSCB_GetDE + + The GetDE RPC has been commented out from afscbint.xg effectively + since it was introduced, but we still define the SRXAFSCB_GetDE server + stub for it. + + This is useless, but also potentially dangerous, since the stub + routine just returns success, without populating the output arguments. + One of the output arguments is a string, and so if this RPC is + actually run, the rxgen-generated server code will try to xdr_string() + that string. Since we never set it to anything, this will result in + xdr_string trying to dereference a NULL pointer. + + None of this actually happens currently, since the GetDE RPC is + commented out. But to avoid the above situation if it's ever + uncommented, remove the useless SRXAFSCB_GetDE function. + + Reviewed-on: https://gerrit.openafs.org/14488 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 444a971edc47c34efbefed6e332ee6e843ae072b) + + Change-Id: I83846d79ce3143571923cb6023075620091f093d + Reviewed-on: https://gerrit.openafs.org/15681 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk + +commit 1e1bf8ebcd3c18b05326cd7b26a471db804aeaeb +Author: Andrew Deason +Date: Tue Jul 24 23:22:01 2018 -0500 + + LINUX: Minor osi_vfsop.c cleanup + + - Fix the formatting on afs_mount/afs_get_sb definitions + + - Declare a couple of functions static that are not referenced outside + of this file + + Reviewed-on: https://gerrit.openafs.org/13282 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit fa15fbda0aa0c3810695d9b867d3258b60e76b7c) + + Change-Id: I8a32475bf2ddb9c7206aef679947021925697c5a + Reviewed-on: https://gerrit.openafs.org/15680 + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Tested-by: Benjamin Kaduk + Reviewed-by: Benjamin Kaduk + +commit fca6fd911e493a344c040a95ea4ab820e2828802 +Author: Andrew Deason +Date: Thu Jun 28 12:50:52 2018 -0500 + + afs: Make afs_AllocDCache static + + Nothing using afs_AllocDCache outside of afs_dcache.c. Declare the + function static, to ensure that nobody else uses it, and to maybe + allow for more compiler optimization. + + Reviewed-on: https://gerrit.openafs.org/13226 + Tested-by: BuildBot + Reviewed-by: Benjamin Kaduk + (cherry picked from commit 4ab70de9641807bd06056f0c1ac79550453b9574) + + Change-Id: I6fd9e31c4b2e862174402f731a77c91599893223 + Reviewed-on: https://gerrit.openafs.org/15679 + Tested-by: BuildBot + Reviewed-by: Andrew Deason + Reviewed-by: Michael Meffie + Reviewed-by: Benjamin Kaduk diff --git a/README.SUSE.openafs b/README.SUSE.openafs new file mode 100644 index 0000000..7a9e58b --- /dev/null +++ b/README.SUSE.openafs @@ -0,0 +1,109 @@ +Here is described installation of openafs server and client on SUSE linux. + +This text is based on AFS Quick Start Guide. The differences are: + - paths are adapted to SUSE installation + - uses Kerberos 5 authentization + +Complete OpenAFS documentation is at http://openafs.org + +SERVER SETUP +============ + +# choose an AFS cell name and a Kerberos realm name, the simplest setup is: +# - AFS cell name equal to DNS domain name +# - Kerberos realm name equal to uppercase AFS cell name + +# create a partition for AFS filesystem and mount it under /vicepa + +# start bosserver +/usr/sbin/bosserver -noauth & + +# setup basic cell information +bos setcellname your.afs.server your.cell.name -noauth + +# setup database servers processes +bos create your.afs.server ptserver simple /usr/lib/openafs/ptserver -cell your.cell.name -noauth +bos create your.afs.server buserver simple /usr/lib/openafs/buserver -cell your.cell.name -noauth +bos create your.afs.server vlserver simple /usr/lib/openafs/vlserver -cell your.cell.name -noauth + +# If you want to use the old afs authentization (not recommended): +# bos addkey your.afs.server -kvno 0 -cell your.cell.name -noauth + +# Authentication against heimdal krb5 server + +# Here you can set up kerberos realm if you dont have any, +# see documentation in package krb5-doc + +# restart kdc +rckrb5kdc restart +rckrb524d restart + +# create afs principal in kerberos database +kadmin.local + add_principal afs@YOUR.KERBEROS.REALM # create afs key, use random password + ktremove -k /etc/krb5.keytab afs all # delete old afs key if any + + # export the afs key to external keytab + # note the key version number (kvno), you will need it later for asetkey + ktadd -e des-cbc-crc:v4 afs@YOUR.KERBEROS.REALM + + add_principal admin@YOUR.KERBEROS.REALM # create admin principal + + quit # end kadmin.local + +rm /etc/openafs/server/KeyFile # delete the old afs key file if any + +# convert the afs key from /etc/krb5.keytab to /etc/openafs/server/KeyFile +# use displayed by ktadd +asetkey add /etc/krb5.keytab afs + +# give admin the permissions to control bosserver +bos adduser your.afs.server admin -cell your.cell.name -noauth + +# add admin to group system:administrators +pts createuser -name admin -id -cell your.cell.name -noauth +pts adduser admin system:administrators -cell your.cell.name -noauth + +# restart bos server +bos restart your.afs.server -all -cell your.cell.name -noauth + +# create fileserver processes +bos create your.afs.server fs fs /usr/lib/openafs/fileserver /usr/lib/openafs/volserver /usr/lib/openafs/salvager -cell your.cell.name -noauth + +# create root volume +vos create your.afs.server /vicepa root.afs -cell your.cell.name -noauth + +# restart bosserver with security enabled +rcopenafs-fileserver restart + + +CLIENT SETUP +============ + +IMPORTANT: Unfortunately, openafs client for linux kernel 2.6 has not reached +stable state yet. There may be problems. + +edit /etc/sysconfig/openafs-client, set at least + REGENERATE_CELL_INFO="yes" + THIS_CELL="your.cell.name" + THIS_CELL_SERVER="your.afs.server" + + If you are configuring first afs server and the volume root.cell does not + exist yet, you have to set also DYNROOT=no. After finishing the server + installaton it is better to change DYNROOT back to 'yes' as the client + behaves better on startup with network outage. + +# start afs client +rcopenafs-client start + +# login as admin +kinit admin +aklog -d # convert Kerberos 5 ticket to AFS token + +To enable transparent login via pam, install package pam_krb5 +and add 'call_modules=krb5afs' to /etc/security/pam_unix2.conf +For details look at pam_krb5afs(5), pam_krb5afs(8) and pam_unix2(8) manpages. + +Now you have working afs server and client. You can continue with chapter +"Configuring the Top Levels of the AFS Filespace" of AFS Quick Start Guide. + diff --git a/RELNOTES-stable-1_8_x b/RELNOTES-stable-1_8_x new file mode 100644 index 0000000..bc345bf --- /dev/null +++ b/RELNOTES-stable-1_8_x @@ -0,0 +1,104 @@ +Preface: +======== + +This is the Release-Notes of the last official release. +However, +this version is based on the git branch "openafs-stable-1_8_x" +and thus has additional changes beside the ones for 1.8.11. +The reason for this is the compatibility with current Linux-Kernels. +The ChangeLog gives you all commits applied since then. +The versioning-scheme of these packages is: openafs-$LAST_OFFICIAL_RELEASE.git$DATE_OF_NEWEST_COMMIT + +The package-maintainer. + + + User-Visible OpenAFS Changes + +OpenAFS 1.8.11 + + All platforms + + * Check Rx RPC call number in incoming packets before allocating new + RPC calls to avoid re-running RPC calls when spurious packets are + received (15562) + + * Fix memory leaks (15516 15517) + + * Fix build failure when building with _FORTIFY_SOURCE (15518 15519) + + * Fix build failures when building with the clang compiler (15540 15541 + 15547 15548) + + * Improve error detection in OpenAFS directories for both clients + and servers (15544 15545 15546) + + * Add a Makefile target to build Red Hat RPM packages (15514) + + * Add support for custom version numbers in Red Hat RPM packages (15513) + + All server platforms + + * Fix File Server and Protection Server crashes due to recursive thread + lock bug (15609) + + * Fix fileserver crashes during startup (15509 15543) + + * The bosserver no longer creates the client configuration directory and + "ThisCell" and "CellServDB" symlinks. The "vos", "pts", and "bos" + commands now read cell configuration from the server cell configuration + directory when the client cell configuration directory is not present. + This change allows server packaging to be independent of client packaging + and removes the need for client configuration artifacts on hosts running + server processes only (15510 15511 15512) + + * Print a warning in the volserver log when an older version of a volume + is restored over an existing volume, unless the volume was restored with + "-overwrite full" (15531) + + * Print a warning in the bosserver log when the bosserver was not started + in restricted mode (15537) + + * Avoid unbounded string copies when looking up volumes by name in + the vlserver (15538) + + * Fix off-by-one directory entry name size check in salvager (15598) + + All client platforms + + * Updated the CellServDB to the latest version from grand.central.org + (15603) + + All UNIX/Linux client platforms + + * Fix PAG object memory leak which can degrade performance (15506) + + * Improve kernel memory reclamation after accessing a large number of + files (15536) + + * Improve cache corruption detection and refetch cache entries + when cache entry size mismatches are detected (15532 15533 15535) + + * Fix panic in user-space client (libuafs, Fuse client) (15539) + + Linux clients + + * Add support for Linux 6.7 (15600) + + * Add support for Linux 6.6 (15575 15589 15590) + + * Add support for Linux 6.5 (15520 15521 15522 15523 15558) + + * Fix BUG when directory entry names are longer than 16 characters. + Affects Linux 6.5 or higher built with GCC 13 or higher (15599) + + * Invalidate Linux VFS dentry caches in the AFS filesystem when running + "fs flush*" commands. This reduces the need to drop Linux VFS caches + by writing to the "/proc/sys/vm/drop_caches" file when + troubleshooting (15515) + + * Fix build failures (15507 15508 15596 15542 15549) + + macOS + + * Add support for MacOS 14 ("Sonoma") (15602) + diff --git a/afs3-bos.xml b/afs3-bos.xml new file mode 100644 index 0000000..7e7ea53 --- /dev/null +++ b/afs3-bos.xml @@ -0,0 +1,6 @@ + + + afs3-bos + OpenAFS basic overseer process (bosserver) + + diff --git a/afs3-callback.xml b/afs3-callback.xml new file mode 100644 index 0000000..05ae5a2 --- /dev/null +++ b/afs3-callback.xml @@ -0,0 +1,6 @@ + + + afs3-callback + OpenAFS callbacks to cache managers (clients) + + diff --git a/afs3-fileserver.xml b/afs3-fileserver.xml new file mode 100644 index 0000000..46178d9 --- /dev/null +++ b/afs3-fileserver.xml @@ -0,0 +1,6 @@ + + + afs3-fileserver + OpenAFS file server + + diff --git a/afs3-prserver.xml b/afs3-prserver.xml new file mode 100644 index 0000000..8c1de04 --- /dev/null +++ b/afs3-prserver.xml @@ -0,0 +1,6 @@ + + + afs3-prserver + OpenAFS users and groups database + + diff --git a/afs3-rmtsys.xml b/afs3-rmtsys.xml new file mode 100644 index 0000000..2e9fb94 --- /dev/null +++ b/afs3-rmtsys.xml @@ -0,0 +1,6 @@ + + + afs3-rmtsys + OpenAFS remote cache manager service + + diff --git a/afs3-update.xml b/afs3-update.xml new file mode 100644 index 0000000..98bcf6e --- /dev/null +++ b/afs3-update.xml @@ -0,0 +1,6 @@ + + + afs3-update + OpenAFS server-to-server updater + + diff --git a/afs3-vlserver.xml b/afs3-vlserver.xml new file mode 100644 index 0000000..cf7c181 --- /dev/null +++ b/afs3-vlserver.xml @@ -0,0 +1,6 @@ + + + afs3-vlserver + OpenAFS volume location database (VLDB) + + diff --git a/afs3-volser.xml b/afs3-volser.xml new file mode 100644 index 0000000..467d031 --- /dev/null +++ b/afs3-volser.xml @@ -0,0 +1,6 @@ + + + afs3-volser + OpenAFS volume managment server (volserver) + + diff --git a/d8b56f21994ce66d8daebb7d69e792f34c1a19ed b/d8b56f21994ce66d8daebb7d69e792f34c1a19ed new file mode 100644 index 0000000..11fc868 --- /dev/null +++ b/d8b56f21994ce66d8daebb7d69e792f34c1a19ed @@ -0,0 +1,76 @@ +commit d8b56f21994ce66d8daebb7d69e792f34c1a19ed +Author: Cheyenne Wills +Date: Wed Jun 12 14:24:01 2024 -0600 + + afs: avoid empty-body warning + + With Linux 6.10 commit: + "kbuild: turn on -Wextra by default" (f5982cceb3) + there are additional compiler warnings that can turn + into build errors when --enable-checking is used. + + "error: suggest braces around empty body in an ‘if’ + statement [-Werror=empty-body]" + + when there is an empty body, e.g. + if (foo) + ; + + Most cases are due to the macros afs_PutCell and afs_PutServer which are + "empty" macros. + + Update the afs_PutCell and afs_PutServer macros so they expand to + do {} while(0) + + Add a comment at the definitions for afs_PutCell and afs_PutServer to + document the reason for keeping them. + + Add braces to conditionals that have an empty body. + + There are no functional changes with this commit. + + Change-Id: I359723eb6a19d1c78449902b4f477da131b0fa18 + Reviewed-on: https://gerrit.openafs.org/15766 + Reviewed-by: Michael Meffie + Tested-by: BuildBot + Reviewed-by: Andrew Deason + +diff --git a/src/afs/afs.h b/src/afs/afs.h +index 4bde047e8..621a8a517 100644 +--- a/src/afs/afs.h ++++ b/src/afs/afs.h +@@ -349,7 +349,8 @@ struct cell_alias { + char *cell; + }; + +-#define afs_PutCell(cellp, locktype) ++/* In case someday a counterpart for afs_GetCell is needed */ ++#define afs_PutCell(cellp, locktype) do {} while(0) + + /* the unixuser flag bit definitions */ + #define UHasTokens 1 /* are the st and ct fields valid (ever set)? */ +@@ -537,7 +538,8 @@ struct server { + afs_int32 capabilities; + }; + +-#define afs_PutServer(servp, locktype) ++/* In case someday a counterpart for afs_GetServer is needed */ ++#define afs_PutServer(servp, locktype) do {} while(0) + + /* structs for some pioctls - these are (or should be) + * also in venus.h +diff --git a/src/afs/afs_cbqueue.c b/src/afs/afs_cbqueue.c +index 2dd633588..11e3aa3f1 100644 +--- a/src/afs/afs_cbqueue.c ++++ b/src/afs/afs_cbqueue.c +@@ -139,7 +139,9 @@ afs_DequeueCallback(struct vcache *avc) + debugvc = avc; + if (avc->callsort.prev) { + QRemove(&(avc->callsort)); +- } else; /* must have got dequeued in a race */ ++ } else { ++ /* must have got dequeued in a race */ ++ } + + return; + } /* afs_DequeueCallback */ diff --git a/handle_backports.diff b/handle_backports.diff new file mode 100644 index 0000000..dfe4155 --- /dev/null +++ b/handle_backports.diff @@ -0,0 +1,11 @@ +--- a/src/afs/LINUX/osi_vnodeops.c ++++ b/src/afs/LINUX/osi_vnodeops.c +@@ -971,7 +971,7 @@ + # else + .splice_write = generic_file_splice_write, + # endif +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0) ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,0) + .splice_read = filemap_splice_read, + # else + .splice_read = generic_file_splice_read, diff --git a/kernel-source.build-modules.sh b/kernel-source.build-modules.sh new file mode 100644 index 0000000..55a308c --- /dev/null +++ b/kernel-source.build-modules.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +if [ $# != 1 ]; then + echo building a openafs-kernel module for the running kernel + echo Need one of: build build_debug install + exit 1 +fi + +rootdir=`cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd` + +if [ -z "$rootdir" ]; then + echo "failed to determine the dirname of this script" + exit 1 +fi + +cd "$rootdir" + +LOGFILE=libafs_tree/build.log +kernel_flavour=`uname -r | awk -F- '{print $NF}'` +kernel_version=`uname -r | sed "s/-$kernel_flavour//"` +arch=`uname -m` + +suse_flavour=`cat /etc/os-release | grep PRETTY_NAME | awk -F '=' '{print $2}'` +suse_version=`cat /etc/os-release | grep VERSION_ID | awk -F '=' '{print $2}'` + +echo This SUSE is version $suse_version of flavour $suse_flavour +echo you are running the kernel \"$kernel_version\" of flavour \"$kernel_flavour\" on \"$arch\" +echo all output is saved into $LOGFILE + +if [ $1 == "build_debug" ]; then + DEBUG_OPT="--enable-debug-kernel" +fi + +if [ $1 == "build" -o $1 == "build_debug" ]; then + cd libafs_tree + echo calling configure... + ./configure --with-linux-kernel-headers=/usr/src/linux/ --with-linux-kernel-build=/usr/src/linux-obj/$arch/$kernel_flavour $DEBUG_OPT > build.log 2>&1 + if [ $? != 0 ]; then + echo configure failed! See $LOGFILE for details + exit $? + fi + echo calling make + make >> build.log 2>&1 + if [ $? != 0 ]; then + echo make failed! See $LOGFILE for details + exit $? + fi + echo + echo build sucessfull! + echo Now run $0 install to install the kernel-modules + exit 0 +fi + + +if [ $1 == "install" ]; then + module_files="afspag.ko libafs.ko" + build_dir=libafs_tree/src/libafs/MODLOAD-$kernel_version-$kernel_flavour-MP/ + install_dir=/lib/modules/$kernel_version-$kernel_flavour + echo installing kernel-modules into + for mod in $module_files; do + cp -v $build_dir/$mod $install_dir/$mod + done + /sbin/depmod -a +fi diff --git a/kmp_only.files b/kmp_only.files new file mode 100644 index 0000000..105656b --- /dev/null +++ b/kmp_only.files @@ -0,0 +1,99 @@ +/usr/bin/aklog +/usr/bin/fs +/usr/bin/klog.krb5 +/usr/bin/pagsh +/usr/bin/pagsh.krb +/usr/bin/tokens +/usr/bin/tokens.krb +/usr/bin/unlog +/usr/bin/up +/usr/lib/firewalld/services/afs3-callback.xml +/usr/lib/firewalld/services/afs3-rmtsys.xml +/usr/sbin/afsd +/usr/sbin/fstrace +/usr/share/man/man1/aklog.1 +/usr/share/man/man1/copyauth.1 +/usr/share/man/man1/fs.1 +/usr/share/man/man1/fs_apropos.1 +/usr/share/man/man1/fs_bypassthreshold.1 +/usr/share/man/man1/fs_checkservers.1 +/usr/share/man/man1/fs_checkvolumes.1 +/usr/share/man/man1/fs_chgrp.1 +/usr/share/man/man1/fs_chown.1 +/usr/share/man/man1/fs_cleanacl.1 +/usr/share/man/man1/fs_copyacl.1 +/usr/share/man/man1/fs_cscpolicy.1 +/usr/share/man/man1/fs_discon.1 +/usr/share/man/man1/fs_diskfree.1 +/usr/share/man/man1/fs_examine.1 +/usr/share/man/man1/fs_exportafs.1 +/usr/share/man/man1/fs_flush.1 +/usr/share/man/man1/fs_flushall.1 +/usr/share/man/man1/fs_flushmount.1 +/usr/share/man/man1/fs_flushvolume.1 +/usr/share/man/man1/fs_getcacheparms.1 +/usr/share/man/man1/fs_getcalleraccess.1 +/usr/share/man/man1/fs_getcellstatus.1 +/usr/share/man/man1/fs_getclientaddrs.1 +/usr/share/man/man1/fs_getcrypt.1 +/usr/share/man/man1/fs_getfid.1 +/usr/share/man/man1/fs_getserverprefs.1 +/usr/share/man/man1/fs_getverify.1 +/usr/share/man/man1/fs_help.1 +/usr/share/man/man1/fs_listacl.1 +/usr/share/man/man1/fs_listaliases.1 +/usr/share/man/man1/fs_listcells.1 +/usr/share/man/man1/fs_listquota.1 +/usr/share/man/man1/fs_lsmount.1 +/usr/share/man/man1/fs_memdump.1 +/usr/share/man/man1/fs_messages.1 +/usr/share/man/man1/fs_minidump.1 +/usr/share/man/man1/fs_mkmount.1 +/usr/share/man/man1/fs_monitor.1 +/usr/share/man/man1/fs_newalias.1 +/usr/share/man/man1/fs_newcell.1 +/usr/share/man/man1/fs_nukenfscreds.1 +/usr/share/man/man1/fs_precache.1 +/usr/share/man/man1/fs_quota.1 +/usr/share/man/man1/fs_rmmount.1 +/usr/share/man/man1/fs_rxstatpeer.1 +/usr/share/man/man1/fs_rxstatproc.1 +/usr/share/man/man1/fs_setacl.1 +/usr/share/man/man1/fs_setcachesize.1 +/usr/share/man/man1/fs_setcbaddr.1 +/usr/share/man/man1/fs_setcell.1 +/usr/share/man/man1/fs_setclientaddrs.1 +/usr/share/man/man1/fs_setcrypt.1 +/usr/share/man/man1/fs_setquota.1 +/usr/share/man/man1/fs_setserverprefs.1 +/usr/share/man/man1/fs_setverify.1 +/usr/share/man/man1/fs_setvol.1 +/usr/share/man/man1/fs_storebehind.1 +/usr/share/man/man1/fs_sysname.1 +/usr/share/man/man1/fs_trace.1 +/usr/share/man/man1/fs_uuid.1 +/usr/share/man/man1/fs_whereis.1 +/usr/share/man/man1/fs_whichcell.1 +/usr/share/man/man1/fs_wscell.1 +/usr/share/man/man1/klog.krb5.1 +/usr/share/man/man1/pagsh.1 +/usr/share/man/man1/pagsh.krb.1 +/usr/share/man/man1/tokens.1 +/usr/share/man/man1/tokens.krb.1 +/usr/share/man/man1/unlog.1 +/usr/share/man/man1/up.1 +/usr/share/man/man5/afs_cache.5 +/usr/share/man/man5/afszcm.cat.5 +/usr/share/man/man5/cacheinfo.5 +/usr/share/man/man8/afsd.8 +/usr/share/man/man8/fstrace.8 +/usr/share/man/man8/fstrace_apropos.8 +/usr/share/man/man8/fstrace_clear.8 +/usr/share/man/man8/fstrace_dump.8 +/usr/share/man/man8/fstrace_help.8 +/usr/share/man/man8/fstrace_lslog.8 +/usr/share/man/man8/fstrace_lsset.8 +/usr/share/man/man8/fstrace_setlog.8 +/usr/share/man/man8/fstrace_setset.8 +/usr/share/openafs/C/afszcm.cat + diff --git a/logrotate.openafs-server b/logrotate.openafs-server new file mode 100644 index 0000000..cdae1f0 --- /dev/null +++ b/logrotate.openafs-server @@ -0,0 +1,11 @@ +/var/log/openafs/*Log { + daily + compress + dateext + rotate 7 + olddir /var/log/openafs/old + missingok + notifempty + create 640 root root + copytruncate +} diff --git a/openafs-client.service b/openafs-client.service new file mode 100644 index 0000000..30afaef --- /dev/null +++ b/openafs-client.service @@ -0,0 +1,21 @@ +[Unit] +Description=OpenAFS Client +Wants=network-online.target +After=syslog.target network-online.target +Before=remote-fs.target + +[Service] +Type=forking +RemainAfterExit=true +EnvironmentFile=/etc/sysconfig/openafs-client +ExecStartPre=/sbin/modprobe libafs +ExecStart=/usr/sbin/afsd $AFSD_ARGS +ExecStartPost=/usr/bin/fs sysname $SYSNAME +ExecStartPost=/usr/bin/fs setcrypt $CRYPT +ExecStop=/usr/bin/umount /afs +ExecStop=/usr/sbin/afsd -shutdown +ExecStop=/sbin/rmmod libafs +KillMode=none + +[Install] +WantedBy=multi-user.target remote-fs.target diff --git a/openafs-client.service.allow_unsupported b/openafs-client.service.allow_unsupported new file mode 100644 index 0000000..f68bdab --- /dev/null +++ b/openafs-client.service.allow_unsupported @@ -0,0 +1,20 @@ +[Unit] +Description=OpenAFS Client +Wants=network-online.target +After=syslog.target network-online.target +Before=remote-fs.target + +[Service] +Type=forking +RemainAfterExit=true +EnvironmentFile=/etc/sysconfig/openafs-client +ExecStartPre=/sbin/modprobe libafs --allow-unsupported +ExecStart=/usr/sbin/afsd $AFSD_ARGS +ExecStartPost=/usr/bin/fs sysname $SYSNAME +ExecStartPost=/usr/bin/fs setcrypt $CRYPT +ExecStop=/usr/bin/umount /afs +ExecStop=/usr/sbin/afsd -shutdown +ExecStop=/sbin/rmmod libafs + +[Install] +WantedBy=multi-user.target remote-fs.target diff --git a/openafs-fuse-client.service b/openafs-fuse-client.service new file mode 100644 index 0000000..3a339e4 --- /dev/null +++ b/openafs-fuse-client.service @@ -0,0 +1,19 @@ +[Unit] +Description=OpenAFS Client Service +Wants=network-online.target +After=syslog.target network-online.target +Before=remote-fs.target + +[Service] +Type=forking +RemainAfterExit=true +EnvironmentFile=/etc/sysconfig/openafs-fuse-client +ExecStart=/usr/sbin/afsd.fuse $AFSD_ARGS +ExecStartPost=/usr/bin/fs sysname $SYSNAME +ExecStartPost=/usr/bin/fs setcrypt $CRYPT +ExecStop=/usr/bin/umount /afs +ExecStop=/usr/sbin/afsd.fuse -shutdown +KillMode=none + +[Install] +WantedBy=multi-user.target remote-fs.target diff --git a/openafs-server.service b/openafs-server.service new file mode 100644 index 0000000..c33728f --- /dev/null +++ b/openafs-server.service @@ -0,0 +1,11 @@ +[Unit] +Description=OpenAFS Server +After=syslog.target network.target + +[Service] +EnvironmentFile=-/etc/sysconfig/openafs-server +ExecStart=/usr/sbin/bosserver -nofork $BOSSERVER_ARGS +ExecStop=/usr/sbin/bos shutdown localhost -wait -localauth + +[Install] +WantedBy=multi-user.target diff --git a/openafs-stable-1_8_x-doc.tar.bz2 b/openafs-stable-1_8_x-doc.tar.bz2 new file mode 100644 index 0000000..777a3c4 --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c484ebfcedae2f5c3f7fe3ea5b0b02d7a05c0490ea75c80d255b1fe6e336fd +size 3370191 diff --git a/openafs-stable-1_8_x-doc.tar.bz2.md5 b/openafs-stable-1_8_x-doc.tar.bz2.md5 new file mode 100644 index 0000000..7ec416b --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2.md5 @@ -0,0 +1 @@ +0fa436de034023841082afa08ab08bdf /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 diff --git a/openafs-stable-1_8_x-doc.tar.bz2.sha256 b/openafs-stable-1_8_x-doc.tar.bz2.sha256 new file mode 100644 index 0000000..b451957 --- /dev/null +++ b/openafs-stable-1_8_x-doc.tar.bz2.sha256 @@ -0,0 +1 @@ +20c484ebfcedae2f5c3f7fe3ea5b0b02d7a05c0490ea75c80d255b1fe6e336fd /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 diff --git a/openafs-stable-1_8_x-src.tar.bz2 b/openafs-stable-1_8_x-src.tar.bz2 new file mode 100644 index 0000000..d681f72 --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7afd3cab43d1dd6078c944cfb97ca2aee622187a5443b97166a3a25384fb01a +size 14596525 diff --git a/openafs-stable-1_8_x-src.tar.bz2.md5 b/openafs-stable-1_8_x-src.tar.bz2.md5 new file mode 100644 index 0000000..d5647b2 --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2.md5 @@ -0,0 +1 @@ +63de2df7b8b37f9305a12024ed400fb6 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 diff --git a/openafs-stable-1_8_x-src.tar.bz2.sha256 b/openafs-stable-1_8_x-src.tar.bz2.sha256 new file mode 100644 index 0000000..5d69ca5 --- /dev/null +++ b/openafs-stable-1_8_x-src.tar.bz2.sha256 @@ -0,0 +1 @@ +c7afd3cab43d1dd6078c944cfb97ca2aee622187a5443b97166a3a25384fb01a /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 diff --git a/openafs.CellAlias b/openafs.CellAlias new file mode 100644 index 0000000..83d3c83 --- /dev/null +++ b/openafs.CellAlias @@ -0,0 +1 @@ +openafs.org openafs diff --git a/openafs.SuidCells b/openafs.SuidCells new file mode 100644 index 0000000..473a0f4 diff --git a/openafs.ThisCell b/openafs.ThisCell new file mode 100644 index 0000000..c87b55d --- /dev/null +++ b/openafs.ThisCell @@ -0,0 +1 @@ +openafs.org diff --git a/openafs.cacheinfo b/openafs.cacheinfo new file mode 100644 index 0000000..374bb61 --- /dev/null +++ b/openafs.cacheinfo @@ -0,0 +1 @@ +/afs:/var/cache/openafs:102400 diff --git a/openafs.changes b/openafs.changes new file mode 100644 index 0000000..25d43d5 --- /dev/null +++ b/openafs.changes @@ -0,0 +1,910 @@ +------------------------------------------------------------------- +Wed Aug 14 06:46:15 UTC 2024 - Christof Hanke + +- update to latest git branch stable-1_8_x +- change version to openafs-1.8.12-g... since the new stable release is 1.8.12 +- apply intermediate patches for kernel 6.10 + * 03b280649f5e22ed74c217d7c98c3416a2fa9052: Linux-6.10: remove includes for asm/ia32_unistd.h + * 0f6a3a402f4a66114da9231032bd68cdc4dee7bc: Linux-6.10: Use filemap_alloc_folio when avail + * 658942f2791fad5e33ec7542158c16dfc66eed39: Linux-6.10: define a wrapper for vmalloc + * d8b56f21994ce66d8daebb7d69e792f34c1a19ed: afs: avoid empty-body warning + * 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7: Linux 6.10: Move 'inline' before func return type + +------------------------------------------------------------------- +Fri Jun 14 05:47:03 UTC 2024 - Christof Hanke + +- change source-code base to git branch stable-1_8_x + * required for keeping up with Linux kernel development. +- new versioning scheme: openafs-$LAST_OFFICIAL_RELEASE.git$DATE_OF_NEWEST_COMMIT +- add note in RELNOTES about this change +- update ChangeLog from git + +------------------------------------------------------------------- +Mon Feb 26 12:45:02 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Mon Jan 29 09:56:45 UTC 2024 - Christof Hanke + +- update to openafs-1.8.11~pre1 +- remove intermediate patches for newer Linux-kernels: + * fef2457.diff + * d15c7ab.diff + * 63801cf.diff + * 538f450.diff + * 6de0a64.diff + * 5b647bf.diff + * 6413fdb.diff + * 4f1d810.diff + +------------------------------------------------------------------- +Mon Dec 11 04:58:30 UTC 2023 - Christof Hanke + +- patch upstream patch fef2457.diff for 6.5 to handle backport by SUSE + * handle_backports.diff + +------------------------------------------------------------------- +Fri Nov 10 08:53:16 UTC 2023 - Christof Hanke + +- apply upstream-patches for kernel 6.6: + * 5b647bf.diff + * 6413fdb.diff + * 4f1d810.diff + +- replace upstream-patch for kernel 6.5 474750a.diff by correct commit + 6de0a64.diff for branch openafs-stable-1_8_x + + +------------------------------------------------------------------- +Mon Oct 2 07:29:50 UTC 2023 - Christof Hanke + +- apply upstream-patches for kernel 6.5: + * 63801cf.diff + * d15c7ab.diff + * fef2457.diff + * 538f450.diff + * 474750a.diff + +------------------------------------------------------------------- +Mon Jul 10 10:24:31 UTC 2023 - Christof Hanke + +- update to official openafs-1.8.10 +- remove obsolete patches: + * 7a3ad3bc.diff + * b885159.diff + * f6fbb85.diff + * 4cf7a9a.diff + +------------------------------------------------------------------- +Tue May 30 12:21:37 UTC 2023 - Christof Hanke + +- remove obsolete macro-call %{stop_on_removal} from spec-file + +------------------------------------------------------------------- +Mon May 15 06:48:21 UTC 2023 - Christof Hanke + +- apply upstream-patches for kernel 6.3: + * f6fbb85.diff + * 7a3ad3bc.diff + +------------------------------------------------------------------- +Thu Mar 2 14:01:53 UTC 2023 - Christof Hanke + +- apply patch from upstream for kernel 6.2: + * b885159.diff +- change BuildArch for subpackage kernel-source to noarch + +------------------------------------------------------------------- +Wed Jan 4 08:14:39 UTC 2023 - Christof Hanke + +- update to offical openafs-1.8.9 + * all changes as openafs-1.8.9pre2 + * fix possible DoS attack + +------------------------------------------------------------------- +Mon Dec 12 07:40:28 UTC 2022 - Christof Hanke + +- update to openafs-1.8.9pre2 + * Support mainline kernels up to 6.0 + * Support for building with more recent compilers + * some bugfixes, more see RELNOTES +- remove obsolete patches: + * 79f03c2.diff + +------------------------------------------------------------------- +Wed Oct 12 16:19:20 UTC 2022 - Christof Hanke + +- update to openafs-1.8.9pre1 +- remove obsolete patches: + * 05b722d.diff + * cc8edf7.diff + * 6348262.diff +- apply patch for kernel 6.0: + * 79f03c2.diff + + +------------------------------------------------------------------- +Tue Aug 16 09:54:58 UTC 2022 - Christof Hanke + +- update to current of upstream-branch openafs-stable-1_8_x +- apply patches for 15.9: + * 05b722d.diff 6348262.diff cc8edf7.diff +- remove patches now in openafs-stable-1_8_x + * fix_gcc_12_linux_5.18.diff + +------------------------------------------------------------------- +Wed Jun 22 16:13:18 UTC 2022 - Christof Hanke + +- apply patches adressing: + * Linux-5.17 and 5.18, gcc-11 and 12: fix_gcc_12_linux_5.18.diff +- remove patches from previous commit: + * a714e86.diff and 449d1fa.diff + * gcc-11.diff + +------------------------------------------------------------------- +Wed Apr 20 06:24:41 UTC 2022 - Christof Hanke + +- apply patches marked for upcoming release: + * kernel 5.17: a714e86.diff and 449d1fa.diff + * gcc-11: gcc-11.diff + +------------------------------------------------------------------- +Mon Mar 28 20:27:18 UTC 2022 - Christof Hanke + +- do not create client-package without KMP + +------------------------------------------------------------------- +Mon Feb 21 10:48:51 UTC 2022 - Christof Hanke + +- remove patch dir_layout.patch + this can be done via environment-variables +- replace openafs-1.8.x.ncurses6.patch with patch 4cf7a9a.diff. + 4cf7a9a.diff is coming from upstream and will be incorporated at some point. + +------------------------------------------------------------------- +Sun Jan 23 15:48:09 UTC 2022 - Christof Hanke + +- Update to new upstream release 1.8.8.1 + * Support mainline kernels 5.14, 5.15 and 5.16 +- remove local patch linux-kmp.patch: + * it supported mainline kernels only up to 5.15 + +------------------------------------------------------------------- +Mon Nov 29 15:08:46 UTC 2021 - Christof Hanke + +- re-add linux-kmp.patch. Required for 5.15 + +------------------------------------------------------------------- +Fri Oct 1 09:08:58 UTC 2021 - Guillaume GARDET + +- Fix %ifarch for 32-bit arm + +------------------------------------------------------------------- +Tue Aug 3 22:32:14 UTC 2021 - Christof Hanke + +- update to openafs version 1.8.8 +- remove linux-kmp.patch. Not required at the minute. + +------------------------------------------------------------------- +Thu Apr 29 07:01:26 UTC 2021 - Christof Hanke + +- add patches for kernel 5.12 to linux-kmp.patch + +------------------------------------------------------------------- +Thu Mar 4 14:57:26 UTC 2021 - Christof Hanke + +- add patches for kernel 5.11 to linux-kmp.patch + +------------------------------------------------------------------- +Mon Feb 22 16:38:07 UTC 2021 - Michael Meffie + +- fix building of perl module AFS::ukernel + +------------------------------------------------------------------- +Mon Feb 22 11:44:25 UTC 2021 - Matthias Gerstner + +- kernel-source.build-modules.sh: choose safe CWD while executing the build to + prevent files being created in unsafe locations. Use new SUSE naming + convention and rely on /etc/os-release, since /etc/SuSE-release no longer + exists. + +------------------------------------------------------------------- +Fri Feb 5 08:41:48 UTC 2021 - Christof Hanke + +- use stock 1.8.7 from openafs.org + * git-version might contain experimental code + * add linux-kmp.patch for newer kernels + +------------------------------------------------------------------- +Sat Jan 16 23:01:13 UTC 2021 - Christof Hanke + +- update to HEAD of git branch openafs-stable-1_8_x + * fix critical bug described in + https://lists.openafs.org/pipermail/openafs-info/2021-January/043026.html + * remove remove-get_ds-usage.patch + * remove add_arch_to_linux_kernel_make.patch + +------------------------------------------------------------------- +Mon Jan 11 10:01:15 UTC 2021 - Christof Hanke + +- cleanup spec-file + * do not include firewalld-stuff for SLE_12 + * use %ifarch instead of %if %{_arch} + * enable retpol line for TW x86_64 again + +------------------------------------------------------------------- +Mon Nov 2 09:20:37 UTC 2020 - Christof Hanke + +- update to HEAD of git branch openafs-stable-1_8_x + +------------------------------------------------------------------- +Mon Oct 12 15:15:08 UTC 2020 - Christof Hanke + +- add firewalld-configuration files +- enable loading of unsupported kernel-module on SLES15 + +------------------------------------------------------------------- +Mon Aug 17 12:49:33 UTC 2020 - Christof Hanke + +- update to HEAD of git branch openafs-stable-1_8_x + * kernel 5.8 not supported by 1.8.6 + and no official package-upates out yet. + +------------------------------------------------------------------- +Mon Aug 10 08:43:10 UTC 2020 - Christof Hanke + +- add patch remove-get_ds-usage.patch to fix building KMP on aarch64 + +------------------------------------------------------------------- +Wed Jul 1 08:53:44 UTC 2020 - Christof Hanke + +- update to official 1.8.6 + * remove patch 4c4bdde.diff + * remove patch d3c7f75.diff + * use source URLs again + +------------------------------------------------------------------- +Tue Jun 16 12:56:21 UTC 2020 - Christof Hanke + +- remove fix_timeval_i586.patch + +------------------------------------------------------------------- +Tue Jun 16 12:55:14 UTC 2020 - Christof Hanke + +- disable retpol line for TW x86_64. It does not compile. + +------------------------------------------------------------------- +Mon Jun 15 08:24:17 UTC 2020 - Christof Hanke + +- update to HEAD of git branch openafs-stable-1_8_x. + * 1.8.6pre3 is not out yet. + * disable source URLs, none are present +- Fix build with GCC-10 + * add patch 4c4bdde.diff + * add patch d3c7f75.diff +- create ld.so.conf-file dynamically + +------------------------------------------------------------------- +Sat Apr 18 07:07:48 UTC 2020 - Christof Hanke + +- update to 1.8.6pre2 +- disable fix_timeval_i586.patch + +------------------------------------------------------------------- +Fri Apr 10 06:36:58 UTC 2020 - Christof Hanke + +- update to HEAD of git branch openafs-stable-1_8_x. + * 1.8.6pre2 is not out yet. + * disable source URLs, none are present + * remove patch forward-to-1.8.6.pre1.patch +- fix build of i586 with fix_timeval_i586.patch + +------------------------------------------------------------------- +Thu Apr 2 06:08:09 UTC 2020 - Christof Hanke + +- update to pre-release 1.8.6pre1: forward-to-1.8.6.pre1.patch + +------------------------------------------------------------------- +Wed Oct 23 13:48:04 UTC 2019 - Christof Hanke + +- update to security-release 1.8.5, adresses: + * OPENAFS-SA-2019-001: Skip server OUT args on error + * OPENAFS-SA-2019-002: Zero all server RPC args + * OPENAFS-SA-2019-003: ubik: Avoid unlocked ubik_currentTrans deref + +------------------------------------------------------------------- +Thu Oct 10 09:10:27 UTC 2019 - Christof Hanke + +- update to official version 1.8.4 +- support Linux-kernel 5.3 +- Avoid non-dir ENOENT errors in afs_lookup +- fix parsing of fileservers with -vlruthresh, etc. +- other bugfixes + +------------------------------------------------------------------- +Thu Sep 26 20:56:05 UTC 2019 - Christof Hanke + +- update to pre-release 1.8.4pre2 + * fix builds for Linux-kernels 5.3 + +------------------------------------------------------------------- +Sun Jul 28 18:34:40 UTC 2019 - Christof Hanke + +- disable compilation with LTO, does not work yet. + +------------------------------------------------------------------- +Tue Apr 30 10:17:44 UTC 2019 - Christof Hanke + +- update to 1.8.3 +- Require krb5-client for package openafs-client +- fix broken directory layout +- fix broken post-install script +- allow crypt to be set/unset on startup of client +- clean up source-filenames + +------------------------------------------------------------------- +Mon Mar 25 11:32:32 UTC 2019 - Jan Engelhardt + +- Use source URLs. + +------------------------------------------------------------------- +Thu Mar 14 08:37:04 UTC 2019 - Christof Hanke + +- update to pre-release 1.8.3pre1 + * fix builds for Linux-kernels 4.20 and 5.0 + * other fixes, see RELNOTES-1.8.3pre1 + * remove obsolete Linux-4.20.patch + +------------------------------------------------------------------- +Wed Jan 16 11:28:27 UTC 2019 - christof.hanke@mpcdf.mpg.de + +- Fix build for Lunux-4.20: Linux-4.20.patch +- use proper log-directory: dir_layout.patch + +------------------------------------------------------------------- +Fri Sep 28 12:47:02 UTC 2018 - Guillaume GARDET + +- Fix build for aarch64 + +------------------------------------------------------------------- +Wed Sep 12 12:37:15 UTC 2018 - Jan Engelhardt + +- Quote "*.c", and avoid unnecessary pass through xargs. + +------------------------------------------------------------------- +Wed Sep 12 10:41:43 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- update to security-release 1.8.2 + * fix CVE-2018-16947 (OPENAFS-SA-2018-001) + * fix CVE-2018-16948 (OPENAFS-SA-2018-002) + * fix CVE-2018-16949 (OPENAFS-SA-2018-003) + +------------------------------------------------------------------- +Wed Sep 12 05:46:01 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- add retpoline support + +------------------------------------------------------------------- +Sun Sep 9 08:14:26 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- update to version 1.8.1.1 +- Remove use_timespec64_for_kernel_4.18.patch. It is now integrated. + +------------------------------------------------------------------- +Thu Aug 16 14:02:44 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- Fix 32Bit build by adding + commit 554176bd236d772d670df9bdd2496facd5a4209a as + use_timespec64_for_kernel_4.18.patch + +------------------------------------------------------------------- +Thu Aug 16 07:53:42 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- Update to 1.8.1 +- Remove backporting patches for AArch64 build: + * add_support_fo_arm64_linux26.patch + * dont_require_AFS_SYSCALL.patch + * add_AFS_STRINGIZE_macro.patch + * avoid_double_param_in_arm64_kernel.patch + +------------------------------------------------------------------- +Wed Jun 27 19:09:41 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- adjust building of KMP to new kernels (see boo 1098050) + add patch add_arch_to_linux_kernel_make.patch for this +- add libtirpc-devel to BuildRequires: +- minor cleanups + +------------------------------------------------------------------- +Fri May 4 07:29:15 UTC 2018 - guillaume.gardet@opensuse.org + +- Update to 1.8.0 +- Fix AArch64 build by updating spec and backporting patches: + * add_support_fo_arm64_linux26.patch + * dont_require_AFS_SYSCALL.patch + * add_AFS_STRINGIZE_macro.patch + * avoid_double_param_in_arm64_kernel.patch + +------------------------------------------------------------------- +Thu Apr 19 16:53:21 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- remove package krb5-mit. It contained binaries for server and client. + Besides, client and server already had an implicit dependency on krb5. + Put the binaries to client and server-package respectively. +- Remove openafs-1.8.x.heimdal.patch and everything heimdal-related. + SUSE does not provide a proper heimdal and it's untested for a long + time. + +------------------------------------------------------------------- +Mon Apr 16 15:35:15 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- fdupes: use symlinks instead of hardlinks. Do not fdupe + /etc and /var + +------------------------------------------------------------------- +Fri Apr 6 10:53:13 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- fix dependencies between packages, so that fuse-client + can be installed. +- cleanup old sys-v sysconfig files and other minor fixes +- fix unit file for fuse-client + +------------------------------------------------------------------- +Mon Apr 2 20:59:53 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- build fuse-client unconditionally. +- do not build KMP on unsupported architectures so that overall + build succeeds. + +Wed Mar 28 05:39:53 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- rename binary backup to afs_backup. + - rename man pages and prefix "backup" in content +- prefix "scout" by "afs_" in man-page +- remove unnecessary macro indirection %ARCH +- replace hard-coded paths by macros +- make whitespace more consistent +- minor syntax and typo fixes + +------------------------------------------------------------------- +Sun Mar 18 23:34:56 UTC 2018 - jengelh@inai.de + +- Replace old $RPM_* vars (most of them) by macros. +- Replace unnecessary macro indirections like %bindir by %_bindir. + +------------------------------------------------------------------- +Thu Mar 15 08:28:10 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- cleanup last cleanup: also remove rc.* files + +------------------------------------------------------------------- +Tue Mar 6 10:03:44 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- cleanup package for Factory: + - rename package to openafs. + - remove sys-v init stuff. + - apply recommendations given in Request 581009 + +------------------------------------------------------------------- +Wed Feb 28 09:25:52 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- add compat macro for new _fillupdir macro introduced in Nov 2017 + +------------------------------------------------------------------- +Wed Feb 28 08:30:33 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- update to 1.8.0pre5 + +------------------------------------------------------------------- +Sun Jan 7 08:31:00 UTC 2018 - christof.hanke@mpcdf.mpg.de + +- update to 1.8.0pre4 +- add patch for ncurses detection + +------------------------------------------------------------------- +Thu Dec 7 11:07:30 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- update to 1.8.0pre3 +- add integrity check of tar-balls + +------------------------------------------------------------------- +Fri Sep 1 20:07:48 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- do not strip binaries on install +- fix %postun server + +------------------------------------------------------------------- +Fri Sep 1 11:51:03 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- update to 1.8.0pre2 +- use a preamble-file for KMP +- sort/cleanup/beautify spec-file + +------------------------------------------------------------------- +Fri Sep 1 07:05:21 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- spec-file: + + use hardlinks for fdupes to provide correct header files in + kernel-source + + minor bugfixes, reorganization +- rename changes file to openafs18.changes + +------------------------------------------------------------------- +Thu Feb 9 14:41:57 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- rename package to openafs18-* so they don't override + stable openafs-1.6 ones +- move ld.so to main package -- was in server-packages + +------------------------------------------------------------------- +Tue Feb 7 11:23:22 UTC 2017 - christof.hanke@mpcdf.mpg.de + +- enable building of KMP +- make openafs-krb5-mit package dependend on openafs-client package +- add ld.so - config to main package + +------------------------------------------------------------------- +Fri Jan 27 21:15:12 UTC 2017 - christof.hanke@rzg.mpg.de + +- remove pam, is not build on x86_64 and i596 + +------------------------------------------------------------------- +Mon Dec 26 18:59:09 UTC 2016 - christof.hanke@rzg.mpg.de + +- first version of 1.8 +- remove docs package, put man pages in induvidual packets +- remove layout-patch, deal with this in spec file directly + +------------------------------------------------------------------- +Sat Dec 3 14:56:56 UTC 2016 - christof.hanke@rzg.mpg.de + +- add new ChangeLog + +------------------------------------------------------------------- +Thu Dec 1 04:35:39 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.20 + +------------------------------------------------------------------- +Wed Nov 16 09:21:52 UTC 2016 - christof.hanke@rzg.mpg.de + +- add missing RemainAfterExit=true to client-systemd unit. + +------------------------------------------------------------------- +Tue Nov 15 09:28:55 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.19 + +------------------------------------------------------------------- +Tue Oct 4 11:19:50 UTC 2016 - aj@suse.com + +- Update README: Change SuSE to SUSE. + +------------------------------------------------------------------- +Thu Jul 21 07:52:14 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.18.2 + +------------------------------------------------------------------- +Fri Jun 24 04:42:48 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.18.1 + +------------------------------------------------------------------- +Tue May 10 15:19:28 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.18 + +Thu Mar 17 06:35:21 UTC 2016 - christof.hanke@rzg.mpg.de + +- update to version 1.6.17 +- cleanup + +------------------------------------------------------------------- +Fri Dec 18 06:53:08 UTC 2015 - christof.hanke@rzg.mpg.de + +- update to version 1.6.16 +- remove fix for configure for new ncurses, now dealt with in + shipped package + +------------------------------------------------------------------- +Sat Nov 21 04:47:46 UTC 2015 - christof.hanke@rzg.mpg.de + +- start using change.log again +- fix configure test for new ncurses + +------------------------------------------------------------------- +Thu Jun 17 17:04:25 UTC 2010 - cseader@novell.com + +- update to version 1.4.12.1 + +------------------------------------------------------------------- +Wed Jan 25 21:39:00 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Jan 23 15:58:43 CET 2006 - nadvornik@suse.cz + +- fixed kernel module to compile + +------------------------------------------------------------------- +Wed Jan 11 05:30:18 CET 2006 - mge@suse.de +- add openafs.SuidCells and openafs.CellServDB +- cleanup SPEC-file(s) +- finally adopt + sysconfig.transarcmode.openafs-client + rc.transarcmode.afs-server + rc.transarcmode.afs-client + to transarc mode; and fix a small typo in + rc.defaultmode.afs-client + +------------------------------------------------------------------- +Fri Jan 6 01:12:31 CET 2006 - mge@suse.de +- set "%defattr(-,root,root)" for transarcmode-file-lists +- fix lib64 build problem in transarcmode + +------------------------------------------------------------------- +Thu Jan 5 13:40:42 CET 2006 - mge@suse.de +- introduce transarc-mode and default-mode +- introduce "options" + +------------------------------------------------------------------- +Thu Dec 29 16:07:00 CET 2005 - mge@suse.de +- build for SLES 9 +- with heimdal krb5 support +- enable-largefile-fileserver + +------------------------------------------------------------------- +Wed Dec 21 16:09:26 CET 2005 - nadvornik@suse.cz + +- updated to 1.4.0 +- fixed dangerous compiler warnings + +------------------------------------------------------------------- +Mon Oct 31 12:37:05 CET 2005 - dmueller@suse.de + +- don't build as root + +------------------------------------------------------------------- +Fri Aug 26 12:51:02 CEST 2005 - nadvornik@suse.cz + +- fixed kernel module to build +- fixed sysconfig file name + +------------------------------------------------------------------- +Thu Jul 14 17:25:25 CEST 2005 - nadvornik@suse.cz + +- updated to 1.3.85 +- used LSB conforming init script names + +------------------------------------------------------------------- +Tue Jul 5 10:44:32 CEST 2005 - hare@suse.de + +- Update for linux 2.6.13. + +------------------------------------------------------------------- +Thu May 12 12:27:01 CEST 2005 - nadvornik@suse.cz + +- gcc4 fixes in kernel module + +------------------------------------------------------------------- +Tue Apr 12 17:02:34 CEST 2005 - nadvornik@suse.cz + +- fixed to compile with gcc4 + +------------------------------------------------------------------- +Wed Feb 23 12:08:07 CET 2005 - nadvornik@suse.cz + +- fixed memory leaks and 64bit fixes backported from 1.3.79 +- updated README.SUSE + +------------------------------------------------------------------- +Thu Feb 3 13:19:05 CET 2005 - nadvornik@suse.cz + +- updated to 1.3.78 + +------------------------------------------------------------------- +Mon Jan 31 15:58:33 CET 2005 - nadvornik@suse.cz + +- fixed afs.h to be usable from userspace [#50283] + +------------------------------------------------------------------- +Tue Jan 25 10:57:09 CET 2005 - nadvornik@suse.cz + +- updated to latest snapshot + +------------------------------------------------------------------- +Wed Sep 15 12:37:04 CEST 2004 - nadvornik@suse.cz + +- added requres: kernel-nongpl [#45167] +- fixed kernel module oops [#44618] + +------------------------------------------------------------------- +Wed Aug 11 15:51:03 CEST 2004 - nadvornik@suse.cz + +- use kernel module from openafs 1.3.70 to support kernel 2.6 + +------------------------------------------------------------------- +Mon Mar 08 17:18:49 CET 2004 - nadvornik@suse.cz + +- updated to 1.2.11 +- added note that client for kernel 2.6 is not available + +------------------------------------------------------------------- +Tue Jan 20 18:48:21 CET 2004 - ro@suse.de + +- added pam-devel to neededforbuild + +------------------------------------------------------------------- +Sat Dec 13 00:23:45 CET 2003 - meissner@suse.de + +- Added hack if no MTU came from userspace. +- Removed superflous ppc64 patch part. + +------------------------------------------------------------------- +Thu Dec 11 09:29:31 CET 2003 - meissner@suse.de + +- ppc64 port added (status: no longer crashes, talks to the network, + but not successfully). +- Change headerfiles to make it possible to do a ppc -> ppc64 crosscompile. + +------------------------------------------------------------------- +Mon Oct 6 17:30:17 CEST 2003 - olh@suse.de + +- build with -fPIC on ppc32 + +------------------------------------------------------------------- +Tue Sep 16 17:37:34 CEST 2003 - nadvornik@suse.cz + +- patch from cvs to use AllocLargeSpace for struct osi_file to prevent + oopses with some kernel configurations + +------------------------------------------------------------------- +Thu Sep 11 12:58:57 CEST 2003 - nadvornik@suse.cz + +- added option DYNROOT to sysconfig and enabled it by default [#27205] + +------------------------------------------------------------------- +Wed Sep 10 17:07:51 CEST 2003 - nadvornik@suse.cz + +- added cleanup before module build [#29649] + +------------------------------------------------------------------- +Tue Sep 09 18:33:38 CEST 2003 - nadvornik@suse.cz + +- fixed possible segfault + +------------------------------------------------------------------- +Thu Sep 04 12:30:00 CEST 2003 - nadvornik@suse.cz + +- set permissions of /var/lib/openafs to 700 +- README.SuSE fixes + +------------------------------------------------------------------- +Thu Aug 28 17:11:47 CEST 2003 - nadvornik@suse.cz + +- use ghost for /afs, the directory is created by init-script +- fixed README.SuSE + +------------------------------------------------------------------- +Thu Aug 21 14:32:58 CEST 2003 - nadvornik@suse.cz + +- moved all static libraries to /usr/lib/afs, fixes conflict with libdes +- used default value for THIS_CELL_SERVER_NAME +- removed old patches + +------------------------------------------------------------------- +Tue Aug 12 11:10:46 CEST 2003 - nadvornik@suse.cz + +- fixed a bug in init script + +------------------------------------------------------------------- +Mon Aug 11 18:26:28 CEST 2003 - nadvornik@suse.cz + +- updated to final 1.2.10 + +------------------------------------------------------------------- +Wed Jul 30 19:34:34 CEST 2003 - nadvornik@suse.cz + +- updated to 1.2.10-rc4 +- do not destroy CellServDB even if REGENERATE_CELL_INFO=yes +- fixed to compile on x86_64 + +------------------------------------------------------------------- +Wed Jul 30 14:25:46 CEST 2003 - sf@suse.de + +- use %_lib where it was missing + +------------------------------------------------------------------- +Wed Jul 09 19:20:55 CEST 2003 - nadvornik@suse.cz + +- fixed conflicts in filelist + +------------------------------------------------------------------- +Fri Jun 20 14:59:23 CEST 2003 - nadvornik@suse.cz + +- improved init scripts + +------------------------------------------------------------------- +Thu Jun 19 14:40:52 CEST 2003 - nadvornik@suse.cz + +- added README.SuSE +- fixed init scripts [#27426] +- installed man pages + +------------------------------------------------------------------- +Thu Jun 12 17:45:39 CEST 2003 - poeml@suse.de + +- add /usr/src/kernel-modules to the file list + +------------------------------------------------------------------- +Wed Jun 4 21:26:09 CEST 2003 - schwab@suse.de + +- Fix SMP configuration detection. + +------------------------------------------------------------------- +Wed May 14 12:28:04 CEST 2003 - poeml@suse.de + +- rework filelists: + - package/remove unpackaged files + - move some files into the server & client subpackages + - use %defattr +- fix deprecated tail -1 syntax (fixes building the kernel module) + +------------------------------------------------------------------- +Mon May 12 14:50:05 CEST 2003 - nadvornik@suse.cz + +- updated to 1.2.9 +- added DATA_ENCRYPTION option to sysconfig + +------------------------------------------------------------------- +Mon Mar 10 18:43:26 CET 2003 - poeml@suse.de + +- x86_64: add -lresolv, -fPIC +- fix lib path on all 64 bit platforms + +------------------------------------------------------------------- +Thu Mar 06 10:39:27 CET 2003 - nadvornik@suse.cz + +- added sysconfig metadata + +------------------------------------------------------------------- +Mon Feb 24 17:28:44 CET 2003 - nadvornik@suse.cz + +- added dirs /afs, /etc/openafs, /var/lib/openafs to filelist + +------------------------------------------------------------------- +Sun Feb 16 18:28:44 CET 2003 - olh@suse.de + +- workaround broken -lresolv detection, lib64 fixes + +------------------------------------------------------------------- +Wed Feb 12 16:42:07 CET 2003 - nadvornik@suse.cz + +- fixed multiline strings in kernel module + +------------------------------------------------------------------- +Fri Jan 24 11:11:23 CET 2003 - nadvornik@suse.cz + +- updated to 1.2.8 +- improved init script + +------------------------------------------------------------------- +Fri Nov 29 10:21:04 CET 2002 - nadvornik@suse.cz + +- included errno.h +- fixed multiline strings + +------------------------------------------------------------------- +Fri Nov 22 16:47:51 CET 2002 - nadvornik@suse.cz + +- first version of init scripts + +------------------------------------------------------------------- +Wed Nov 20 19:20:53 CET 2002 - poeml@suse.de + +- initial draft of a package. Lots of stuff missing, like init + scripts, or the kerberos 5 migration toolkit. + diff --git a/openafs.spec b/openafs.spec new file mode 100644 index 0000000..206aa69 --- /dev/null +++ b/openafs.spec @@ -0,0 +1,1014 @@ +# +# spec file for package openafs +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# +# needssslcertforbuild + + +#Compat macro for new _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} +%define _fillupdir /var/adm/fillup-templates +%endif +%define _lto_cflags %{nil} + +# +# TUNABLES +# + +# package-wide definitions here + +# build authlibs +%define build_authlibs 1 + +# build kernel modules +%define build_kernel_modules 1 + +# flag for firewalld, only required for SLE-12 +%if 0%{?sle_version} <= 120500 && !0%{?is_opensuse} +%define have_firewalld 0 +%else +%define have_firewalld 1 +%endif + +# +# package internal directories +# +%define afslogsdir /var/log/openafs +%define afsconfdir /etc/openafs/server +%define viceetcdir /etc/openafs +%define vicecachedir /var/cache/openafs +%define afslocaldir /var/lib/openafs + +%ifarch ppc64le ppc64 %{arm} +%define build_kernel_modules 0 +%endif + +# used for %setup only +# leave upstream tar-balls untouched for integrity checks. +%define upstream_version stable-1_8_x + +Name: openafs + +Version: 1.8.12.g20240711 +Release: 0 +Summary: OpenAFS Distributed File System +License: IPL-1.0 +Group: System/Filesystems +URL: http://www.openafs.org/ + +Source0: openafs-%{upstream_version}-src.tar.bz2 +Source1: openafs-%{upstream_version}-doc.tar.bz2 +Source2: openafs-%{upstream_version}-src.tar.bz2.md5 +Source3: openafs-%{upstream_version}-doc.tar.bz2.md5 +Source4: openafs-%{upstream_version}-src.tar.bz2.sha256 +Source5: openafs-%{upstream_version}-doc.tar.bz2.sha256 + +Source10: README.SUSE.openafs +Source15: logrotate.openafs-server +Source18: RELNOTES-%{upstream_version} +Source19: ChangeLog +Source20: kernel-source.build-modules.sh +Source23: openafs-client.service +Source24: openafs-client.service.allow_unsupported +Source25: openafs-server.service +Source26: openafs-fuse-client.service +Source27: sysconfig.openafs-client +Source28: sysconfig.openafs-server +Source29: sysconfig.openafs-fuse-client +Source30: preamble +Source40: afs3-bos.xml +Source41: afs3-callback.xml +Source42: afs3-fileserver.xml +Source43: afs3-prserver.xml +Source44: afs3-rmtsys.xml +Source45: afs3-update.xml +Source46: afs3-vlserver.xml +Source47: afs3-volser.xml +Source55: openafs.SuidCells +Source56: openafs.CellAlias +Source57: openafs.ThisCell +Source58: openafs.cacheinfo +Source98: kmp_only.files +Source99: openafs.changes + +# PATCH-UPSTREAM required for kernel 6.10 +Patch1: 03b280649f5e22ed74c217d7c98c3416a2fa9052 +Patch2: 0f6a3a402f4a66114da9231032bd68cdc4dee7bc +Patch3: 658942f2791fad5e33ec7542158c16dfc66eed39 +Patch4: d8b56f21994ce66d8daebb7d69e792f34c1a19ed +Patch5: 7097eec17bc01bcfc12c4d299136b2d3b94ec3d7 +# PATCH-HANDLE-BACKPORTS +# some kernel-features from 6.5 are apparently in 6.4 +Patch99: handle_backports.diff + +# GENERAL BuildRequires and Requires +# + +BuildRequires: autoconf-archive +BuildRequires: automake +BuildRequires: bison +BuildRequires: coreutils +BuildRequires: fdupes +BuildRequires: hostname +%if %{have_firewalld} +BuildRequires: firewall-macros +%endif +BuildRequires: flex +BuildRequires: fuse-devel +BuildRequires: git +BuildRequires: krb5-devel +BuildRequires: libtirpc-devel +BuildRequires: libtool +BuildRequires: ncurses-devel +BuildRequires: pkg-config +BuildRequires: swig + +Requires(post): %fillup_prereq + +%if %{build_kernel_modules} +BuildRequires: %{kernel_module_package_buildreqs} +%endif + +%description +AFS is a cross-platform distributed file system product pioneered at +Carnegie Mellon University and supported and developed as a product by +Transarc Corporation (now IBM Pittsburgh Labs). It offers a +client-server architecture for file sharing, providing location +independence, scalability, and transparent migration capabilities for +data. + +In addition, among its features are authentication, encryption, +caching, disconnected operations, replication for higher availability +and load balancing, and ACLs. + +%package server +Summary: OpenAFS File System Server +Group: System/Filesystems +Requires: %{name} = %{version} + +%description server +AFS is a cross-platform distributed file system product pioneered at +Carnegie Mellon University and supported and developed as a product by +Transarc Corporation (now IBM Pittsburgh Labs). It offers a +client-server architecture for file sharing, providing location +independence, scalability, and transparent migration capabilities for +data. + +In addition, among its features are authentication, encryption, +caching, disconnected operations, replication for higher availability +and load balancing, and ACLs. This package contains the static +libraries and header files needed to develop applications for OpenAFS. + +%if %{build_authlibs} +%package authlibs +Summary: OpenAFS authentication shared libraries +Group: Development/Libraries/C and C++ + +%description authlibs +The AFS distributed filesystem. AFS is a distributed filesystem +allowing cross-platform sharing of files among multiple computers. +Facilities are provided for access control, authentication, backup and +administrative management. + +This package provides a shared version of libafsrpc and libafsauthent. +None of the programs included with OpenAFS currently use these shared +libraries; however, third-party software that wishes to perform AFS +authentication may link against them. + +%package authlibs-devel +Summary: OpenAFS shared library development +Group: Development/Libraries/C and C++ +Requires: %{name}-authlibs = %{version} +Requires: %{name}-devel = %{version} + +%description authlibs-devel +The AFS distributed filesystem. AFS is a distributed filesystem +allowing cross-platform sharing of files among multiple computers. +Facilities are provided for access control, authentication, backup and +administrative management. + +This package includes the static versions of libafsrpc and +libafsauthent, and symlinks required for building against the dynamic +libraries. + +%endif + +%package devel +Summary: OpenAFS Static Libraries and Header Files +Group: Development/Libraries/Other +Requires: %{name} = %{version} + +%description devel +AFS is a cross-platform distributed file system product pioneered at +Carnegie Mellon University and supported and developed as a product by +Transarc Corporation (now IBM Pittsburgh Labs). It offers a +client-server architecture for file sharing, providing location +independence, scalability, and transparent migration capabilities for +data. + +In addition, among its features are authentication, encryption, +caching, disconnected operations, replication for higher availability +and load balancing, and ACLs. This package contains the OpenAFS server. + +%package kernel-source +BuildArch: noarch +Summary: OpenAFS Kernel Module source tree +Group: System/Filesystems +Requires: bison +Requires: flex +Requires: gcc +Requires: kernel-devel +Provides: openafs-kernel = %{version} + +%description kernel-source +The AFS distributed filesystem. AFS is a distributed filesystem +allowing cross-platform sharing of files among multiple computers. +Facilities are provided for access control, authentication, backup and +administrative management. + +This package provides the source code to build your own AFS kernel +module. + +%if %{build_kernel_modules} +%package KMP +Summary: OpenAFS Distributed File System - kernel module +Group: System/Kernel + +%kernel_module_package -x lockdep um pae -p %{S:30} + +%description KMP +This package contains the kernel module for OpenAFS. For details see +the openafs package. + +%endif + +%package fuse_client +Summary: OpenAFS FUSE File System Client +Group: System/Filesystems +Conflicts: %{name}-client +Requires: %{name} = %{version} + +%description fuse_client +AFS is a cross-platform distributed file system product pioneered at +Carnegie Mellon University and supported and developed as a product by +Transarc Corporation (now IBM Pittsburgh Labs). It offers a +client-server architecture for file sharing, providing location +independence, scalability, and transparent migration capabilities for +data. + +This client is using the EXPERIMENTAL FUSE interface on LINUX. +It does not offer authentication etc. + +%if %{build_kernel_modules} +%package client +Summary: OpenAFS File System Client +Group: System/Filesystems +Requires: %{name} = %{version} +Requires: %{name}-kmp +Requires: krb5-client + +%description client +AFS is a cross-platform distributed file system product pioneered at +Carnegie Mellon University and supported and developed as a product by +Transarc Corporation (now IBM Pittsburgh Labs). It offers a +client-server architecture for file sharing, providing location +independence, scalability, and transparent migration capabilities for +data. + +In addition, among its features are authentication, encryption, +caching, disconnected operations, replication for higher availability +and load balancing, and ACLs. This package contains the OpenAFS client. +%endif + +%prep + +: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +: @@@ +: @@@ package-name: %{name} +: @@@ file-layout: fsh +: @@@ lib dir: %{_libdir} +: @@@ libexec dir: %{libexecdir} +: @@@ bin dir: %{_bindir} +: @@@ sbin dir: %{_sbindir} +: @@@ include dir: %{includedir} +: @@@ sysconf dir: %{_sysconfdir} +: @@@ man dir: %{_mandir} +: @@@ build modules: %{build_kernel_modules} +: @@@ architecture: %{_arch} +: @@@ target cpu: %{_target_cpu} +: @@@ +: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +for src_file in %{S:0} %{S:1}; do + if [ "`md5sum $src_file | awk '{print $1}'`" != "`cat $src_file.md5 | awk '{print $1}'`" ]; then + echo "ERROR: MD5-Integrity check for $src_file failed."; + exit 1 + fi + if [ "`sha256sum $src_file | awk '{print $1}'`" != "`cat $src_file.sha256 | awk '{print $1}'`" ]; then + echo "ERROR: SHA256-Integrity check for $src_file failed."; + exit 1 + fi +done + +%setup -q -n openafs-%{upstream_version} -T -b 0 -b 1 +%patch -P 1 -p1 +%patch -P 2 -p1 +%patch -P 3 -p1 +%patch -P 4 -p1 +%patch -P 5 -p1 +%if 0%{?sle_version} == 150600 +%patch -P 99 -p1 +%endif + +./regen.sh + +%build +# architecture specific settings +sysbase=%{_arch} + +%ifarch ppc +perl -pi -e 's,^(XCFLAGS.*),\1 -fPIC,' src/config/Makefile.ppc_linux24.in +%endif +%ifarch ppc64 ppc64le +sysbase=ppc64 +export LDFLAGS="$LDFLAGS -m64" +%endif +%ifarch %{arm} +sysbase=arm +%endif +%ifarch aarch64 +sysbase=arm64 +%define _arch arm64 +%endif +%ifarch s390x +sysbase=s390 +%endif +%ifarch x86_64 +sysbase=amd64 +perl -pi -e 's,^(XCFLAGS.*),\1 -fPIC,' src/config/Makefile.amd64_linux24.in +perl -pi -e 's,^(XLIBS.*),\1 -lresolv,' src/config/Makefile.amd64_linux24.in +%endif + +afs_sysname=${sysbase}_linux26 + +RPM_OPT_FLAGS=`echo ${RPM_OPT_FLAGS} | sed s/-D_FORTIFY_SOURCE=2//` +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC -fcommon" + +export KRB5LIBS='-lcom_err -lkrb5' +export PATH_KRB5_CONFIG=%{krb5_config} +export afsdbdir='/var/lib/openafs/db' +export afslocaldir='/var/lib/openafs' +export afslogsdir='/var/log/openafs' +export afsdbdir='/var/lib/openafs/db' +%configure \ + --disable-transarc-paths \ + --disable-strip-binaries \ + --includedir=%{_includedir}/openafs \ + --sysconfdir=%{_sysconfdir} \ + --mandir=%{_mandir} \ + --with-afs-sysname=$afs_sysname \ + --disable-kernel-module \ + --with-swig + +make CCFLAGS="$CFLAGS" XCFLAGS="$CFLAGS" PAM_CFLAGS="$CFLAGS" KOPTS="$CFLAGS" all_nolibafs +make CCFLAGS="$CFLAGS" XCFLAGS="$CFLAGS" PAM_CFLAGS="$CFLAGS" KOPTS="$CFLAGS" only_libafs_tree + +# the test suite need a configured KDC +#make -C src/tests all + +# Kernel-module + +%if %{build_kernel_modules} +mkdir obj + +for flavor in %flavors_to_build; do + rm -rf obj/$flavor + cp -a libafs_tree obj/$flavor + pushd obj/$flavor + find . -name "*.c" -exec sed -i '/MODULE_LICENSE(/a MODULE_INFO(retpoline, "Y");' "{}" "+" + ./configure --with-linux-kernel-build=/usr/src/linux-obj/%{_target_cpu}/$flavor --with-linux-kernel-headers=/usr/src/linux \ + --disable-transarc-paths --without-swig + export EXTRA_CFLAGS='-DVERSION=\"%version\"' + export LINUX_MAKE_ARCH="ARCH=%{_arch}" + make + popd +done +%endif +# build_kernel_modules + +%install + +# +# install build binaries using make + +make DESTDIR=%{buildroot} install_nolibafs + +# +# man-pages + +OLD_PWD=`pwd` +cd doc/man-pages +%make_install +cd $OLD_PWD + +# +# create directories +mkdir -p %{buildroot}/%_unitdir +mkdir -p %{buildroot}/%{afslogsdir}/old +mkdir -p %{buildroot}/%{_fillupdir} +mkdir -p %{buildroot}/%{vicecachedir} +mkdir -p %{buildroot}/%{viceetcdir} +mkdir -p %{buildroot}%{_datadir}/openafs/C +mkdir -p %{buildroot}/%{afsconfdir} +mkdir -p %{buildroot}/%{afslocaldir} +mkdir -p %{buildroot}/%{_sbindir} + +# +# client +# also used by others +cp -a %{S:56} %{buildroot}/%{viceetcdir}/CellAlias +cp -a %{S:57} %{buildroot}/%{viceetcdir}/ThisCell +cp -a src/afsd/CellServDB %{buildroot}/%{viceetcdir}/CellServDB +cp -a %{S:55} %{buildroot}/%{viceetcdir}/SuidCells +cp -a %{S:58} %{buildroot}/%{viceetcdir}/cacheinfo + +# kmp-only +%if %{build_kernel_modules} +cp -a src/afs/afszcm.cat %{buildroot}%{_datadir}/openafs/C +install -m 644 %{S:27} %{buildroot}/%{_fillupdir}/sysconfig.openafs-client +%if 0%{?sle_version} > 150000 +install -m 644 %{S:24} %{buildroot}/%_unitdir/openafs-client.service +%else +install -m 644 %{S:23} %{buildroot}/%_unitdir +%endif +ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcopenafs-client +%endif + +# +# fuse client package + +install -m 644 %{S:29} %{buildroot}/%{_fillupdir}/sysconfig.openafs-fuse-client +install -m 644 %{S:26} %{buildroot}/%_unitdir +ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcopenafs-fuse-client + +# +# server +install -m 644 %{S:28} %{buildroot}/%{_fillupdir}/sysconfig.openafs-server +install -m 644 %{S:25} %{buildroot}/%_unitdir +ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcopenafs-server + +# +# kernel-source +mkdir -p %{buildroot}/usr/src/kernel-modules/openafs +chmod -R o-w src/libafs +chmod -R o-w libafs_tree +cp -a libafs_tree %{buildroot}/usr/src/kernel-modules/openafs +install -m 755 %{S:20} %{buildroot}/usr/src/kernel-modules/openafs/build-modules.sh +install -m 644 LICENSE %{buildroot}/usr/src/kernel-modules/openafs/LICENSE + +# KMP +%if %{build_kernel_modules} +export INSTALL_MOD_PATH=%{buildroot} +export INSTALL_MOD_DIR=updates + +for flavor in %flavors_to_build; do + make -C /usr/src/linux-obj/%{_arch}/$flavor %{?linux_make_arch} modules_install \ + M=$PWD/`find obj/$flavor/ -name MODLOAD-\* -type d` +done +%endif + +# +# main package +cp -a %{S:10} README.SUSE +cp -a %{S:18} RELNOTES +cp -a %{S:19} ChangeLog + +mkdir -p %{buildroot}/etc/ld.so.conf.d +echo %{_libdir}/openafs > %{buildroot}/etc/ld.so.conf.d/openafs.conf + +# move some bin to sbin +mv %{buildroot}/%{_bindir}/asetkey %{buildroot}/%{_sbindir}/asetkey +mv %{buildroot}/%{_bindir}/bos %{buildroot}/%{_sbindir}/bos +mv %{buildroot}/%{_bindir}/akeyconvert %{buildroot}/%{_sbindir}/akeyconvert +mv %{buildroot}/%{_bindir}/udebug %{buildroot}/%{_sbindir}/udebug + +# avoid conflicts with other packages by adding the prefix afs_ to filenames +mv %{buildroot}%{_bindir}/scout %{buildroot}%{_bindir}/afs_scout +cat %{buildroot}/%{_mandir}/man1/scout.1 | sed 's/\/afs_scout/g' > %{buildroot}/%{_mandir}/man1/afs_scout.1 +rm %{buildroot}/%{_mandir}/man1/scout.1 +mv %{buildroot}%{_sbindir}/backup %{buildroot}%{_sbindir}/afs_backup +OLD_PWD=`pwd` +cd %{buildroot}/%{_mandir}/man8/ +for f in $(ls backup*); do + cat $f | sed 's/\/afs_backup/g' > afs_"$f" + rm $f +done +cd $OLD_PWD + +# create manpage for afsd.fuse as a real file +rm %{buildroot}/%{_mandir}/man8/afsd.fuse.8 +cp -p %{buildroot}/%{_mandir}/man8/afsd.8 %{buildroot}/%{_mandir}/man8/afsd.fuse.8 + +# move %%{_libdir}/afs-stuff to %%{_libdir}/openafs +mv %{buildroot}/%{_libdir}/afs/* %{buildroot}/%{_libdir}/openafs +mv %{buildroot}/%{_libdir}/*.* %{buildroot}/%{_libdir}/openafs +rm -rf %{buildroot}/%{_libdir}/afs + +# move perl module to perl vendor library path +mkdir -p %{buildroot}/%{perl_vendorlib}/AFS +mv %{buildroot}/%{_libdir}/perl/AFS/ukernel.pm %{buildroot}/%{perl_vendorlib}/AFS/ukernel.pm +mkdir -p %{buildroot}%{perl_vendorarch} +mv %{buildroot}/%{_libdir}/perl/ukernel.so %{buildroot}/%{perl_vendorarch}/ukernel.so + +# firewalld + +%if %{have_firewalld} +mkdir -p %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:40} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:41} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:42} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:43} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:44} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:45} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:46} %{buildroot}%{_prefix}/lib/firewalld/services/ +install -D -m 644 %{S:47} %{buildroot}%{_prefix}/lib/firewalld/services/ +%endif + +# +# general cleanup +# + +# we supposedly don't need this on linux +rm %{buildroot}/%{_sbindir}/rmtsysd + +%if ! %{build_authlibs} +rm %{buildroot}/%{_libdir}/libafsauthent.so.* +rm %{buildroot}/%{_libdir}/libafsrpc.so.* +rm %{buildroot}/%{_libdir}/libkopenafs.so.* +rm %{buildroot}/%{_libdir}/libafsauthent.so +rm %{buildroot}/%{_libdir}/libafsrpc.so +rm %{buildroot}/%{_libdir}/libkopenafs.so +%endif +%if ! %{build_kernel_modules} +for f in $(cat %{S:98}); do + rm -f %{buildroot}/$f +done +%endif + +# remove all static libraries +find %{buildroot} -type f -name "*.a" -delete + +# remove unused man pages +for x in dlog symlink symlink_list symlink_make symlink_remove; do + rm %{buildroot}/%{_mandir}/man1/${x}.1 +done +for x in rmtsysd xfs_size_check aklog_dynamic_auth; do + rm %{buildroot}/%{_mandir}/man8/${x}.8 +done + +# compress man pages +OLD_PWD=`pwd` +for d in %{buildroot}%{_mandir}/man*; do + cd $d + for f in *; do + if [ -h $f ]; then + mv $f $f.gz + elif [ -f $f ];then + gzip -9 $f + else + echo "Unknown thing to compress : $f" + fi + done +done +cd $OLD_PWD + +# replace duplicates by symlinks +%fdupes -s %{buildroot}/usr + +# +# main + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post kernel-source +echo To install the kernel-module, do: +echo cd /usr/src/kernel-modules/openafs +echo sh ./build-modules.sh build +echo sh ./build-modules.sh install + +# +# fuse client + +%pre fuse_client +%service_add_pre openafs-fuse-client.service + +%preun fuse_client +%service_del_preun openafs-fuse-client.service + +%post fuse_client +if [ ! -d /afs ]; then + mkdir /afs +fi +%{fillup_only -n openafs-fuse-client} +%service_add_post openafs-fuse-client.service +/sbin/ldconfig + +if [ "x$1" = "x" ]; then + my_operation=0 +else + my_operation=$1 +fi + +if [ $my_operation -gt 1 ]; then + echo Not stopping the possibly running client. + echo You must restart the client to put the upgrade into effect. +else + echo This is the experimental FUSE implementation of the openafs-client + echo Please configure your cell like with the in-kernel openafs-client + echo authentication etc. is not implemented yet in this version. +fi + +%postun fuse_client +%service_del_postun openafs-fuse-client.service +if [ -d /afs ]; then + echo make sure to remove directory /afs if unwanted. +fi +/sbin/ldconfig + +# +# client + +%if %{build_kernel_modules} +%pre client +%service_add_pre openafs-client.service + +%post client +if [ ! -d /afs ]; then + mkdir /afs +fi +/sbin/ldconfig +%{fillup_only -n openafs-client} +%service_add_post openafs-client.service +%if %{have_firewalld} +%firewalld_reload +%endif + +if [ "x$1" = "x" ]; then + my_operation=0 +else + my_operation=$1 +fi +if [ $my_operation -gt 1 ]; then + echo Not stopping the possibly running client. + echo You must restart the client to put the upgrade into effect. +else + echo For configuring the client, please check /etc/sysconfig/openafs-client + echo and/or follow the instructions found on http://www.openafs.org how to install an openafs-client. +fi + +%preun client +%service_del_preun openafs-client.service + +%postun client +if [ -d /afs ]; then + echo make sure to remove directory /afs if unwanted. +fi +/sbin/ldconfig +%service_del_postun openafs-client.service +%endif + +# +# server + +%pre server +%service_add_pre openafs-server.service + +%post server +/sbin/ldconfig +%{fillup_only -n openafs-server} +%service_add_post openafs-server.service + +if [ "$FIRST_ARG" -gt 1 ]; then + # update no new install + echo Not stopping the possibly running services. + echo You must restart the service to put the upgrade into effect. + if [ -d /var/openafs ]; then + echo To upgrade, stop the server, copy the contents of /var/openafs to /var/lib/openafs, + echo remove the empty directory /var/openafs and then start the server again. + fi +else + echo For configuring the server, please check /etc/sysconfig/openafs-server + echo and/or follow the instructions found on http://www.openafs.org to install an openafs-client. +fi + +%preun server +%service_del_preun openafs-server.service + +%postun server +/sbin/ldconfig +%service_del_postun openafs-server.service + +# +# devel + +%post devel + +%postun devel + +# +# authlibs + +%if %{build_authlibs} +%post authlibs + +%postun authlibs +%endif + +# +# FILES +# + +%files +%defattr(-,root,root) +%config /etc/ld.so.conf.d/openafs.conf +%config(noreplace) %{viceetcdir}/CellAlias +%config(noreplace) %{viceetcdir}/CellServDB +%config(noreplace) %{viceetcdir}/ThisCell +%dir %{viceetcdir} +%doc %{_mandir}/man5/afsmonitor.5.gz +%doc %{_mandir}/man1/afs.1.gz +%doc %{_mandir}/man1/afs_compile_et.1.gz +%doc %{_mandir}/man1/afs_scout.1.gz +%doc %{_mandir}/man1/afsmonitor.1.gz +%doc %{_mandir}/man1/cmdebug.1.gz +%doc %{_mandir}/man1/pts.1.gz +%doc %{_mandir}/man1/pts_*.gz +%doc %{_mandir}/man1/restorevol.1.gz +%doc %{_mandir}/man1/rxdebug.1.gz +%doc %{_mandir}/man1/sys.1.gz +%doc %{_mandir}/man1/translate_et.1.gz +%doc %{_mandir}/man1/udebug.1.gz +%doc %{_mandir}/man1/vos.1.gz +%doc %{_mandir}/man1/vos_*gz +%doc %{_mandir}/man1/xstat_cm_test.1.gz +%doc %{_mandir}/man1/xstat_fs_test.1.gz +%doc %{_mandir}/man5/CellAlias.5.gz +%doc %{_mandir}/man5/CellServDB.5.gz +%doc %{_mandir}/man5/NetInfo.5.gz +%doc %{_mandir}/man5/NetRestrict.5.gz +%doc %{_mandir}/man5/ThisCell.5.gz +%doc %{_mandir}/man5/afs.5.gz +%doc %{_mandir}/man5/butc.5.gz +%doc %{_mandir}/man5/butc_logs.5.gz +%doc %{_mandir}/man5/fms.log.5.gz +%doc %{_mandir}/man5/sysid.5.gz +%doc %{_mandir}/man5/uss.5.gz +%doc %{_mandir}/man5/uss_*.5.gz +%doc %{_mandir}/man8/afs_backup.8.gz +%doc %{_mandir}/man8/afs_backup_*.8.gz +%doc %{_mandir}/man8/bos.8.gz +%doc %{_mandir}/man8/bos_[a-t]*.8.gz +%doc %{_mandir}/man8/bos_uninstall.8.gz +%doc %{_mandir}/man8/butc.8.gz +%doc %{_mandir}/man8/fms.8.gz +%doc %{_mandir}/man8/read_tape.8.gz +%doc %{_mandir}/man8/uss.8.gz +%doc %{_mandir}/man8/uss_*.8.gz +%doc %{_mandir}/man8/vsys.8.gz +%doc NEWS README* RELNOTES ChangeLog +%{_bindir}/afs_compile_et +%{_bindir}/afs_scout +%{_bindir}/afsio +%{_bindir}/afsmonitor +%{_bindir}/cmdebug +%{_bindir}/pts +%{_bindir}/restorevol +%{_bindir}/sys +%{_bindir}/translate_et +%{_bindir}/xstat_cm_test +%{_bindir}/xstat_fs_test +%{_libdir}/openafs/libafshcrypto.so.* +%{_libdir}/openafs/librokenafs.so.* +%{_sbindir}/afs_backup +%{_sbindir}/bos +%{_sbindir}/butc +%{_sbindir}/fms +%{_sbindir}/read_tape +%{_sbindir}/rxdebug +%{_sbindir}/udebug +%{_sbindir}/uss +%{_sbindir}/vos +%{_sbindir}/vsys + +%files fuse_client +%defattr(-,root,root) +%{_sbindir}/afsd.fuse +%{_sbindir}/rcopenafs-fuse-client +%config(noreplace) %{viceetcdir}/SuidCells +%config(noreplace) %{viceetcdir}/cacheinfo +%doc %{_mandir}/man8/afsd.fuse.8.gz +%_unitdir/openafs-fuse-client.service +%{_fillupdir}/sysconfig.openafs-fuse-client +%{vicecachedir} + +%if %{build_kernel_modules} +%files client +%defattr(-,root,root) + %{_bindir}/fs + %{_bindir}/aklog + %{_bindir}/klog.krb5 + %{_bindir}/pagsh + %{_bindir}/pagsh.krb + %{_bindir}/tokens + %{_bindir}/tokens.krb + %{_bindir}/unlog + %{_bindir}/up + %{_sbindir}/afsd + %{_sbindir}/fstrace +%doc %{_mandir}/man1/fs.1.gz +%doc %{_mandir}/man1/fs_*.1.gz +%doc %{_mandir}/man1/aklog.1.gz +%doc %{_mandir}/man1/klog.krb5.1.gz +%doc %{_mandir}/man1/pagsh.1.gz +%doc %{_mandir}/man1/pagsh.krb.1.gz +%doc %{_mandir}/man1/tokens.1.gz +%doc %{_mandir}/man1/tokens.krb.1.gz +%doc %{_mandir}/man1/unlog.1.gz +%doc %{_mandir}/man1/up.1.gz +%doc %{_mandir}/man8/afsd.8.gz +%doc %{_mandir}/man8/fstrace.8.gz +%doc %{_mandir}/man8/fstrace_*.8.gz +%_unitdir/openafs-client.service +%doc %{_mandir}/man1/copyauth.1.gz +%doc %{_mandir}/man5/cacheinfo.5.gz +%doc %{_mandir}/man5/afs_cache.5.gz +%dir %{_datadir}/openafs +%dir %{_datadir}/openafs/C +%{_datadir}/openafs/C/afszcm.cat +%doc %{_mandir}/man5/afszcm.cat.5.gz +%config(noreplace) %{viceetcdir}/SuidCells +%config(noreplace) %{viceetcdir}/cacheinfo +%{_sbindir}/rcopenafs-client +%{_fillupdir}/sysconfig.openafs-client +%{vicecachedir} +%if %{have_firewalld} +%dir %{_prefix}/lib/firewalld +%dir %{_prefix}/lib/firewalld/services +%{_prefix}/lib/firewalld/services/afs3-callback.xml +%{_prefix}/lib/firewalld/services/afs3-rmtsys.xml +%endif +%endif + +%files server +%defattr(-,root,root) +%attr(770,root,root) %dir %{afslocaldir} +%attr(775,root,root) %dir %{afslogsdir} +%config %{viceetcdir}/server +%doc %{_mandir}/man5/AuthLog.5.gz +%doc %{_mandir}/man5/AuthLog.dir.5.gz +%doc %{_mandir}/man5/BackupLog.5.gz +%doc %{_mandir}/man5/BosConfig.5.gz +%doc %{_mandir}/man5/BosLog.5.gz +%doc %{_mandir}/man5/FORCESALVAGE.5.gz +%doc %{_mandir}/man5/FileLog.5.gz +%doc %{_mandir}/man5/KeyFile.5.gz +%doc %{_mandir}/man5/KeyFileExt.5.gz +%doc %{_mandir}/man5/NoAuth.5.gz +%doc %{_mandir}/man5/PtLog.5.gz +%doc %{_mandir}/man5/SALVAGE.fs.5.gz +%doc %{_mandir}/man5/SalvageLog.5.gz +%doc %{_mandir}/man5/UserList.5.gz +%doc %{_mandir}/man5/VLLog.5.gz +%doc %{_mandir}/man5/VolserLog.5.gz +%doc %{_mandir}/man5/afs_volume_header.5.gz +%doc %{_mandir}/man5/bdb.DB0.5.gz +%doc %{_mandir}/man5/krb.conf.5.gz +%doc %{_mandir}/man5/krb.excl.5.gz +%doc %{_mandir}/man5/prdb.DB0.5.gz +%doc %{_mandir}/man5/salvage.lock.5.gz +%doc %{_mandir}/man5/tapeconfig.5.gz +%doc %{_mandir}/man5/vldb.DB0.5.gz +%doc %{_mandir}/man8/akeyconvert.8.gz +%doc %{_mandir}/man8/asetkey.8.gz +%doc %{_mandir}/man8/bos_util.8.gz +%doc %{_mandir}/man8/bosserver.8.gz +%doc %{_mandir}/man8/buserver.8.gz +%doc %{_mandir}/man8/dafileserver.8.gz +%doc %{_mandir}/man8/dafssync-debug.8.gz +%doc %{_mandir}/man8/dafssync-debug_*.8.gz +%doc %{_mandir}/man8/dasalvager.8.gz +%doc %{_mandir}/man8/davolserver.8.gz +%doc %{_mandir}/man8/fileserver.8.gz +%doc %{_mandir}/man8/fssync-debug.8.gz +%doc %{_mandir}/man8/fssync-debug_*.8.gz +%doc %{_mandir}/man8/prdb_check.8.gz +%doc %{_mandir}/man8/pt_util.8.gz +%doc %{_mandir}/man8/ptserver.8.gz +%doc %{_mandir}/man8/salvager.8.gz +%doc %{_mandir}/man8/salvageserver.8.gz +%doc %{_mandir}/man8/state_analyzer.8.gz +%doc %{_mandir}/man8/upclient.8.gz +%doc %{_mandir}/man8/upserver.8.gz +%doc %{_mandir}/man8/vldb_check.8.gz +%doc %{_mandir}/man8/vldb_convert.8.gz +%doc %{_mandir}/man8/vlserver.8.gz +%doc %{_mandir}/man8/voldump.8.gz +%doc %{_mandir}/man8/volinfo.8.gz +%doc %{_mandir}/man8/volscan.8.gz +%doc %{_mandir}/man8/volserver.8.gz +%dir %{_libexecdir}/openafs +%{_libexecdir}/openafs/buserver +%{_libexecdir}/openafs/dafileserver +%{_libexecdir}/openafs/dasalvager +%{_libexecdir}/openafs/davolserver +%{_libexecdir}/openafs/fileserver +%{_libexecdir}/openafs/ptserver +%{_libexecdir}/openafs/salvager +%{_libexecdir}/openafs/salvageserver +%{_libexecdir}/openafs/upclient +%{_libexecdir}/openafs/upserver +%{_libexecdir}/openafs/vlserver +%{_libexecdir}/openafs/volserver +%{_sbindir}/asetkey +%{_sbindir}/akeyconvert +%{_sbindir}/bos_util +%{_sbindir}/bosserver +%{_sbindir}/dafssync-debug +%{_sbindir}/fssync-debug +%{_sbindir}/prdb_check +%{_sbindir}/pt_util +%{_sbindir}/salvsync-debug +%{_sbindir}/state_analyzer +%{_sbindir}/vldb_check +%{_sbindir}/vldb_convert +%{_sbindir}/voldump +%{_sbindir}/volinfo +%{_sbindir}/volscan +%_unitdir/openafs-server.service +%{_sbindir}/rcopenafs-server +/%{_fillupdir}/sysconfig.openafs-server +%if %{have_firewalld} +%dir %{_prefix}/lib/firewalld +%dir %{_prefix}/lib/firewalld/services +%{_prefix}/lib/firewalld/services/afs3-bos.xml +%{_prefix}/lib/firewalld/services/afs3-fileserver.xml +%{_prefix}/lib/firewalld/services/afs3-prserver.xml +%{_prefix}/lib/firewalld/services/afs3-update.xml +%{_prefix}/lib/firewalld/services/afs3-vlserver.xml +%{_prefix}/lib/firewalld/services/afs3-volser.xml +%endif + +%files devel +%defattr(-,root,root) +%dir %{_libdir}/openafs +%doc %{_mandir}/man1/livesys.1.gz +%doc %{_mandir}/man1/rxgen.1.gz +%doc %{_mandir}/man3/AFS::ukernel.3.gz +%{_bindir}/livesys +%{_bindir}/rxgen +%{_includedir}/openafs/ +%{_libdir}/openafs/libafshcrypto.so +%{_libdir}/openafs/librokenafs.so +%{perl_vendorarch}/ukernel.so +%dir %{perl_vendorlib}/AFS +%{perl_vendorlib}/AFS/ukernel.pm + +%files kernel-source +%defattr(-,root,root) +%dir /usr/src/kernel-modules +%dir /usr/src/kernel-modules/openafs +/usr/src/kernel-modules/openafs/* + +%if %{build_authlibs} +%files authlibs +%defattr(-,root,root) +%{_libdir}/openafs/libafsauthent.so.* +%{_libdir}/openafs/libafsrpc.so.* +%{_libdir}/openafs/libkopenafs.so.* + +%files authlibs-devel +%defattr(-,root,root) +%{_libdir}/openafs/libafsauthent.so +%{_libdir}/openafs/libafsrpc.so +%{_libdir}/openafs/libkopenafs.so +%endif + +# +# CHANGELOG +# + +%changelog diff --git a/preamble b/preamble new file mode 100644 index 0000000..e9bfbf7 --- /dev/null +++ b/preamble @@ -0,0 +1,3 @@ +Requires: kernel-%1 +Requires: %{name}-client = %{version} +Conflicts: %{name}-fuse-client = %{version} diff --git a/sysconfig.openafs-client b/sysconfig.openafs-client new file mode 100644 index 0000000..06ff3d3 --- /dev/null +++ b/sysconfig.openafs-client @@ -0,0 +1,17 @@ +# +# startup options for the openAFS client. +# see man afsd for details + +AFSD_ARGS="-fakestat -memcache -blocks 102400 -dynroot -afsdb" + +# +# sysname to set after startup +# leave empty for default setting. + +SYSNAME="" + +# +# switch for encryption to be set after startup +# must be one of "on" or "off" + +CRYPT="on" diff --git a/sysconfig.openafs-fuse-client b/sysconfig.openafs-fuse-client new file mode 100644 index 0000000..761671b --- /dev/null +++ b/sysconfig.openafs-fuse-client @@ -0,0 +1,17 @@ +# +# startup options for the openAFS FUSE client. +# see man afsd for details + +AFSD_ARGS="-fakestat -memcache -blocks 102400 -dynroot -afsdb" + +# +# sysname to set after startup +# leave empty for default setting. + +SYSNAME="" + +# +# switch for encryption to be set after startup +# must be one of "on" or "off" + +CRYPT="on" diff --git a/sysconfig.openafs-server b/sysconfig.openafs-server new file mode 100644 index 0000000..025e6c8 --- /dev/null +++ b/sysconfig.openafs-server @@ -0,0 +1,4 @@ +## Path: Network/File systems/AFS server +## Description: AFS server configuration, default mode + +# all is set in /etc/openafs/BosConfig