GNATS debian package cleanups

Chad Walstrom <[email protected]>
Newsgroups gmane.comp.bug-tracking.gnats.general
Message-ID <[email protected]>
Ugh..  gnats Makefine.in files strike again!  Looks like the gnats and
gnats-user packages for Debian have some odd path problems[1],[2].
Adding a $(DESTDIR) variable preceeding install and mkinstalldirs path
locations and mkinstalldirs locations fixes this.  The debian/rules file
should then be able to specify a DESTDIR for the installation target.

Here's where we come to the kicker.  I originally wanted to simply "fix"
the debian/rules file, but since it was originally constructed, the
Debian build utilities and scripts have vastly improved.  Much of the
custom scripting necessary to make the gnats and gnats-user packages is
now obsolete.

Additionally, there are some fundamental differences in how packages are
designed.  There is a lot of duplicated effort between the gnats and
gnats-user packages.  Currently, there are few differences between them.
The gnats-user package contains mostly the same files as gnats, which
contains a few more files and additional scripts to add system users,
cron jobs, and aliases into the MTA aliases file.  I plan on changing
the dependencies between these two files.  Rather than having gnats
conflict with gnats-user, gnats will depend upon gnats-user and perform
the additional steps to set up the machine as a server.

I really wanted to get a quick fix in the archives, but I believe that
there is no such thing.  I may as well put in the initial work to "do it
right" so that further maintainence is minimized.

The patches for the gnats Makefile.in files are attached.  I'll roll
them into CVS if there are no objections.

REFERENCES
==========
1. http://bugs.debian.org/241416
2. http://bugs.debian.org/222830

-- 
Chad Walstrom <[email protected]>           http://www.wookimus.net/
           assert(expired(knowledge)); /* core dump */

_______________________________________________
Help-gnats mailing list
[email protected]
http://mail.gnu.org/mailman/listinfo/help-gnats
doc_man_Makefile.in.patch (text/plain, 2.4 KB)
--- doc/man/Makefile.in.bak	2004-04-01 12:37:49.000000000 -0600
+++ doc/man/Makefile.in	2004-04-01 12:38:50.000000000 -0600
@@ -79,7 +79,7 @@
 check:
 
 $(SRCS1): ../Makefile $(MAN1)
-	$(SHELL) $(srcdir)/../../mkinstalldirs $(man1dir)/
+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man1dir)/
 	@echo Creating $@...
 	@file=`echo $@ | sed -e 's,\$(man1ext),,'` ; \
 	sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \
@@ -90,7 +90,7 @@
 	@mv tmp-$@ $@
 
 $(SRCS5): ../Makefile $(MAN5)
-	$(SHELL) $(srcdir)/../../mkinstalldirs $(man5dir)/
+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man5dir)/
 	@echo Creating $@...
 	@file=`echo $@ | sed -e 's,\$(man5ext),,'` ; \
 	sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \
@@ -101,7 +101,7 @@
 	@mv tmp-$@ $@
 
 $(SRCS7): ../Makefile $(MAN7)
-	$(SHELL) $(srcdir)/../../mkinstalldirs $(man7dir)/
+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man7dir)/
 	@echo Creating $@...
 	@file=`echo $@ | sed -e 's,\$(man7ext),,'` ; \
 	sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \
@@ -112,7 +112,7 @@
 	@mv tmp-$@ $@
 
 $(SRCS8): ../Makefile $(MAN8)
-	$(SHELL) $(srcdir)/../../mkinstalldirs $(man8dir)/
+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(man8dir)/
 	@echo Creating $@...
 	@file=`echo $@ | sed -e 's,\$(man8ext),,'` ; \
 	sed -e 's,xGNATS_ROOTx,$(GNATS_ROOT),g' \
@@ -139,25 +139,25 @@
 
 install-gnats install-gnats-man: all-gnats install-tools
 	for i in $(SRCS5); do \
-	    $(INSTALL_DATA) $$i $(man5dir)/$$i; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
 	done
 	for i in $(SRCS7); do \
-	    $(INSTALL_DATA) $$i $(man7dir)/$$i; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)$(man7dir)/$$i; \
 	done
 	for i in $(SRCS8); do \
-	    $(INSTALL_DATA) $$i $(man8dir)/$$i; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)$(man8dir)/$$i; \
 	done
 
 install-tools install-tools-man: all-tools
 	for i in $(SRCS1); do \
