--- loncom/build/Makefile 2011/11/08 07:40:04 1.199 +++ loncom/build/Makefile 2024/08/04 02:37:35 1.201.2.29 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA -# $Id: Makefile,v 1.199 2011/11/08 07:40:04 raeburn Exp $ +# $Id: Makefile,v 1.201.2.29 2024/08/04 02:37:35 raeburn Exp $ # TYPICAL USAGE of this Makefile is primarily for two targets: # "make build" and "make install". @@ -26,9 +26,9 @@ SAVE=program.pl.$(TIMESTAMP) LAUNCHSAVE=$(OUTSTREAM) $(SAVE) METAMTARGET="" MTARGET="" -VERSION=CVS_HEAD +VERSION=2.11.5 SHOWVERSION=$(VERSION) -NEXTVERSION=2.11 +NEXTVERSION=2.12 ifeq (CVS_HEAD,${VERSION}) SHOWVERSION=$(NEXTVERSION).$(VERSION) endif @@ -56,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, 8 or 9)," + @echo " scientificN (N = 5, 6 or 7), oracleN (N = 6, 7, 8 or 9), rockyN (N = 8 or 9)," + @echo " almaN (N = 8 or 9), centosN-stream (N = 8 or 9)," + @echo " or slesN (N = 9, 10, 11, 12 or 15), or debianN (N = 5, 6, 10, 11 or 12)," + @echo " or ubuntuN (N= 6, 8, 10, 12, 14, 16, 18, 20, 22 or 24), or fedoraN (N = 1 .. 40)," + @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" @@ -144,12 +149,17 @@ help_TARGETS: @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 "bash_config_check: test if enable-bracketed-paste set to on." + @echo "systemd_config_check: test if ProtectHome set to readonly." @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)" @@ -268,10 +278,15 @@ 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_dns_hosts.tab dns_hosts.tab" && \ - echo " 2) ln -s development_dns_hosts.tab dns_hosts.tab" && \ + echo " 1) ln -s production_hosts.tab 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 @@ -282,10 +297,15 @@ 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_dns_domain.tab dns_domain.tab" && \ - echo " 2) ln -s development_dns_domain.tab dns_domain.tab" && \ + 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 @@ -353,9 +373,11 @@ hosts_and_domain_tab: TEST_hosts_tab TES "$(TARGET)" > Makefile.install make -f Makefile.install directories make -f Makefile.install files - @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" + @echo "If hosts.tab or domain.tab has changed, restart the web server and loncontrol:" + @echo " service httpd restart, or if that is unavailable on your Linux distro:" + @echo " service apache2 restart" + @echo " /home/httpd/perl/loncontrol restart, or if that is unavailable on your Linux distro:" + @echo " /etc/init.d/loncontrol restart" webserverconf: cat $(SOURCE)/doc/loncapafiles/webserver.piml | \ @@ -522,6 +544,25 @@ latex_fmtutil: 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) + +bash_config_check: + cat $(SOURCE)/doc/loncapafiles/bash_config_check.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + +systemd_config_check: + cat $(SOURCE)/doc/loncapafiles/systemd_config_check.piml | \ + perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ + tee -a WARNINGS + postinstall: make postaboutVERSION make webserverconf @@ -540,15 +581,21 @@ postinstall: 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 + make bash_config_check + make systemd_config_check + 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 @@ -558,40 +605,52 @@ VERSION: 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%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 \ + (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 \ + !(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/license/about.html \ - $(SOURCE)/loncom/license/about.html > /dev/null); then \ + (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/license/about.html \ - $(SOURCE)/loncom/license/about.html > /dev/null); then \ + !(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 *** @@ -609,7 +668,7 @@ Makefile.build: $(SOURCE)/doc/loncapafil Makefile.install: alwaysrun cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \ - "$(TARGET)" > Makefile.install + "$(TARGET)" "$(CURRSHELL)" > Makefile.install # ============= *** TARGETS FOR OPERATING ON FILESYSTEMS ACROSS THE NETWORK ***