X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=Makefile.in;h=766ab9039c438a4992900e8babe2f6cd025e1230;hb=b6175c95067a630c1ee50dc503fe5273e7621907;hp=ec4c2da17c35a35704c5cb2b01789d5125bf5d17;hpb=a55ff18b3eb57314af5a8d4ca8fe0448d4e7b578;p=gnus diff --git a/Makefile.in b/Makefile.in index ec4c2da17..766ab9039 100644 --- a/Makefile.in +++ b/Makefile.in @@ -7,10 +7,10 @@ srcdir = @srcdir@ EMACS = @EMACS@ XEMACS = @EMACS@ +GZIP_PROG = gzip -f + # # # # # # # # # # Release variables (for maintainer only): # -# Release files, not included in CVS: -TAR_BALL_EXTRA = README # Files removed from `cvs export' output before creating the tar-ball: CVS_IGNORE_FILES = .cvsignore contrib/.cvsignore etc/.cvsignore \ lisp/.cvsignore texi/.cvsignore texi/ps/.cvsignore .arch-inventory @@ -19,11 +19,14 @@ COMMITTER = Lars Magne Ingebrigtsen # CODENAME for development releases (CODENAME must have a trailing space, # (e.g. "Oort ") CODENAME = +# Codename initial (lower case), e.g. 'n' for "No Gnus". +CIN = # Files with hard-coded versions numbers: -RELEASE_COMMIT_FILES = lisp/ChangeLog lisp/gnus.el \ +RELEASE_COMMIT_FILES = ChangeLog README \ + lisp/ChangeLog lisp/gnus.el \ texi/ChangeLog texi/gnus.texi texi/message.texi texi/gnus-faq.texi # Pattern matching previous version(s): -OLD_PATTERN = 5.10.[0-9]* +OLD_PATTERN = \(5.10.[0-9]*\|0\.[1-9][0-9]*\) # CVS tag of the previous version: OLD_TAG = v5-10-6 # CVS tag of the current release: @@ -32,7 +35,7 @@ TAG = v5-10 # Procedure: # - release-bump-version # - release-commit -# - release-files +# - release-files or release-files-signed # # # # # # # # # # # End of release variables @@ -100,9 +103,10 @@ release-check-settings: @echo "COMMITTER = '$(COMMITTER)'" @echo " (example: 'Foo Bar ')" @echo "VERSION = '$(VERSION)' (example: '5.10.6')" - @echo "CODENAME = '$(CODENAME)' (example: 'Oort ')" + @echo "CODENAME = '$(CODENAME)' (example: 'No ')" + @echo "CIN = '$(CIN)' (example: 'n', codename initial)" @echo "TAG = '$(TAG)' (example: 'v5-10-6')" - @echo "OLDTAG = '$(OLDTAG)' (example: 'v5-10-5')" + @echo "OLD_TAG = '$(OLD_TAG)' (example: 'v5-10-5')" @echo @if [ x"$(VERSION)" = x ]; then echo "error: No VERSION given."; exit 1; else :; fi @if [ x"$(TAG)" = x ]; then echo "error: No TAG given."; exit 1; else :; fi @@ -112,19 +116,25 @@ release-check-settings: @echo You may now make... @echo release-bump-version @echo release-commit - @echo release-files + @echo release-files or release-files-signed # Needs GNU grep and a recent GNU sed: release-bump-version: release-check-settings sed -i -e '/^(defconst gnus-version-number /s,"$(OLD_PATTERN)","$(VERSION)",' lisp/gnus.el - sed -i -e '/^.newcommand{.gnusversionname}{Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi + sed -i -e '/^.newcommand{.gnusversionname}{[A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi sed -i -e '/^This manual corresponds to [A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi - sed -i -e '/^corresponding to this manual is [A-Za-z ]*Gnusv/s,$(OLD_PATTERN),$(VERSION),' texi/message.texi + sed -i -e '/^corresponding to this manual is [A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/message.texi + sed -i -e 's,/[a-z]*gnus-[0-9.]*/,/$(CIN)gnus-$(VERSION)/,' README if [ "x$(CODENAME)" = "x" ]; then \ sed -i -e '/The current release ($(OLD_PATTERN)) should/s,$(OLD_PATTERN),$(VERSION),' texi/gnus-faq.texi; \ else \ true; \ fi + @if grep -q "$(CODENAME)Gnus v$(VERSION) is released" ChangeLog; then \ + echo "ChangeLog is already updated"; \ + else \ + sed -i -e "1s|^|`date -I` $(COMMITTER)\n\n\t* README: $(CODENAME)Gnus v$(VERSION) is released.\n\n|" ChangeLog; \ + fi @if grep -q "$(CODENAME)Gnus v$(VERSION) is released" texi/ChangeLog; then \ echo "texi/ChangeLog is already updated"; \ else \ @@ -145,6 +155,8 @@ release-commit: release-check-settings @echo -e '\007' @echo @echo "Really do the release-commit for $(CODENAME)Gnus v$(VERSION)?" + @echo "Command line:" + @echo " " cvs commit -m "$(CODENAME)Gnus v$(VERSION) is released." $(RELEASE_COMMIT_FILES) @echo @echo "Hit RET to continue or Ctrl-C to abort." @echo @@ -152,6 +164,8 @@ release-commit: release-check-settings cvs commit -m "$(CODENAME)Gnus v$(VERSION) is released." $(RELEASE_COMMIT_FILES) @echo @echo "Add tag $(TAG) to CVS?" + @echo "Command line:" + @echo " " cvs tag $(TAG) @echo "Hit RET to continue or Ctrl-C to abort." @echo @read dummy @@ -159,34 +173,49 @@ release-commit: release-check-settings release-files: release-make-tar-ball release-diff @echo "Release files have been created:" - @ls -l gnus-$(TAG).tar.gz - @ls -l gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz + @ls -l $(CIN)gnus-$(VERSION).tar.gz + @ls -l $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz -release-cvs-export gnus-$(TAG): release-check-settings - rm -fr gnus-$(TAG) - cvs export -d gnus-$(TAG) -r $(TAG) gnus +release-files-signed: release-files release-sign-files -release-make-tar-ball: gnus-$(TAG) $(TAR_BALL_EXTRA) - [ -d gnus-$(TAG) ] && cd gnus-$(TAG) && \ +# Sign prepared files: +release-sign-files: + if [ "x$$GPG_AGENT_INFO" = "x" ]; then \ + read -sp "Enter pass phrase: " phrase ; \ + gpg_opt="--passphrase-fd 0"; \ + else \ + gpg_opt=""; phrase=""; \ + fi; \ + for i in $(CIN)gnus-$(VERSION).tar.gz \ + $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz; do \ + rm -f $$i.sig; \ + echo "$$phrase" | gpg --detach-sign $$gpg_opt $$i; \ + done; true + @ls -l $(CIN)gnus-$(VERSION).tar.gz{.sig,} + @ls -l $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz{.sig,} + @gpg --verify $(CIN)gnus-$(VERSION).tar.gz{.sig,} + @gpg --verify $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz{.sig,} + +release-cvs-export $(CIN)gnus-$(VERSION): release-check-settings + rm -fr $(CIN)gnus-$(VERSION) + cvs export -d $(CIN)gnus-$(VERSION) -r $(TAG) gnus + +release-make-tar-ball: $(CIN)gnus-$(VERSION) + [ -d $(CIN)gnus-$(VERSION) ] && cd $(CIN)gnus-$(VERSION) && \ rm $(CVS_IGNORE_FILES) || true - cp -p $(TAR_BALL_EXTRA) gnus-$(TAG)/ - tar zcvf gnus-$(TAG).tar.gz gnus-$(TAG) - ls -l gnus-$(TAG).tar.gz - -README: - @echo README is not in CVS. Get it from Lars. - false + tar zcvf $(CIN)gnus-$(VERSION).tar.gz $(CIN)gnus-$(VERSION) + ls -l $(CIN)gnus-$(VERSION).tar.gz # Make a diff between current and previous release. Example: # ftp://quimby.gnus.org/pub/gnus/ding-patches/gnus-5.10.5-5.10.6.diff.gz release-diff: release-check-settings cvs diff -r $(OLD_TAG) -r $(TAG) | sed -e '/^\? /d' > temp.diff || true - mv temp.diff gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff - gzip gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff - ls -l gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz + mv temp.diff $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff + $(GZIP_PROG) $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff + ls -l $(CIN)gnus-`echo $(OLD_TAG)%$(TAG)|tr - .|tr -d v|tr % -`.diff.gz release-post-clean: release-check-settings - rm -fr gnus-$(TAG) temp.diff + rm -fr $(CIN)gnus-$(TAG) temp.diff # # # # # # # # # # End of release targets