libmkernel : svcmgr, modmgr
mkernel: libmkernel(static) -> load_module(main)
modoutnull
modoutstderr
modoutstdout
modoutfile
modinnull
modinstderr
modinfile
modlogfile : load_module(modoutfile)
modlogstderr : load_module(modoutstderr)
modlognull : load_module(modoutnull)
modlogredis
modlogelk
modlogsplunk
modlognetcat
modlog : load_module(modlognull), load_module(modlog_stderr)
modreg : load_module(modinfile), load_module(modlist), load_module(modoutfile)
moduitty
moduincurses
moduigtk
modui: load_module(moduitty)
main : load_module(modlog), load_module(modreg), load_module(modui)
adduser --home /var/lib/buildbot --disabled-password --disabled-login --gecos "Buildbot user" buildbot apt-get install -y python3-venv build-essential python3-dev libssl-dev libffi-dev libmariadb-dev-compat mercurial su - buildbot python3 -m venv sandbox source sandbox/bin/activate pip install --upgrade pip pip install 'buildbot[bundle]' mysqlclient exit su - buildbot -c '(source sandbox/bin/activate; buildbot create-master master)'
addgroup developers mkdir -p /var/lib/buildbot/jobdir/{new,cur,tmp} chown -R buildbot.developers /var/lib/buildbot/jobdir chmod -R g+rwx,o-rwx /var/lib/buildbot/jobdir adduser ${UN} developers
echo "DROP DATABASE IF EXISTS ${BUILDBOT_DB_NAME};" | mysql echo "DROP USER IF EXISTS '${BUILDBOT_DB_USER}'@'localhost';" | mysql echo "CREATE DATABASE ${BUILDBOT_DB_NAME};" | mysql echo "CREATE USER IF NOT EXISTS '${BUILDBOT_DB_USER}'@'localhost' IDENTIFIED BY '${BUILDBOT_DB_PASS}';" | mysql echo "GRANT ALL ON ${BUILDBOT_DB_NAME}.* TO '${BUILDBOT_DB_USER}'@'localhost';" | mysql echo "FLUSH PRIVILEGES;" | mysql su - buildbot -c '(source sandbox/bin/activate; buildbot upgrade-master master)' su - buildbot -c '(source sandbox/bin/activate; buildbot checkconfig master)' su - buildbot -c '(source sandbox/bin/activate; buildbot restart master)'
cat << EOF > /etc/systemd/system/buildbot-master.service [Unit] Description=BuildBot master service After=network.target [Service] User=buildbot Group=buildbot WorkingDirectory=/var/lib/buildbot/ ExecStart=/var/lib/buildbot/sandbox/bin/buildbot start --nodaemon master ExecStop=/var/lib/buildbot/sandbox/bin/buildbot stop master ExecReload=/var/lib/buildbot/sandbox/bin/buildbot reconfig master [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable buildbot-master
cat << EOF > /var/lib/buildbot/master/master.cfg from buildbot.plugins import * c = BuildmasterConfig = {} c['protocols'] = {'pb': {'port': 9989}} c['workers'] = [ worker.Worker("bb-linux", "pass!"), worker.Worker("bb-dist", "pass!"), worker.Worker("bb-deb", "pass!"), worker.Worker("bb-mingw", "pass!"), worker.Worker("macos-monterey", "pass!"), ] c['change_source'] = [] cs_mkernel = changes.HgPoller(repourl='/srv/hg/mkernel', workdir='mkernel', pollInterval=30, branch='') #cs_mkernel=changes.HgPoller(repourl='http://hg.cerbelle.net/hg/mkernel', workdir='mkernel', pollInterval=30, branch='') c['change_source'].append(cs_mkernel) c['projects'] = [ util.Project(name="mkernel", description="Micro_Kernel application"), ] oomtest_lock = util.WorkerLock("oomtest_lock") c['builders'] = [] c['schedulers'] = [] c['services'] = [] mn = reporters.MailNotifier( fromaddr="buildbot@cerbelle.net", relayhost="127.0.0.1", smtpPort=25, extraRecipients=["francois@cerbelle.net"], ) c['services'].append(mn) c['title'] = "Buildbot Cerbelle" c['titleURL'] = "https://redmine.cerbelle.net/" c['buildbotURL'] = "https://buildbot.cerbelle.net/" c['www'] = dict(port="tcp:8010:interface=127.0.0.1", plugins=dict(waterfall_view={}, console_view={}, grid_view={})) c['db'] = { 'db_url' : "mysql://${BUILDBOT_DB_USER}:${BUILDBOT_DB_PASS}@localhost/${BUILDBOT_DB_NAME}?max_idle=300" } EOF
Designed to try, test and build from mercurial repository.
Generate the dist (sources) files.
Debian12 with postinstall customizations
adduser --home /var/lib/buildbot --disabled-password --gecos "Buildbot user" buildbot
apt-get install -y python3-venv sudo
su - buildbot -c '(python3 -m venv sandbox)'
su - buildbot -c '(source sandbox/bin/activate; pip install --upgrade pip)'
su - buildbot -c '(source sandbox/bin/activate; pip install buildbot-worker)'
su - buildbot -c '(source sandbox/bin/activate; buildbot-worker create-worker worker buildbot.cerbelle.net example-worker pass)'
echo 'François Cerbelle <francois@cerbelle.net>' > /var/lib/buildbot/worker/info/admin
hostname -f > /var/lib/buildbot/worker/info/host
cat << EOF > /etc/systemd/system/buildbot-worker.service
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/var/lib/buildbot/
ExecStart=/var/lib/buildbot/sandbox/bin/buildbot-worker start --nodaemon worker
ExecStop=/var/lib/buildbot/sandbox/bin/buildbot-worker stop worker
ExecReload=/var/lib/buildbot/sandbox/bin/buildbot-worker restart worker
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable buildbot-worker
systemctl stop buildbot-worker
systemctl start buildbot-worker
apt-get install -y mercurial build-essential autogen autoconf autopoint libtool check pkg-config gettext cppcheck gcovr
Designed to try, test and build from dist (sources) files.
Debian12 with postinstall customizations
adduser --home /var/lib/buildbot --disabled-password --gecos "Buildbot user" buildbot
apt-get install -y python3-venv sudo
su - buildbot -c '(python3 -m venv sandbox)'
su - buildbot -c '(source sandbox/bin/activate; pip install --upgrade pip)'
su - buildbot -c '(source sandbox/bin/activate; pip install buildbot-worker)'
su - buildbot -c '(source sandbox/bin/activate; buildbot-worker create-worker worker buildbot.cerbelle.net example-worker pass)'
echo 'François Cerbelle <francois@cerbelle.net>' > /var/lib/buildbot/worker/info/admin
hostname -f > /var/lib/buildbot/worker/info/host
cat << EOF > /etc/systemd/system/buildbot-worker.service
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/var/lib/buildbot/
ExecStart=/var/lib/buildbot/sandbox/bin/buildbot-worker start --nodaemon worker
ExecStop=/var/lib/buildbot/sandbox/bin/buildbot-worker stop worker
ExecReload=/var/lib/buildbot/sandbox/bin/buildbot-worker restart worker
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable buildbot-worker
systemctl stop buildbot-worker
systemctl start buildbot-worker
apt-get install -y build-essential doxygen doxygen-latex check pkg-config lcov graphviz fuse3 gcovr
Designed to try, test and build from dist (sources) files.
Debian12 with postinstall customizations
adduser --home /var/lib/buildbot --disabled-password --gecos "Buildbot user" buildbot
apt-get install -y python3-venv sudo
su - buildbot -c '(python3 -m venv sandbox)'
su - buildbot -c '(source sandbox/bin/activate; pip install --upgrade pip)'
su - buildbot -c '(source sandbox/bin/activate; pip install buildbot-worker)'
su - buildbot -c '(source sandbox/bin/activate; buildbot-worker create-worker worker buildbot.cerbelle.net example-worker pass)'
echo 'François Cerbelle <francois@cerbelle.net>' > /var/lib/buildbot/worker/info/admin
hostname -f > /var/lib/buildbot/worker/info/host
cat << EOF > /etc/systemd/system/buildbot-worker.service
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/var/lib/buildbot/
ExecStart=/var/lib/buildbot/sandbox/bin/buildbot-worker start --nodaemon worker
ExecStop=/var/lib/buildbot/sandbox/bin/buildbot-worker stop worker
ExecReload=/var/lib/buildbot/sandbox/bin/buildbot-worker restart worker
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable buildbot-worker
systemctl stop buildbot-worker
systemctl start buildbot-worker
apt-get install -y mingw-w64 mingw-w64-tools make g++ nsis pkg-config pev
Then, follow all the individual dependencies installations steps from Cross_compilation_on_Debian_for_Windows
Designed to try, test and build from dist (sources) files.
Designed to try, test and build from dist (sources) files.
Debian12 with postinstall customizations
adduser --home /var/lib/buildbot --disabled-password --gecos "Buildbot user" buildbot
apt-get install -y python3-venv sudo
su - buildbot -c '(python3 -m venv sandbox)'
su - buildbot -c '(source sandbox/bin/activate; pip install --upgrade pip)'
su - buildbot -c '(source sandbox/bin/activate; pip install buildbot-worker)'
su - buildbot -c '(source sandbox/bin/activate; buildbot-worker create-worker worker buildbot.cerbelle.net example-worker pass)'
echo 'François Cerbelle <francois@cerbelle.net>' > /var/lib/buildbot/worker/info/admin
hostname -f > /var/lib/buildbot/worker/info/host
cat << EOF > /etc/systemd/system/buildbot-worker.service
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/var/lib/buildbot/
ExecStart=/var/lib/buildbot/sandbox/bin/buildbot-worker start --nodaemon worker
ExecStop=/var/lib/buildbot/sandbox/bin/buildbot-worker stop worker
ExecReload=/var/lib/buildbot/sandbox/bin/buildbot-worker restart worker
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable buildbot-worker
systemctl stop buildbot-worker
systemctl start buildbot-worker
apt-get install -y pbuilder
Designed to try, test and build from dist (sources) files.
Prerequisites: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:src = util.BuildFactory()
src.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
src.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
src.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
src.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
src.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
src.addStep(steps.Configure(name='Default configuration', command=["./configure","--disable-doxygen"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
src.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
src.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
src.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
src.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="Src",
workernames=["bb-dist"],
factory=src))
Pre-requisites: mercurial build-essential autogen autoconf autopoint libtool check cppcheck
Worker: bb-dist
Steps:srcCppcheck = util.BuildFactory()
srcCppcheck.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcCppcheck.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
srcCppcheck.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcCppcheck.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcCppcheck.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcCppcheck.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcCppcheck.addStep(steps.Configure(name='Default configuration', command=["./configure","--disable-doxygen"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcCppcheck.addStep(steps.Test(name="Default make cppcheck",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "cppcheck" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"cppcheck.xml": "cppcheck.xml"}))
srcCppcheck.addStep(steps.DirectoryUpload(name="Cppcheck upload report", workersrc="cppcheck", masterdest=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-cppcheck"), urlText="CppCheck report", url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-cppcheck")))
srcCppcheck.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcCppcheck.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcCppcheck",
workernames=["bb-dist"],
factory=srcCppcheck))
Pre-requisite: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcdbg = util.BuildFactory()
srcdbg.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcdbg.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcdbg.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcdbg.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcdbg.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcdbg.addStep(steps.Configure(name='Default configuration for debug', command=["./configure","--disable-doxygen", "--enable-debug"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcdbg.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
srcdbg.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
srcdbg.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcdbg.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcDbg",
workernames=["bb-dist"],
factory=srcdbg))
Pre-requisite: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcgcov = util.BuildFactory()
srcgcov.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcgcov.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcgcov.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.Configure(name='Default configuration for gcov', command=["./configure","--disable-doxygen", "--enable-gcov"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcgcov.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
srcgcov.addStep(steps.ShellCommand(name="Check coverage statistics",command="gcov -n `find . -type f -name '*.gcno'`", want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcgcov.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcGcov",
workernames=["bb-dist"],
factory=srcgcov))
Pre-requisites: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcdbggcov = util.BuildFactory()
srcdbggcov.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcdbggcov.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcdbggcov.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.Configure(name='Default configuration for gcov and debug', command=["./configure","--disable-doxygen", "--enable-debug", "--enable-gcov"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcdbggcov.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
srcdbggcov.addStep(steps.ShellCommand(name="Check coverage statistics",command="gcov -n `find . -type f -name '*.gcno'`", want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcdbggcov.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcDbgGcov",
workernames=["bb-dist"],
factory=srcdbggcov))
Pre-requisite: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcgprof = util.BuildFactory()
srcgprof.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcgprof.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcgprof.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcgprof.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcgprof.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcgprof.addStep(steps.Configure(name='Default configuration for gprof', command=["./configure","--disable-doxygen", "--enable-gprof"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcgprof.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
srcgprof.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
srcgprof.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcgprof.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcGprof",
workernames=["bb-dist"],
factory=srcgprof))
Pre-requisites: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcgdb = util.BuildFactory()
srcgdb.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcgdb.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcgdb.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcgdb.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcgdb.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcgdb.addStep(steps.Configure(name='Default configuration for gdb', command=["./configure","--disable-doxygen", "--enable-gdb"], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcgdb.addStep(steps.Compile(name="Default make all",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ], want_stdout=True, want_stderr=True))
srcgdb.addStep(steps.Test(name="Default make check",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ], want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
srcgdb.addStep(steps.Compile(name="Default make clean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ], want_stdout=True, want_stderr=True))
srcgdb.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcGdb",
workernames=["bb-dist"],
factory=srcgdb))
Pre-requisites: mercurial build-essential autogen autoconf autopoint libtool gettext check
Worker: bb-dist
Steps:srcdist = util.BuildFactory()
srcdist.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcdist.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
srcdist.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcdist.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcdist.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcdist.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcdist.addStep(steps.Configure(name='Default configuration', command=["./configure","--disable-doxygen" ], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcdist.addStep(steps.Compile(name="Default make dist",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "dist" ], want_stdout=True, want_stderr=True))
srcdist.addStep(steps.Test(name="Default make distcheck",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distcheck" ], want_stdout=True, want_stderr=True, haltOnFailure=True, locks=[oomtest_lock.access('exclusive')]))
srcdist.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
srcdist.addStep(steps.MultipleFileUpload(name="Default publish sources dist files",
workersrcs=[
util.Interpolate("%(prop:basename)s.tar.*"),
util.Interpolate("%(prop:basename)s.zip"),
],
masterdest=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s"), url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/"),
urlText="Sources folder", mode=0o755, glob=True, keepstamp=True))
srcdist.addStep(steps.MasterShellCommand(name="Fix www folders permissions",command=["chmod", "-R", "u+rw,go+r", util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s")]))
srcdist.addStep(steps.Trigger(
schedulerNames=['MKernel_Triggerable'], waitForFinish=False, updateSourceStamp=True,
set_properties={
'package' : util.Interpolate("%(prop:package)s"),
'version' : util.Interpolate("%(prop:version)s"),
}))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcDist",
workernames=["bb-dist"],
factory=srcdist))
Pre-requisites: mercurial build-essential autogen autoconf autopoint libtool check
Worker: bb-dist
Steps:srcinst = util.BuildFactory()
srcinst.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
srcinst.addStep(steps.Mercurial(name="Clone repository",repourl='http://hg.cerbelle.net/hg/mkernel', mode='full', method='fresh', branchType='inrepo'))
srcinst.addStep(steps.SetPropertyFromCommand(name="Get package name", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\1~'", property="package", want_stdout=True, want_stderr=True))
srcinst.addStep(steps.SetPropertyFromCommand(name="Get package version", command="grep AC_INIT configure.ac | sed 's~.*\[\(.*\)\].*\[\(.*\)\].*\[\(.*\)\].*~\\2~'", property="version", want_stdout=True, want_stderr=True))
srcinst.addStep(steps.ShellCommand(name="Generate autotools files",command=["./bootstrap.sh"], want_stdout=True, want_stderr=True))
srcinst.addStep(steps.Configure(name='Default configuration', command=["./configure", util.Interpolate("--prefix=%(prop:builddir)s/inst"), "--disable-doxygen" ], want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
srcinst.addStep(steps.Compile(name="Default make install",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "install" ], want_stdout=True, want_stderr=True))
srcinst.addStep(steps.Test(name="Default make installcheck",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "installcheck" ], want_stdout=True, want_stderr=True, haltOnFailure=True, locks=[oomtest_lock.access('exclusive')]))
srcinst.addStep(steps.Compile(name="Default make uninstall",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "uninstall" ], want_stdout=True, want_stderr=True))
srcinst.addStep(steps.Compile(name="Default make distclean",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="SrcInst",
workernames=["bb-dist"],
factory=srcinst))
Pre-requisites: build-essential doxygen doxygen-latex
Worker: bb-linux
Steps:>distdox = util.BuildFactory()
distdox.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
distdox.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
distdox.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
distdox.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
distdox.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
distdox.addStep(steps.Configure(name='Doxygen configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr', '--enable-latex-docs' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
distdox.addStep(steps.Compile(name="Doxygen make HTML (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "-C", "doc", "all" ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distdox.addStep(steps.DirectoryUpload(name="Upload HTML refman", workersrc=util.Interpolate("%(prop:basename)s-build/doc/html"), masterdest=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-refman"), urlText="HTML Refman", url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-refman")))
distdox.addStep(steps.Compile(name="Doxygen make PDF (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "pdf" ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distdox.addStep(steps.FileUpload(name="Upload PDF refman", workersrc=util.Interpolate("%(prop:basename)s-build/doc/latex/refman.pdf"), masterdest=util.Interpolate('/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-refman.pdf'),mode=0o755,urlText="PDF Refman",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-refman.pdf")))
distdox.addStep(steps.Compile(name="Doxygen make clean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distdox.addStep(steps.Compile(name="Doxygen make distclean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="DistDox",
workernames=["bb-linux"],
factory=distdox))
Pre-requisites: build-essential check pkg-config lcov
Worker: bb-linux
Steps:distlcov = util.BuildFactory()
distlcov.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
distlcov.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
distlcov.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
distlcov.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
distlcov.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
distlcov.addStep(steps.Configure(name='Default configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr', '--disable-doxygen', '--enable-gcov', '--enable-debug' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
distlcov.addStep(steps.Compile(name="Default make all (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distlcov.addStep(steps.Test(name="Default make check (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
distlcov.addStep(steps.Compile(name="Default make lcov (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "lcov" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distlcov.addStep(steps.DirectoryUpload(name="LCov upload coverage tests report", workersrc=util.Interpolate("%(prop:basename)s-build/lcov"), masterdest=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-dbg-lcov"), urlText="Coverage report (Debug)", url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-dbg-lcov")))
distlcov.addStep(steps.Compile(name="Default make clean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distlcov.addStep(steps.Compile(name="Default make distclean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="DistLCov",
workernames=["bb-linux"],
factory=distlcov))
Pre-requisites: build-essential check pkg-config
Worker: bb-linux
Steps:distgprof = util.BuildFactory()
distgprof.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
distgprof.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
distgprof.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
distgprof.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
distgprof.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
distgprof.addStep(steps.Configure(name='Default configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr', '--disable-doxygen', '--enable-gprof' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
distgprof.addStep(steps.Compile(name="Default make all (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distgprof.addStep(steps.Test(name="Default make check (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, haltOnFailure=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.ShellCommand(name='Run unforked check_oom', command=['./check_oom'], workdir=util.Interpolate("build/%(prop:basename)s-build/test", env={'CK_FORK': 'no'}), want_stdout=True, want_stderr=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.Test(name="Profiling ./check_oom (Out of tree)",command=["../libtool", "--mode=execute", "gprof", "./check_oom" ], workdir=util.Interpolate("build/%(prop:basename)s-build/test"), want_stdout=True, want_stderr=True, haltOnFailure=True))
distgprof.addStep(steps.ShellCommand(name='Run unforked check_test', command=['./check_test'], workdir=util.Interpolate("build/%(prop:basename)s-build/test", env={'CK_FORK': 'no'}), want_stdout=True, want_stderr=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.Test(name="Profiling ./check_test (Out of tree)",command=["../libtool", "--mode=execute", "gprof", "./check_test" ], workdir=util.Interpolate("build/%(prop:basename)s-build/test"), want_stdout=True, want_stderr=True, haltOnFailure=True))
distgprof.addStep(steps.ShellCommand(name='Run unforked check_libdebug', command=['./check_libdebug'], workdir=util.Interpolate("build/%(prop:basename)s-build/test", env={'CK_FORK': 'no'}), want_stdout=True, want_stderr=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.Test(name="Profiling ./check_libdebug (Out of tree)",command=["../libtool", "--mode=execute", "gprof", "./check_libdebug" ], workdir=util.Interpolate("build/%(prop:basename)s-build/test"), want_stdout=True, want_stderr=True, haltOnFailure=True))
distgprof.addStep(steps.ShellCommand(name='Run unforked check_modmgr', command=['./check_modmgr'], workdir=util.Interpolate("build/%(prop:basename)s-build/test", env={'CK_FORK': 'no'}), want_stdout=True, want_stderr=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.Test(name="Profiling ./check_modmgr (Out of tree)",command=["../libtool", "--mode=execute", "gprof", "./check_modmgr" ], workdir=util.Interpolate("build/%(prop:basename)s-build/test"), want_stdout=True, want_stderr=True, haltOnFailure=True))
distgprof.addStep(steps.ShellCommand(name='Run unforked check_svcmgr', command=['./check_svcmgr'], workdir=util.Interpolate("build/%(prop:basename)s-build/test", env={'CK_FORK': 'no'}), want_stdout=True, want_stderr=True, locks=[oomtest_lock.access('exclusive')]))
distgprof.addStep(steps.Test(name="Profiling ./check_svcmgr (Out of tree)",command=["../libtool", "--mode=execute", "gprof", "./check_svcmgr" ], workdir=util.Interpolate("build/%(prop:basename)s-build/test"), want_stdout=True, want_stderr=True, haltOnFailure=True))
distgprof.addStep(steps.Compile(name="Default make clean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distgprof.addStep(steps.Compile(name="Default make distclean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="DistGProf",
workernames=["bb-linux"],
factory=distgprof))
Pre-requisites: build-essential check pkg-config
Worker: bb-linux
Steps:distgdb = util.BuildFactory()
distgdb.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
distgdb.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
distgdb.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
distgdb.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
distgdb.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
distgdb.addStep(steps.Configure(name='Default configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr', '--disable-doxygen', '--enable-gdb' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
distgdb.addStep(steps.Compile(name="Default make all (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distgdb.addStep(steps.Test(name="Default make check (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
distgdb.addStep(steps.Compile(name="Default make clean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "clean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
distgdb.addStep(steps.Compile(name="Default make distclean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="DistGdb",
workernames=["bb-linux"],
factory=distgdb))
Pre-requisites: build-essential check pkg-config doxygen doxygen-latex fuse3
Worker: bb-linux
Steps:binlin = util.BuildFactory()
binlin.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
binlin.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
binlin.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
binlin.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
binlin.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
binlin.addStep(steps.Configure(name='Default configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
binlin.addStep(steps.Compile(name="Default make all (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
binlin.addStep(steps.Test(name="Default make check (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "check" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, haltOnFailure=True, logfiles={"testsuite.log": "test/testsuite.log"}, locks=[oomtest_lock.access('exclusive')]))
binlin.addStep(steps.Compile(name="Default make install (Out of tree, DESTDIR)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), util.Interpolate('DESTDIR=%(prop:builddir)s/build/%(prop:basename)s-linux'), "install" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
binlin.addStep(steps.ShellCommand(name='Default create the archive', command=['tar', 'cvzf', util.Interpolate('%(prop:basename)s-linux.tar.gz'), util.Interpolate('%(prop:basename)s-linux')], want_stdout=True, want_stderr=True))
binlin.addStep(steps.FileUpload(name="Upload linux binary", workersrc=util.Interpolate('%(prop:basename)s-linux.tar.gz'), masterdest=util.Interpolate('/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-linux.tar.gz'),mode=0o755,urlText="Linux binaries",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-linux.tar.gz")))
binlin.addStep(steps.ShellCommand(name="Get linuxdeploy for Appimages",command=["wget","https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"], want_stdout=True, want_stderr=True))
binlin.addStep(steps.ShellCommand(name="Make linuxdeploy executable",command=["chmod","+x","linuxdeploy-x86_64.AppImage"], want_stdout=True, want_stderr=True))
binlin.addStep(steps.ShellCommand(name='Build AppImage', command=[ "./linuxdeploy-x86_64.AppImage","--appdir",util.Interpolate('%(prop:basename)s-linux'),"-e",util.Interpolate('%(prop:basename)s-linux/usr/bin/mkernel'),"-i",util.Interpolate("%(prop:basename)s/resources/mkernel.png"),"-d",util.Interpolate("%(prop:basename)s/resources/mkernel.desktop"),"--output","appimage" ], env={'LD_LIBRARY_PATH': util.Interpolate("%(prop:basename)s-linux/usr/lib/mkernel")}, want_stdout=True, want_stderr=True))
binlin.addStep(steps.FileUpload(name="Upload linux AppImage", workersrc="MKernel-x86_64.AppImage", masterdest=util.Interpolate('/var/www/packages.cerbelle.net/%(prop:package)s/MKernel-x86_64.AppImage'),mode=0o755,urlText="Linux AppImage",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/MKernel-x86_64.AppImage")))
binlin.addStep(steps.Compile(name="Default make distclean (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "distclean" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
project="mkernel",
name="BinLinux",
workernames=["bb-linux"],
factory=binlin))
Pre-requisites: see Cross_compilation_on_Debian_for_Windows
Worker: bb-mingw
Steps:binwin = util.BuildFactory()
binwin.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
binwin.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
binwin.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
binwin.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
binwin.addStep(steps.MakeDirectory(name='Create a build folder', dir=util.Interpolate("build/%(prop:basename)s-build")))
binwin.addStep(steps.Configure(name='Default configure (Out of tree)', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr', '--host=x86_64-w64-mingw32', 'ac_cv_func_malloc_0_nonnull=yes','ac_cv_func_realloc_0_nonnull=yes' ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True, logfiles={"config.log": "config.log"}))
binwin.addStep(steps.Compile(name="Default make all (Out of tree)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), "all" ],workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
binwin.addStep(steps.Compile(name="Default make install (Out of tree, DESTDIR)",command=["make", util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), util.Interpolate('DESTDIR=%(prop:builddir)s/build/%(prop:basename)s-win64'), "install" ], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
binwin.addStep(steps.ShellCommand(name='Create the archive', command=['zip', '-r', util.Interpolate('%(prop:basename)s-win64.zip'), util.Interpolate('%(prop:basename)s-win64')], want_stdout=True, want_stderr=True))
binwin.addStep(steps.FileUpload(name="Upload windows binary archive", workersrc=util.Interpolate('%(prop:basename)s-win64.zip'), masterdest=util.Interpolate('/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-win64.zip'),mode=0o755,urlText="Win64 binaries",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-win64.zip")))
binwin.addStep(steps.Compile(name="Create installer", command=['make', util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), 'windows', util.Interpolate('DESTDIR=%(prop:builddir)s/build/%(prop:basename)s-win64')], workdir=util.Interpolate("build/%(prop:basename)s-build"), want_stdout=True, want_stderr=True))
binwin.addStep(steps.FileUpload(workersrc=util.Interpolate("%(prop:basename)s-build/mkernel-installer.exe"), masterdest=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/mkernel-installer.exe"),mode=0o755,urlText="Windows installer",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/mkernel-installer.exe")))
c['builders'].append( util.BuilderConfig(
name="BinWindows",
workernames=["bb-mingw"],
factory=binwin))
Pre-requisites: pbuilder
Worker: bb-debian
Steps: #
bindeb = util.BuildFactory()
bindeb.addStep(steps.RemoveDirectory(name='Cleanup environment',dir="build"))
bindeb.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
bindeb.addStep(steps.FileDownload(name="Download sources", mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
bindeb.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")], want_stdout=True, want_stderr=True))
bindeb.addStep(steps.ShellCommand(name='Rename src dist file', command=['mv', util.Interpolate("%(prop:basename)s.tar.gz"), util.Interpolate("%(prop:package)s_%(prop:version)s.orig.tar.gz")], want_stdout=True, want_stderr=True))
bindeb.addStep(steps.ShellCommand(name='Add Build ID to revision.h', command=['sed', '-i', util.Interpolate("s/$/\\n#define BBID \\\"%(prop:buildnumber)s\\\"\\n/"), util.Interpolate("%(prop:basename)s/src/revision.h")], want_stdout=True, want_stderr=True))
bindeb.addStep(steps.ShellCommand(name='Commit sources changes', env={'EDITOR':'/bin/true'}, command=['dpkg-source', '--commit', './', 'build'], workdir=util.Interpolate("build/%(prop:basename)s"), want_stdout=True, want_stderr=True))
bindeb.addStep(steps.DebPbuilder(architecture="amd64",distribution="bookworm",workdir=util.Interpolate("build/%(prop:basename)s"), want_stdout=True, want_stderr=True))
bindeb.addStep(steps.ShellCommand(name='Upload to cerbelle repo', command=['dput', util.Interpolate("%(prop:basename)s/%(prop:package)s_%(prop:version)s-1.1_amd64.changes")], want_stdout=True, want_stderr=True))
c['builders'].append( util.BuilderConfig(
name="BinDebian",
workernames=["bb-deb"],
factory=bindeb))
Pre-requisites: see CrossCompilationMacOS
Worker: bb-macos
Steps: #
macbin = util.BuildFactory()
macbin.addStep(steps.SetProperty(name="Compute basename", property="basename", value=util.Interpolate("%(prop:package)s-%(prop:version)s")))
macbin.addStep(steps.ShellCommand(name='Cleanup environment', command=['rm', '-Rf', util.Interpolate('%(prop:builddir)s/build')]))
macbin.addStep(steps.FileDownload(name="Download sources",mastersrc=util.Interpolate("/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s.tar.gz"),workerdest=util.Interpolate("%(prop:basename)s.tar.gz")))
macbin.addStep(steps.ShellCommand(name='Extract sources from dist', command=['tar', 'xvzf', util.Interpolate("%(prop:basename)s.tar.gz")]))
macbin.addStep(steps.ShellCommand(name='Create a build folder', command=['mkdir', util.Interpolate("%(prop:basename)s-build")]))
macbin.addStep(steps.ShellCommand(name='Out of tree default configuration', command=[util.Interpolate("../%(prop:basename)s/configure"), '--prefix=/usr' ], workdir=util.Interpolate("build/%(prop:basename)s-build")))
macbin.addStep(steps.Compile(name="Compile and Install", command=['make', util.Interpolate("CFLAGS=-DBBID=\\\"%(prop:buildnumber)s\\\""), 'clean', 'all', 'install', util.Interpolate('CFLAGS=-I%(prop:builddir)s/build/%(prop:basename)s-build/intl'), util.Interpolate('DESTDIR=%(prop:builddir)s/build/%(prop:basename)s-macos')], workdir=util.Interpolate("build/%(prop:basename)s-build")))
macbin.addStep(steps.ShellCommand(name='Create the archive', command=['tar', 'cvzf', util.Interpolate('%(prop:basename)s-macos.tar.gz'), util.Interpolate('%(prop:basename)s-macos')]))
macbin.addStep(steps.FileUpload(workersrc=util.Interpolate('%(prop:basename)s-macos.tar.gz'), masterdest=util.Interpolate('/var/www/packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-macos.tar.gz'),mode=0o755,urlText="MacOS binaries",url=util.Interpolate("https://packages.cerbelle.net/%(prop:package)s/%(prop:basename)s-macos.tar.gz")))
c['builders'].append( util.BuilderConfig(
name="BinMacOS",
workernames=["macos-monterey"],
factory=macbin))
To force from repository builders
mk_forcesrc=schedulers.ForceScheduler(
name="ForceSrc",
buttonName="Force src",
label="Force parameters",
codebases=[util.CodebaseParameter(
"",
label="Main repository",
branch=util.FixedParameter(name="branch", default="default"),
revision=util.FixedParameter(name="revision", default=""),
repository=util.FixedParameter(name="repository", default=""),
project=util.FixedParameter(name="project", default="mkernel"),
),],
reason=util.StringParameter(name="reason",
label="Reason:", required=True, size=80),
username=util.UserNameParameter(label="Your name (and email):",
size=80),
builderNames=["Src", "SrcCppcheck", "SrcDist", "SrcInst", "SrcDbg", "SrcGprof", "SrcDbgGcov", "SrcGdb", "SrcGcov" ],
)
c['schedulers'].append(mk_forcesrc)
Force package build from source
mk_forcebin=schedulers.ForceScheduler(
name="ForceBin",
buttonName="Force bin",
label="Force parameters",
codebases=[util.CodebaseParameter(
"",
label="Main repository",
branch=util.FixedParameter(name="branch", default="default"),
revision=util.FixedParameter(name="revision", default=""),
repository=util.FixedParameter(name="repository", default=""),
project=util.FixedParameter(name="project", default="mkernel"),
),],
reason=util.StringParameter(name="reason",
label="Reason:", required=True, size=80),
username=util.UserNameParameter(label="Your name (and email):",
size=80),
properties=[
util.StringParameter(name="package", label="Package name.", default="mkernel"),
util.ChoiceStringParameter(name="version", label="Source version.", choices=["0.0.1","0.0.2"],default="0.0.1"),
],
builderNames=["BinLinux","BinDebian","BinWindows", "DistDox", "DistLCov", "DistGProf", "DistGdb" ]
)
c['schedulers'].append(mk_forcebin)
For developers to submit a try
mk_try = schedulers.Try_Jobdir(
name="Try",
builderNames=["Src", "SrcCppcheck", "SrcDist", "SrcInst", "SrcDbg", "SrcGprof", "SrcDbgGcov", "SrcGdb", "SrcGcov" ],
jobdir="/var/lib/buildbot/jobdir")
c['schedulers'].append(mk_try)
mk_oncommit=schedulers.SingleBranchScheduler(
name="On commit",
change_filter=util.ChangeFilter(branch='default'),
treeStableTimer=None,
builderNames=["Src", "SrcCppcheck", "SrcDist", "SrcInst", "SrcDbg", "SrcGprof", "SrcDbgGcov", "SrcGdb", "SrcGcov" ],
)
c['schedulers'].append(mk_oncommit)
Trigger packages builds after dist build
mkernel_triggerable=schedulers.Triggerable(
name="MKernel_Triggerable",
builderNames=[ "BinLinux", "BinDebian", "BinWindows", "BinMacOS", "DistDox", "DistLCov", "DistGProf", "DistGdb" ]
)
c['schedulers'].append(mkernel_triggerable)
Currently using Native compilation on MacOS Monterey in KVM
XCompile candidate : https://github.com/tpoechtrager/osxcross
Packaging resources :
https://gytpol.com/automating-mac-software-packaging-process-on-a-linux-based-os/
https://gist.github.com/SchizoDuckie/2a1a1cc71284e6463b9a
https://github.com/sindresorhus/create-dmg
https://stackoverflow.com/questions/1596945/building-osx-app-bundle
https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1
https://www.ferranpujolcamins.cat/2020/11/27/Notes-CMake-macOS-bundle.html
https://studios.ptilouk.net/superfluous-returnz/blog/2022-03-16_macos.html
https://github.com/KosalaHerath/macos-installer-builder
apt-get install -y mingw-w64 mingw-w64-tools make g++ nsis pkg-config pev
(optional for i18n messages)
cd
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar xvzf libiconv-*.tar.gz
rm libiconv-*.tar.gz
cd libiconv-*
./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32
make install
cd
wget https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.4.tar.gz
tar xvzf gettext-*.tar.gz
rm gettext-*.tar.gz
cd gettext-*/gettext-runtime
./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --enable-threads=win32 --without-libexpat-prefix --without-libxml2-prefix
make install
apt-get install -y git meson
cd
wget https://download.gnome.org/sources/glib/2.74/glib-2.74.6.tar.xz
tar xvJf glib-2.74.6.tar.xz
rm glib-2.74.6.tar.xz
cd glib-2.74.6
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 _build
meson compile -C _build
meson install -C _build
apt-get install -y libglib2.0-dev-bin flex bison
cd
wget https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.22.3.tar.xz
tar xvJf gstreamer-1.22.3.tar.xz
rm gstreamer-1.22.3.tar.xz
cd gstreamer-1.22.3
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 _build
#meson configure -Dharfbuzz:tests=disabled _build
meson compile -C _build
meson install -C _build
cd
wget https://cairographics.org/releases/cairo-1.18.0.tar.xz
tar xvJf cairo-1.18.0.tar.xz
rm cairo-1.18.0.tar.xz
cd cairo-1.18.0
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 _build
meson compile -C _build
meson install -C _build
cd
wget https://github.com/harfbuzz/harfbuzz/releases/download/6.0.0/harfbuzz-6.0.0.tar.xz
tar xvJf harfbuzz-6.0.0.tar.xz
rm harfbuzz-6.0.0.tar.xz
cd harfbuzz-6.0.0
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 -Dtests=disabled _build
meson compile -C _build
meson install -C _build
cd
wget https://download.gnome.org/sources/pango/1.50/pango-1.50.12.tar.xz
tar xvJf pango-1.50.12.tar.xz
rm pango-1.50.12.tar.xz
cd pango-1.50.12
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 _build
meson compile -C _build
meson install -C _build
https://www.gtk.org/docs/installations/linux/
https://docs.gtk.org/gtk4/building.html
https://github.com/MGlolenstine/gtk4-cross
apt-get install -y libglib2.0-dev-bin python3-docutils libglib2.0-bin
apt-get install -y python3-pip
pip3 install meson --break-system-packages
cd
wget https://download.gnome.org/sources/gtk/4.8/gtk-4.8.3.tar.xz
tar xvJf gtk-4.8.3.tar.xz
rm gtk-4.8.3.tar.xz
cd gtk-4.8.3/
cat > cc.txt << EOF
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[properties]
c_args = []
c_link_args = []
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ld = 'x86_64-w64-mingw32-ld'
objcopy = 'x86_64-w64-mingw32-objcopy'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'
EOF
meson setup --cross-file cc.txt --prefix=/usr/x86_64-w64-mingw32 -Dmedia-gstreamer=disabled _build
meson compile -C _build
meson install -C _build
cd wget --no-check-certificate https://packages.cerbelle.net/mkernel/mkernel-0.0.1.tar.gz tar xvzf mkernel-0.0.1.tar.gz rm mkernel-0.0.1.tar.gz cd mkernel-0.0.1 #./configure --host=x86_64-w64-mingw32 --prefix=/usr --with-included-ltdl --enable-local-libopts ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure --host=x86_64-w64-mingw32 --prefix=/usr ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes make clean install DESTDIR=`pwd`/../mkernel-0.0.1-win64
cd cd mkernel-0.0.1 makensis -NOCD -DBINDIR=../mkernel-0.0.1-win64 -DSRCDIR=../mkernel-0.0.1 ../mkernel-0.0.1/mkernel
Start and End sentinels
Value is a void pointer (struct)
Functor Reset
Functor AddValue (Cursor)
Functor GetValue (Cursor)
Functor First
Functor Last
Functor Next
Functor Prev
Functor Delete
All CICD generated files (sources, docs, reports and compiled) over the time
Documentation wiki : wiki
Debian packages available in the following repositories :
deb [trusted=yes] https://packages.cerbelle.net/debian unstable/ deb-src [trusted=yes] https://packages.cerbelle.net/debian unstable/
Documentation wiki : wiki
Debian packages available in the following repositories :
deb [trusted=yes] https://packages.cerbelle.net/debian unstable/ deb-src [trusted=yes] https://packages.cerbelle.net/debian unstable/
This library implements tooling for debugging and detecting memoryleaks.
First implemented in 1997, after reading the amazing book from Steve Maguire,
"L'art du code" (French translated title), by Microsoft Press.
Non intrusive, provides enhanced assertions, checkpoints and a transparent
memoryleak tracker.
Way faster than valgind, it can be compiled and used by end-users to provide a
useful debug log without significant impact on resources and performances. It is
probably incompatible with Valgrind. Probably in competition with gcc's
-fsanitize=address, probably incompatible with it.
assert.h - Macro and functions definitions.
libdebug.a/so - assertion output functions implementations
When enabled (NDEBUG is undefined) , the macros call the output functions
defined in assert.h and implemented in libdebug, with contextual metadata
(filename, line number, compilation date and time, and function name). func
gcc extension is used. libdebug.a/so needs to be linked to the binaries.
When disabled (NDEBUG defined), the functions are not defined and the macros are
mapped to no operation. libdebug.a/so does not need to be linked to the binaries.
memory.h - Macro definition to include last
memdbg.h - automatically included from include path
memtrack.h - automatically included from include path
libdebug.a/so - memory tracking functions implementations
When enabled (NDEBUG undefined), this file needs to be included as the last
include line in the source code, in order to be applied only on the source code,
not on the other includes. It replaces memory allocation/free standard functions
with a call to an internal wrapper defined in memdbg.h/c and libdebug.a/so. It
includes memdbg.h and transitively memtrack.h. libdebug.a/so needs to be linked
to the binaries.
When disabled (NDEBUG defined), the replacement macros are not defined, thus the
memory allocation and free standard functions are directly called without
involving the wrappers. memdbg.h and memtrack.h are not included. The
memreport() calls are replaced by no operation thanks to an empty macro.
libdebug.a/so does not need to be linked with the binaries.
Architecture
Double linked list
Configuration precedence specs
LibDebug
Buildbot_CICD_configuration
Cross_compilation_on_Debian_for_Windows
CrossCompilationMacOS