-	    $(INSTALL_DATA) $$i $(man1dir)/$$i; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/$$i; \
 	done
 
 uninstall:
-	-for i in $(SRCS1); do rm -f $(man1dir)/$$i; done
-	-for i in $(SRCS5); do rm -f $(man5dir)/$$i; done
-	-for i in $(SRCS7); do rm -f $(man7dir)/$$i; done
-	-for i in $(SRCS8); do rm -f $(man8dir)/$$i; done
+	-for i in $(SRCS1); do rm -f $(DESTDIR)$(man1dir)/$$i; done
+	-for i in $(SRCS5); do rm -f $(DESTDIR)$(man5dir)/$$i; done
+	-for i in $(SRCS7); do rm -f $(DESTDIR)$(man7dir)/$$i; done
+	-for i in $(SRCS8); do rm -f $(DESTDIR)$(man8dir)/$$i; done
 
 force:
 dist:
gnats-Makefile.in.patch (text/plain, 8.7 KB)
--- gnats/Makefile.in.bak	2004-04-01 12:27:11.000000000 -0600
+++ gnats/Makefile.in	2004-04-01 12:32:27.000000000 -0600
@@ -363,37 +363,37 @@
 install-tools-arch-dep: install-tools-bin
 
 install-tools-arch-indep: all-tools
-	$(SHELL) $(srcdir)/../mkinstalldirs $(datadir)/gnats
-	$(SHELL) $(srcdir)/../mkinstalldirs $(sysconfdir)/gnats/defaults
+	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(datadir)/gnats
+	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(sysconfdir)/gnats/defaults
 	@if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
-	  echo "chown $(GNATS_USER) $(datadir)/gnats" ; \
-	  chown $(GNATS_USER) $(datadir)/gnats ; \
+	  echo "chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats" ; \
+	  chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats ; \
         else \
-	  echo "*** Warning: Must chown $(GNATS_USER) $(datadir)/gnats" ; \
+	  echo "*** Warning: Must chown $(GNATS_USER) $(DESTDIR)$(datadir)/gnats" ; \
 	fi
-	$(INSTALL_DATA) $(srcdir)/gnats.el $(lispdir)/gnats.el
+	$(INSTALL_DATA) $(srcdir)/gnats.el $(DESTDIR)$(lispdir)/gnats.el
 	for i in categories submitters responsible gnatsd.user_access addresses states classes dbconfig ; do \
 	    if [ -f "$$i" ] ; then \
-		$(INSTALL_DATA) $$i $(sysconfdir)/gnats/defaults/$$i ; \
+		$(INSTALL_DATA) $$i $(DESTDIR)$(sysconfdir)/gnats/defaults/$$i ; \
 	    else \
-		$(INSTALL_DATA) $(srcdir)/$$i $(sysconfdir)/gnats/defaults/$$i ; \
+		$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(sysconfdir)/gnats/defaults/$$i ; \
 	    fi ; \
 	done
 
 install-tools-bin: all-tools
-	$(INSTALL_PROGRAM) query-pr $(bindir)/query-pr
-	$(INSTALL_PROGRAM) getclose $(bindir)/getclose
-	$(INSTALL_SCRIPT) edit-pr $(bindir)/edit-pr
-	$(INSTALL_SCRIPT) $(srcdir)/diff-prs $(libexecdir)/gnats/diff-prs
-	$(INSTALL_SCRIPT) mail-agent $(libexecdir)/gnats/mail-agent
-	$(INSTALL_PROGRAM) file-pr $(libexecdir)/gnats/file-pr
-	$(INSTALL_PROGRAM) pr-age $(libexecdir)/gnats/pr-age
-	$(INSTALL_PROGRAM) pr-edit $(libexecdir)/gnats/pr-edit
+	$(INSTALL_PROGRAM) query-pr $(DESTDIR)$(bindir)/query-pr
+	$(INSTALL_PROGRAM) getclose $(DESTDIR)$(bindir)/getclose
+	$(INSTALL_SCRIPT) edit-pr $(DESTDIR)$(bindir)/edit-pr
+	$(INSTALL_SCRIPT) $(srcdir)/diff-prs $(DESTDIR)$(libexecdir)/gnats/diff-prs
+	$(INSTALL_SCRIPT) mail-agent $(DESTDIR)$(libexecdir)/gnats/mail-agent
+	$(INSTALL_PROGRAM) file-pr $(DESTDIR)$(libexecdir)/gnats/file-pr
+	$(INSTALL_PROGRAM) pr-age $(DESTDIR)$(libexecdir)/gnats/pr-age
+	$(INSTALL_PROGRAM) pr-edit $(DESTDIR)$(libexecdir)/gnats/pr-edit
 	@if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
