Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openafs for openSUSE:Factory checked in at 2025-04-10 21:59:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openafs (Old) and /work/SRC/openSUSE:Factory/.openafs.new.1907 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openafs" Thu Apr 10 21:59:55 2025 rev:53 rq:1268384 version:1.8.13.g20250116 Changes: -------- --- /work/SRC/openSUSE:Factory/openafs/openafs.changes 2025-01-27 20:56:37.058005644 +0100 +++ /work/SRC/openSUSE:Factory/.openafs.new.1907/openafs.changes 2025-04-10 22:00:49.272540967 +0200 @@ -1,0 +2,16 @@ +Wed Apr 9 06:47:28 UTC 2025 - Christof Hanke <christof.ha...@mpcdf.mpg.de> + +- add perl-rpm-packaging to BuildRequires: to resolve + "Have Choice"-Error for arch ppc64le + +------------------------------------------------------------------- +Wed Apr 9 05:28:26 UTC 2025 - Christof Hanke <christof.ha...@mpcdf.mpg.de> + +- update to latest git branch stable-1_8_x +- add upstream-patches required for kernel 6.14 + + 4702930f8dd87a6cad1d59ef8c127003fded1f31.patch + (LINUX: Refactor afs_linux_dentry_revalidate()) + + 0306f3fdac736e15620f5802bdce510d25bb2450.patch + (Linux-6.14: Handle dops.d_revalidate with parent) + +------------------------------------------------------------------- New: ---- 0306f3fdac736e15620f5802bdce510d25bb2450.patch 4702930f8dd87a6cad1d59ef8c127003fded1f31.patch BETA DEBUG BEGIN: New: (LINUX: Refactor afs_linux_dentry_revalidate()) + 0306f3fdac736e15620f5802bdce510d25bb2450.patch (Linux-6.14: Handle dops.d_revalidate with parent) New:- add upstream-patches required for kernel 6.14 + 4702930f8dd87a6cad1d59ef8c127003fded1f31.patch (LINUX: Refactor afs_linux_dentry_revalidate()) BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openafs.spec ++++++ --- /var/tmp/diff_new_pack.iD7Zpb/_old 2025-04-10 22:00:50.152577718 +0200 +++ /var/tmp/diff_new_pack.iD7Zpb/_new 2025-04-10 22:00:50.156577886 +0200 @@ -103,6 +103,10 @@ Source98: kmp_only.files Source99: openafs.changes +# FIX build of kernel module for version 6.14 +Patch01: 4702930f8dd87a6cad1d59ef8c127003fded1f31.patch +Patch02: 0306f3fdac736e15620f5802bdce510d25bb2450.patch + # GENERAL BuildRequires and Requires # @@ -124,6 +128,9 @@ BuildRequires: ncurses-devel BuildRequires: pkg-config BuildRequires: swig +%ifarch ppc64le +BuildRequires: perl-rpm-packaging +%endif Requires(post): %fillup_prereq @@ -314,6 +321,9 @@ %setup -q -n openafs-%{upstream_version} -T -b 0 -b 1 +%patch -P 01 -p1 +%patch -P 02 -p1 + ./regen.sh %build ++++++ 0306f3fdac736e15620f5802bdce510d25bb2450.patch ++++++ commit 0306f3fdac736e15620f5802bdce510d25bb2450 Author: Cheyenne Wills <cwi...@sinenomine.net> Date: Fri Feb 7 11:10:27 2025 -0700 Linux-6.14: Handle dops.d_revalidate with parent The Linux 6.14 commit: '5be1fa8abd7b0 Pass parent directory inode and expected name to ->d_revalidate()' added 2 parameters to the dentry_operations.d_revalidate method. These new parameters are being provided as a convenience so a filesystem's d_revalidate function can avoid some boilerplate code for obtaining the dentry's ->d_parent and ->d_name. The caller ensures that these two values are stable. Add a new autoconf test to determine if dentry_operations.d_revalidate has the new parameters. Update afs_linux_dentry_revalidate() to accept the new parameters. Change-Id: I7676ce9ae6ac48e37c8d9fbb3fefc455f80c41e1 Reviewed-on: https://gerrit.openafs.org/16253 Reviewed-by: Michael Meffie <mmef...@sinenomine.net> Reviewed-by: Mark Vitale <mvit...@sinenomine.net> Reviewed-by: Cheyenne Wills <cwi...@sinenomine.net> Tested-by: Cheyenne Wills <cwi...@sinenomine.net> Tested-by: BuildBot <build...@rampaginggeek.com> Reviewed-by: Andrew Deason <adea...@sinenomine.net> Tested-by: Andrew Deason <adea...@sinenomine.net> diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index afd2f8112..82c74c431 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -1592,32 +1592,43 @@ dentry_revalidate_common(struct vcache *pvcp, const char *name, struct dentry *d #endif } -#if defined(DOP_REVALIDATE_TAKES_UNSIGNED) +#if defined(DOP_REVALIDATE_TAKES_PARENT_INODE) +static int +afs_linux_dentry_revalidate(struct inode *parent_inode, const struct qstr *name, + struct dentry *dp, unsigned int flags) +{ + if ((flags & LOOKUP_RCU) != 0) { + return -ECHILD; + } + return dentry_revalidate_common(VTOAFS(parent_inode), name->name, dp); +} +#else +# if defined(DOP_REVALIDATE_TAKES_UNSIGNED) static int afs_linux_dentry_revalidate(struct dentry *dp, unsigned int flags) -#elif defined(DOP_REVALIDATE_TAKES_NAMEIDATA) +# elif defined(DOP_REVALIDATE_TAKES_NAMEIDATA) static int afs_linux_dentry_revalidate(struct dentry *dp, struct nameidata *nd) -#else +# else static int afs_linux_dentry_revalidate(struct dentry *dp, int flags) -#endif +# endif { int code; struct dentry *parent; -#ifdef LOOKUP_RCU +# ifdef LOOKUP_RCU /* We don't support RCU path walking */ -# if defined(DOP_REVALIDATE_TAKES_UNSIGNED) +# if defined(DOP_REVALIDATE_TAKES_UNSIGNED) if ((flags & LOOKUP_RCU) != 0) { return -ECHILD; } -# else +# else if ((nd->flags & LOOKUP_RCU) != 0) { return -ECHILD; } +# endif # endif -#endif parent = dget_parent(dp); code = dentry_revalidate_common(VTOAFS(parent->d_inode), @@ -1626,6 +1637,7 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) return code; } +#endif /* DOP_REVALIDATE_TAKES_PARENT_INODE */ static void afs_dentry_iput(struct dentry *dp, struct inode *ip) diff --git a/src/cf/linux-kernel-assorted.m4 b/src/cf/linux-kernel-assorted.m4 index 88f9e1897..03459137f 100644 --- a/src/cf/linux-kernel-assorted.m4 +++ b/src/cf/linux-kernel-assorted.m4 @@ -17,6 +17,7 @@ LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA LINUX_IOP_I_PUT_LINK_TAKES_COOKIE LINUX_DOP_D_DELETE_TAKES_CONST LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA +LINUX_DOP_D_REVALIDATE_TAKES_PARENT_INODE LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T LINUX_FOP_F_FSYNC_TAKES_DENTRY LINUX_FOP_F_FSYNC_TAKES_RANGE diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index b22930690..c7c0c2318 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -885,3 +885,21 @@ AC_DEFUN([LINUX_FILE_LOCK_CORE], [ [define if file_lock_core exists], []) ]) + +dnl linux 6.14 updated dentry_operations.d_revalidate with 2 additional +dnl parameters, the inode of the parent directory and the name the dentry +dnl is expected to have. Using these are optional. Both parameters are +dnl stable. +AC_DEFUN([LINUX_DOP_D_REVALIDATE_TAKES_PARENT_INODE], [ + AC_CHECK_LINUX_BUILD([whether dop.d_revalidate takes inode and qstr], + [ac_cv_linux_func_d_revalidate_takes_parent_inode], + [#include <linux/fs.h> + #include <linux/namei.h> + static int reval(struct inode *parent_inode, const struct qstr *name, + struct dentry *d, unsigned int flags) { return 0; } + struct dentry_operations dops;], + [dops.d_revalidate = reval;], + [DOP_REVALIDATE_TAKES_PARENT_INODE], + [define if your dops.d_revalidate takes a parent inode], + [-Werror]) +]) \ No newline at end of file ++++++ 4702930f8dd87a6cad1d59ef8c127003fded1f31.patch ++++++ commit 4702930f8dd87a6cad1d59ef8c127003fded1f31 Author: Cheyenne Wills <cwi...@sinenomine.net> Date: Fri Feb 14 15:18:52 2025 -0700 LINUX: Refactor afs_linux_dentry_revalidate() The signature for Linux's dentry_operations.d_revalidate method has undergone several changes, leading to increased use of #if directives in afs_linux_dentry_revalidate(). To make the code more maintainable for future changes involving the parent inode and the dentry's name, split out most of our logic in afs_linux_dentry_revalidate() into a new function, dentry_revalidate_common(). Keep the logic for getting the parent and checking for LOOKUP_RCU in the caller, afs_linux_dentry_revalidate(). Written in collaboration with adea...@sinenomine.net. Change-Id: Ic45ac12fceba8c5ba98d2b9c454ed28c44f3ece2 Reviewed-on: https://gerrit.openafs.org/16258 Reviewed-by: Michael Meffie <mmef...@sinenomine.net> Reviewed-by: Mark Vitale <mvit...@sinenomine.net> Tested-by: BuildBot <build...@rampaginggeek.com> Reviewed-by: Cheyenne Wills <cwi...@sinenomine.net> Tested-by: Cheyenne Wills <cwi...@sinenomine.net> Reviewed-by: Andrew Deason <adea...@sinenomine.net> diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 91f7e76be..afd2f8112 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -1373,43 +1373,24 @@ check_dentry_race(struct dentry *dp) } #endif /* D_SPLICE_ALIAS_RACE */ -/* Validate a dentry. Return 1 if unchanged, 0 if VFS layer should re-evaluate. - * In kernels 2.2.10 and above, we are passed an additional flags var which - * may have either the LOOKUP_FOLLOW OR LOOKUP_DIRECTORY set in which case - * we are advised to follow the entry if it is a link or to make sure that - * it is a directory. But since the kernel itself checks these possibilities - * later on, we shouldn't have to do it until later. Perhaps in the future.. +/* + * Validate a dentry. Return 1 if unchanged, 0 if VFS layer should re-evaluate. * - * The code here assumes that on entry the global lock is not held + * @param[in] pvcp vcache for the parent directory containing 'dp' + * @param[in] name the name of the directory entry for 'dp' + * @param[in] dp the dentry we are checking */ static int -#if defined(DOP_REVALIDATE_TAKES_UNSIGNED) -afs_linux_dentry_revalidate(struct dentry *dp, unsigned int flags) -#elif defined(DOP_REVALIDATE_TAKES_NAMEIDATA) -afs_linux_dentry_revalidate(struct dentry *dp, struct nameidata *nd) -#else -afs_linux_dentry_revalidate(struct dentry *dp, int flags) -#endif +dentry_revalidate_common(struct vcache *pvcp, const char *name, struct dentry *dp) { cred_t *credp = NULL; - struct vcache *vcp, *pvcp, *tvc = NULL; - struct dentry *parent; + struct vcache *vcp, *tvc = NULL; int valid; struct afs_fakestat_state fakestate; int force_drop = 0; afs_uint32 parent_dv; int code = 0; -#ifdef LOOKUP_RCU - /* We don't support RCU path walking */ -# if defined(DOP_REVALIDATE_TAKES_UNSIGNED) - if (flags & LOOKUP_RCU) -# else - if (nd->flags & LOOKUP_RCU) -# endif - return -ECHILD; -#endif - #ifdef D_SPLICE_ALIAS_RACE if (check_dentry_race(dp)) { valid = 0; @@ -1437,7 +1418,7 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) if (code) { goto error; } - if ((strcmp(dp->d_name.name, ".directory") == 0)) { + if ((strcmp(name, ".directory") == 0)) { tryEvalOnly = 1; } if (tryEvalOnly) @@ -1453,13 +1434,11 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) goto bad_dentry; } } - } else if (vcp->mvstat == AFS_MVSTAT_ROOT && *dp->d_name.name != '/') { + } else if (vcp->mvstat == AFS_MVSTAT_ROOT && name[0] != '/') { osi_Assert(vcp->mvid.parent != NULL); } - parent = dget_parent(dp); - pvcp = VTOAFS(parent->d_inode); - parent_dv = parent_vcache_dv(parent->d_inode, credp); + parent_dv = parent_vcache_dv(AFSTOV(pvcp), credp); /* If the parent's DataVersion has changed or the vnode * is longer valid, we need to do a full lookup. VerifyVCache @@ -1472,7 +1451,7 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) if (credp == NULL) { credp = crref(); } - code = afs_lookup(pvcp, (char *)dp->d_name.name, &tvc, credp); + code = afs_lookup(pvcp, (char *)name, &tvc, credp); code = filter_enoent(code); if (code == ENOENT) { /* ENOENT is not an error here. */ @@ -1483,7 +1462,6 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) if (code) { /* We couldn't perform the lookup, so we don't know if the * dentry is valid or not. */ - dput(parent); goto error; } @@ -1506,19 +1484,16 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) * _not_ okay. Force it to be unhashed, since the given name * doesn't point to this file anymore. */ - dput(parent); force_drop = 1; goto bad_dentry; } code = afs_CreateAttr(&vattr); if (code) { - dput(parent); goto error; } if (afs_getattr(vcp, vattr, credp)) { - dput(parent); afs_DestroyAttr(vattr); code = EIO; goto error; @@ -1533,23 +1508,15 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) /* should we always update the attributes at this point? */ /* unlikely--the vcache entry hasn't changed */ - dput(parent); - } else { - /* 'dp' represents a cached negative lookup. */ - parent = dget_parent(dp); - pvcp = VTOAFS(parent->d_inode); - parent_dv = parent_vcache_dv(parent->d_inode, credp); + parent_dv = parent_vcache_dv(AFSTOV(pvcp), credp); if (parent_dv > dp->d_time || !(pvcp->f.states & CStatd) || afs_IsDynroot(pvcp)) { - dput(parent); goto bad_dentry; } - - dput(parent); } good_dentry: @@ -1625,6 +1592,41 @@ afs_linux_dentry_revalidate(struct dentry *dp, int flags) #endif } +#if defined(DOP_REVALIDATE_TAKES_UNSIGNED) +static int +afs_linux_dentry_revalidate(struct dentry *dp, unsigned int flags) +#elif defined(DOP_REVALIDATE_TAKES_NAMEIDATA) +static int +afs_linux_dentry_revalidate(struct dentry *dp, struct nameidata *nd) +#else +static int +afs_linux_dentry_revalidate(struct dentry *dp, int flags) +#endif +{ + int code; + struct dentry *parent; + +#ifdef LOOKUP_RCU + /* We don't support RCU path walking */ +# if defined(DOP_REVALIDATE_TAKES_UNSIGNED) + if ((flags & LOOKUP_RCU) != 0) { + return -ECHILD; + } +# else + if ((nd->flags & LOOKUP_RCU) != 0) { + return -ECHILD; + } +# endif +#endif + + parent = dget_parent(dp); + code = dentry_revalidate_common(VTOAFS(parent->d_inode), + dp->d_name.name, dp); + dput(parent); + + return code; +} + static void afs_dentry_iput(struct dentry *dp, struct inode *ip) { ++++++ openafs-stable-1_8_x-doc.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/man-pages/Makefile.in new/openafs-stable-1_8_x/doc/man-pages/Makefile.in --- old/openafs-stable-1_8_x/doc/man-pages/Makefile.in 2024-08-14 08:43:34.503803029 +0200 +++ new/openafs-stable-1_8_x/doc/man-pages/Makefile.in 2025-04-09 06:44:22.554631822 +0200 @@ -43,9 +43,11 @@ chmod +x install-man mkdir -p $(DEST)/man/man1 $(DEST)/man/man3 \ $(DEST)/man/man5 $(DEST)/man/man8 - set -e; for M in man1/*.1 man3/*.3 man5/*.5 man8/*.8 ; do \ + set -e; orig_pwd=`pwd` ; cd $(srcdir) ; \ + for M in man1/*.1 man3/*.3 man5/*.5 man8/*.8 ; do \ + cd $$orig_pwd ; \ if ! [ -e $$M.noinstall ] ; then \ - ./install-man $$M $(DEST)/man/$$M ; \ + ./install-man $(srcdir)/$$M $(DEST)/man/$$M ; \ fi ; \ done set -e; for M in ${LINKEDPAGES}; do \ @@ -69,9 +71,11 @@ chmod +x install-man mkdir -p $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man3 \ $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8 - set -e; for M in man1/*.1 man3/*.3 man5/*.5 man8/*.8 ; do \ + set -e; orig_pwd=`pwd` ; cd $(srcdir) ; \ + for M in man1/*.1 man3/*.3 man5/*.5 man8/*.8 ; do \ + cd $$orig_pwd ; \ if ! [ -e $$M.noinstall ] ; then \ - ./install-man $$M $(DESTDIR)$(mandir)/$$M ; \ + ./install-man $(srcdir)/$$M $(DESTDIR)$(mandir)/$$M ; \ fi; \ done set -e; for M in ${LINKEDPAGES}; do \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/man-pages/pod1/rxgen.pod new/openafs-stable-1_8_x/doc/man-pages/pod1/rxgen.pod --- old/openafs-stable-1_8_x/doc/man-pages/pod1/rxgen.pod 2024-08-14 08:43:34.503803029 +0200 +++ new/openafs-stable-1_8_x/doc/man-pages/pod1/rxgen.pod 2025-04-09 06:44:22.555631827 +0200 @@ -669,7 +669,7 @@ vldb_list linkedvldbs; vldblist vllist, vllist1; - bzero(&linkedvldbs, sizeof(vldb_list)); + memset(&linkedvldbs, 0, sizeof(vldb_list)); code = VL_LinkedList(&attributes, &nentries, &linkedvldbs); if (!code) { printf("We got %d vldb entries\n", nentries); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/protocol/rx-spec.h new/openafs-stable-1_8_x/doc/protocol/rx-spec.h --- old/openafs-stable-1_8_x/doc/protocol/rx-spec.h 2024-08-14 08:43:34.513803082 +0200 +++ new/openafs-stable-1_8_x/doc/protocol/rx-spec.h 2025-04-09 06:44:22.556631831 +0200 @@ -4389,7 +4389,7 @@ * \par * \#define rx_Read(call, buf, nbytes) * \n ((call)->nLeft > (nbytes) ? - * \n bcopy((call)->bufPtr, (buf), (nbytes)), + * \n memcpy((buf), (call)->bufPtr, (nbytes)), * \n (call)->nLeft -= (nbytes), (call)->bufPtr += (nbytes), (nbytes) * \n : rx_ReadProc((call), (buf), (nbytes))) * \par @@ -4410,7 +4410,7 @@ * \par * \#define rx_Write(call, buf, nbytes) * \n ((call)->nFree > (nbytes) ? - * \n bcopy((buf), (call)->bufPtr, (nbytes)), + * \n memcpy((call)->bufPtr, (buf), (nbytes)), * \n (call)->nFree -= (nbytes), * \n (call)->bufPtr += (nbytes), (nbytes) * \n : rx_WriteProc((call), (buf), (nbytes))) @@ -5269,7 +5269,7 @@ * pn, rn, hostEntP->h_length, sizeof(u_long)); * exit(1); * } - * bcopy(hostEntP->h_addr, (char *)&hostIPAddr, sizeof(hostIPAddr)); + * memcpy(&hostIPAddr, hostEntP->h_addr, sizeof(hostIPAddr)); * return(hostIPAddr); * } /* GetIpAddress */ * \endcode diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/AdminGuide/Makefile.in new/openafs-stable-1_8_x/doc/xml/AdminGuide/Makefile.in --- old/openafs-stable-1_8_x/doc/xml/AdminGuide/Makefile.in 2024-08-06 09:14:53.836907684 +0200 +++ new/openafs-stable-1_8_x/doc/xml/AdminGuide/Makefile.in 2025-04-09 06:44:22.556631831 +0200 @@ -12,6 +12,7 @@ # # HTML_XSL is possibly specific to Debian and may need to be modified on other # systems. +srcdir=@srcdir@ BOOK = auagd000 @@ -33,22 +34,29 @@ KINDLEGEN = @KINDLEGEN@ DBTOEPUB = $(DOCBOOK_STYLESHEETS)/epub/bin/dbtoepub +XSL_FLAGS = --path '@abs_builddir@' + index.html: $(SRCS) - $(XSLTPROC) --param navig.graphics 1 \ + $(XSLTPROC) $(XSL_FLAGS) \ + --param navig.graphics 1 \ --param use.id.as.filename 1 \ - --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml + --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) \ + $(srcdir)/$(BOOK).xml $(BOOK).pdf: $(SRCS) if test "x$(DOCBOOK2PDF)" = "xfop"; then \ - $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \ + $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl \ + $(srcdir)/$(BOOK).xml > $(BOOK).fo; \ $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \ else \ - $(DOCBOOK2PDF) $(BOOK).xml; \ + $(DOCBOOK2PDF) --output=$@ --xslt-opts="$(XSL_FLAGS)" \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).epub: $(SRCS) if test -x "$(DBTOEPUB)" ; then \ - $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl $(BOOK).xml; \ + $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).mobi: $(BOOK).epub @@ -57,7 +65,7 @@ fi check: - xmllint --noout --valid $(BOOK).xml + xmllint $(XSL_FLAGS) --noout --valid $(srcdir)/$(BOOK).xml clean: rm -f *.aux *.epub *.fo *.html *.log *.mobi *.out *.pdf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/AdminRef/.gitignore new/openafs-stable-1_8_x/doc/xml/AdminRef/.gitignore --- old/openafs-stable-1_8_x/doc/xml/AdminRef/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/openafs-stable-1_8_x/doc/xml/AdminRef/.gitignore 2025-04-09 06:44:22.556631831 +0200 @@ -0,0 +1,19 @@ +# After changing this file, please run +# git ls-files -i --exclude-standard +# to check that you haven't inadvertently ignored any tracked files. + +*.aux +*.chm +*.epub +*.html +*.fo +*.log +*.mobi +*.out +*.pdf + +Makefile +version.xml +entities.dtd +sect*.xml +sect*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/AdminRef/Makefile.in new/openafs-stable-1_8_x/doc/xml/AdminRef/Makefile.in --- old/openafs-stable-1_8_x/doc/xml/AdminRef/Makefile.in 2024-08-06 09:14:53.853574426 +0200 +++ new/openafs-stable-1_8_x/doc/xml/AdminRef/Makefile.in 2025-04-09 06:44:22.556631831 +0200 @@ -1,4 +1,5 @@ # Makefile to build the AFS Reference Guide for Unix. +srcdir=@srcdir@ BOOK = auarf000 @@ -9,27 +10,33 @@ include @TOP_OBJDIR@/src/config/Makefile.version SRCS = $(BOOK).xml preface.xml $(VERSION).xml \ - entities.dtd sect1.xml sect5.xml sect8.xml + entities.dtd sect1.xml sect3.xml sect5.xml sect8.xml DOCBOOK_STYLESHEETS = @DOCBOOK_STYLESHEETS@ XSLTPROC = @XSLTPROC@ --stringparam variablelist.as.blocks 1 --param use.id.as.filename 1 DOCBOOK2PDF = @DOCBOOK2PDF@ DBTOEPUB = $(DOCBOOK_STYLESHEETS)/epub/bin/dbtoepub KINDLEGEN = @KINDLEGEN@ -entities.dtd sect1.xml sect5.xml sect8.xml: - ./generate-xml.pl $(TOP_SRCDIR) +XSL_FLAGS = --path '@abs_builddir@' + +entities.dtd sect1.xml sect3.xml sect5.xml sect8.xml: + $(srcdir)/generate-xml.pl $(TOP_SRCDIR) $(BOOK).pdf: $(SRCS) if test "x$(DOCBOOK2PDF)" = "xfop"; then \ - $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \ + $(XSLTPROC) $(XSL_FLAGS) \ + $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl \ + $(srcdir)/$(BOOK).xml > $(BOOK).fo; \ $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \ else \ - $(DOCBOOK2PDF) $(BOOK).xml; \ + $(DOCBOOK2PDF) --output=$@ --xslt-opts="$(XSL_FLAGS)" \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).epub: $(SRCS) if test -x "$(DBTOEPUB)" ; then \ - $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl $(BOOK).xml; \ + $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).mobi: $(BOOK).epub @@ -38,9 +45,9 @@ fi check: - xmllint --noout --valid $(BOOK).xml + xmllint $(XSL_FLAGS) --noout --valid $(srcdir)/$(BOOK).xml clean: rm -f $(BOOK).pdf $(BOOK).mobi $(BOOK).epub $(BOOK).fo \ - entities.dtd sect1.xml sect5.xml sect8.xml $(VERSION).xml - rm -rf sect1 sect5 sect8 + entities.dtd sect1.xml sect3.xml sect5.xml sect8.xml $(VERSION).xml + rm -rf sect1 sect3 sect5 sect8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/AdminRef/auarf000.xml new/openafs-stable-1_8_x/doc/xml/AdminRef/auarf000.xml --- old/openafs-stable-1_8_x/doc/xml/AdminRef/auarf000.xml 2024-08-06 09:14:53.853574426 +0200 +++ new/openafs-stable-1_8_x/doc/xml/AdminRef/auarf000.xml 2025-04-09 06:44:22.556631831 +0200 @@ -4,6 +4,7 @@ <!ENTITY version SYSTEM "version.xml"> <!ENTITY preface SYSTEM "preface.xml"> <!ENTITY sect1 SYSTEM "sect1.xml"> +<!ENTITY sect3 SYSTEM "sect3.xml"> <!ENTITY sect5 SYSTEM "sect5.xml"> <!ENTITY sect8 SYSTEM "sect8.xml"> <!ENTITY % entities SYSTEM "entities.dtd"> @@ -62,6 +63,11 @@ </reference> <reference> + <title>AFS Library Reference</title> + §3; + </reference> + + <reference> <title>AFS System Files</title> §5; </reference> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/AdminRef/generate-xml.pl new/openafs-stable-1_8_x/doc/xml/AdminRef/generate-xml.pl --- old/openafs-stable-1_8_x/doc/xml/AdminRef/generate-xml.pl 2024-06-12 16:12:49.816116900 +0200 +++ new/openafs-stable-1_8_x/doc/xml/AdminRef/generate-xml.pl 2025-04-09 06:44:22.556631831 +0200 @@ -2,35 +2,46 @@ eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; -@sections = ('1', '5', '8'); +@sections = ('1', '3', '5', '8'); $TOP_SRCDIR = shift @ARGV; +$srcdir = sprintf "%s/../doc/xml/AdminRef", $TOP_SRCDIR; $doc_man_pages = sprintf "%s/../doc/man-pages", $TOP_SRCDIR; open(ENTITIES, ">entities.dtd") || die; foreach $section (@sections) { printf "generating section %s...\n", $section; + my @entities = (); mkdir(sprintf "sect%d", $section); opendir($DIR, sprintf "%s/pod%d", $doc_man_pages, $section) || die; - open(SECT, sprintf ">sect%d.xml", $section) || die; while ($podfile = readdir($DIR)) { next unless $podfile =~ /\.pod$/; ($xmlfile = $podfile) =~ s/\.pod$/.xml/; ($entity = $xmlfile) =~ s/\.xml$//; - printf "pod2refentry < %s > %s\n", $podfile, $xmlfile; + printf "%s/pod2refentry < %s > %s\n", $srcdir, $podfile, $xmlfile; - system(sprintf "./pod2refentry --section=%d < %s/pod%d/%s > sect%d/%s", - $section, $doc_man_pages, $section, $podfile, $section, $xmlfile); + my $rc = system(sprintf "%s/pod2refentry --section=%d < %s/pod%d/%s > sect%d/%s", + $srcdir, $section, $doc_man_pages, $section, $podfile, $section, $xmlfile); + if ($rc != 0) { + die "Failed to generate sect${section}/${xmlfile}: $rc\n"; + } printf ENTITIES "<!ENTITY %s%s SYSTEM \"sect%d/%s\">\n", $entity, $section, $section, $xmlfile; - printf SECT "&%s%s;\n", $entity, $section; + + push(@entities, $entity); } closedir($DIR); + + open(SECT, sprintf ">sect%d.xml", $section) || die; + foreach $entity (sort(@entities)) { + printf SECT "&%s%s;\n", $entity, $section; + } + close(SECT); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/QuickStartUnix/Makefile.in new/openafs-stable-1_8_x/doc/xml/QuickStartUnix/Makefile.in --- old/openafs-stable-1_8_x/doc/xml/QuickStartUnix/Makefile.in 2024-08-06 09:14:53.853574426 +0200 +++ new/openafs-stable-1_8_x/doc/xml/QuickStartUnix/Makefile.in 2025-04-09 06:44:22.556631831 +0200 @@ -12,6 +12,7 @@ # # HTML_XSL is specific to Debian and will need to be modified on other # systems until we have a better mechanism for finding the correct path. +srcdir=@srcdir@ BOOK = auqbg000 @@ -31,22 +32,30 @@ DBTOEPUB = $(DOCBOOK_STYLESHEETS)/epub/bin/dbtoepub KINDLEGEN = @KINDLEGEN@ +XSL_FLAGS = --path '@abs_builddir@' + index.html: $(SRCS) - $(XSLTPROC) --param navig.graphics 1 \ + $(XSLTPROC) $(XSL_FLAGS) \ + --param navig.graphics 1 \ --param use.id.as.filename 1 \ - --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml + --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) \ + $(srcdir)/$(BOOK).xml $(BOOK).pdf: $(SRCS) if test "x$(DOCBOOK2PDF)" = "xfop"; then \ - $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \ + $(XSLTPROC) $(XSL_FLAGS) \ + $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl \ + $(srcdir)/$(BOOK).xml > $(BOOK).fo; \ $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \ else \ - $(DOCBOOK2PDF) $(BOOK).xml; \ + $(DOCBOOK2PDF) --output=$@ --xslt-opts="$(XSL_FLAGS)" \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).epub: $(SRCS) if test -x "$(DBTOEPUB)" ; then \ - $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl $(BOOK).xml; \ + $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).mobi: $(BOOK).epub @@ -55,7 +64,7 @@ fi check: - xmllint --noout --valid $(BOOK).xml + xmllint $(XSL_FLAGS) --noout --valid $(srcdir)/$(BOOK).xml clean: rm -f *.aux *.epub *.fo *.html *.log *.mobi *.out *.pdf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openafs-stable-1_8_x/doc/xml/UserGuide/Makefile.in new/openafs-stable-1_8_x/doc/xml/UserGuide/Makefile.in --- old/openafs-stable-1_8_x/doc/xml/UserGuide/Makefile.in 2024-08-06 09:14:53.866907820 +0200 +++ new/openafs-stable-1_8_x/doc/xml/UserGuide/Makefile.in 2025-04-09 06:44:22.556631831 +0200 @@ -12,6 +12,7 @@ # # HTML_XSL is possibly specific to Debian and may need to be modified on other # systems. +srcdir=@srcdir@ BOOK = auusg000 @@ -31,22 +32,30 @@ DBTOEPUB = $(DOCBOOK_STYLESHEETS)/epub/bin/dbtoepub KINDLEGEN = @KINDLEGEN@ +XSL_FLAGS = --path '@abs_builddir@' + index.html: $(SRCS) - $(XSLTPROC) --param navig.graphics 1 \ + $(XSLTPROC) $(XSL_FLAGS) \ + --param navig.graphics 1 \ --param use.id.as.filename 1 \ - --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml + --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) \ + $(srcdir)/$(BOOK).xml $(BOOK).pdf: $(SRCS) if test "x$(DOCBOOK2PDF)" = "xfop"; then \ - $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \ + $(XSLTPROC) $(XSL_FLAGS) \ + $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl \ + $(srcdir)/$(BOOK).xml > $(BOOK).fo; \ $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \ else \ - $(DOCBOOK2PDF) $(BOOK).xml; \ + $(DOCBOOK2PDF) --output=$@ --xslt-opts="$(XSL_FLAGS)" \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).epub: $(SRCS) if test -x "$(DBTOEPUB)" ; then \ - $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl $(BOOK).xml; \ + $(DBTOEPUB) -s $(TOP_SRCDIR)/../doc/xml/mobi-fixup.xsl \ + $(srcdir)/$(BOOK).xml; \ fi $(BOOK).mobi: $(BOOK).epub @@ -55,7 +64,7 @@ fi check: - xmllint --noout --valid $(BOOK).xml + xmllint $(XSL_FLAGS) --noout --valid $(srcdir)/$(BOOK).xml clean: rm -f *.aux *.epub *.fo *.html *.log *.mobi *.out *.pdf ++++++ openafs-stable-1_8_x-doc.tar.bz2.md5 ++++++ --- /var/tmp/diff_new_pack.iD7Zpb/_old 2025-04-10 22:00:51.512634516 +0200 +++ /var/tmp/diff_new_pack.iD7Zpb/_new 2025-04-10 22:00:51.516634683 +0200 @@ -1,2 +1,2 @@ -062fe23f3bd1c46786420373649e8414 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 +6cce2b29b2027dcbed7911da86f2f5e5 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 ++++++ openafs-stable-1_8_x-doc.tar.bz2.sha256 ++++++ --- /var/tmp/diff_new_pack.iD7Zpb/_old 2025-04-10 22:00:51.536635518 +0200 +++ /var/tmp/diff_new_pack.iD7Zpb/_new 2025-04-10 22:00:51.536635518 +0200 @@ -1,2 +1,2 @@ -0069c920ea173ff34f729dce26788c9a55966a9b71cc76c53176b0017771f5be /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 +05e7d966cffd6fe72fd6976065200e5573457aa35748874d57eec6ecbed23670 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-doc.tar.bz2 ++++++ openafs-stable-1_8_x-src.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/openafs/openafs-stable-1_8_x-src.tar.bz2 /work/SRC/openSUSE:Factory/.openafs.new.1907/openafs-stable-1_8_x-src.tar.bz2 differ: char 11, line 1 ++++++ openafs-stable-1_8_x-src.tar.bz2.md5 ++++++ --- /var/tmp/diff_new_pack.iD7Zpb/_old 2025-04-10 22:00:51.572637022 +0200 +++ /var/tmp/diff_new_pack.iD7Zpb/_new 2025-04-10 22:00:51.576637188 +0200 @@ -1,2 +1,2 @@ -333aca22efa0c5fbdd522eee084d16d9 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 +c35b8393068ac020d8d0a3baa9ac7fc5 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 ++++++ openafs-stable-1_8_x-src.tar.bz2.sha256 ++++++ --- /var/tmp/diff_new_pack.iD7Zpb/_old 2025-04-10 22:00:51.608638525 +0200 +++ /var/tmp/diff_new_pack.iD7Zpb/_new 2025-04-10 22:00:51.612638692 +0200 @@ -1,2 +1,2 @@ -764cfd8501ca2d8796c41ed588a9664d5e317fd8253757504df2bf136db65afe /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2 +5088353cec7628b9ab0640e2ab8a228add749669ff3f7567b760ccedda64f830 /home/hanke/obs/home:hauky:branches:filesystems/openafs/openafs-stable-1_8_x-src.tar.bz2