[PATCH 0/2] Make copyright year check smarter
by Richard Maw
Repo: git://git.baserock.org/baserock/baserock/morph.git
Ref: baserock/richardmaw/style-checker
SHA1: 72a420f09835a31eb1ec097f2791a7603120a2d9
Land: origin/master
Currently the copyright year check lets things fall through the cracks
if ./check is run at the wrong time.
Previously, if you had added changes to a file, forgotten to change
the copyright year, and run ./check before committing, it would pass,
since it reads the copyright year from the commit.
The first patch fixes this, by checking `git status` to see if the file is
different to that which is committed, and if it is, use the current year.
You would also miss files that have never been committed, since `git
ls-files` doesn't show them by default; the second commit fixes this.
Richard Maw (2):
check-copyright-year: Use current date for uncommitted changes
style check: Include newly added files in checks
check | 5 +++--
scripts/check-copyright-year | 23 ++++++++++++++++++++---
2 files changed, 23 insertions(+), 5 deletions(-)
--
1.8.5.rc2
9 years, 7 months
[PATCH] Split build-essential to have a -minimal artifact
by Richard Maw
Repo: git://git.baserock.org/baserock/baserock/definitions.git
Ref: baserock/richardmaw/S10786-finer-splitting
SHA1: 817a4a98e5fdb14283e1e809a3ba28f884f79292
Land: origin/master
This also includes an update to zlib.
The changes to gcc and eglibc will also be sent to the list for review.
No patch series for zlib will be included, since there are no morph
related changes involved in updating its version.
Richard Maw (1):
Define a minimal x86_32 system
base-system-x86_32-generic.morph | 2 +-
build-essential.morph | 22 +++++++++++++++++++---
minimal-system-x86_32-generic.morph | 15 +++++++++++++++
3 files changed, 35 insertions(+), 4 deletions(-)
create mode 100644 minimal-system-x86_32-generic.morph
--
1.8.5.rc2
9 years, 8 months
[RFC] Workspace layout
by Richard Maw
The current workspace layout does not work well for us in many cases,
and given our rethink of the location of morphologies, some of the
initial design choices don't make sense, so we've had a think about how
they could work in the future.
Summary
=======
1 branch per workspace
morph checkout -> morph clone
morph edit creates repos based on their morphology path
Walkthrough
===========
`morph clone`
-------------
We want to create a new workspace. Now that workspaces and system
branches have merged, there is no `morph init` command, so we just use
`morph clone`.
$ morph clone baserock:baserock/definitions
Created new workspace in "baserock"
$ ls
baserock
$ cd baserock
$ ls -A
.morph-system-branch
definitions
We created `.morph-system-branch` to track internal state, such as where
the root repository is, and the repository which contains our morphologies
is called `definitions`.
The name of the system branch is the second-last path component, while
the morphologies repository is the last.
$ cd definitions
$ ls
release.morph
devel-system-x86_64-generic.morph
build-essential
foundation
...
Cluster and System morphologies are in the top level of the repository,
PLUS the strata have their own subdirectories.
$ cd foundation
$ ls
morph
systemd.morph
...
Chunk morphologies are now in the stratum's subdirectory. The stratum
morphology itself is called `morph` in that subdirectory.
*NOTE*: This layout is not mandatory, morphologies are referenced by a
full file path, so you can name them whatever you want now.
If we now look at `systemd.morph` we seed that it now has the `repo`
and `ref` fields.
$ cat systemd.morph
name: systemd
kind: chunk
repo: upstream:systemd
ref: baserock/morph
commit: dc8ee9a30e2df2568f2b37e3fb61e4b0bb601b
build-system: autotools
...
*NOTE*: We haven't finalised the chunk morphology format yet, but we
want to be able to put repo and ref in there.
`morph edit`
------------
Supposing we want to make changes, we use `morph edit`. It has changed
from being given a system, stratum and chunk, to just the morphology path.
$ morph edit foundation/systemd.morph
Checked-out "foundation/systemd.morph" at "~/baserock/foundation/systemd"
$ cd ../../foundation/systemd
$ git branch
* master/foundation/systemd
The branch that this checkout is using, is the name of our system branch,
with the morphology path appended.
This is required, since multiple chunk morphologies can be for the same
repository. They may be at different refs, but we give them a new ref
for this branch, and if we don't give each chunk a unique ref, we can't
push all of them, since there will be a conflict.
*NOTE* This will un-share repositories in the case where they also use
the same ref (e.g. gcc in build-essential). We may want a scheme to
share this.
*NOTE* The HEAD of our definitions repository being `master` means that
we can't push this branch since:
1. Trove's Gitano rule-set prevents you pushing branches to repositories
in upstream: that don't start with your trove prefix (e.g. baserock/)
2. Git won't accept master/* as a valid ref, since master exists.
Some suggested fixes are:
1. Have the HEAD ref of definitions repository always start with your
trove prefix.
2. Prepend the trove prefix if it doesn't already start with it
3. Fetch in upstream's refs in a different namespace and slacken
Gitano's rule-set to allow pushing to branches that don't start with
your trove prefix
*NOTE* It's also possible that you have multiple morphologies repositories
on your trove. You could get a name conflict if two of them have a
system branch of the same name, and edit the same chunk, which would
be a surprising GOTCHA if you need to make the same change to multiple
repositories (e.g. a security fix affecting a component in both systems).
It would be possible to avoid this by requiring unique branch names, but
for the security update case, this is an odd restriction that unreasonable
to check, since you need to keep track of the locations of every
morphologies repository.
`deprecated commands`
---------------------
`morph init` is now deprecated, since you don't create a workspace
independently of the system branch any more.
`morph checkout` became `morph clone`.
`morph branch` no longer exists. We still need to specify a way to create
a new branch.
The simplest thing to do would be to add a new option to `morph clone`
to specify what we want to call the new branch.
Alternatively, we have a different step for renaming your current branch,
or creating a new branch and switching to that.
This *could* be with git's own commands, if we determine the current
branch from the current branch of the root repository.
9 years, 8 months
[PATCH 0/3] Add virtualization to baserock
by mark.doffman@codethink.co.uk
From: Mark Doffman <mark.doffman(a)codethink.co.uk>
The following patch series adds a virtualization stratum to baserock.
This stratum includes KVM, libvirt and virt-manager to allow baserock
systems to act as a virtualizaiton host.
Repo: git://git.baserock.org/baserock/baserock/morphs
Ref: baserock/markdoffman/virtualization
SHA1: 15b58013289f800d411259b935cb15b6d469af37
Target: master
To test the virtualization features:
Build and run a system containing the virtualization stratum. I have
tested nested virtualization only using baserock running on KVM.
Virtualbox may or may not work. So far x86_64 systems are the only
ones supported.
Once running start libvirtd.
> systemctl start libvirtd
I haven't yet added the symlink to run libvirtd by default. If you are
running the baserock host within a libvirt virtual machine the 'default'
network may have failed to start due to conflicting IP addresses.
> virsh net-list
Should show the 'default' network up and running. If not:
> virsh net-edit default
Change the ip addresses in the 'default' config to something different.
> virsh net-start default
Once libvirtd and the default network are installed you may use
virt-install to create a virtual machine within baserock.
> virt-install --name br-nested \
> --disk path=baserock-current-base-x86_64.img,bus=ide,format=raw \
> --memory 1024 --accelerate --nographics --import
Libvirt is compiled with VNC support so it may be possible to access
the screen of the nested virtual machine from your root OS, I haven't
yet tried.
Issues:
* VNC compiled but not tested.
* Libvirt ONLY compiled for qemu/kvm no other guest types supported.
Happy baserock hosted virtualization!
Mark
Mark Doffman (3):
Add virtualization stratum.
Add XZ dependency to libxml2
Update gobject-introspection version.
core.morph | 17 ++++----
foundation.morph | 6 ++-
genivi-foundation.morph | 4 --
virtualization.morph | 103 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 117 insertions(+), 13 deletions(-)
create mode 100644 virtualization.morph
--
1.8.4
9 years, 8 months
[PATCH 0/2] Update cache key computer to memoise better
by Daniel Silverstone
Repo: baserock:baserock/morph
Ref: baserock/danielsilverstone/memoise-cache-keys-better
SHA1: 6d9eee86f1ea75c0f2666dc4282d8b10fee63e7b
Land: master
This patch series adds some more memoisation which speeds up cache key
computation quite significantly. Also the tests are updated to ensure that we
actually do exercise the memoisation pathways and the logging is updated to
make it clear when we're returning memoised results.
This will need a definitions change in tools.morph to update the SHA1 for
morph.
I can confirm that ./check passes (modulo a rawdisk related yarn which I cannot
run successfully in my chroot right now anyway).
D.
Daniel Silverstone (2):
CacheKeyComputer: Memoise cache keys more effectively.
CacheKeyComputer Tests: Update to explicitly test for memoisation
morphlib/cachekeycomputer.py | 33 +++++++++++++++++++++++----------
morphlib/cachekeycomputer_tests.py | 13 +++++++++++++
2 files changed, 36 insertions(+), 10 deletions(-)
--
1.7.10.4
9 years, 8 months
[PATCH 0/5] Distbuild definitions
by Richard Ipsum
repo: git@git.baserock.org:baserock/baserock/definitions
ref: baserock/richardipsum/distbuild-with-setup2
head: 84cb06607e2530757e8ab545b10de5fae3b6862a
Hi all,
These patches include the definitions and deployment stuff for distbuild.
I have branched from baserock/sam/distbuild-with-setup and squashed the
series.
My only comment is that we're using ssh-keyscan to generate the known-hosts
file. This tool prints stuff to stderr for some reason, so you can see its
output during deployment, there doesn't seem to be a flag to disable it either.
Richard Ipsum (3):
Add distbuild stratum
Add armv7lhf distbuild system
Add distbuild config extension
Sam Thursfield (2):
Import distbuild configuration files into definitions.git
distbuild: Add example cluster for deployment
distbuild-system-armv7lhf-highbank.morph | 20 +++
distbuild.configure | 161 ++++++++++++++++++++
distbuild.morph | 20 +++
.../system-generators/ccache-nfs-mount-generator | 16 ++
distbuild/manifest | 19 +++
.../lib/systemd/system/morph-cache-server.service | 9 ++
.../systemd/system/morph-controller-helper.service | 10 ++
.../lib/systemd/system/morph-controller.service | 9 ++
.../lib/systemd/system/morph-worker-helper.service | 10 ++
.../usr/lib/systemd/system/morph-worker.service | 10 ++
.../morph-cache-server.service | 1 +
.../morph-controller-helper.service | 1 +
.../morph-controller.service | 1 +
.../morph-worker-helper.service | 1 +
.../multi-user.target.wants/morph-worker.service | 1 +
example-distbuild-cluster.morph | 37 +++++
16 files changed, 326 insertions(+)
create mode 100644 distbuild-system-armv7lhf-highbank.morph
create mode 100644 distbuild.configure
create mode 100644 distbuild.morph
create mode 100755 distbuild/lib/systemd/system-generators/ccache-nfs-mount-generator
create mode 100644 distbuild/manifest
create mode 100644 distbuild/usr/lib/systemd/system/morph-cache-server.service
create mode 100644 distbuild/usr/lib/systemd/system/morph-controller-helper.service
create mode 100644 distbuild/usr/lib/systemd/system/morph-controller.service
create mode 100644 distbuild/usr/lib/systemd/system/morph-worker-helper.service
create mode 100644 distbuild/usr/lib/systemd/system/morph-worker.service
create mode 120000 distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service
create mode 120000 distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service
create mode 120000 distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller.service
create mode 120000 distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service
create mode 120000 distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker.service
create mode 100644 example-distbuild-cluster.morph
--
1.7.10.4
9 years, 8 months
[PATCH] Add kernel config for virtualization.
by mark.doffman@codethink.co.uk
From: Mark Doffman <mark.doffman(a)codethink.co.uk>
Some extra kernel parameters are needed for virtualization
most importantly CONFIG_KVM but also some others needed
for libvirt to set up a bridge and perform its ip routing.
Repo: ssh://git@git.baserock.org/delta/linux.git
Branch: baserock/markdoffman/virtualization
SHA: 53edc8ca45a3ace97 (HEAD)
Mark Doffman (1):
Add kernel config needed for virtualization hosting.
linux.morph | 7 +++++++
1 file changed, 7 insertions(+)
--
1.8.4
9 years, 8 months
[PATCH 0/3 v4] Create and display a releases repo - binary delivery
by Adam Coldrick
Repo: git://git.baserock.org/baserock/baserock/trove-setup.git
Ref: baserock/adamcoldrick/binary-delivery-v4
SHA1: 2b24bfe7f1cbcb460a882e24940f8f5fead5a8a6
Target: master
Hi all,
Version 4 of this series fixes the small issues with the last series.
This patch adds to the lighttpd config to allow http://<trove>/releases
to show a directory listing of the rsync space of a releases repository.
Until something is pushed to this rsync space, the url will instead give
a 404 error.
It also includes a script to create a site project, and create the
required releases repository in it, along with a systemd unit that will
run this script on boot if the repository does not already exist.
Finally, the makefile for trove-setup is changed to install the script
in the right place.
Adam Coldrick (3):
Enable directory listing in <trovehost>/releases
Add a script to create the releases repository
Add a systemd unit to run the repo creation script
etc/lighttpd/git-httpd.conf | 4 ++
share/releases-repo-migration.sh | 117 +++++++++++++++++++++++++++++++++
units/releases-repo-migration.service | 14 ++++
3 files changed, 135 insertions(+)
create mode 100755 share/releases-repo-migration.sh
create mode 100644 units/releases-repo-migration.service
--
1.7.10.4
9 years, 8 months
READ ME: Update to process for patch series
by Daniel Silverstone
Hi,
This is a bit of a reminder and a bit of a formalisation of process.
Up until now, changes to chunks have only needed a patch series including repo,
ref, sha and landing branch and the patch in question.
This was enough for us to merge the change and get it live.
Since we petrified master of definitions, this has changed.
We now need not only the chunk change, but *ALSO* a patch for definitions.
Eventually we will get morph to handle this for us during merge, but for now we
need explicit merge requests for both chunks and the associated definition
changes.
Submitters: Please try not to forget to provide an indication of what needs
changing in definitions (if not a patch)
Reviewers: Reject a patch series if it cannot go live due to a lack of
definitions changes. (Note, not every change is to something *in*
Baserock, e.g. baserock-chroot clearly doesn't need a definitions
change).
Mergers: DO NOT MERGE without a definitions change. When you have merged the
definitions change, *VERIFY* that the ref: fields are SHA1s (and correct)
and that the unpetrify-ref hasn't changed. It's worth remembering that
no matter the definitions provided by the submitter, the merger will likely
generate a different commit SHA1 due to name differences etc. use the SHA1
created during your merge, not any SHA1 provided by the submitter.
We'll review this as we go, but please please be aware of this need for now.
D.
--
Daniel Silverstone http://www.codethink.co.uk/
Lead Architect GPG 4096/R Key Id: 3CCE BABE 206C 3B69
9 years, 8 months
[PATCH 0/6] Add system morphologies for chroot devel systems
by Adam Coldrick
Repo: git://git.baserock.org/baserock/baserock/definitions
Ref: baserock/adamcoldrick/chroot-devel-systems
SHA1: 2ebb28aaacfe8c4f76779561deb34187642996a4
Target: master
Hi,
This patch series adds some system morphologies for small devel systems
to be used in a chroot.
Adam Coldrick (6):
Add system morphology for small x86_64 devel system for a chroot
Add system morphology for small x86_32 devel system for a chroot
Add system morphology for small ppc64 devel system for a chroot
Add system morphology for a small armv7l devel system for a chroot
Add system morphology for a small arm7b devel system for a chroot
Add system morphology for a small arm7lhf devel system for a chroot
devel-system-armv7-chroot.morph | 16 ++++++++++++++++
devel-system-armv7b-highbank-chroot.morph | 16 ++++++++++++++++
devel-system-armv7lhf-highbank-chroot.morph | 16 ++++++++++++++++
devel-system-ppc64-chroot.morph | 17 +++++++++++++++++
devel-system-x86_32-chroot.morph | 17 +++++++++++++++++
devel-system-x86_64-chroot.morph | 17 +++++++++++++++++
6 files changed, 99 insertions(+)
create mode 100644 devel-system-armv7-chroot.morph
create mode 100644 devel-system-armv7b-highbank-chroot.morph
create mode 100644 devel-system-armv7lhf-highbank-chroot.morph
create mode 100644 devel-system-ppc64-chroot.morph
create mode 100644 devel-system-x86_32-chroot.morph
create mode 100644 devel-system-x86_64-chroot.morph
--
1.7.10.4
9 years, 8 months