-	  echo "chown $(GNATS_USER) $(libexecdir)/gnats/pr-edit" ; \
-	  echo "chmod 4555 $(libexecdir)/gnats/pr-edit" ; \
-	  chown $(GNATS_USER) $(libexecdir)/gnats/pr-edit ; \
-	  chmod 4555 $(libexecdir)/gnats/pr-edit ; \
+	  echo "chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/pr-edit" ; \
+	  echo "chmod 4555 $(DESTDIR)$(libexecdir)/gnats/pr-edit" ; \
+	  chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/pr-edit ; \
+	  chmod 4555 $(DESTDIR)$(libexecdir)/gnats/pr-edit ; \
         else \
 	  echo "*** Warning: Must make pr-edit suid $(GNATS_USER)" ; \
 	fi
@@ -410,9 +410,9 @@
 	else \
 	  if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
 	    $(INSTALL_DATA) -o $(GNATS_USER) gnats-databases \
-	                    $(GLOBAL_DB_LIST_FILE) ; \
+	                    $(DESTDIR)$(GLOBAL_DB_LIST_FILE) ; \
 	  else \
-	    $(INSTALL_DATA) gnats-databases $(GLOBAL_DB_LIST_FILE) ; \
+	    $(INSTALL_DATA) gnats-databases $(DESTDIR)$(GLOBAL_DB_LIST_FILE) ; \
 	    echo "*** Warning: Must chown $(GNATS_USER) $(GLOBAL_DB_LIST_FILE)" ; \
 	  fi \
 	fi
@@ -422,10 +422,10 @@
 	else \
 	  if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
 	    $(INSTALL_DATA) -o $(GNATS_USER) $(srcdir)/gnatsd.host_access \
-	                    $(GNATSD_HOST_ACCESS_FILE) ; \
+	                    $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE) ; \
           else \
 	    $(INSTALL_DATA) $(srcdir)/gnatsd.host_access \
-	                    $(GNATSD_HOST_ACCESS_FILE) ; \
+	                    $(DESTDIR)$(GNATSD_HOST_ACCESS_FILE) ; \
 	    echo "*** Warning: Must chown $(GNATS_USER) $(GNATSD_HOST_ACCESS_FILE)" ; \
 	  fi \
 	fi
@@ -433,27 +433,29 @@
 	@echo "*** with $(libexecdir)/gnats/mkdb."
 
 install-gnats-bin: all-gnats install-tools-bin
