Thoughts on building out of tree kernel modules
by Richard Maw
We should have sufficient infrastructure in Baserock to deal with
this now.
There is a chunk in build-essential called `linux-api-headers`. Don't
confuse this with the kernel module headers, `linux-api-headers` are
the userland headers for the libc to comile against.
Userland headers remain backwards compatible, so it's perfectly fine to
use an old version.
Kernel module headers are significantly different, since Linux does not
keep a stable module API.
For this reason, out of tree modules must either be in the BSP stratum,
or a stratum depending on it.
So the following snippet would be in the bsp stratum's morphology.
strata:
- name: linux
repo: upstream:linux
ref: baserock/morph
build-depends: []
- name: kdbus
repo: github:gregkh/kdbus
ref: master
build-depends:
- linux
In the linux chunk, we need to change the morphology to also copy the
headers out.
The rules debian uses look like this:
install-headers_$(ARCH)_$(FEATURESET): $(STAMPS_DIR)/source_$(FEATURESET)
dh_testdir
dh_testroot
dh_prep
set -o pipefail; \
cd $(SOURCE_DIR); \
( \
echo Makefile; \
find arch/$(KERNEL_ARCH) -maxdepth 1 -name 'Makefile*' -print; \
find arch/$(KERNEL_ARCH) \( -name 'module.lds' -o -name 'Kbuild.platforms' -o -name 'Platform' \) -print; \
find $$(find arch/$(KERNEL_ARCH) \( -name include -o -name scripts \) -type d -print) -print; \
find include -name 'asm*' -prune -o -print; \
find include/asm-generic -print; \
) \
| \
cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)'
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
So, our chunk morphology would end with something like that too:
install-commands:
- install -D -m600 arch/"$KERNEL_ARCH"/boot/zImage "$DESTDIR/boot/zImage"
- |
(
echo Makefile
find "arch/$KERNEL_ARCH" -maxdepth 1 -name 'Makefile*' -print
find "arch/$KERNEL_ARCH" \( -name 'module.lds' -o -name 'Kbuild.platforms' -o -name 'Platform' \) -print
find "arch/$KERNEL_ARCH" \( -type d -a \( -name include -o -name scripts \) \) -o \
\! -type d -a \( -path '*include/*' -o -path '*scripts/*' \) -print
find include -name 'asm*' -prune -o -print
find include/asm-generic -print
) | cpio -pumd "$DESTDIR$PREFIX/src/linux"
And our Kernel module build system looks like:
build-commands:
- make M="$(pwd)" -C "$PREDIX/src/linux" modules
install-commands:
- make M="$(pwd)" INSTALL_MOD_PATH="$DESTDIR" modules_install
9 years, 6 months
[PATCH 0/4] Allow lorry-controller to use Troves via http
by Adam Coldrick
This patch allows lorry-controller.conf to define a protocol to use
with a given Trove, http or ssh. If the protocol is ssh behaviour is
unchanged, but if http then all interaction with the Trove is done via
http.
Additionally, it allows for the creation of a proxy.conf file in the
local-config repository of a Trove which defines the hostname, port and
access credentials of an http proxy server. If this file exists then
the Trove will use the provided proxy for all http operation. It will
also ignore bad SSL certificates to allow for MITM proxies.
Repo: git://git.baserock.org/baserock/baserock/lorry-controller.git
Ref: adamcoldrick/access-troves-via-http-with-proxy-support
SHA1: 27a28916391396f16dc042319de381f5745bb03c
Target: origin/master
Adam Coldrick (4):
Add a protocol field to the example lorry-controller.conf.
Update lorry-controller to allow it to make http requests
Update confparser to allow for requests using protocols other than
ssh.
Add support for using an http proxy with lorry-controller.
lorry-controller | 42 ++++++++++++++++++++++++++++++++++++++
lorry-controller.conf | 1 +
lorrycontroller/confparser.py | 47 +++++++++++++++++++++++++++++++++++++------
3 files changed, 84 insertions(+), 6 deletions(-)
--
1.7.10.4
9 years, 6 months
[PATCH] Add a lorry for git-fat
by Adam Coldrick
Repo: ssh://git@git.baserock.org/baserock/local-config/lorries
Ref: adamcoldrick/add-lorry-for-git-fat
SHA1: b36b9fada7c31bc16ba0fbea3a08f945763ff747
Target: origin/master
Adam Coldrick (1):
Add a lorry for git-fat
open-source-lorries/git-fat.lorry | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 open-source-lorries/git-fat.lorry
--
1.7.10.4
9 years, 6 months
[PATCH] Make libxkbcommon lorry from github
by Jonathan Maw
head: 3f7e9aa79c5f5840ed995994cadce29abb6d9733
branch: jonathanmaw/xkbcommon-from-github
repo: ssh://git@git.baserock.org/baserock/local-config/lorries
land: master
Jonathan Maw (1):
Make xkbcommon lorry from github
open-source-lorries/xorg-lib-libxkbcommon.lorry | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--
1.7.10.4
9 years, 6 months
[PATCH 0/3] Add a script to manage parallel Baserock versions.
by Pedro Alvarez
Repo: ssh://git@git.baserock.org/baserock/baserock/tbdiff.git
Ref: baserock/pedroalvarez/system-version-manager
Sha1: 64e06939bfa2f75208e8a22e6c50c98e5afbef4c
Card: S10393
New script needed for the upgrades to handle parallel versions
and allow the user to choose a system to boot.
With this script the user will be able to boot the old system
with the old kernel if the new system doesn't boot.
Pedro Alvarez (3):
Fix error in the baserock-system-config-sync behaviour table
Add script to modify the bootloader and manage different paralell OS.
Use system-version-manager in bserock-system-config-sync.
Makefile.am | 3 +-
.../baserock-system-config-sync | 9 +-
configure.ac | 3 +-
system-version-manager/Makefile.am | 20 ++
system-version-manager/system-version-manager | 280 ++++++++++++++++++++
5 files changed, 309 insertions(+), 6 deletions(-)
create mode 100644 system-version-manager/Makefile.am
create mode 100755 system-version-manager/system-version-manager
--
1.7.10.4
9 years, 6 months
[PATCH 0/7] Baserock chroot tool for Ubuntu/Debian
by Daniel Silverstone
Repo: baserock:baserock/baserock-chroot
Ref: master
SHA1: 3afd811f205cdf25d8de595624f3a8ad8dc3522f
Note, this is not a patch series *against* master but rather what is currently
on master.
This is a new project to support running Baserock chroots on Debian/Ubuntu
hosts. I believe it should work on Fedora hosts as well but I've not done
packaging for that.
If you've not done Debian packaging before, you can ignore that entry entirely.
If you're not familiar with schroot then some of the behaviours of
br-ct-sync-chroots might seem odd.
I have tested this on Debian/Wheezy/amd64 and on Xubuntu/12.04/i386
Thanks,
Daniel.
Daniel Silverstone (7):
Add chroot sync tool
Add tool to simplify entering baserock chroots
Add tool to simplify managing baserock chroots
Add GPLv2 headers to top of scripts
Add a makefile
Add Debian-style packaging rules
Add packaging rule to Makefile
Makefile | 17 +++++
br-ct-sync-chroots | 121 ++++++++++++++++++++++++++++++++++
debian/baserock-chroot.postinst | 5 ++
debian/baserock-chroot.prerm | 5 ++
debian/changelog | 6 ++
debian/compat | 1 +
debian/control | 13 ++++
debian/rules | 4 ++
enter-baserock | 41 ++++++++++++
manage-baserock | 136 +++++++++++++++++++++++++++++++++++++++
10 files changed, 349 insertions(+)
create mode 100644 Makefile
create mode 100755 br-ct-sync-chroots
create mode 100644 debian/baserock-chroot.postinst
create mode 100644 debian/baserock-chroot.prerm
create mode 100644 debian/changelog
create mode 100644 debian/compat
create mode 100644 debian/control
create mode 100755 debian/rules
create mode 100755 enter-baserock
create mode 100755 manage-baserock
--
1.7.10.4
9 years, 6 months
[PATCH 00/14] V5: Changes to Morph required for upgrades
by Sam Thursfield
Repo: git://git.baserock.org/baserock/baserock/morph.git
Ref: upgrades-v5
Sha1: a226a07d45af0c374adad58a8080a22f72aa9ce0
Note: V4 was not sent for review, but we used it yesterday so I have called
this rebase of it V5.
New changes
-----------
All comments from the review of V3 have been incorporated into this
branch.
State dirs (/var, /home, /root, /opt, /srv) are now created with
permissions 0644, instead of 0600 (oops).
Deployment now includes a /baserock/deployment.meta file which contains
the environment passed to the configure extensions, and the `git
describe` output of the 'definitions.git' repo that we built from.
Including the user's environment is an important change that we need to
communicate clearly to users. It's mentioned in the docstring for `morph
deploy`, but needs to go in at least the release notes as well. We strip
any variable with 'PASSWORD' in its name, to avoid recording the
OS_PASSWORD configuration parameter that openstack.configure requires.
Apologies for the fact that I wrote a test for this using cmdtest, not
Yarn. I have not yet had time to get up to speed with Yarn.
Not done
--------
Cluster morphs still conflate intial deployment method and upgrade
method. Our goal is to make it so that the initial cluster morphology
can be used unchanged to deploy upgrades to the cluster too. However, as
well as adding upgrade-type and upgrade-location, we also need to remove
"VERSION_LABEL" before we can achieve this, and I don't want to rush
that work.
Pedro Alvarez (1):
Adding syslinux 'menu.c32' file during the deployment.
Sam Thursfield (13):
deploy: Add new --upgrade option
deploy: Finish off the Btrfs system layout implementation
Don't create a blank /etc/fstab
deploy: Depend on client OS version manager to deploy upgrades
deploy: Always set new system as default
Make parse_autostart() into more general get_environment_boolean()
deploy: Honour AUTOSTART in ssh-rsync extension
deploy: Add optional 'check' extensions
deploy: Check the --upgrade flag has been used correctly.
deploy: Fix double exception in rawdisk.write
deploy: Add upgrading to deployment.yarn
yarns: Fix how Morph is run
deploy: Record deployment information in deployed system
morphlib/builder2.py | 25 ---
morphlib/cachekeycomputer.py | 2 +-
morphlib/exts/kvm.check | 35 ++++
morphlib/exts/kvm.write | 4 +-
morphlib/exts/nfsboot.check | 34 ++++
morphlib/exts/openstack.check | 35 ++++
morphlib/exts/rawdisk.write | 7 +-
morphlib/exts/ssh-rsync.check | 36 ++++
morphlib/exts/ssh-rsync.write | 150 +++++++---------
morphlib/exts/tar.check | 24 +++
morphlib/exts/virtualbox-ssh.check | 35 ++++
morphlib/exts/virtualbox-ssh.write | 2 +-
morphlib/gitdir.py | 7 +-
morphlib/gitdir_tests.py | 9 +
morphlib/plugins/deploy_plugin.py | 79 ++++++++-
morphlib/writeexts.py | 214 +++++++++++++++++------
tests.as-root/tarball-image-is-sensible.stdout | 1 -
tests.build/bootstrap-mode.stdout | 1 -
tests.build/build-stratum-with-submodules.stdout | 1 -
tests.build/build-system.stdout | 1 -
tests.deploy/deploy-cluster.script | 17 +-
yarns/deployment.yarn | 30 +++-
yarns/implementations.yarn | 10 ++
yarns/morph.shell-lib | 8 +-
24 files changed, 583 insertions(+), 184 deletions(-)
create mode 100755 morphlib/exts/kvm.check
create mode 100755 morphlib/exts/nfsboot.check
create mode 100755 morphlib/exts/openstack.check
create mode 100755 morphlib/exts/ssh-rsync.check
create mode 100755 morphlib/exts/tar.check
create mode 100755 morphlib/exts/virtualbox-ssh.check
--
1.8.5.3
9 years, 6 months
Baserock Trove will be down
by Daniel Silverstone
Hi,
The primary baserock Trove will be up and down today as we are backing it up
and (hopefully) upgrading it to shiny new software :-)
D.
--
Daniel Silverstone http://www.codethink.co.uk/
Lead Architect GPG 4096/R Key Id: 3CCE BABE 206C 3B69
9 years, 6 months