1 | Generating:
|
---|
2 | Run './generate' to generate build scripts
|
---|
3 | (prints further usage instructions)
|
---|
4 |
|
---|
5 | Required Packages:
|
---|
6 | Packages required to build Greenstone are defined in the Greenstone package
|
---|
7 | build scripts, however you will also need the necessary packages for
|
---|
8 | building packages on your current distro.
|
---|
9 | These are:
|
---|
10 | Ubuntu: build-essential, debhelper
|
---|
11 | Arch: base-devel, <check this>
|
---|
12 | Fedora: <fill out>
|
---|
13 |
|
---|
14 | Building:
|
---|
15 | Generated packages are found in ./build/<distro>/<package>
|
---|
16 | To build a package, run 'make' in the package directory.
|
---|
17 | If building a package requires other packages to be installed, they may be
|
---|
18 | automatically installed, or if not they should be printed to the terminal.
|
---|
19 | To build all packages, cd into ./build/<distro>/, and run
|
---|
20 | for pkg in *; do test -d $pkg && pushd $pkg && make; popd; done
|
---|
21 | I recommend only doing this if you know all the packages will build
|
---|
22 | successfully.
|
---|
23 |
|
---|
24 | Patches:
|
---|
25 | To generate a patch:
|
---|
26 | diff -aur package.pristine package.new > package.patch
|
---|
27 | To apply a patch:
|
---|
28 | patch -p0 -i package.patch
|
---|
29 | where -p0 assumes the paths in the patch are valid in the current
|
---|
30 | directory
|
---|
31 |
|
---|
32 | gs2build.patch
|
---|
33 | Contains patches for the gs2build build process
|
---|
34 | Disables building externals
|
---|
35 | perl-util.patch
|
---|
36 | Contains a patch to change the tmp folder for gs2build
|
---|
37 | This is necessary because the original location of the tmp folder was
|
---|
38 | in the gs2build folder, which contains executables, and as such should
|
---|
39 | be read-only.
|
---|
40 | Thus the tmp folder has been changed to /tmp/greenstone-build
|
---|
41 |
|
---|
42 | Scripts:
|
---|
43 | greenstone
|
---|
44 | Sets up the environment for running greenstone-tools
|
---|
45 | gli
|
---|
46 | Runs greenstone to set up the environment, then runs GLI
|
---|
47 | wvWare
|
---|
48 | Removes itself from $PATH, then runs wvWare (which will be the system
|
---|
49 | wvWare)
|
---|
50 |
|
---|
51 | Inputs (see existing inputs for examples):
|
---|
52 | distros
|
---|
53 | Defines Linux distributions that can be built for.
|
---|
54 | Sets the package manager, system paths, and the names of required
|
---|
55 | packages on that distro.
|
---|
56 |
|
---|
57 | files
|
---|
58 | Contains files used for building Greenstone (patches, scripts, config)
|
---|
59 |
|
---|
60 | managers
|
---|
61 | Defines package managers that can be built for.
|
---|
62 | Sets variables specific to the package manager, and any static files
|
---|
63 | for a package definition.
|
---|
64 |
|
---|
65 | packages
|
---|
66 | Defines a package.
|
---|
67 |
|
---|
68 | segments
|
---|
69 | Parts of Makefiles.
|
---|
70 | Concatenated together to form the Makefile for a package.
|
---|
71 |
|
---|
72 | perllib:
|
---|
73 | Contains perl modules for parsing inputs.
|
---|
74 | Package folder contains package-specific functionality
|
---|
75 | (for a package to work, it must be defined here as _<package>.pm)
|
---|
76 |
|
---|
77 | Gotchas:
|
---|
78 | derby.jar location
|
---|
79 | Must be in the tomcat lib folder instead of the greenstone lib folder
|
---|
80 | http://stackoverflow.com/questions/24963117/tomcat-realm-forms-login-always-fails
|
---|
81 |
|
---|
82 | Issues:
|
---|
83 | Debian package has lots of warnings
|
---|
84 | Pacman package has lots of file ownership warnings when updating
|
---|
85 | (because we chown the web directory)
|
---|
86 | Maybe chown it back to root in a pre-update script?
|
---|