From f13a8a9823833c2d88408e8c8e1d51f6ca17bec3 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Sun, 23 Nov 2014 14:45:32 -0500 Subject: README: updates for some changes. --- README | 219 ++++++++++++++++++++++++++-------------------------- build_tools/bin/mpl | 1 - build_tools/bin/mpr | 1 - 3 files changed, 108 insertions(+), 113 deletions(-) delete mode 120000 build_tools/bin/mpl delete mode 120000 build_tools/bin/mpr diff --git a/README b/README index 8905b41..0a6d422 100755 --- a/README +++ b/README @@ -1,198 +1,195 @@ - The LinHES development is divided into two different git repositories. + 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. +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 (development +enviroment). By using a chroot development work will not affect the existing +LinHES installation and can also be done on non-LinHES machines. The reason +for the linhes-pkgbuild and linhes-dev split is so that PKGBUILDs may be +downloaded and modified without requiring the entire development environment +be built. ------ linhes-pkgbuild ----------- -The layout of the linhes-pkgbuild repository is as follows. +The layout of the linhes-pkgbuild repository is: -- abs |-- core |-- core-testing |-- extra |-- extra-testing -Core is the set of packages that make up the "core" of LinHES, or in other +core is the set of packages that make up the "core" of LinHES. Iin 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. - -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 extra-testing. - ------------ 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. Get the script at: - http://linhes.org/repo/setup_env.sh -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 +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 Chrome. + +The core and extra repositories are intended for the current public release +and are considered stable. The core-testing and extra-testing repositories +are intended for developers and testers in preparing the next release. + +------ linhes-dev ---------------- + + linhes-dev contains the tools and scripts for a working development +environment. However, linhes-dev is not a working development by itself. +A working development enviroment also needs linhes-pkbuild. The script +setup_env.sh will do all the work in creating a working development +environment. Get setup_env.sh at: http://linhes.org/repo/setup_env.sh + + The setup_env.sh script will download and install the required packages +(by default, 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 can support multiple architectures, setup_env.sh requires arguments telling it which architecture to work with as well as which repository (stable or testing) you'd like to develop on. -Currently i686 is the only working architecture option, so that is the -one I recommend you use. - For example running "setup-env.sh i686 testing" will create a -working i686 LinHES development environment named build_root.i686 using -the testing repos. setup-env.sh also creates an 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: +Beginning with R8.0 x86_64 is the only working architecture option. + + For example, running "setup_env.sh x86_64 testing" will create a +working x86_64 LinHES development environment named build_root.x86_64 using +the testing repos. setup_env.sh also creates an empty directory called pkg_repo, +this is used by kmsync.sh (which will be discussed later). Likewise, running +"setup_env.sh x86_64 release" will create a development enviroment using +the core and extra repos. + + To enter the chroot development environment run: "sudo ./enter_build_root.x86_64" + The enter_build_root.x86_64 script will take care of the following things: a) mounting proc,sys,dev/pts - b) bind mounting linhes-dev/build_tools to build_root/build_tools + 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. + e) unmount the above directories when leaving the chroot -a) mp.py +The following is a list of tools available inside the chroot: +- mpv2.py + Script to build a package from the PKGBUILD and copy it to the pkg_repo. + v2 of mp.py with many enhancements. Must be called from the same + directory as the PKGBUILD. + +- mp.py (depreciated and replaced by mpv2.py) Python script to replace mp. Must be called from the same directory that contains the PKGBUILD. -b) 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. - -c) mpr | mpl - mpr) Symlink to mp that does the same thing as mp except it copies the - package to the release repo - - mpl) Symlink to mp that does the same thing as mp except it copies the - package to a local repo - -d) update_db_repo +- 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/pkg_repo/i686/core-testing core-testing -e) kmsync.sh (testing|release|chroot-devel|source[testing|release|chroot-devel] +- kmsync.sh (testing|release|chroot-devel|source[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. + packages on linhes.org and the ones on your local machine. The script takes 1 or 2 arguments telling it which repository with which to sync up. The first time it's run with any given option the local - directory (/data/pkg_repo/i686/core|extra|chroot-devel) + directory (/data/pkg_repo/x86_64/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. + local mirror will be copied to the linhes.org server. This includes the possibility to completely erase all the packages. - Normally the source packages are synced when the binary packages are synced. The - source option is present to force an update, and isn't not normally required to be run. + Normally the source packages are synced when the binary packages are + synced. The source option is present to force an update, and isn't + normally required to be run. - 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. + Finally this script uses a shared user account on linhes.org that + is a locked account. SSH keys must be setup for this script to work. -f) build_tools/go.sh - Menu driven fronted to create an ISO with selected profile +- build_tools/go.sh (depreciated; replaced by build_tools/archiso-19/mythvantage/go.sh) + Menu driven frontend 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 + a ) x86_64-RELEASE-REMOTE + Create an iso from the release repo using packages from linhes.org + b ) x86_64-testing-REMOTE + Create an ISO from the testing repo using packages from linhes.org + c ) x86_64-testing-local Create an ISO from the testing repo using packages from the local mirror - d ) i686-testing-local-httpdir-structure + d ) x86_64-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. +location of the resulting ISO. For any of the local profiles to work, it +requires that kmsync.sh be run at least once to populate the local mirror. -Quick start showing typical process to create the chroot and build an ISO. +------ Quick Start ------------------ +Example process to create the chroot and build an ISO. ############ -Create the chroot for i686 +Create the chroot for x86_64 (see above). -If you are using an R6 install as your dev box, you will need to install git. +Make sure base-devel is installed: pacman -S base-devel Make sure you have the following entries in /etc/pacman.conf: [core-testing] -Server = http://linhes.org/repo/i686/core-testing +Server = http://linhes.org/repo/x86_64/core-testing [extra-testing] -Server = http://linhes.org/repo/i686/extra-testing +Server = http://linhes.org/repo/x86_64/extra-testing -[chroot-devel] -Server = http://linhes.org/repo/i686/chroot-devel +Then run: pacman -Syu -Then run: - pacman -Syu - pacman -S git - -Then checkout the repo. You will need to have been given a dev account on -knoppmyth.net. This involves creating a public ssh key and supplying it to -one of the knoppmyth.net admins. The key is created using ssh-keygen. The +Checkout the repo. You will need to have been given a dev account on +linhes.org. This involves creating a public ssh key and supplying it to +one of the linhes.org admins. The key is created using ssh-keygen. The resulting public key will be stored in .ssh/id_rsa.pub. The recommended location for the checkout is /myth/dev. cd /myth/dev - Restricted dev accounts should use - git clone $USER@knoppmyth.net:linhes-pkgbuild - git clone $USER@knoppmyth.net:linhes-dev + git clone $USER@linhes.org:linhes-pkgbuild + git clone $USER@linhes.org:linhes-dev - Unresticted dev account should use - git clone ssh://$USER@knoppmyth.net/mount/repository/linhes-dev - git clone ssh://$USER@knoppmyth.net/mount/repository/linhes-pkgbuild + git clone ssh://$USER@linhes.org/mount/repository/linhes-dev + git clone ssh://$USER@linhes.org/mount/repository/linhes-pkgbuild - Edit linhes-dev/templates/pacman.conf.chroot. Comment out the core and extra lines and uncomment the core-testing and extra-testing. - Run these commands: cd linhes-dev/ - sudo ./setup_env.sh i686 + sudo ./setup_env.sh x86_64 cd .. - Set up the ssh keys inside the build root. If the ssh public key you -provided to the knoppmyth.net admin was created by root on an r6 install: - cp -R /root/.ssh build_root.i686/root/.ssh +provided to the linhes.org admin was created by root on an r6 install: + cp -R /root/.ssh build_root.x86_64/root/.ssh - Then to enter the chroot: - sudo ./enter_dev_chroot.i686 + sudo ./enter_dev_chroot.x86_64 --- To Build an ISO from knoppmyth.net: - cdb <= alias +-- To build an ISO from linhes.org: + cdb <= alias to build_tools + cd archiso-19/mythvantage/ ./go.sh - (select i686-testing-REMOTE) + (select x86_64-testing-REMOTE) -- To build an ISO locally: Before running kmsync.sh for the first time, for reasons explained above, -ensure the local directories (/data/pkg_repo/i686/core|extra|chroot-devel) +ensure the local directories (/data/pkg_repo/x86_64/core|extra) are empty. Then run: kmsync.sh testing + cd archiso-19/mythvantage/ ./go.sh - (Select i686-testing-local) + (Select x86_64-testing-local) #--------- -Commands used to build a package (tar in this example), and update knoppmyth.net +############ +Commands used to build a package (tar in this example), and update linhes.org + Before building ANY packages you __MUST__ run "kmsync.sh testing" at least once while the local package directories are still empty. Doing this step now will avoid sync headaches down the road. cdl <= alias that takes you the the top level PKGBUILD directory -cd core-testing +cd core cd tar vi PKGBUILD <= edit and increment pkgrel by 1; remove md5sums -mp.py <= builds the package and all dependencies +mpv2.py --md5 <= builds the package and all dependencies and copies the pkg to + pkg_repos; --md5 is optional but will remove the md5sums in PKGBUILD # At this point you should test the package, either by building -# a new iso or installing the package). +# a new iso or installing the package. # In order to make your source change(s) available to others, you will have # to commit your change(s) to your local copy of the linhes-pkgbuild repo. @@ -213,17 +210,17 @@ mp.py <= builds the package and all dependencies # In order to make your new package(s) available to others, you will need to # upload changed packages using kmsync.sh: -kmsync.sh testing <= this will pull down all new packages from knoppmyth.net +kmsync.sh testing <= this will pull down all new packages from linhes.org and upload the new tar package. This will also sync up - the src packages. + the src packages. ----------------------- Misc. -Directory structure after a functioning chroot is created for i686 +Directory structure after a functioning chroot is created for x86_64 |-- linhes-pkgbuild |-- linhes-dev -|-- build_root.i686 -|-- enter_dev_chroot.i686.sh +|-- build_root.x86_64 +|-- enter_dev_chroot.x86_64.sh `-- pkg_repo ----------------------- diff --git a/build_tools/bin/mpl b/build_tools/bin/mpl deleted file mode 120000 index 691afc3..0000000 --- a/build_tools/bin/mpl +++ /dev/null @@ -1 +0,0 @@ -mp \ No newline at end of file diff --git a/build_tools/bin/mpr b/build_tools/bin/mpr deleted file mode 120000 index 691afc3..0000000 --- a/build_tools/bin/mpr +++ /dev/null @@ -1 +0,0 @@ -mp \ No newline at end of file -- cgit v0.12