* doc/find-maint.texi: switch to the master branch before creating the
release tag. Use "make web-manual-update" to update the manual. Use
@example to more clearly indicate the commands a maintainer should run.
* bootstrap.conf (gnulib_modules): add gnu-web-doc-update so that
"make web-manual-update" works.
* build-aux/.gitignore: Ignore gnu-web-doc-update because it's copied
from gnulib.
---
bootstrap.conf | 4 +-
build-aux/.gitignore | 1 +
doc/find-maint.texi | 137 ++++++++++++++++++++++++++-----------------
3 files changed, 86 insertions(+), 56 deletions(-)
diff --git a/bootstrap.conf b/bootstrap.conf
index b7de74e3..b45f5760 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -37,22 +37,20 @@ gitlog-to-changelog
maintainer-makefile
update-copyright
gendocs
+gnu-web-doc-update
'
# 'consider' comments copied from 'import-gnulib.config':
# consider using do-release-commit-and-tag
-# consider using gendocs
# consider using getdelim
# consider using gethrxtime
# consider using getsubopt (for -D)
-# consider using gnu-web-doc-update
# consider using idprov-drop and privset for locate
# consider using long-options
# consider using nproc in xargs
# consider using pmccabe2html
# consider using selinux-h
-# consider using gendocs
# consider using sig2str in xargs
# consider using signal (why not: maybe we don't need those features)
# consider using the dev-ino module to support -samefile.
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
index 107df35c..0939225a 100644
--- a/build-aux/.gitignore
+++ b/build-aux/.gitignore
@@ -27,3 +27,4 @@
/ylwrap
/gendocs.sh
/git-version-gen
+/gnu-web-doc-update
diff --git a/doc/find-maint.texi b/doc/find-maint.texi
index 67776293..700faec2 100644
--- a/doc/find-maint.texi
+++ b/doc/find-maint.texi
@@ -881,12 +881,12 @@ script before running it.
set +m
if vanilla_db="$(mktemp nicedb.XXXXXX)" ; then
if updatedb --prunepaths="" --old-format --localpaths="/tmp" \
- --output="$@{vanilla_db@}" ; then
- true
+ --output="$@{vanilla_db@}" ; then
+ true
else
- rm -f "$@{vanilla_db@}"
- vanilla_db=""
- echo "Failed to create old-format locate database; skipping the sanity
checks" >&2
+ rm -f "$@{vanilla_db@}"
+ vanilla_db=""
+ echo "Failed to create old-format locate database; skipping the sanity
checks" >&2
fi
fi
@@ -913,17 +913,17 @@ then
for locate ; do
ver="$locate = $("$locate" --version | head -1)"
if [ -z "$vanilla_db" ] || "$locate" -d "$vanilla_db" "" >/dev/null ;
then
- "$locate" -d "$dbfile" "" >/dev/null
- if [ $? -gt 128 ] ; then
- bad="$bad
+ "$locate" -d "$dbfile" "" >/dev/null
+ if [ $? -gt 128 ] ; then
+ bad="$bad
vulnerable: $ver"
- else
- good="$good
+ else
+ good="$good
good: $ver"
- fi
+ fi
else
- # the regular locate failed
- ugly="$ugly
+ # the regular locate failed
+ ugly="$ugly
buggy, may or may not be vulnerable: $ver"
fi
done
@@ -971,8 +971,8 @@ Index: locate/locate.c
RCS file: /cvsroot/findutils/findutils/locate/locate.c,v
retrieving revision 1.58.2.2
diff -u -p -r1.58.2.2 locate.c
---- locate/locate.c 22 Apr 2007 16:57:42 -0000 1.58.2.2
-+++ locate/locate.c 28 May 2007 10:18:16 -0000
+--- locate/locate.c 22 Apr 2007 16:57:42 -0000 1.58.2.2
++++ locate/locate.c 28 May 2007 10:18:16 -0000
@@@@ -124,9 +124,9 @@@@ extern int errno;
#include "locatedb.h"
@@ -994,9 +994,9 @@ diff -u -p -r1.58.2.2 locate.c
+toolong (struct process_data *procdata)
+@{
+ error (EXIT_FAILURE, 0,
-+ _("locate database %s contains a "
-+ "filename longer than locate can handle"),
-+ procdata->dbfile);
++ _("locate database %s contains a "
++ "filename longer than locate can handle"),
++ procdata->dbfile);
+@}
+
+static void
@@ -1011,8 +1011,8 @@ diff -u -p -r1.58.2.2 locate.c
+ @{
+ procdata->pathsize = siz1+siz2;
+ procdata->original_filename = x2nrealloc (procdata->original_filename,
-+ &procdata->pathsize,
-+ 1);
++ &procdata->pathsize,
++ 1);
+ @}
+@}
+
@@ -1038,30 +1038,30 @@ diff -u -p -r1.58.2.2 locate.c
+ for (i=procdata->count;
(procdata->c = getc (procdata->fp)) > LOCATEDB_OLD_ESCAPE;)
- if (procdata->c < 0200)
-- *s++ = procdata->c; /* An ordinary character. */
+- *s++ = procdata->c; /* An ordinary character. */
- else
- @{
-- /* Bigram markers have the high bit set. */
-- procdata->c &= 0177;
-- *s++ = procdata->bigram1[procdata->c];
-- *s++ = procdata->bigram2[procdata->c];
+- /* Bigram markers have the high bit set. */
+- procdata->c &= 0177;
+- *s++ = procdata->bigram1[procdata->c];
+- *s++ = procdata->bigram2[procdata->c];
- @}
- *s-- = '\0';
+ @{
+ if (procdata->c < 0200)
-+ @{
-+ /* An ordinary character. */
-+ extend (procdata, i, 1u);
-+ procdata->original_filename[i++] = procdata->c;
-+ @}
++ @{
++ /* An ordinary character. */
++ extend (procdata, i, 1u);
++ procdata->original_filename[i++] = procdata->c;
++ @}
+ else
-+ @{
-+ /* Bigram markers have the high bit set. */
-+ extend (procdata, i, 2u);
-+ procdata->c &= 0177;
-+ procdata->original_filename[i++] = procdata->bigram1[procdata->c];
-+ procdata->original_filename[i++] = procdata->bigram2[procdata->c];
-+ @}
++ @{
++ /* Bigram markers have the high bit set. */
++ extend (procdata, i, 2u);
++ procdata->c &= 0177;
++ procdata->original_filename[i++] = procdata->bigram1[procdata->c];
++ procdata->original_filename[i++] = procdata->bigram2[procdata->c];
++ @}
+ @}
+
+ /* Consider the case where we executed the loop body zero times; we
@@ -1100,8 +1100,12 @@ included in the @file{ChangeLog} and @file{NEWS}
entries. See
@node Making Releases
@chapter Making Releases
-This section will explain how to make a findutils release. For the
-time being here is a terse description of the main steps:
+This section explains how to make a findutils release.
+
+In some cases the suggested commands use @code{make -j} for speed.
+However, some systems may not be able to support unbounded
+parallelism. You can either simply not use @samp{-j} or refer to the
+GNU Make documentation for alternatives.
@set RELEASE X.Y.Z
@set RELTAG v@value{RELEASE}
@@ -1109,27 +1113,38 @@ time being here is a terse description of the main
steps:
@enumerate
@item Commit changes; make sure your working directory has no
uncommitted changes.
-@item Update translation files; re-run bootstrap to download the
+@item Update translation files; re-run @code{bootstrap} to download the
newest @samp{.po} files.
-@item Make sure compiler warnings would block the release; re-run
-@samp{configure} with the options
-@code{--enable-compiler-warnings --enable-compiler-warnings-are-errors}.
+@item Make sure compiler warnings would block the release:
+@example
+configure --enable-compiler-warnings --enable-compiler-warnings-are-errors
+make -j
+@end example
@item Test; make sure that all changes you have made have tests, and
that the tests pass.
-Run the usual @code{make check} and @code{make syntax-check}, and also
-run the special privilege-requiring tests with @code{sudo make check-root}.
-Finally verify with @code{env RUN_EXPENSIVE_TESTS=yes make distcheck}.
+@c We run syntax-check without -j since otherwise it's inconvenient
+@c to determine which specific check failed.
+@example
+make -j check check-all-manpages
+make syntax-check
+sudo make check-root
+env RUN_EXPENSIVE_TESTS=yes make distcheck
+@end example
@c The RUN_EXPENSIVE_TESTS environment variable is checked in init.cfg.
@item Bugs; make sure all Savannah bug entries fixed in this release
are marked as fixed in Savannah. Optionally close them too to save
duplicate work (otherwise, close them after the release is uploaded).
-@item Add new release in Savannah field values; see the @code{Bugs >
-Edit Field Values} menu item. Add a field value for the release you
+@item Add new release in Savannah field values; see the
+@url{https://savannah.gnu.org/bugs/admin/field_values.php?group=findutils,@code{Bugs
+> Edit Field Values} menu item}. Add a field value for the release you
are about to make so that users can report bugs in it.
@item Update version; make sure that the NEWS file
is updated with the new release number (and checked in).
@c There is no longer any need to update configure.ac, since it no
@c longer contains version information.
+@item Switch to the main (master) branch;
+if you were not already on this branch, switch to it now and merge the
+changes you plan to include in the release.
@item Tag the release; findutils releases are tagged like this for
example: v4.5.5. You can create a tag with the a command like this:
@c we use @example here because @value will not work within @code or @samp.
@@ -1139,12 +1154,10 @@ git tag -s -m "Findutils release @value{RELEASE}"
@value{RELTAG}
@noindent
@item Build the release tarball; do this with @code{make distcheck}.
Copy the tarball somewhere safe.
-@item Merge; if the release (and signed tag) were made on a
-local branch, merge the branch to your local master.
-@item Push; push your master to origin/master.
-@item Push the new release tag; assuming that the name of your remote is
-@samp{origin}, this is:
+@item Push; push your master to origin/master, and push the tag too.
+Assuming that the name of your remote is @samp{origin}:
@example
+git push origin
git push origin tag @value{RELTAG}
@end example
@item Prepare the upload and upload it.
@@ -1164,6 +1177,12 @@ robot or check the contents of the actual FTP site.
file which explains what's changed. Announcements for test releases
should just go to @email{bug-findutils@@gnu.org}. Announcements for
stable releases should go to @email{info-gnu@@gnu.org} as well.
+@item Submit a Savannah news item for findutils announcing the new
+release. Use the findutils
+@url{https://savannah.gnu.org/news/submit.php?group=findutils, news
+submission page} to submit the item and then
+@url{https://savannah.gnu.org/news/approve.php?group=findutils,
+approve it}.
@item Post-release administrativa: add a new dummy release header in NEWS:
@code{* Major changes in release ?.?.?, YYYY-MM-DD}
@@ -1178,6 +1197,18 @@ Commit both changes.
release should now be marked as closed if there were not already.
Update the @samp{Fixed Release} field of these bugs appropriately and
make sure the @samp{Assigned to} field is populated.
+@item Update the version of the online manual at
+@url{https://www.gnu.org/software/findutils/manual/find.html};
+you should be able to do this with the ``web-manual-update'' target.
+For this to work correctly though, you will need to ensure that is set
+to your Savannah user name. Like this for example:
+
+@example
+env SAVANNAH_CVS_USER=jay make web-manual-update
+@end example
+
+@c Bernhard did this by hand last time. though, so this isn't tested
+@c yet.
@end enumerate
--
2.47.3