-	$(SHELL) $(srcdir)/../mkinstalldirs $(libexecdir)/gnats
-	$(INSTALL_PROGRAM) gnatsd $(libexecdir)/gnats/gnatsd
-	$(INSTALL_SCRIPT) at-pr $(libexecdir)/gnats/at-pr
-	$(INSTALL_SCRIPT) check-db $(libexecdir)/gnats/check-db
-	$(INSTALL_SCRIPT) delete-pr $(libexecdir)/gnats/delete-pr
-	$(INSTALL_SCRIPT) mkcat $(libexecdir)/gnats/mkcat
-	$(INSTALL_SCRIPT) mkdb $(libexecdir)/gnats/mkdb
-	$(INSTALL_SCRIPT) rmcat $(libexecdir)/gnats/rmcat
-	$(INSTALL_PROGRAM) queue-pr $(libexecdir)/gnats/queue-pr
-	$(INSTALL_PROGRAM) gen-index $(libexecdir)/gnats/gen-index
-	$(INSTALL_SCRIPT) mail-query $(libexecdir)/gnats/mail-query
-	$(INSTALL_PROGRAM) gnats-pwconv $(libexecdir)/gnats/gnats-pwconv
+	$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libexecdir)/gnats
+	$(INSTALL_PROGRAM) gnatsd $(DESTDIR)$(libexecdir)/gnats/gnatsd
+	$(INSTALL_SCRIPT) at-pr $(DESTDIR)$(libexecdir)/gnats/at-pr
+	$(INSTALL_SCRIPT) check-db $(DESTDIR)$(libexecdir)/gnats/check-db
+	$(INSTALL_SCRIPT) delete-pr $(DESTDIR)$(libexecdir)/gnats/delete-pr
+	$(INSTALL_SCRIPT) mkcat $(DESTDIR)$(libexecdir)/gnats/mkcat
+	$(INSTALL_SCRIPT) mkdb $(DESTDIR)$(libexecdir)/gnats/mkdb
+	$(INSTALL_SCRIPT) rmcat $(DESTDIR)$(libexecdir)/gnats/rmcat
+	$(INSTALL_PROGRAM) queue-pr $(DESTDIR)$(libexecdir)/gnats/queue-pr
+	$(INSTALL_PROGRAM) gen-index $(DESTDIR)$(libexecdir)/gnats/gen-index
+	$(INSTALL_SCRIPT) mail-query $(DESTDIR)$(libexecdir)/gnats/mail-query
+	$(INSTALL_PROGRAM) gnats-pwconv $(DESTDIR)$(libexecdir)/gnats/gnats-pwconv
 	@if [ `whoami` = root -o `whoami` = $(GNATS_USER) ] ; then \
 	  echo "chown $(GNATS_USER) $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/file-pr $(libexecdir)/gnats/gen-index" ; \
 	  echo "chmod 4555 $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/file-pr $(libexecdir)/gnats/gen-index" ; \
-	  echo "chown $(GNATS_USER) $(libexecdir)/gnats/gnatsd" ; \
-	  echo "chmod 555 $(libexecdir)/gnats/gnatsd" ; \
-	  chown $(GNATS_USER) $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/gen-index ; \
-	  chmod 4555 $(libexecdir)/gnats/queue-pr $(libexecdir)/gnats/gen-index ; \
-	  chown $(GNATS_USER) $(libexecdir)/gnats/gnatsd ; \
-	  chmod 555 $(libexecdir)/gnats/gnatsd ; \
+	  echo "chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/gnatsd" ; \
+	  echo "chmod 555 $(DESTDIR)$(libexecdir)/gnats/gnatsd" ; \
+	  chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/queue-pr \
+	  	$(DESTDIR)$(libexecdir)/gnats/gen-index ; \
+	  chmod 4555 $(DESTDIR)$(libexecdir)/gnats/queue-pr \
+	  	$(DESTDIR)$(libexecdir)/gnats/gen-index ; \
+	  chown $(GNATS_USER) $(DESTDIR)$(libexecdir)/gnats/gnatsd ; \
+	  chmod 555 $(DESTDIR)$(libexecdir)/gnats/gnatsd ; \
 	else \
 	  echo "*** Warning: must make queue-pr and gen-index suid $(GNATS_USER)." ; \
 	fi
@@ -504,26 +506,26 @@
 
 # Don't use rm -rf in case there's other stuff in the directories
 uninstall:
-	-rm -f $(bindir)/edit-pr
-	-rm -f $(bindir)/query-pr
-	-rm -f $(bindir)/getclose
-	-rm -f $(libexecdir)/gnats/gnats-edit-pr
-	-rm -f $(libexecdir)/gnats/pr-age
-	-rm -f $(libexecdir)/gnats/pr-edit
-	-rm -f $(libexecdir)/gnats/at-pr
-	-rm -f $(libexecdir)/gnats/check-db
-	-rm -f $(libexecdir)/gnats/delete-pr
-	-rm -f $(libexecdir)/gnats/file-pr
-	-rm -f $(libexecdir)/gnats/nfile-pr
-	-rm -f $(libexecdir)/gnats/gnats-file-pr
-	-rm -f $(libexecdir)/gnats/queue-pr
-	-rm -f $(libexecdir)/gnats/mkcat
-	-rm -f $(libexecdir)/gnats/mkdb
-	-rm -f $(libexecdir)/gnats/rmcat
-	-rm -f $(libexecdir)/gnats/gen-index
-	-rm -f $(libexecdir)/gnats/mail-query
-	-rm -f $(libexecdir)/gnats/gnats-pwconv
-	-rmdir $(libexecdir)/gnats
+	-rm -f $(DESTDIR)$(bindir)/edit-pr
+	-rm -f $(DESTDIR)$(bindir)/query-pr
+	-rm -f $(DESTDIR)$(bindir)/getclose
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/gnats-edit-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/pr-age
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/pr-edit
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/at-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/check-db
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/delete-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/file-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/nfile-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/gnats-file-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/queue-pr
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/mkcat
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/mkdb
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/rmcat
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/gen-index
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/mail-query
+	-rm -f $(DESTDIR)$(libexecdir)/gnats/gnats-pwconv
+	-rmdir $(DESTDIR)$(libexecdir)/gnats
 
 TAGS: $(SOURCES) $(LIBSRC)
 	etags -f TAGS $(SOURCES) $(LIBSRC) *.h gnats.el ;
