--- loncom/build/Makefile 2002/08/15 15:53:09 1.133 +++ loncom/build/Makefile 2021/12/21 13:57:47 1.223 @@ -1,7 +1,6 @@ # The LearningOnline Network with CAPA -# Scott Harrison, your friendly neighborhood volunteer -# $Id: Makefile,v 1.133 2002/08/15 15:53:09 harris41 Exp $ +# $Id: Makefile,v 1.223 2021/12/21 13:57:47 raeburn Exp $ # TYPICAL USAGE of this Makefile is primarily for two targets: # "make build" and "make install". @@ -14,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,8 +26,19 @@ SAVE=program.pl.$(TIMESTAMP) LAUNCHSAVE=$(OUTSTREAM) $(SAVE) METAMTARGET="" MTARGET="" -VERSION=0.4 +VERSION=CVS_HEAD +SHOWVERSION=$(VERSION) +NEXTVERSION=2.12 +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. +RELEASE=1 # As a general rule for now, this is always being set to "1". DIRTARGET=loncapa-$(VERSION) +LOCALAUTHPATH=/home/httpd/lib/perl # =============================================== Help targets for the Makefile # If 'make' is run without any arguments, the 'help' target is called since @@ -42,9 +56,14 @@ 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, 6, 7 or 8), rhesN (N = 4, 5, 6, 7 or 8)," + @echo " scientificN (N = 5, 6 or 7), oracleN (N = 6, 7 or 8), rockyN (N = 8)," + @echo " almaN (N = 8), centosN-stream (N = 8 or 9)," + @echo " or slesN (N = 9, 10, 11, 12 or 15), or debianN (N = 5 or 6)," + @echo " or ubuntuN (N= 6, 8, 10, 12, 14, 16, 18 or 20), or fedoraN (N = 1 .. 35)," + @echo " or suseN.M (N.M: 9.2 .. 13.2), or default." + @echo " It is unlikely you would ever need to specify this," + @echo " 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" @@ -87,8 +106,9 @@ help_TARGETS: @echo " (horizontal testing)" @echo "TEST_web_layer: mimic a login and various vertical actions on " @echo " a LON-CAPA system" - @echo "TEST_hosts_tab: make sure that a loncapa/loncom/hosts.tab" - @echo " file is specified for installation" + @echo "TEST_hosts_and_domain_tab: make sure that a " + @echo " loncapa/loncom/hosts.tab and loncapa/loncom/domain.tab" + @echo " file is specified for installation" @echo "TEST_html2ps: test for the presence of html2ps which is needed" @echo " for making a PDF compilation for pdfdoc" @echo "*** GENERAL TARGETS SUCH AS 'build' AND 'install' ***" @@ -97,13 +117,14 @@ help_TARGETS: @echo " 'make build' first before running 'make install'" @echo "configinstall: install configuration files and restore with" @echo " prior information" - @echo "install: install from a ***compiled*** source tree + @echo "install: install from a ***compiled*** source tree" @echo " (see make build) to a specified TARGET destination" @echo " on the filesystem (default setting is TARGET=/)." @echo "rawinstall: just install files, links and directories without" @echo " any bells or whistles (e.g. double-checking" @echo " configurations, fine-tuning webserver, etc.)" - @echo "hosts_tab: install the hosts.tab to the filesystem" + @echo "hosts_and_domain_tab: install the hosts.tab and domain.tab" + @echo " to the filesystem" @echo "webserverconf: fine-tune the web server configuration;" @echo " make sure the proper 'Include' statements" @echo " are appended to httpd.conf" @@ -113,13 +134,41 @@ 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 "lcmathcomplex: set nvsize in LCMathComplex, if different from default." + @echo "removenolongerused: 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)" @echo "postinstall: double-check things after installation" @echo "VERSION: tag the filesystem with version information inside" - @echo " /etc/loncapa-release" + @echo " /etc/loncapa-release and" + @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" @@ -134,8 +183,9 @@ help_TARGETS: @echo "*** TARGETS FOR OPERATING ON FILESYSTEMS ACROSS THE NETWORK ***" @echo "lpmladm: coordinates username=lpmladm mediated secure shell" @echo " processes; needed for the NET_* targets" - @echo "NET_hosts_tab: install the hosts.tab to a filesystem elsewhere" - @echo " on the network" + @echo "NET_hosts_and_domain_tab: install the hosts.tab and domain.tab" + @echo " to a filesystem elsewhere" + @echo " on the network" @echo "NET_webserverconf: fine-tune the web server configuration on a" @echo " filesystem elsewhere on the network" @echo "NET_rawinstall: launch the rawinstall target on a filesystem" @@ -145,7 +195,7 @@ help_TARGETS: @echo " the distributed tarball" @echo "MANIFEST_cvs: essentially a list of all CVS/Entries files used" @echo " for 'time-checking' intelligence" - @echo "MANIFEST_lpml: a list of all LON-CAPA files to be installed, + @echo "MANIFEST_lpml: a list of all LON-CAPA files to be installed," @echo " compile from, used as building software, and" @echo " testing" @echo "MANIFEST_vanillatar: 'README'-type top-level files that a user" @@ -184,6 +234,20 @@ help_TARGETS: @echo " interfere with rebuilding/recompiling software" @echo "reallyclean: remove all files that were generated during" @echo " building or compilation of the software" + @echo "uninstall: remove all directories that do not contain files" + @echo " from other software packages and that do not contain" + @echo " student and instructor data; NOTE THAT THIS IS" + @echo " INTERACTIVE--you will be given a final chance" + @echo " to look at what will and will not be deleted." + @echo " Still, be careful. This is a very new target and is" + @echo " an alpha-level software feature for now." + @echo "backup: rolls a tarball backup of all important student and " + @echo " instructor data (NOT YET IMPLEMENTED)" + @echo "restore: reseeds a LON-CAPA server with tarball backups " + @echo " generated by \"make backup\" (NOT YET IMPLEMENTED)" + @echo "*** AUXILIARY TESTS ***" + @echo "localauth: tests to see if localauth exists or not and run" + @echo " appropriate tests" @echo "*** A HELPFUL DEPENDENCY ***" @echo "alwaysrun: blank target that is a dependency for targets" @echo " that should \"always run\"" @@ -216,6 +280,30 @@ TEST_hosts_tab: echo " 2) ln -s development_hosts.tab hosts.tab" && \ echo "or 3) ln -s rawhide_hosts.tab hosts.tab" && \ echo "(you most likely want option #1, production_hosts.tab)" && \ + echo " and also one of the following within your " && \ + echo "CVS repository (cd loncapa/loncom)" && \ + echo " 1) ln -s production_dns_hosts.tab dns_hosts.tab" && \ + echo " 2) ln -s development_dns_hosts.tab dns_hosts.tab" && \ + echo "(you most likely want option #1, production_dns_hosts.tab)" && \ + exit 1; \ + fi + +TEST_domain_tab: + @echo "Testing domain.tab" + @if (test -e ../domain.tab); then \ + echo "there is a defined link or file; assume okay"; \ + 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 "or 3) ln -s rawhide_domain.tab domain.tab" && \ + echo "(you most likely want option #1, production_domain.tab)" && \ + echo " and also one of the following within your " && \ + echo "CVS repository (cd loncapa/loncom)" && \ + echo " 1) ln -s production_dns_domain.tab dns_domain.tab" && \ + echo " 2) ln -s development_dns_domain.tab dns_domain.tab" && \ + echo "(you most likely want option #1, production_dns_domain.tab)" && \ exit 1; \ fi @@ -250,8 +338,9 @@ configinstall: Makefile.configinstall if (test "0" = $(NORESTORECONF)); then \ perl loncaparestoreconfigurations suffix .lpmlnew; fi -install: buildflag VERSION TEST_hosts_tab Makefile.install Makefile +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 @@ -260,11 +349,11 @@ install: buildflag VERSION TEST_hosts_ta NORESTORECONF="$(NORESTORECONF)" configinstall make postinstall make warningnote - echo "You can 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)" - echo -n "Please see http://install.lon-capa.org/ for more information" +# @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)" +# @echo -n "Please see http://install.lon-capa.org/ for more information" rawinstall: VERSION Makefile.install Makefile echo -n "" > WARNINGS @@ -275,35 +364,26 @@ rawinstall: VERSION Makefile.install Mak make SOURCE="$(SOURCE)" TARGET="$(TARGET)" \ NORESTORECONF="$(NORESTORECONF)" configinstall -hosts_tab: TEST_hosts_tab +hosts_and_domain_tab: TEST_hosts_tab TEST_domain_tab cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ perl xfml_parse.pl $(SOURCE)/doc/loncapafiles/valid_hosts.xfml | \ perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \ "$(TARGET)" > Makefile.install make -f Makefile.install directories make -f Makefile.install files - @echo "If hosts.tab has changed, restart httpd and loncontrol:" + @echo "If hosts.tab or domain.tab has changed, restart httpd and loncontrol:" @echo " /etc/rc.d/init.d/httpd restart" @echo " /etc/rc.d/init.d/loncontrol restart" 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_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 @@ -315,7 +395,7 @@ vanillatar: chmod a+rx $(SOURCE)/TEST chmod a+rx $(SOURCE)/CHECKRPMS # -------------------------------- Copy README to the vanilla top-level - cp -v $(SOURCE)/doc/shortest_path_redhat7.2.txt $(SOURCE)/README + #cp -v $(SOURCE)/doc/shortest_path_redhat7.2.txt $(SOURCE)/README tardist: make MANIFEST_all @@ -327,55 +407,234 @@ tardist: else \ ln -s . $(DIRTARGET); \ fi - cp -v $(SOURCE)/loncom/license/about.html \ - $(SOURCE)/loncom/license/about.html.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 + 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) | \ + tee -a WARNINGS + sendmail_fix: cat $(SOURCE)/doc/loncapafiles/sendmail_fix.piml | \ 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 + +lcmathcomplex: + cat $(SOURCE)/doc/loncapafiles/lcmathcomplex.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)" $(QUERYLAUNCH) + 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 wrap_setuid + make latex_fixup + make picins_check + make mimetex_version_check + make verify_domconfiguser + make latex_fmtutil + make lcmathcomplex + sed -i "s/\x08\x08*/.../g" WARNINGS VERSION: install -d $(TARGET)/etc + if (test -e /etc/loncapa-release); then \ + cp -p -v /etc/loncapa-release /etc/loncapa-release.prev; \ + fi echo -n "LON-CAPA release $(VERSION)-" > $(TARGET)/etc/loncapa-release date +"%Y%m%d" >> $(TARGET)/etc/loncapa-release + install -d $(TARGET)/home/httpd/html/lon-status + echo -n "$(VERSION)-" > $(TARGET)/home/httpd/html/lon-status/version.txt + 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"`;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 \-\-\>|\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 *** @@ -388,7 +647,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 | \ @@ -427,9 +686,9 @@ lpmladm: echo "**** ERROR **** Incorrect METAMTARGET"; \ fi -NET_hosts_tab: +NET_hosts_and_domain_tab: make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \ - MTARGET="hosts_tab" HOSTNAME="$(HOSTNAME)" lpmladm + MTARGET="hosts_and_domain_tab" HOSTNAME="$(HOSTNAME)" lpmladm NET_webserverconf: make TIMESTAMP=`date +"%s"` METAMTARGET="LAUNCH" \ @@ -453,6 +712,12 @@ MANIFEST_all: echo 'loncom/rawhide_hosts.tab' >> $(SOURCE)/MANIFEST echo 'loncom/production_hosts.tab' >> $(SOURCE)/MANIFEST 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 @@ -478,13 +743,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 $(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) @@ -551,8 +819,8 @@ RPM: BinaryRoot base_rpm_file_list cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \ > base_customizerpm.xml - cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 '' '' \ - BinaryRoot base_customizerpm.xml + cat base_rpm_file_list.txt | perl make_rpm.pl base $(VERSION) \ + $(RELEASE) '' '' BinaryRoot base_customizerpm.xml DPKG: make TARGET='lon-capa-$(VERSION)' NORESTORECONF='1' install @@ -582,6 +850,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 @@ -747,5 +1019,38 @@ reallyclean: make -f Makefile.cvs clean rm -f WARNINGS +uninstall: + rm -f UNINSTALL_SHELL_COMMANDS + cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl uninstall_shell_commands $(CATEGORY) $(DIST) \ + "$(SOURCE)" "$(TARGET)" > UNINSTALL_SHELL_COMMANDS + @echo -n "**** NOTE **** A file \"UNINSTALL_SHELL_COMMANDS\" has been " + @echo "generated." + @echo "First, you should view the contents of this file." + @echo "If you are happy with the 'rm -Rf'! commands (or at least" + @echo "have another job lined up in case of catastrophe), then you " + @echo "can execute the following: sh ./UNINSTALL_SHELL_COMMANDS" + +backup: + @echo "Not yet implemented" + +restore: + @echo "Not yet implemented" + +# ===================================================== *** AUXILIARY TESTS *** +localauth: + @if (test -e $(LOCALAUTHPATH)/localauth.pm) && \ + !(diff $(LOCALAUTHPATH)/localauth-std.pm \ + $(LOCALAUTHPATH)/localauth.pm > /dev/null); then \ + echo "**** WARNING **** $(LOCALAUTHPATH)/localauth.pm is different than the $(LOCALAUTHPATH)/localauth-std.pm; if you have not customized localauth.pm, then please manually overwrite localauth.pm (rm $(LOCALAUTHPATH)/localauth.pm; ln -s $(LOCALAUTHPATH)/localauth-std.pm $(LOCALAUTHPATH)/localauth.pm); if you have customized localauth.pm, then please double-check to see that your customized localauth.pm is compatible with any localauth-std.pm changes for this version of LON-CAPA"| tee -a WARNINGS; \ + elif (test -e $(LOCALAUTHPATH)/localauth.pm) && \ + (diff $(LOCALAUTHPATH)/localauth-std.pm \ + $(LOCALAUTHPATH)/localauth.pm > /dev/null); then \ + echo "**** NOTE **** LOCAL AUTH IS IDENTICAL WITH STANDARD TEMPLATE"| tee -a WARNINGS; \ + elif !(test -e $(LOCALAUTHPATH)/localauth.pm) && \ + (test -e $(LOCALAUTHPATH)/localauth-std.pm); then \ + ln -s $(LOCALAUTHPATH)/localauth-std.pm $(LOCALAUTHPATH)/localauth.pm; \ + fi + # ================================================ *** A HELPFUL DEPENDENCY *** alwaysrun: