1 |
1 |
2 This workspace contains examples of building open source software components using three methodologies. In the spec-files directory, the pkgbuild is use to build the components from a RPM spec file based build. In the components directory, a make(1) based build is used. |
2 Getting started with the Userland Consolidation |
3 |
|
4 spec-files |
|
5 spec based build |
|
6 |
|
7 components |
|
8 GNU make based build(s) |
|
9 |
|
10 make-rules |
|
11 Shared rules to include in component specific makefiles (instructions) |
|
12 |
|
13 make-rules/configure.mk |
|
14 shared rules for components using GNU auto* tools to build |
|
15 |
|
16 make-rules/ips.mk |
|
17 shared rules for packaging under IPS |
|
18 |
|
19 make-rules/prep.mk |
|
20 shared rules for downloading, unpacking, and patching component |
|
21 source. |
|
22 |
|
23 make-rules/setup.py.mk |
|
24 shared rules for components using python setup.py to build |
|
25 |
|
26 make-rules/shared-macros.mk |
|
27 common macros that apply to building many things. |
|
28 |
|
29 tools |
|
30 shared tools for building components |
|
31 |
|
32 transforms |
|
33 shared pkgmogrify(1) transformations to apply to packages as they are |
|
34 being built and published |
|
35 |
3 |
36 |
4 |
37 To build uing the GNU make based build you can |
5 Building the bits |
38 $ WS_TOP=$(pwd) ; cd components ; gmake -j 4 publish |
|
39 This will construct a files based repository for publishing, create a log directory, build the components (4 at a time) and publish them to the repo. Logs of each component build will go in the logs directory |
|
40 |
6 |
|
7 The Userland consolidation maintains a Mercurial gate at |
|
8 |
|
9 ssh://[email protected]//hg/userland/gate |
|
10 |
|
11 This gate contains build recipies, patches, IPS manifests, etc. necessary |
|
12 to download, prep, build, test, package and publish open source software. |
|
13 In order to build the contents of the Userland gate, you need to clone it. |
|
14 Since you are reading this, you probably already have, but in any event |
|
15 you can do so with the following command |
|
16 |
|
17 $ hg clone ssh://[email protected]//hg/userland/gate /scratch/clone |
|
18 |
|
19 In order to build the bits either individually or collectively, you must |
|
20 set the WS_TOP environment variable to point to the top of your workspace. |
|
21 |
|
22 $ export WS_TOP=/scratch/clone |
|
23 |
|
24 To build and publish the entire contents of the gate, you can use |
|
25 |
|
26 $ cd /scratch/clone |
|
27 $ gmake publish |
|
28 |
|
29 To build and publish a specific component you need to initialize the |
|
30 workspace by building the tools and creating a repository to publish |
|
31 your results in. The easiest way to do this is to |
|
32 |
|
33 $ cd /scratch/clone |
|
34 $ gmake setup |
|
35 |
|
36 Once you have initialize the the workspace, you can build individual |
|
37 components by |
|
38 |
|
39 $ cd /scratch/clone/components/(component) |
|
40 $ gmake publish |
|
41 |
|
42 All of the bits are are built will be published to the repository created |
|
43 by the setup step (file:///scratch/clone/repo/) If you build the entire |
|
44 contents of the gate, individual build logs for each component will be |
|
45 located at /scratch/clone/logs/(target):(component).log |
|
46 |
|
47 |