--- loncom/build/Makefile 2008/12/18 22:30:20 1.189 +++ loncom/build/Makefile 2013/08/07 22:35:29 1.204 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA -# $Id: Makefile,v 1.189 2008/12/18 22:30:20 raeburn Exp $ +# $Id: Makefile,v 1.204 2013/08/07 22:35:29 raeburn Exp $ # TYPICAL USAGE of this Makefile is primarily for two targets: # "make build" and "make install". @@ -13,6 +13,10 @@ DIST=$(DISTPROBE) CATEGORY="development" SOURCE=../.. TARGET="" +CURRSHELL=`echo $(SHELL)` +ifneq ('/bin/bash',${CURRSHELL}) +CURRSHELL=/bin/bash +endif NORESTORECONF="0" HOSTNAME="" LAUNCH=| perl @@ -23,6 +27,12 @@ LAUNCHSAVE=$(OUTSTREAM) $(SAVE) METAMTARGET="" MTARGET="" VERSION=CVS_HEAD +SHOWVERSION=$(VERSION) +NEXTVERSION=2.11 +ifeq (CVS_HEAD,${VERSION}) +SHOWVERSION=$(NEXTVERSION).$(VERSION) +endif +# # The current working definition for "RELEASE" is: changes not in the software, # but in the operating system dependent packaging of the software. Thus, the # generic tarball releases do not need to have a release number specified. @@ -46,9 +56,12 @@ help: help_OPTIONS: @echo "* ADJUSTABLE OPTIONS *" - @echo "(option) DIST can be redhat7, debian, redhat6.2, or default" - @echo " You probably do not need to specify this; it is" - @echo " automatically probed for." + @echo "(option) DIST can be centosN (N = 5 or 6), rhesN (N = 4, 5 or 6)," + @echo " or scientificN (N = 4 or 5), or slesN (N = 9,10 or 11)," + @echo " or ubuntuN (N= 6, 8, 10 or 12), or fedoraN (N = 1 .. 19)," + @echo " or suseN.M (N.M: 9.2 ... 12.3), or debianN (N = 5 or 6)," + @echo " or default. It is unlikely you would ever need to specify" + @echo " this, as it is automatically probed for." @echo "(option) CATEGORY can be 'runtime' or 'development'; currently" @echo " the 'development' setting is the most reliable;" @echo " eventually, production machines should be using the" @@ -126,6 +139,7 @@ help_TARGETS: @echo " nohist_reseval.db to nohist_accesscount.db." @echo "modify_config_files: Perform automatic update of the " @echo " configuration files for yum and MySQL." + @echo "langcheck: test to see if root bash and OS are using English." @echo "ntpcheck: test to see if ntp is installed and running." @echo "html_parser_check: test functionality of HTML::Parser." @echo "math_random_check: test functionality of Math::Random." @@ -138,6 +152,9 @@ help_TARGETS: @echo " filename databases used by LaTeX" @echo "mimetex_version_check: check if mimetex.cgi version has changed," @echo " if so remove files from mimetexcache." + @echo "latex_fmtutil: run utility to maintain TeX format files system-wide." + @echo "removenolongerused.piml: check if there are files from previous + @echo " LON-CAPA version; if so, prompt for removal." @echo "updatequery: solicit the user for machine configuration" @echo " information; to be incorporated during an update" @echo " procedure (via the UPDATE command)" @@ -147,6 +164,8 @@ help_TARGETS: @echo " /home/httpd/html/lon-status/version.txt" @echo "aboutVERSION: place version information inside about.html" @echo " and loncapa_apache.conf" + @echo "postaboutVERSION: restore default version to" + @echo " about.html and loncapa_apache.conf" @echo "*** Makefile.* TARGETS BUILT DYNAMICALLY FROM loncapafiles.lpml ***" @echo "Makefile.configinstall: generate a Makefile for configuration" @echo " files; built dynamically from" @@ -308,6 +327,7 @@ configinstall: Makefile.configinstall install: buildflag VERSION TEST_hosts_tab TEST_domain_tab Makefile.install Makefile echo -n "" > WARNINGS + make aboutVERSION make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \ directories make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files @@ -316,7 +336,7 @@ install: buildflag VERSION TEST_hosts_ta NORESTORECONF="$(NORESTORECONF)" configinstall make postinstall make warningnote - @echo "You can now run 'make test' to see if your system is ready to go!" +# @echo "You can now run 'make test' to see if your system is ready to go!" # @echo "NOTE THAT YOUR SYSTEM MUST HAVE MYSQL WITH A USER=\"www\" AND" # @echo -n "PASSWORD=\"localhostkey\" FOR www\@localhost" # @echo -n "(YOU MAY NEED TO REINITIALIZE YOUR MYSQL www\@localhost USER)" @@ -374,23 +394,21 @@ tardist: else \ ln -s . $(DIRTARGET); \ fi - cp -v $(SOURCE)/loncom/license/about.html \ - $(SOURCE)/loncom/license/about.html.orig - cp -v $(SOURCE)/loncom/loncapa_apache.conf \ - $(SOURCE)/loncom/loncapa_apache.conf.orig make aboutVERSION cd $(SOURCE); \ tar --no-recursion --numeric-owner --files-from MANIFEST \ -h -czf $(DIRTARGET).tar.gz 2>tar_WARNINGS || [ "0" == "0" ] - mv -v $(SOURCE)/loncom/license/about.html.orig \ - $(SOURCE)/loncom/license/about.html - mv -v $(SOURCE)/loncom/loncapa_apache.conf.orig \ - $(SOURCE)/loncom/loncapa_apache.conf + make postaboutVERSION cat $(SOURCE)/tar_WARNINGS | \ xargs --replace=XXX echo '**** WARNING **** XXX' > WARNINGS rm -f $(SOURCE)/tar_WARNINGS make warningnote +langcheck: + cat $(SOURCE)/doc/loncapafiles/langcheck.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + ntpcheck: cat $(SOURCE)/doc/loncapafiles/ntpcheck.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ @@ -499,7 +517,23 @@ mimetex_version_check: perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ tee -a WARNINGS +verify_domconfiguser: + cat $(SOURCE)/doc/loncapafiles/verify_domconfiguser.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +latex_fmtutil: + cat $(SOURCE)/doc/loncapafiles/latex_fmtutil.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +removenolongerused: + cat $(SOURCE)/doc/loncapafiles/removenolongerused.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + postinstall: + make postaboutVERSION make webserverconf make reseval_fixup make clean_file_permissions @@ -507,6 +541,7 @@ postinstall: make update_queue_slots make modify_config_files make clearoutoldspreadsheetcache + make langcheck make chkconfig make rpmcheck make ntpcheck @@ -520,6 +555,10 @@ postinstall: make latex_fixup make picins_check make mimetex_version_check + make verify_domconfiguser + make latex_fmtutil + make removenolongerused + sed -i "s/\x08\x08*/.../g" WARNINGS VERSION: install -d $(TARGET)/etc echo -n "LON-CAPA release $(VERSION)-" > $(TARGET)/etc/loncapa-release @@ -529,16 +568,54 @@ VERSION: date +"%Y%m%d" >> $(TARGET)/home/httpd/html/lon-status/version.txt aboutVERSION: + cp -p -v $(SOURCE)/loncom/license/about.html \ + $(SOURCE)/loncom/license/about.html.orig cat $(SOURCE)/loncom/license/about.html | \ - perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/\<\!\-\- VERSION \-\-\>/$(VERSION)-$$d/; print;}' > \ + perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \ $(SOURCE)/loncom/license/about.html.new mv -v $(SOURCE)/loncom/license/about.html.new \ $(SOURCE)/loncom/license/about.html + touch --date="$(shell echo `perl getcvsdate.pl \ + $(SOURCE)/loncom/license/CVS/Entries about.html`)" \ + $(SOURCE)/loncom/license/about.html + cp -p -v $(SOURCE)/loncom/loncapa_apache.conf \ + $(SOURCE)/loncom/loncapa_apache.conf.orig cat $(SOURCE)/loncom/loncapa_apache.conf | \ - perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/\<\!\-\- VERSION \-\-\>/$(VERSION)-$$d/; print;}' > \ + perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \ $(SOURCE)/loncom/loncapa_apache.conf.new mv -v $(SOURCE)/loncom/loncapa_apache.conf.new \ $(SOURCE)/loncom/loncapa_apache.conf + touch --date="$(shell echo `perl getcvsdate.pl \ + $(SOURCE)/loncom/CVS/Entries loncapa_apache.conf`)" \ + $(SOURCE)/loncom/loncapa_apache.conf + +postaboutVERSION: + if (test -e $(SOURCE)/loncom/license/about.html.orig) && \ + (diff $(SOURCE)/loncom/license/about.html.orig \ + $(SOURCE)/loncom/license/about.html > /dev/null); then \ + mv -v $(SOURCE)/loncom/license/about.html.orig \ + $(SOURCE)/loncom/license/about.html; \ + elif (test -e $(SOURCE)/loncom/license/about.html.orig) && \ + !(diff $(SOURCE)/loncom/license/about.html.orig \ + $(SOURCE)/loncom/license/about.html > /dev/null); then \ + rm -f $(SOURCE)/loncom/license/about.html.orig; \ + fi + touch --date="$(shell echo `perl getcvsdate.pl \ + $(SOURCE)/loncom/license/CVS/Entries about.html`)" \ + $(SOURCE)/loncom/license/about.html + if (test -e $(SOURCE)/loncom/loncapa_apache.conf.orig) && \ + (diff $(SOURCE)/loncom/loncapa_apache.conf.orig \ + $(SOURCE)/loncom/loncapa_apache.conf > /dev/null); then \ + mv -v $(SOURCE)/loncom/loncapa_apache.conf.orig \ + $(SOURCE)/loncom/loncapa_apache.conf; \ + elif (test -e $(SOURCE)/loncom/loncapa_apache.conf.orig) && \ + !(diff $(SOURCE)/loncom/loncapa_apache.conf.orig \ + $(SOURCE)/loncom/loncapa_apache.conf > /dev/null); then \ + rm -f $(SOURCE)/loncom/loncapa_apache.conf.orig; \ + fi + touch --date="$(shell echo `perl getcvsdate.pl \ + $(SOURCE)/loncom/CVS/Entries loncapa_apache.conf`)" \ + $(SOURCE)/loncom/loncapa_apache.conf # ========= *** Makefile.* TARGETS BUILT DYNAMICALLY FROM loncapafiles.lpml *** @@ -551,7 +628,7 @@ Makefile.configinstall: $(SOURCE)/doc/lo Makefile.build: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ perl lpml_parse.pl build $(CATEGORY) $(DIST) "$(SOURCE)" "$(TARGET)" \ - > Makefile.build + "$(CURRSHELL)" > Makefile.build Makefile.install: alwaysrun cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \