--- loncom/build/readme.html 2001/01/17 13:04:59 1.12 +++ loncom/build/readme.html 2001/01/17 13:50:47 1.16 @@ -92,11 +92,11 @@ make build This is the actual make target code.
-
+
 build:
         perl parse.pl ../../doc/loncapafiles/loncapafiles.html build > Makefile.build
         make -f Makefile.build all
-
+
 
loncom/build/parse.pl reads in all the build information out @@ -254,7 +254,14 @@ combination has been working very effici Machine-specific information is the difference

The current list of configurable files for the LON-CAPA system is -/etc/httpd/access.conf. +/etc/httpd/access.conf, /etc/smb.conf, /etc/ntp.conf, /etc/krb.conf, +/etc/atalk/config, /etc/ntp/step-tickers, +/home/httpd/html/res/adm/includes/copyright.tab, +/home/httpd/html/res/adm/includes/un_keyword.tab, +/home/httpd/hosts.tab, and +/home/httpd/spare.tab. +

+

All of these configurable files contain machine-specific information. For instance, the LON-CAPA system relies on unique host IDs such as msua3, s1, s2, msul1, and 103a1 (specified as a "PerlSetVar lonHostID" @@ -271,18 +278,146 @@ What this means in terms of software upd

  • have their machine specific information saved,
  • be overwritten, and then
  • have their machine specific information restored. +

  • Updating the non-configurable files on your machine (make install)

    - - +Commands + +
    +cd loncom/build
    +make install
    +
    +
    +General description of what happens +

    +This is the actual make target code. + +

    +
    +install: build
    +        perl parse.pl ../../doc/loncapafiles/loncapafiles.html install > Makefil
    +e.install
    +        make -f Makefile.install SOURCE="../.." TARGET="" directories
    +        make -f Makefile.install SOURCE="../.." TARGET="" files
    +        make -f Makefile.install SOURCE="../.." TARGET="" links
    +
    +
    + +For safety reasons (so as to not mess up a machine's configuration), +configuration files are NOT installed during this step. This means +that files such as /etc/httpd/access.conf, /etc/smb.conf, /etc/atalk/config, +/home/httpd/html/res/adm/includes/copyright.tab, and +/home/httpd/spare.tab are not overwritten, but remain as old, non-updated +copies. (To automatically update these files and save/restore +their encoded machine configuration, you must run "make configinstall"). +

  • Updating the configurable files on your machine (make configinstall)

    - - +Commands + +
    +cd loncom/build
    +make configinstall
    +
    +
    +General description of what happens +

    +This is the actual make target code. + +

    +
    +configinstall: 
    +        # there is a dependency on having directories in place, but oh well...
    +        perl parse.pl ../../doc/loncapafiles/loncapafiles.html configinstall > Makefile.configinstall
    +        make -f Makefile.configinstall SOURCE="../.." TARGET="" configfiles
    +        perl loncaparestoreconfigurations lasttimestamp
    +        make -f Makefile.configinstall TARGET="" configpermissions
    +
    +
    + +Configuration files are installed during this step. This means +that files such as /etc/httpd/access.conf, /etc/smb.conf, /etc/atalk/config, +/home/httpd/html/res/adm/includes/copyright.tab, and +/home/httpd/spare.tab are overwritten. Before being overwritten, +a backup copy is made though. Information is read out of these +backup copies and restored to the new files by the +loncaparestoreconfigurations script. To ensure that +new file permissions and ownerships are installed, a final set of +chown and chmod commands are called for each of +the configuration files. +

    +For the truly paranoid +

    +If you are truly paranoid, you can just make the +Makefile.configinstall file and then save, copy, +and restore all the configuration values yourself. +loncaparestoreconfigurations is pretty smart though, has yet to +fail, and besides, a backup copy is always made (time-stamped so that backup +copies are not overwritten). +

  • Building RPMs (make RPM)

    +Commands + +
    +cd loncom/build
    +rm -Rf BinaryRoot (or alternatively, "make clean")
    +make RPM
    +   (to subsequently install, you can type commands like
    +       "rpm -Uvh --force LON-CAPA-base-3.1-1.i386.rpm")
    +
    +
    +

    +WARNING!!!!!!!!!!!!!! +

    +Never never never never never manually install the +LON-CAPA-setup-3.1-1.i386.rpm. This RPM is meant to only be +installed by the CD installation process (it wipes out +the existing /etc/passwd file). +

    +Configuration files +

    +Configuration files are automatically saved with the file suffix +".rpmsave". So /etc/httpd/conf/access.conf is saved as +/etc/httpd/conf/access.conf.rpmsave. You can restore +the machine-specific configuration information by running +the /usr/sbin/loncaparestoreconfigurations. However, +a warning is important here. If you install an RPM twice +without restoring your configuration, you will overwrite the +".rpmsave" files. +

    +General description of what happens +

    +This is the actual make target code. + +

    +
    +RPM: BinaryRoot
    +        cat base_file_list.txt | perl make_rpm.pl base 3.1 '' '' BinaryRoot
    +        cat setup_file_list.txt | perl make_rpm.pl setup 3.1 '' '' BinaryRoot
    +
    +BinaryRoot:
    +        perl parse.pl ../../doc/loncapafiles/loncapafiles.html BinaryRoot
    +
    +
    + +A BinaryRoot directory is generated that reflects the locations, +ownerships, permissions, and contents for all the CVS source +files, compiled binaries, directories, and links as they should eventually +occur on the '/' filesystem location. +

    +

    +loncom/build/make_rpm.pl is robust (tested over the +span of months) and, unlike other automated RPM-builders, cleanly +builds new RPMs without any after-effect of temporary files left +on the system. (On the negative side, there are a number of +LON-CAPA specific customizations inside make_rpm.pl which, for +the sake of reusability, should eventually be removed). Two new RPMs +are generated: LON-CAPA-base-3.1-1.i386 and LON-CAPA-setup-3.1-1.i386.rpm +(again, never manually install LON-CAPA-setup-3.1-1.i386.rpm). +