G

Gsoc2013

c20fb6f3 Improved Documentation · by Gustavo Prado Alkmim
To get the newest version version: 
1) apt-get install git
2) git clone https://git.gitorious.org/debian-bootstrap/gsoc2013.git

If you want to test the toolchain, just run: 
./run-cross.sh {your package sign key}


If this is your first time running sbuild, the script might return error
and you should restart your session, so your user are going to be in the
sbuild group. After that, just re-execute the command and it will run 
without problems. 

Note that the userdir module from apache should be loaded.
This is required to have a local repository in the users public_html 
accessible through http://127.0.0.1/~$USER/

Note that the secret key of the key you are using to sign the packages must
be available in the user home that is running the scripts.

The files run-native.sh and run-cross.sh are examples of the execution of both
scripts. By running ./run-cross.sh the script should be able to setup an
crossbuild environment and run the automated bootstrap scripts. The steps 
performed by the scripts are:

1) Install required dependencies
2) Prepare the repositories locally (except the snapshot repository)
3) Create the chroot environment that will be used to crossbuild
4) Start the building process

Observe that the crossbuild of all packages is not yet possible due to some
bugs in the packages related with crossbuild and multiarch. Also, there is a
need to solve some cyclic build dependencies using the staged build. 

Following is a short description of the directory and files of the repository:

README		--> This file 
run-cross.sh	--> An example script using the scripts of this repostory 
		(cross case)
run-native.sh	--> An example script using the scripts of this repostory
		(native case)

autobootstrap/	--> Scripts and other files related with the development
	add-ma-foreign.pl	--> Script to automatically add a multiarch 
				foreign field in a source package.
	botch_build_order.sh	--> Script the generates a buld order using
				botch. Not ready yet.
	create-chroot.sh	--> Script that creates a chroot environment
				ready to be used by the automated bootstrap
				script.
	order1.lst		--> This is a native build order obtained
				runnong botch. This is a cycle free build order
	order2.lst		--> This is a native build order obtained
				running botch. This build order has cycles
	autobootstrap.pl	--> This is the script that automatically 
				builds/crossbuilds packages
	bug.workaround		--> This file is a way found to workaround the
				bug 722880. 
	make-patch.pl		--> Script that automatically create patch
				for a source package. 

autobootstrap/repositories/	--> Keep the default repository configurations
	prepare_repos.sh	--> script to prepare all repositories to be
				used in the autobuild process

botch/	--> not used yet. It should keep a script to get and build botch in
	the folder

builds/	--> Keep log of some builds.

builds/Error/	--> build/crossbuild errors log folder

patches:	--> Keeps patches to packages

patches/snapshot-20130703T215444Z/	--> specific folder for the 
					20130703T215444Z snapshot
	crossbuild/	--> patches that enable crossbuild
	multiarch/	--> patches that enable multiarch
	nativebuild/	--> patches that enable native builds


















### OLD

The directory ./patches contains patches that need to be applied to Debian
source packages before bootstrapping can work. This includes simple additions
of a multiarch field to certain binary packages up to changes introducing a
build profile. The filename contains the source package name followed by the
Debian bug report number under which the patch is filed in the bts.

The directory ./botch contains a git submodule of botch as botch itself is not
yet available as a Debian package.

The script run.sh executes the following steps:

    - for all source packages for which there exists a patch: download, patch
      and build the source package

    - fill a local repository with the new versions of those binary and source
      packages

    - setup schroot and sbuild for cross building

    - use botch to generate a build order

    - use sbuild to cross compile source packages in the given order