[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug-cppi] 4 maint/build patches,
Jim Meyering <=