You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+49-47Lines changed: 49 additions & 47 deletions
Original file line number
Diff line number
Diff line change
@@ -2,14 +2,16 @@ This repository contains the necessary tools to build and test cfengine packages
2
2
3
3
## Hardware requirements
4
4
5
-
By experimentation I have found that building hub packages, which includes php dependency requires more than 1.6G of RAM/swap. 2.6G worked for me, less might work as well.
5
+
By experimentation I have found that building hub packages, which includes php dependency requires more than 1.6G of RAM/swap.
6
+
2.6G worked for me, less might work as well.
6
7
7
8
## Example build of Community Agent
8
9
9
10
A minimal example would be to build packages for cfengine community agent.
10
11
This should be done in an isolated environment such as a dedicated host, virtual machine or linux container.
11
12
12
-
Install necessary distribution packages. For example on debian/ubuntu:
13
+
Install necessary distribution packages.
14
+
For example on debian/ubuntu:
13
15
14
16
```
15
17
apt update -y
@@ -52,72 +54,72 @@ ls -l cfengine-community/*.deb
52
54
53
55
## General Build Machine Prerequisites
54
56
55
-
Due to sheer diversity of the environments, build machine is expected to provide
56
-
strict minimum amount of software (don't forget --no-install-recommends on
57
-
dpkg-based systems):
57
+
Due to sheer diversity of the environments, build machine is expected to provide strict minimum amount of software (don't forget `--no-install-recommends` on dpkg-based systems):
58
58
59
59
To access the build machine:
60
-
* SSH server
61
-
* Bundled one on Unixes
62
-
* FreeSSHd on Windows
63
-
* 'build' account with SSH key installed
60
+
61
+
- SSH server
62
+
- Bundled one on Unixes
63
+
- FreeSSHd on Windows
64
+
- 'build' account with SSH key installed
64
65
65
66
To transfer files back and forth:
66
-
* rsync on Unixes
67
-
* 7z on Windows
67
+
68
+
- rsync on Unixes
69
+
- 7z on Windows
68
70
69
71
To be able to install packages and run tests:
70
-
* passwordless sudo access for 'build' account
71
-
* sudo should not require TTY (remove 'Defaults requiretty' from /etc/sudoers)
72
+
73
+
- passwordless sudo access for 'build' account
74
+
- sudo should not require TTY (remove 'Defaults requiretty' from /etc/sudoers)
72
75
73
76
To build everything:
74
-
* GCC (gcc)
75
-
* GNU make (make)
76
-
* libc development package (libc-dev, glibc-devel)
77
-
* bison (bison)
78
-
* flex (flex)
79
-
* fakeroot (but not fakeroot 1.12, it is horribly slow!)
77
+
78
+
- GCC (gcc)
79
+
- GNU make (make)
80
+
- libc development package (libc-dev, glibc-devel)
81
+
- bison (bison)
82
+
- flex (flex)
83
+
- fakeroot (but not fakeroot 1.12, it is horribly slow!)
80
84
81
85
To create packages:
82
-
* Native packaging manager
83
-
* rpm-build on RPM-based systems
84
-
* dpkg-dev, debhelper, fakeroot
85
-
* WiX on Windows
86
+
87
+
- Native packaging manager
88
+
- rpm-build on RPM-based systems
89
+
- dpkg-dev, debhelper, fakeroot
90
+
- WiX on Windows
86
91
87
92
To build MySQL library (yeah!):
88
-
* g++ (gcc-c++, g++)
89
-
* ncurses (ncurses-devel, libncurses5-dev)
93
+
94
+
- g++ (gcc-c++, g++)
95
+
- ncurses (ncurses-devel, libncurses5-dev)
90
96
91
97
To build libvirt:
92
-
* pkg-config (pkg-config, pkgconfig)
93
98
94
-
Anything else is either preprocessed on buildbot slave or built and installed
95
-
during build.
99
+
- pkg-config (pkg-config, pkgconfig)
100
+
101
+
Anything else is either preprocessed on buildbot slave or built and installed during build.
96
102
97
103
## Documentation build pre-requisites
98
104
99
-
* texinfo
100
-
* texlive
101
-
* cm-super
102
-
* texlive-fonts-extra
105
+
- texinfo
106
+
- texlive
107
+
- cm-super
108
+
- texlive-fonts-extra
103
109
104
110
## Non-requisites
105
111
106
-
Build machines should not contain the following items, which may interfere with
107
-
build process:
112
+
Build machines should not contain the following items, which may interfere with build process:
108
113
109
-
* CFEngine itself, either in source or binary form (build machines are
110
-
short-living, so this is not a problem)
111
-
* Development packages for anything beside libc to avoid picking them up
112
-
instead of bundled ones accidentally.
113
-
* MySQL and PostgreSQL servers, clients and libraries
114
+
- CFEngine itself, either in source or binary form (build machines are short-living, so this is not a problem)
115
+
- Development packages for anything beside libc to avoid picking them up instead of bundled ones accidentally.
116
+
- MySQL and PostgreSQL servers, clients and libraries
114
117
115
-
The following packages should not be installed on build machines as well, to
116
-
avoid accidentally regenerating files transferred from buildslave:
118
+
The following packages should not be installed on build machines as well, to avoid accidentally regenerating files transferred from buildslave:
117
119
118
-
* automake
119
-
* autoconf
120
-
* libtool
120
+
- automake
121
+
- autoconf
122
+
- libtool
121
123
122
124
## Dependencies
123
125
@@ -147,7 +149,7 @@ File `install-dependencies` and the relevant subdirectories in `deps-packaging`
Copy file name to clipboardExpand all lines: scripts/README.md
+15-4Lines changed: 15 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,26 @@
1
1
# deptool
2
-
`deptool.py` is a script which can be used to enumerate dependencies of CFEngine. It supports printing to stdout in the Markdown table format, and printing to file in the JSON format (see `--to-json`). It can be used as a replacement for the [cf-bottom](https://github.com/cfengine/cf-bottom/)`depstable` command.
3
2
4
-
`deptool.py` works on a local buildscripts repository. By default, the repository is assumed to be located in the parent directory of the current working directory (as `deptool.py` lives in the `scripts` directory in the buildscript repository). A custom path for the local repository can be specified using the `--root` argument. Running the script will modify the git state of the repository by checking out branches (and with `--patch`, also overwriting and git-adding `README.md`), so it might be preferable to [use a copy of the buildscripts repository](https://github.com/cfengine/buildscripts/tree/master/scripts#using-a-copy-of-the-repository).
3
+
`deptool.py` is a script which can be used to enumerate dependencies of CFEngine.
4
+
It supports printing to stdout in the Markdown table format, and printing to file in the JSON format (see `--to-json`).
5
+
It can be used as a replacement for the [cf-bottom](https://github.com/cfengine/cf-bottom/)`depstable` command.
6
+
7
+
`deptool.py` works on a local buildscripts repository. By default, the repository is assumed to be current working directory (i.e. `.`).
8
+
A custom path for the local repository can be specified using the `--root` argument.
9
+
Running the script will modify the git state of the repository by checking out branches (and with `--patch`, also overwriting and git-adding `README.md`), so it might be preferable to [use a copy of the buildscripts repository](https://github.com/cfengine/buildscripts/tree/master/scripts#using-a-copy-of-the-repository).
5
10
6
11
A custom list of versions to process can be specified ([given as space-separated command-line arguments](https://github.com/cfengine/buildscripts/tree/master/scripts#specifying-custom-versions-list)).
7
12
8
13
See `python deptool.py -h` for more information on all available command-line arguments.
9
14
10
15
## Examples
16
+
11
17
### Suppressing logs
18
+
12
19
```
13
20
$ cd scripts
14
21
$ python deptool.py --no-info
15
22
WARNING:root:didn't find dep in line [| libgcc | | | | AIX and Solaris only |]
0 commit comments