diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 113 |
1 files changed, 113 insertions, 0 deletions
@@ -0,0 +1,113 @@ + The LinHES development is divided into two different git repositories. +The first repository is LinHES-PKGBUILD, and it contains all the PKGBUILD files that make up LinHES. The second repository is called LinHES-dev and is intended to create a chroot for all development to occur within. By using a chroot development work can be done on non-LinHES machines. The reason for the split is so that the PKGBUILD's may be downloaded and modified by non-developers without requiring them to download the entire development environment. + +------ LinHES-PKGBUILD ----------- + +The layout of the LinHES-PKGBUILD repository is as follows. +-- abs + |-- chroot-devel + |-- chroot-devel-testing + |-- core + |-- core-testing + |-- extra + |-- extra-testing + +Core is the set of packages that make up the “core” of LinHES, or in other words all the packages needed to create a fully functioning system. + +Extra contains all the packages used by LinHES, but not necessarily needed to create a fully functioning system. For example this would include mplayer, xine and mozilla. + +Chroot-devel are packages used by developers that are not in LinHES. + +The difference between core and core-testing is that core is intended to be used for public iso releases, where as core-testing is intended for developers or beta testing. The same applies to extra and chroot-devel. + +----------- LinHES-dev ------------------- + + LinHES-dev contains the tools and scripts for a working development environment, but it is not a working development by itself. The script setup-env.sh will do all the work in creating a working development environment. The script will download and install the required packages(from the current stable release) into a directory called build_root and create a script that can be used to enter the chroot. + Because LinHES will support multiple architectures, setup-env.sh requires and argument telling it which architecture to work with.. Currently i686 is the only working option, so that is the one I recommend you use. For example running “setup-env.sh i686” will create a working i686 LinHES development environment named build_root.i686. Setup-env.sh also creates a empty directory structure called pkg_repo, this is used by kmsync.sh (which will be discussed later). + + To enter the build root run (as root) the newly created script called enter_build_root.i686. +The script will take care of the following things for you + a) mounting proc,sys,dev/pts + b) bind mounting LinHES-dev/build_tools to build_root/build_tools + c) bind mounting LinHES-PKGBUILD to build_root/data/LinHES-PKGBUILD + d) bind mounting pkg_repo to build_root/data/pkg_repo. + e) unmount the above directories when leaving the chroot + + +The following is a list of tools available to you inside the chroot. + +a) mp + Small script to compile a package, copy it to the local testing repo and update the local database using the repo-add function. Must be called from the same directory that contains the PKGBUILD. This script takes all the same arguments that makepkg takes. + +b) mpr + Symlink to mp that does the same thing as mp except it copies the package to the release repo + +c) update_db_repo +Used to completely regenerate the the local package database. +Takes two arguments the directory with packages, and the name of the repository. + Example: update_db_repo /data/local/pkg_repo/i686/core-testing core-testing + +d) kmsync.sh (testing|release|chroot-devel + This script is used to synchronize the contents of the compiled packages on knoppmyth.net and the ones on your local machine. + + The script takes 1 argument telling it which repository to sync up with + + The first time it's run with any given option the local directory (/data/pkg_repo/i686/core|extra|chroot-devel) MUST MUST MUST be empty. + + Please use this script with care, any changes that are made in the local mirror will be copied to the knoppmyth server. + + This includes the possibility to completely erase all the packages. Finally this script uses a shared user account on knoppmyth.net that is a locked account. SSH keys must be setup for this script to work. + +e) build_tools/go.sh + Menu driven fronted to create an ISO with selected profile + The following profiles are available to create an iso. +a ) i686-RELEASE-REMOTE + Create an iso from the release repo using packages from knoppmyth.net +b ) i686-testing-REMOTE + Create an ISO from the testing repo using packages from knoppmyth.net +c) i686-testing-local + Create an ISO from the testing repo using packages from the local mirror +d ) i686-testing-local-httpdir-structure + Create an ISO from the testing repo using packages from a local web server name “localmirror” + + After the process finishes it will let you know the final name and location of the resulting ISO + For any of the local profiles to work, it requires that kmsync be run at least once to populate the local mirror. + +Quick start showing typical process +############ +Create the chroot for i686 + + +git clone ssh://jams@knoppmyth.net/mount/repository/LinHES-dev +git clone ssh://jams@knoppmyth.net/mount/repository/LinHES-PKGBUILD + cd LinHES-dev/ +./setup_env.sh i686 + cd .. + ./enter_dev_chroot.i686.sh + +Build and iso from knoppmyth.net +cdb <= alias +./go.sh + (select i686-testing-REMOTE) + +commands used to build a package (tar in this example), and update knoppmyth.net + +cdl <= alias that takes you the the top level PKGBUILD directory +cd core-testing +cd tar +vi PKGBUILD <= bump the pkgrel line by 1 +mp +(at this point you should test the package, either by building a new iso or installing the package)kmsync.sh testing <= this will pull down all changes from knoppmyth.net and upload the new tar package + +----------------------- +Misc. +Directory structure after a functioning chroot is created for i686 +|-- LinHES-PKGBUILD +|-- LinHES-dev +|-- build_root.i686 +|-- enter_dev_chroot.i686.sh +`-- pkg_repo + + + + |