Changes between Version 4 and Version 5 of EncapHowto


Ignore:
Timestamp:
09/02/06 18:40:12 (17 years ago)
Author:
dclark
Comment:

(hopefully) final HOWTO for 0.8.3 release

Legend:

Unmodified
Added
Removed
Modified
  • EncapHowto

    v4 v5  
    1 = Encap based bootstrap for bcfg2 and complete bcfg2 client toolchain = 
     1EncapPackages | EncapReadme | EncapInstall | '''EncapHowto''' 
    22 
    3 This bootstrap code is a method for getting bcfg2 (as a client), 
    4 including all dependencies, up and running on a new platform as 
    5 quickly as possible (from source). 
     3---- 
    64 
    7 The latest version of this document is always available from: 
    8  * http://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/encap/README 
     5= EncapHowto: Encap Packages HOWTO = 
    96 
    10 For a more general overview of what this is, see: 
    11  * http://trac.mcs.anl.gov/projects/bcfg2/wiki/EncapPackages 
     7TODO: Aim is to have nice HOWTO for 0.8.4 release. 
    128 
    13 You can view this document with glorious Trac Wiki formatting at: 
    14  * http://trac.mcs.anl.gov/projects/bcfg2/wiki/EncapHowto 
    15    (Although that version may be out of date) 
    16  
    17 You can obtain the latest version of the code from bcfg2 svn: 
    18  * `svn co https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2/encap` 
    19  
    20 Or browse the latest version on the web via: 
    21  * http://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/encap 
    22  
    23 Using the encap package manager it automatically downloads, builds and 
    24 creates encap packages for bcfg2 and dependencies to `/usr/local/encap`, and 
    25 installs symbolic links to these packages from `/usr/local` (the usual encap 
    26 thing).  
    27  
    28 It attempts to be as self contained as possible; everything gets linked to 
    29 under `/usr/local/lib/bcfg2`, except for bcfg2 itself and some dependent 
    30 software, which is prefixed by `b2-` (`b2-openssl`, `b2-python` etc.).   
    31  
    32 To run the bcfg2 server, you also need to install gamin, which 
    33 supports a subset of the platforms bcfg2 client will work on, including 
    34 GNU/Linux and FreeBSD. 
    35  
    36 When using this packaging, `/etc/bcfg2.conf` is instead 
    37 `/usr/local/etc/bcfg2.conf`. 
    38  
    39 This should be considered an alpha version. Everything compiles and seems to 
    40 work, but it has not yet been tested with a working bcfg2 repository. 
    41  
    42 == Building and installing everything == 
    43  1. Make sure all of the Prerequisites (see below) are installed. 
    44  1. The build user needs write access to the encap source and build  
    45     directories. By default, these are `/usr/local/encap` and  
    46     `/usr/local/src`. If you like to live dangerously, you can also just do  
    47     the builds as `root`. 
    48  1. Run `make`. This will kick off and background the entire build process.  
    49     Make output will be redirected to `make.log`, and package build output  
    50     will go to individual log files. 
    51  1. If everything goes well, try running "`bcfg2-repo-validate`". This should  
    52     not generate a python traceback :-) 
    53  1. You now have *-encap-*.tar.gz encap packages you can distribute to other  
    54     machines. If you don't like the OS name encap uses automatically (esp.  
    55     on GNU/Linux these can be too generic), do `make rename OS=somestring`. 
    56  
    57 == Prerequisites == 
    58  * GNU gcc and GNU g++ 
    59    * If you are using the gcc distributed with Solaris/x86 10, you need to  
    60      install the gcc bugfix at http://www.openssl.org/~appro/values.c by  
    61      running "ksh -f values.c" as root (or openssl will segfault) 
    62  * GNU make (make sure "gmake" links to GNU make on non-GNU platforms) 
    63  * epkg (the encap package manager) 
    64    * Canonical website is http://www.encap.org/epkg 
    65    * Mirror of epkg binaries is available at http://www.dclark.us/mirror/ 
    66    * If built from source, first need all recommended libraries from web page 
    67  
    68 You will need binaries of the GNU tools. For GNU and BSD based operating  
    69 systems, you should be able to get these via the operating system's package  
    70 system. For commercial operating systems, these can be obtained from: 
    71  
    72  AIX:: 
    73  * UCLA's Public Domain Software Library for AIX at  
    74    http://aixpdslib.seas.ucla.edu/aixpdslib.html  
    75    (These are trivial to convert into encap packages) 
    76  * Bull AIX Freeware at http://www.bullfreeware.com/ 
    77  
    78  Solaris:: 
    79  * Freeware for Solaris at http://www.sunfreeware.com/ 
    80  * Community Software for Solaris at http://www.blastwave.org/packages.php 
    81  
    82 == Supported Platforms ==  
    83 Below is a table of platforms that have been successfully bootstrapped using 
    84 this code. 
    85  
    86 || OS        || Vendor || Version || Arch  || GCC   || By || With VERSION   || 
    87 || AIX       || IBM    || 5.3     || POWER || 4.1.0 || dc || 0.7/0.8.2      || 
    88 || GNU/Linux || Debian || Sarge   || i386  || 3.3.5 || dc || 0.7/0.8.2      || 
    89 || GNU/Linux || Debian || Sid     || i386  || 4.1.2 || dc || 0.8/0.8.2      || 
    90 || Solaris   || Sun    || 10      || Sparc || 3.4.3 || dc || 0.7/0.8.2      || 
    91 || Solaris   || Sun    || 10      || i386  || 3.4.3 || dc || 0.7/0.8.2      || 
    92  
    93 dc: "Daniel Clark" <mailto:[email protected]> 
    94  
    95 If you bootstrap a platform not listed above, please add a comment to: 
    96  * http://trac.mcs.anl.gov/projects/bcfg2/ticket/74 
    97 so that platform can be added to the list.  
    98  
    99 If you modified any of the files in this package to be able to bootstrap the 
    100 new platform, please include either diffs or a tarball of your modified 
    101 version in a new ticket so your changes can be incorporated into a new 
    102 release.  
    103  
    104 Any other notes, such as where you got the GNU binaries or any issues people 
    105 should be aware of, would also be appreciated.  
    106  
    107 You may want to scan all of the bootstrapped binaries and libraries with 
    108 `ldd` (or equivalent) to make sure there are no dependencies on libraries 
    109 other than those included with the base operating system and the libraries 
    110 built as part of the bootstrap process.  
    111  
    112 On non-GNU operating systems, libgcc and libstdc++ are a run-time 
    113 requirement. These libraries are usually distributed with gcc/g++, so the 
    114 bootstrap system attempts to create encap packages containing those 
    115 libraries by copying them from the build machine. To test that this worked, 
    116 you'll want to either temporarily remove gcc/g++ from the build machine and 
    117 make sure everything still works, or install the bcfg2-*.tar.gz encap 
    118 packages on a "clean" machine (without a gcc/g++ install) and test on that  
    119 machine. 
    120  
    121 Note that the doc for the encap profile format is in "man 5 encap_profile". 
    122  
    123 == Release Notes == 
    124  0.1:: 
    125  * Initial Released Version 
    126  * Work needs to be done to minimize size of distribution. In 0.1 
    127    libraries and binaries are not stripped, and there is a lot of 
    128    pruning that can be done of individual packages. 
    129  
    130  0.2:: 
    131  * Updated bcfg2 to 0.8.2pre7 
    132  * Updated README to point to mcs.anl.gov resources 
    133  
    134  0.3:: 
    135  * Updated bcfg2 to 0.8.2pre10 
    136  
    137  0.4:: 
    138  * Versions before this version won't work without manually fixing paths 
    139  * Added patches so paths actually exist, specifically: 
    140    * bcfg2.conf default location is /usr/local/etc 
    141    * epkg/encap paths changed to encap default /usr/local paths 
    142    * schema prefix patch (changeset 1953) applied 
    143    * default schema prefix changed to /usr/local/lib/bcfg2 
    144  * Added mirror of all packages downloaded by the profiles at  
    145    http://www.pobox.com/users/dclark/mirror and made mirror default for 
    146    those downloads 
    147    * Set up automatic hourly mirror of bcfg2 ftp site *.tar.gz files 
    148    * Mirror of other packages is manual (but deps shouldn't change often) 
    149  
    150  0.5:: 
    151  * Removed external download of patches as that was not working consistently; 
    152    replaced with patches inline the bcfg2 encap profile (.ep file) 
    153  * Added GNU patch dependency, both for bcfg2 patches and call from Cfg.py 
    154  * Fixed bcfg-repo-validate so it can find xmllint (as b2-xmllint) 
    155   
    156  0.6:: 
    157  * Updated bcfg2 to 0.8.2 (released version) 
    158  * Removed r1953 patch from bcfg2 profile, since that is included in 0.8.2 
    159  * Added alpha version warning 
    160  
    161  0.7:: 
    162  * Added Solaris support 
    163  
    164  0.8:: 
    165  * Added python code to fix paths; removed inline patch & GNU patch dependency 
    166    * Path change happens as part of install, logged to postinstall.log 
    167  * Changed prefix from b2 to b2- to disambiguate from system commands   
    168  * Fixes to make man pages easier to access 
    169  * Install tools as b2-example-tools-* 
    170  * Added some auxiliary tools under tools/ directory 
    171    * daemontools - cross-platform alternative to init scripts/cron 
    172    * ostiary - simple/secure daemon for kicking off a local script 
    173    * epkg Makefile - to build epkg when prebuilt binaries aren't available 
     9<Reference to README and INSTALL in wiki: format> 
    17410 
    17511== Documentation Version == 
    176 $Id: README 2053 2006-08-07 12:22:27Z dclark $ 
     12 * This is a copy of: $Id: HOWTO 2173 2006-09-02 23:37:24Z dclark $ 
     13 * Most recent version: http://www.bcfg2.org/browser/trunk/bcfg2/encap/HOWTO