--- loncom/build/Makefile 2003/12/12 21:41:17 1.156.2.2 +++ loncom/build/Makefile 2011/11/08 21:46:11 1.190.8.7 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA -# $Id: Makefile,v 1.156.2.2 2003/12/12 21:41:17 albertel Exp $ +# $Id: Makefile,v 1.190.8.7 2011/11/08 21:46:11 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 @@ -22,7 +26,13 @@ SAVE=program.pl.$(TIMESTAMP) LAUNCHSAVE=$(OUTSTREAM) $(SAVE) METAMTARGET="" MTARGET="" -VERSION=1.0.99.2 +VERSION=2.10.1 +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. @@ -119,6 +129,27 @@ help_TARGETS: @echo " system" @echo "sanitycheck: probe for common errors and recommend fixes to" @echo " the user" + @echo "logcleanup: clean spurious logfile entries" + @echo "clean_file_permissions: Remove erroneous keys from the " + @echo " file_permissions.db" + @echo "accesscount_seed: Migrate the access counting mechanism from " + @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." + @echo "cron_lpmlcheck: remove cron file /etc/cron.d/loncapa.lpml." + @echo "chkconfig: test runlevels of httpd and loncontrol." + @echo "rpmcheck: test to see if rpms known to confict are installed." + @echo "wrap_setuid: put a C wrapper around setuid scripts." + @echo "latex_fixup: regenerate ls-R database for the latex base." + @echo "picins_check: check for picins.sty, retrieve and rebuild" + @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 "updatequery: solicit the user for machine configuration" @echo " information; to be incorporated during an update" @echo " procedure (via the UPDATE command)" @@ -128,6 +159,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" @@ -235,8 +268,8 @@ TEST_hosts_tab: else echo "**** ERROR **** hosts.tab not defined!" && \ echo -n "You need to do one of the following within your " && \ echo "CVS repository (cd loncapa/loncom)" && \ - echo " 1) ln -s production_hosts.tab hosts.tab" && \ - echo " 2) ln -s development_hosts.tab hosts.tab" && \ + echo " 1) ln -s production_dns_hosts.tab dns_hosts.tab" && \ + echo " 2) ln -s development_dns_hosts.tab dns_hosts.tab" && \ echo "or 3) ln -s rawhide_hosts.tab hosts.tab" && \ echo "(you most likely want option #1, production_hosts.tab)" && \ exit 1; \ @@ -249,8 +282,8 @@ TEST_domain_tab: else echo "**** ERROR **** domain.tab not defined!" && \ echo -n "You need to do one of the following within your " && \ echo "CVS repository (cd loncapa/loncom)" && \ - echo " 1) ln -s production_domain.tab domain.tab" && \ - echo " 2) ln -s development_domain.tab domain.tab" && \ + echo " 1) ln -s production_dns_domain.tab dns_domain.tab" && \ + echo " 2) ln -s development_dns_domain.tab dns_domain.tab" && \ echo "or 3) ln -s rawhide_domain.tab domain.tab" && \ echo "(you most likely want option #1, production_domain.tab)" && \ exit 1; \ @@ -289,6 +322,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 @@ -297,7 +331,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)" @@ -325,22 +359,13 @@ hosts_and_domain_tab: TEST_hosts_tab TES webserverconf: cat $(SOURCE)/doc/loncapafiles/webserver.piml | \ - perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS # ---------------- Top-level files such as README, UPDATE, CHECKRPMS, and TEST vanillatar: # --------------------------- Point UPDATE to the internal make process - echo '#!/bin/sh' > $(SOURCE)/UPDATE - echo 'touch loncom/build/WARNINGS' >> $(SOURCE)/UPDATE; - echo 'ln -s loncom/build/WARNINGS WARNINGS' >> $(SOURCE)/UPDATE; - echo 'cd loncom/build; make build' >> $(SOURCE)/UPDATE - echo 'make rawinstall' >> $(SOURCE)/UPDATE - echo 'make configinstall' >> $(SOURCE)/UPDATE - echo 'make updatequery' >> $(SOURCE)/UPDATE - echo 'make hosts_and_domain_tab' >> $(SOURCE)/UPDATE - echo 'make postinstall' >> $(SOURCE)/UPDATE - echo 'make aboutVERSION' >> $(SOURCE)/UPDATE - echo 'make warningnote' >> $(SOURCE)/UPDATE + cp $(SOURCE)/loncom/UPDATE $(SOURCE)/UPDATE # ----------------------------- Point TEST to the internal make process echo '#!/bin/sh' > $(SOURCE)/TEST echo 'cd loncom/build; make test' >> $(SOURCE)/TEST @@ -364,42 +389,94 @@ 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) | \ + tee -a WARNINGS + +html_parser_check: + cat $(SOURCE)/doc/loncapafiles/html_parser_check.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +math_random_check: + cat $(SOURCE)/doc/loncapafiles/math_random_check.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +cron_lpmlcheck: + cat $(SOURCE)/doc/loncapafiles/cron_lpmlcheck.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +chkconfig: + cat $(SOURCE)/doc/loncapafiles/chkconfig.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +rpmcheck: + cat $(SOURCE)/doc/loncapafiles/rpmcheck.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + sanitycheck: cat $(SOURCE)/doc/loncapafiles/sanitycheck.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ tee -a WARNINGS +logcleanup: + cat $(SOURCE)/doc/loncapafiles/logcleanup.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + updatequery: cat $(SOURCE)/doc/loncapafiles/updatequery.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH) +run_searchcat: + cat $(SOURCE)/doc/loncapafiles/run_searchcat.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH) + +clean_file_permissions: + cat $(SOURCE)/doc/loncapafiles/clean_file_permissions.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + accesscount_seed: cat $(SOURCE)/doc/loncapafiles/accesscount_seed.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ tee -a WARNINGS +modify_config_files: + cat $(SOURCE)/doc/loncapafiles/modify_config_files.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + reseval_fixup: cat $(SOURCE)/doc/loncapafiles/reseval_fixup.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ tee -a WARNINGS +update_queue_slots: + cat $(SOURCE)/doc/loncapafiles/update_queue_slots.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + clearoutoldspreadsheetcache: cat $(SOURCE)/doc/loncapafiles/clearoutoldspreadsheetcache.piml | \ perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ @@ -410,14 +487,66 @@ sendmail_fix: perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ tee -a WARNINGS +ownership_fix: + cat $(SOURCE)/doc/loncapafiles/ownership_fix.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +wrap_setuid: + cat $(SOURCE)/doc/loncapafiles/wrap_setuid.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +latex_fixup: + cat $(SOURCE)/doc/loncapafiles/latex_fixup.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +picins_check: + cat $(SOURCE)/doc/loncapafiles/picins_check.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +mimetex_version_check: + cat $(SOURCE)/doc/loncapafiles/mimetex_version_check.piml | \ + 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 + postinstall: + make postaboutVERSION make webserverconf make reseval_fixup + make clean_file_permissions make accesscount_seed + make update_queue_slots + make modify_config_files make clearoutoldspreadsheetcache + make langcheck + make chkconfig + make rpmcheck + make ntpcheck + make html_parser_check + make cron_lpmlcheck make sanitycheck + make logcleanup make sendmail_fix - + make ownership_fix + make wrap_setuid + make latex_fixup + make picins_check + make mimetex_version_check + make verify_domconfiguser + make latex_fmtutil VERSION: install -d $(TARGET)/etc echo -n "LON-CAPA release $(VERSION)-" > $(TARGET)/etc/loncapa-release @@ -427,17 +556,43 @@ 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 + cp -p -v $(SOURCE)/loncom/loncapa_apache.conf \ + $(SOURCE)/loncom/loncapa_apache.conf.orig cat $(SOURCE)/loncom/license/about.html | \ - perl -e '$$d=`date +"%Y%m%d"`;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 cat $(SOURCE)/loncom/loncapa_apache.conf | \ - perl -e '$$d=`date +"%Y%m%d"`;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 +postaboutVERSION: + if (test -e $(SOURCE)/loncom/license/about.html.orig) && \ + (diff $(SOURCE)/loncom/license/about.html \ + $(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 \ + $(SOURCE)/loncom/license/about.html > /dev/null); then \ + rm -f $(SOURCE)/loncom/license/about.html.orig; \ + fi + if (test -e $(SOURCE)/loncom/loncapa_apache.conf.orig) && \ + (diff $(SOURCE)/loncom/license/about.html \ + $(SOURCE)/loncom/license/about.html > /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/license/about.html \ + $(SOURCE)/loncom/license/about.html > /dev/null); then \ + rm -f $(SOURCE)/loncom/loncapa_apache.conf.orig; \ + fi + # ========= *** Makefile.* TARGETS BUILT DYNAMICALLY FROM loncapafiles.lpml *** Makefile.configinstall: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml \ @@ -449,7 +604,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 | \ @@ -516,6 +671,10 @@ MANIFEST_all: echo 'loncom/development_hosts.tab' >> $(SOURCE)/MANIFEST echo 'loncom/production_domain.tab' >> $(SOURCE)/MANIFEST echo 'loncom/development_domain.tab' >> $(SOURCE)/MANIFEST + echo 'loncom/production_dns_hosts.tab' >> $(SOURCE)/MANIFEST + echo 'loncom/development_dns_hosts.tab' >> $(SOURCE)/MANIFEST + echo 'loncom/production_dns_domain.tab' >> $(SOURCE)/MANIFEST + echo 'loncom/development_dns_domain.tab' >> $(SOURCE)/MANIFEST # ------------------ Files needed for dynamically generated directories echo 'doc/man' >> $(SOURCE)/MANIFEST echo 'doc/lib' >> $(SOURCE)/MANIFEST @@ -541,16 +700,16 @@ MANIFEST_cvs: # ------------------- MANIFEST the building, testing and standard loncapa files MANIFEST_lpml: cat $(SOURCE)/doc/loncapafiles/buildfiles.lpml | \ - perl lpml_parse.pl MANIFEST development default \ + perl lpml_parse.pl MANIFEST development $(DIST) \ '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST cat $(SOURCE)/doc/loncapafiles/testfiles.lpml | \ - perl lpml_parse.pl MANIFEST development default \ + perl lpml_parse.pl MANIFEST development $(DIST) \ '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST cat $(SOURCE)/doc/loncapafiles/installfiles.lpml | \ - perl lpml_parse.pl MANIFEST development default \ + perl lpml_parse.pl MANIFEST development $(DIST) \ '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ - perl lpml_parse.pl MANIFEST development default \ + perl lpml_parse.pl MANIFEST development $(DIST) \ '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST # ------------ Files for top-level (the vanilla layer that the user first sees) @@ -648,6 +807,10 @@ BinaryRoot: base_rpm_file_list # ======================================== *** MASTER DOCUMENTATION TARGETS *** +buildwebsite: + cd ../../doc/build; perl ./generate_web_pages.pl + + # Generates CVS:loncom/build/docs; root location of install.lon-capa.org doc: install -d docs