bug-cppi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-cppi] 4 maint/build patches


From: Jim Meyering
Subject: [bug-cppi] 4 maint/build patches
Date: Sat, 19 Nov 2011 10:16:34 +0100

FYI,

>From eee5a8d3dc9187a2414b188f31d5918fa1529232 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 12 May 2011 13:35:44 +0200
Subject: [PATCH 1/4] maint: use gnulib's tight_scope rule rather than our
 private one

* src/Makefile.am (noinst_HEADERS): Define.
(sc_tight_scope): Remove rule.
Delete cpp.h via DISTCLEANFILES, rather than via CLEANFILES,
now that it's part of noinst_HEADERS.
* cfg.mk: Adapt to new tight_scope rule from gnulib
* gnulib: Update to latest.
---
 cfg.mk          |    6 +++++-
 gnulib          |    2 +-
 src/Makefile.am |   33 ++-------------------------------
 3 files changed, 8 insertions(+), 33 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 3658b23..cae64c8 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -44,7 +44,7 @@ sc_prohibit_emacs__indent_tabs_mode__setting:

 bootstrap-tools = autoconf,automake,flex,gnulib,gperf,help2man

-include $(srcdir)/dist-check.mk
+-include $(srcdir)/dist-check.mk

 update-copyright-env = \
   UPDATE_COPYRIGHT_USE_INTERVALS=1 \
@@ -53,3 +53,7 @@ update-copyright-env = \
 exclude_file_name_regexp--sc_prohibit_stat_st_blocks = ^src/system\.h$$
 exclude_file_name_regexp--sc_prohibit_tab_based_indentation = \
   (Makefile(\.am)?|\.mk)$$
+
+# Tell the tight_scope rule that yacc-related yy* names are extern.
+export _gl_TS_unmarked_extern_functions = main usage yy.*
+export _gl_TS_unmarked_extern_vars = yy.*
diff --git a/gnulib b/gnulib
index 739321e..9d196fa 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 739321ef60661c7b51a4c7a3fa23957a4d9dbbc3
+Subproject commit 9d196fad055a448c5732a8e950cc044b353d2615
diff --git a/src/Makefile.am b/src/Makefile.am
index 20dc017..22ea6fb 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,6 +4,7 @@ bin_PROGRAMS = cppi
 cppi_SOURCES = \
   cppi.l \
   system.h
+noinst_HEADERS = cpp.h

 AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)

@@ -12,7 +13,7 @@ AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS)

 EXTRA_DIST = cpp.gp cpp-indent.pl cppi.l cpp-cond.c
 MAINTAINERCLEANFILES = cpp-cond.c
-CLEANFILES = cpp.h lex.backup
+DISTCLEANFILES = cpp.h lex.backup

 GPERF = gperf

@@ -88,33 +89,3 @@ dist-hook: cppi
 .PHONY: dist-hook

 BUILT_SOURCES += cpp-cond.c cpp.h
-
-# The following rule is not designed to be portable,
-# and relies on tools that not everyone has.
-
-# Most functions in src/*.c should have static scope.
-# Any that don't must be marked with `extern', but `main'
-# and `usage' are exceptions.  They're always extern, but
-# don't need to be marked.
-#
-# The second nm|grep checks for file-scope variables with `extern' scope.
-sc_tight_scope: $(all_programs)
-       @t=exceptions-$$$$;                                             \
-       trap "s=$$?; rm -f $$t; exit $$s" 0 1 2 13 15;                  \
-       ( printf '^main$$\n^usage$$\n^cpp_cond_lookup$$\n^yy\n';        \
-         grep -h -A1 '^extern .*[^;]$$' $(SOURCES)                     \
-           | grep -vE '^(extern |--)' |sed 's/^/^/;s/ .*/$$/' ) > $$t; \
-       nm -e *.$(OBJEXT)                                               \
-           | sed -n 's/.* T //p'                                       \
-           | grep -Ev -f $$t &&                                        \
-         { echo 'the above functions should have static scope' 1>&2;   \
-           exit 1; } || : ;                                            \
-       ( printf '^program_name$$\n^yy\n';                                      
\
-         test x"$(noinst_HEADERS)" = x ||                              \
-         sed -n 's/^extern int \([^ ][^ ]*\);$$/^\1$$/p'               \
-           $(noinst_HEADERS) ) > $$t;                                  \
-       nm -e *.$(OBJEXT)                                               \
-           | sed -n 's/.* [BD] //p'                                    \
-           | grep -Ev -f $$t &&                                        \
-         { echo 'the above variables should have static scope' 1>&2;   \
-           exit 1; } || :
--
1.7.8.rc2.3.g0911


>From 354ae6a509a5cd073e910a03bf27c4e91fd6e2aa Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Wed, 25 May 2011 09:30:24 +0200
Subject: [PATCH 2/4] maint: use gnulib's new readme-release module

* bootstrap.conf (gnulib_modules): Add readme-release.
(bootstrap_epilogue): Add the recommended perl one-liner.
* README-release: Remove file; it is now generated from gnulib.
* .gitignore: Add it.
---
 .gitignore     |    4 +-
 README-release |   87 --------------------------------------------------------
 bootstrap.conf |    6 ++++
 3 files changed, 8 insertions(+), 89 deletions(-)
 delete mode 100644 README-release

diff --git a/.gitignore b/.gitignore
index 518e96a..51c1ff7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
 .tarball-version
 .version
 /ABOUT-NLS
+/README-release
 /maint.mk
 ABOUT-NLS
 ChangeLog
@@ -20,8 +21,7 @@ config.hin
 config.log
 config.status
 configure
-cppi-*.tar.bz2
-cppi-*.tar.gz
+cppi-*.tar.xz
 doc
 lib/.gitignore
 lib/arg-nonnull.h
diff --git a/README-release b/README-release
deleted file mode 100644
index e8bb4db..0000000
--- a/README-release
+++ /dev/null
@@ -1,87 +0,0 @@
-Here are most of the steps we (maintainers) follow when making a release.
-
-* start from a clean, up-to-date git directory.
-
-    git checkout master; git pull
-
-* Run ./configure && make maintainer-clean
-
-* Ensure that the desired versions of autoconf, automake, etc.
-  are in your PATH.  See the buildreq list in bootstrap.conf for
-  the complete list.
-
-* Ensure that you're on "master" with no uncommitted diffs.
-  This should produce no output: git checkout master; git diff
-
-* Run bootstrap one last time.  This downloads any new translations:
-
-    ./bootstrap
-
-* Pre-release testing:
-  Ensure that make check syntax-check succeeds.
-
-* Run "make distcheck"
-
-* Set the date, version number, and release type [stable/alpha/beta] on
-  line 3 of NEWS, commit that, and tag the release by running e.g.,
-
-    build-aux/do-release-commit-and-tag 1.14 stable
-
-* Run the following to create release tarballs.  Your choice selects the
-  corresponding upload-to destination in the emitted gnupload command.
-  The different destinations are specified in cfg.mk.  See the definitions
-  of gnu_ftp_host-{alpha,beta,stable}.
-
-    # "TYPE" must be stable, beta or alpha
-    make TYPE
-
-* Test the tarball.  copy it to a few odd-ball systems and ensure that
-  it builds and passes all tests.
-
-* While that's happening, write the release announcement that you will
-  soon post.
-
-Once all the builds and tests have passed,
-
-* Run the gnupload command that was suggested by your "make stable" run above.
-
-* Wait a few minutes (maybe up to 30?) and then use the release URLs to
-  download all tarball/signature pairs and use gpg --verify to ensure
-  that they're all valid.
-
-* Push the NEWS-updating changes and the new tag:
-
-    v=$(cat .prev-version)
-    git push origin master tag v$v
-
-* Send the gpg-signed announcement mail, e.g.,
-
-    To: address@hidden
-    Cc: address@hidden, address@hidden
-    Subject: cppi-1.14 released [stable]
-
-* Announce it on Savannah, too:
-  From here:
-    https://savannah.gnu.org/projects/cppi/
-  click on the "submit news", then write something like the following:
-  (If there is no such button, then enable "News" for the project via
-   the Main -> "Select Features" menu item, or via this link:
-   https://savannah.gnu.org/project/admin/editgroupfeatures.php?group=cppi)
-
-    Subject: cppi-1.14 released [stable]
-
-    +verbatim+
-    ...paste the announcement here...
-    -verbatim-
-
-  Then go here to approve it:
-    https://savannah.gnu.org/news/approve.php?group=cppi
-
-* After each non-alpha release, update the on-line manual accessible via
-[if there's ever a texinfo manual, do this]
-
-    http://www.gnu.org/software/cppi/manual/
-
-  by running this:
-
-    build-aux/gnu-web-doc-update
diff --git a/bootstrap.conf b/bootstrap.conf
index 78ba32b..d50e508 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -48,6 +48,7 @@ gnulib_modules="
   quote
   quotearg
   realloc
+  readme-release
   stat-macros
   stdbool
   stpcpy
@@ -125,5 +126,10 @@ rsync      -
 tar        -
 "

+bootstrap_epilogue()
+{
+  perl -pi -e "s/address@hidden@/$package/g" README-release
+}
+
 # Automake requires that ChangeLog exist.
 touch ChangeLog
--
1.7.8.rc2.3.g0911


>From 1fb37059426b48adb1b3bd9710a92b0c7b780f85 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 17 Nov 2011 09:34:54 +0100
Subject: [PATCH 3/4] maint: adjust the URL that will appear in the generated
 announcement

* cfg.mk (url_dir_list): Use this http://ftp.gnu.org/gnu/$(PACKAGE)
for the first link listed in the generated announcement.
announce-gen now provides the faster mirror link automatically.
(gnulib_dir): Remove unnecessary definition.
---
 cfg.mk |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index cae64c8..09cb767 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -14,6 +14,10 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.

+# Use the direct link.  This is guaranteed to work immediately, while
+# it can take a while for the faster mirror links to become usable.
+url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
+
 # Tests not to run as part of "make distcheck".
 # Exclude changelog-check here so that there's less churn in ChangeLog
 # files -- otherwise, you'd need to have the upcoming version number
--
1.7.8.rc2.3.g0911


>From 032acb5a8e677853e66fb8a407eb7d3261b2f6cb Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sat, 19 Nov 2011 10:12:30 +0100
Subject: [PATCH 4/4] build: update gnulib submodule to latest

---
 gnulib |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gnulib b/gnulib
index 9d196fa..6e46c18 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 9d196fad055a448c5732a8e950cc044b353d2615
+Subproject commit 6e46c18097a874ec0e57bf2dd1fb94885050c33e
--
1.7.8.rc2.3.g0911



reply via email to

[Prev in Thread] Current Thread [Next in Thread]