send-pr_Makefile.in.patch (text/plain, 801 B)
--- send-pr/Makefile.in.bak	2004-04-01 12:33:27.000000000 -0600
+++ send-pr/Makefile.in	2004-04-01 12:34:55.000000000 -0600
@@ -140,14 +140,14 @@
 install-norm-arch-indep:
 
 install-norm-arch-dep:
-	$(INSTALL_SCRIPT) send-pr $(bindir)/send-pr
-	$(INSTALL_SCRIPT) install-sid $(bindir)/install-sid
-	$(INSTALL_DATA) send-pr.1 $(man1dir)/send-pr.1
+	$(INSTALL_SCRIPT) send-pr $(DESTDIR)$(bindir)/send-pr
+	$(INSTALL_SCRIPT) install-sid $(DESTDIR)$(bindir)/install-sid
+	$(INSTALL_DATA) send-pr.1 $(DESTDIR)$(man1dir)/send-pr.1
 
 uninstall:
-	-rm -f $(bindir)/send-pr $(bindir)/install-sid
-	-rmdir $(datadir)/gnats
-	-rm -f $(man1dir)/send-pr.1
+	-rm -f $(DESTDIR)$(bindir)/send-pr $(DESTDIR)$(bindir)/install-sid
+	-rmdir $(DESTDIR)$(datadir)/gnats
+	-rm -f $(DESTDIR)$(man1dir)/send-pr.1
 
 TAGS:
doc_Makefile.in.patch (text/plain, 1.2 KB)
--- doc/Makefile.in.bak	2004-04-03 12:00:09.000000000 -0600
+++ doc/Makefile.in	2004-04-03 10:36:03.000000000 -0600
@@ -57,11 +57,11 @@
 
 install-gnats: info man
 	for i in gnats.info* gnats-faq.info*; do \
-		$(INSTALL_DATA) $$i $(infodir)/$$i ; \
+		$(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i ; \
 	done
 	-if [ -x "$(INSTALL_INFO)" ]; then \
-		$(INSTALL_INFO) $(infodir)/gnats.info $(infodir)/dir; \
-		$(INSTALL_INFO) $(infodir)/gnats-faq.info $(infodir)/dir; \
+		$(INSTALL_INFO) $(DESTDIR)$(infodir)/gnats.info $(DESTDIR)$(infodir)/dir; \
+		$(INSTALL_INFO) $(DESTDIR)$(infodir)/gnats-faq.info $(DESTDIR)$(infodir)/dir; \
 	fi
 	$(MAKE) -C man install-gnats
 
@@ -69,10 +69,10 @@
 
 uninstall:
 	-if [ -x "$(INSTALL_INFO)" ]; then \
-		$(INSTALL_INFO) --delete $(infodir)/gnats.info \
-		                $(infodir)/dir; \
-		$(INSTALL_INFO) --delete $(infodir)/gnats-faq.info \
-		                $(infodir)/dir; \
+		$(INSTALL_INFO) --delete $(DESTDIR)$(infodir)/gnats.info \
+		                $(DESTDIR)$(infodir)/dir; \
+		$(INSTALL_INFO) --delete $(DESTDIR)$(infodir)/gnats-faq.info \
+		                $(DESTDIR)$(infodir)/dir; \
 	fi
 	$(MAKE) -C man uninstall
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAcd2zDMcLGCBsWv0RAmjRAJ4+tEvoOK1a1cn58DAA1PcOF4hewwCeJjHN
Md6c7MoF4/tT6CRlwZaSD/4=
=3+to
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.