*** seb__ has joined #baserock | 02:57 | |
*** seb__ has quit IRC | 03:13 | |
* paulsher1ood reviews and merges https://gerrit.baserock.org/#/c/754/ - but nothing seems to happen at g.b.o | 03:28 | |
*** seb__ has joined #baserock | 04:25 | |
*** seb__ has quit IRC | 04:33 | |
paulsher1ood | gobject-introspection seems busted in master (i noticed first in ybd, then in morph, and then on mason... how dumb am i?) | 05:24 |
---|---|---|
* paulsher1ood notices the eventual arrival of libfaketime at g.b.o | 05:25 | |
*** seb__ has joined #baserock | 05:27 | |
*** seb__ has quit IRC | 05:52 | |
straycat | paulsher1ood, we agreed as a group not to merge that | 06:40 |
straycat | so that's pretty darn irritating | 06:40 |
straycat | 16:28 +pedroalvarez$ tlsa: I wonder if you can use "https://github.com/wolfcw/libfaketime.git" in your definitions and wait | | 06:42 |
straycat | for the lorry once you have something ready | | 06:42 |
straycat | 16:28 tlsa$ can do | 06:42 |
straycat | so there was totally no need for this | 06:42 |
*** mike has joined #baserock | 06:49 | |
*** mike is now known as Guest51560 | 06:49 | |
straycat | so, i have reverted the change and destroyed delta/libfaketime. looking at the log i realise the irc discussion should have been recorded in the change and perhaps that's what led to this misunderstanding. | 06:52 |
*** zoli__ has joined #baserock | 07:04 | |
*** seb__ has joined #baserock | 07:38 | |
paulsher1ood | straycat: sorry. i saw that the change was in review, and had +2 already | 07:38 |
* paulsher1ood believes that +2, was enough to merge it, and no-one -1d the change, so reverting and destroying was not necessary | 07:39 | |
*** a1exhughe5 has joined #baserock | 07:39 | |
straycat | ahh okay, someone should have recorded the result of the discussion in the change really | 07:39 |
paulsher1ood | but this is an unusual situation, which hasn't arisen before i think | 07:39 |
paulsher1ood | in any case i think we'll need libfaketime :) | 07:40 |
paulsher1ood | straycat: but thanks for being pro-active! | 07:40 |
straycat | possibly well, but best to be sure first, similarly i almost sent requests for some perl modules then decided to leave it for a bit, and it turns out i didn't need them | 07:44 |
straycat | *wil | 07:45 |
straycat | *will >.> | 07:46 |
SotK | jjardon: oops, I thought I'd changed install-essential-files to point at the right place :/ | 07:50 |
* SotK wonders how to make YBD deploy rather than build | 07:51 | |
* paulsher1ood is ready to +1 any patch that fixes that without reverting the tidyup | 07:51 | |
paulsher1ood | SotK: give it a cluster instead of a system file? | 07:51 |
paulsher1ood | (used to work) | 07:51 |
* paulsher1ood might have broken it, hasn't tested in a couple of weeks | 07:52 | |
SotK | hmm, looks like I did change install-essential-files | 07:52 |
SotK | (I saw the same error as jjardon in the first test of the idea I was doing, but pointing to install-files/essential-files/manifest fixed it) | 07:54 |
SotK | paulsher1ood: I ran `ybd clusters/test.morph x86_64`, but nothing seems to have been deployed | 07:55 |
SotK | I'll investigate further | 07:55 |
*** bashrc_ has joined #baserock | 08:03 | |
SotK | aha, deploy() returns if there is no 'systems' key in the dict it is passed, so nothing will ever actually get deployed | 08:09 |
*** jonathanmaw has joined #baserock | 08:13 | |
*** mariaderidder has joined #baserock | 08:16 | |
*** seb__ has quit IRC | 08:18 | |
*** CTtpollard has joined #baserock | 08:21 | |
*** CTtpollard has quit IRC | 08:29 | |
*** CTtpollard has joined #baserock | 08:29 | |
*** franred has joined #baserock | 08:32 | |
*** tlsa has quit IRC | 08:34 | |
*** rjek has quit IRC | 08:34 | |
*** Kinnison has quit IRC | 08:34 | |
SotK | now to figure out why install-essential-files is broken :) | 08:39 |
*** Kinnison has joined #baserock | 08:39 | |
*** gary_perkins has joined #baserock | 08:41 | |
*** rjek has joined #baserock | 08:42 | |
*** ssam2 has joined #baserock | 08:49 | |
*** ChanServ sets mode: +v ssam2 | 08:49 | |
pedroalvarez | OK, systemd 220 fully tested | 08:50 |
Kinnison | nice | 08:54 |
*** edcragg has joined #baserock | 08:54 | |
franred | pedroalvarez, thanks for that | 08:54 |
*** gan has joined #baserock | 08:55 | |
*** Krin has joined #baserock | 09:05 | |
* SotK is an idiot | 09:06 | |
*** lachlanmackenzie has joined #baserock | 09:14 | |
SotK | not as much as I first thought actually, but still | 09:14 |
rjek | Just an idi now? | 09:15 |
SotK | yes | 09:15 |
rjek | :) | 09:15 |
SotK | the problem is that install-essential-files tries to call install-files based on the location of the install-essential-files script | 09:16 |
SotK | that worked fine when they were both in morphlib, but morph creates a temporary version of the script if its in definitions before it runs it to set permissions nicely (and historically be able to use scripts from a cached git repo) | 09:17 |
SotK | so install-essential-files tries to call `/tmp/install-files.configure`, which doesn't exist | 09:18 |
* SotK prepares a patch | 09:22 | |
* SotK sends https://gerrit.baserock.org/764 | 09:25 | |
radiofree | does morph build basercok aarch64 on aarch64 currently? | 09:46 |
Kinnison | We don't currently have any armv8l64 systems IIRC | 09:46 |
Kinnison | it *used to* | 09:46 |
Kinnison | but that was back around mid Feb | 09:46 |
ssam2 | systemd merge has broken definitions: https://mason-x86-64.baserock.org/ | 09:48 |
richard_maw | it'll be old kernel headers | 09:49 |
ssam2 | seems to be gobject-introspection that's failing to build | 09:49 |
richard_maw | oh, it isn't | 09:49 |
richard_maw | hm, it could possibly be the bison change, we're getting warnings related to code generation | 09:51 |
richard_maw | though: "ERROR: can't resolve libraries to shared libraries: gobject-2.0, glib-2.0" suggests someone may have merged the change to move glibc out of foundation or something | 09:53 |
SotK | gobject-introspection seemed to stop building once the bison change was merged | 09:55 |
* richard_maw is checking sha1s himself to verify | 09:56 | |
pedroalvarez | phew, I tested systemd change carefully | 09:59 |
richard_maw | yep, definitely the Bison change | 10:00 |
richard_maw | rdale_: ^ | 10:00 |
richard_maw | we've had bison eat itself over version numbers before | 10:02 |
jjardon | old version of systemd builds fine with the rdale_ change though | 10:08 |
radiofree | rdale_: do all of our qt trove url's need to be updated now? | 10:11 |
radiofree | since they've moved to gitlab now | 10:12 |
radiofree | actually have they moved to gitlab? | 10:12 |
richard_maw | jjardon: not according to mason | 10:12 |
radiofree | no they've moved to code.qt.io | 10:13 |
radiofree | what's the procedure for changing url's in trove config files? | 10:13 |
richard_maw | jjardon: it was failing to deploy before, but looking at the logs, it fails in gobject introspection before that other failure | 10:13 |
Kinnison | radiofree: prepare a patch, submit it to gerrit | 10:14 |
richard_maw | jjardon: so it's provably *not* the systemd change that broke things | 10:14 |
radiofree | Kinnison: yeah, but i mean do i just patch the existing json files with the new repo url? | 10:14 |
Kinnison | providing they're the same history, yep | 10:14 |
jjardon | really? I think I built several systems yesterday after the rdale_ change. Let me recheck | 10:16 |
jjardon | SotK: thanks for the quick fix! :) | 10:18 |
SotK | no problem, sorry I broke it | 10:18 |
radiofree | Kinnison: i'm not sure, branches have been deleted by the looks of it | 10:21 |
Kinnison | deleted branches are okay | 10:22 |
Kinnison | so long as the stuff we rely on hasn't been expunged from history | 10:22 |
radiofree | is there a way to test whether or not this is going to totally bugger everything up without manually checking a million qt repos? | 10:23 |
jjardon | strange then, I can build a base system fine here using this commit of definitions http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/commit/?id=7c2bfac98e93e42ffcb23e0d43aee8f3d2c01c69 should we condifer this a bug of morph? | 10:24 |
Kinnison | radiofree: sadly I don't think so, | 10:24 |
jjardon | ah, neverming, I was building my "split-glib" branch instead. | 10:27 |
richard_maw | jjardon: in which case the base system may not even include gobject-introspection | 10:29 |
jjardon | richard_maw: yes, but I built a weston system as well that definelety includes g-i | 10:30 |
richard_maw | hm, weird | 10:31 |
richard_maw | well currently I don't know why the bison change could cause it to break | 10:31 |
richard_maw | I'm currently investigating whether it's ignoring .tarball-version or something | 10:32 |
pedroalvarez | Has anyone reproduced the problem? | 10:32 |
*** tlsa has joined #baserock | 10:32 | |
jjardon | I think the root problem here is the use of this to generate the bison version: it expect to have access to git if its not a tarball: m4_esyscmd([build-aux/git-version-gen .tarball-version] | 10:35 |
richard_maw | jjardon: hence why we create .tarball-version | 10:35 |
paulsher1ood | reproduced the build problem, pedroalvarez ? yes i have | 10:36 |
paulsher1ood | sorry, i may be missing the discussion here | 10:37 |
pedroalvarez | the build problem that Mason is currently having | 10:38 |
paulsher1ood | 06:24 < paulsher1ood> gobject-introspection seems busted in master (i noticed first in ybd, then in morph, and then on mason... how dumb am i?) | 10:38 |
paulsher1ood | ? | 10:38 |
pedroalvarez | that one | 10:39 |
pedroalvarez | paulsher1ood: sorry I missed that :) | 10:39 |
paulsher1ood | np - is there anything i can do to help? build log for exmaple? | 10:39 |
paulsher1ood | http://paste.baserock.org | 10:40 |
richard_maw | I'm just looking at the build log from mason now | 10:42 |
richard_maw | it's definitely got 3.0.2 for the version | 10:42 |
richard_maw | the only other change I particularly notice is that we don't run the bootstrap script with bash any more | 10:44 |
* SotK sends a pull request to ybd | 10:45 | |
Kinnison | ruhroh | 10:46 |
paulsher1ood | Kinnison: why? so far i've not rejected a single PR :) | 10:54 |
paulsher1ood | SotK: do i need to test this, or will it 'just work' ? :) | 10:54 |
pedroalvarez | haha | 10:57 |
paulsher1ood | merged | 10:58 |
SotK | paulsher1ood: It works for me :) | 11:00 |
SotK | thanks | 11:00 |
paulsher1ood | :-) | 11:01 |
paulsher1ood | SotK: which cluster(s) have you mainly tested with? | 11:01 |
SotK | paulsher1ood: a test cluster which deploys a tarball of a build-system | 11:03 |
*** zoli__ has quit IRC | 11:03 | |
paulsher1ood | SotK: have you tried a self-upgrade? | 11:05 |
paulsher1ood | SotK: no testing against any of the clusters in master? | 11:06 |
pedroalvarez | a test suite would be great :) | 11:07 |
SotK | paulsher1ood: I didn't want to spend ages building everything | 11:08 |
SotK | paulsher1ood: no, but I don't think anything I've changed should affect upgrades? | 11:08 |
SotK | not in a way thats different to how it affects normal deployments anyway | 11:09 |
*** Guest51560 has quit IRC | 11:16 | |
*** Guest51560 has joined #baserock | 11:30 | |
* jjardon sent https://gerrit.baserock.org/#/c/765/ to fix the bison problem | 11:53 | |
richard_maw | I haven't yet worked out how using sh rather than bash could cause it to break like that | 11:57 |
richard_maw | jjardon: have you tested this change? | 11:57 |
jjardon | richard_maw: only in a base system, Im buildind a weston one now | 11:58 |
richard_maw | and you reproduced it failing without this change? | 11:59 |
pedroalvarez | jjardon: didn't they build for you before even with this change? | 11:59 |
jjardon | richard_maw: yes | 11:59 |
rdale_ | i tested building shadow with bison and it worked, and so i assumed bison was ok | 11:59 |
*** gan has quit IRC | 12:00 | |
Kinnison | So you didn't run a full set of build tests? | 12:01 |
* pedroalvarez facepalms | 12:01 | |
richard_maw | There's no particularly obvious bashisms in the bootstrap script of bison. trap's not 100% portable across all shells, but it appears to be doing the most portable form, and there can be incompatibilities in the result of failing to source a file, but they guard against its existance. | 12:07 |
richard_maw | jjardon: I'm not saying it's not because of sh vs bash, just that I'm puzzled as to how the difference causes it to break | 12:08 |
rdale_ | what is the error when building g-o ? | 12:08 |
richard_maw | rdale_: https://mason-x86-64.baserock.org/log/7c2bfac98e93e42ffcb23e0d43aee8f3d2c01c69--2015-06-02%2015:30:27.log | 12:09 |
jjardon | richard_maw: yeah, Im not sure what root cause is neither, but I though useful to quickly fix the breackage, then continue investigatin | 12:09 |
*** Guest51560 has quit IRC | 12:10 | |
*** zoli__ has joined #baserock | 12:10 | |
*** zoli___ has joined #baserock | 12:11 | |
richard_maw | rdale_: generally /usr/include/glib-2.0/glib/glib-autocleanups.h appears to be broken | 12:12 |
richard_maw | jjardon: ooh, I had a thought. It _could_ be an indirect dependency change, since now something depended on bison now doesn't implicitly depend on bash | 12:13 |
richard_maw | though it could be a broken scannerparser.h | 12:13 |
jjardon | richard_maw: yeah, true | 12:13 |
Zara | hm, noticed that the magnifying glass on the baserock wiki search bar doesn't function as a button; in most search bars they function the same as 'enter'. is there any way we can fix that? | 12:15 |
* jjardon repeats again: he would like explicit dependencies :) | 12:15 | |
*** zoli__ has quit IRC | 12:15 | |
* richard_maw repeats that it's not as simple as that | 12:15 | |
* rjek repeats the onion from his lunch | 12:16 | |
jjardon | yep, I think the problem probably is in the scannerparser.h though | 12:16 |
* jjardon just realized how tidy http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/ looks | 12:18 | |
*** Guest51560 has joined #baserock | 12:22 | |
pedroalvarez | I noticed that libvirt generates a default network by default (/etc/libvirt/qemu/networks/default.xml). I wonder if makes sense to not create it. | 12:35 |
Kinnison | perhaps just ensure it's created but not set to autostart? | 12:36 |
pedroalvarez | that's another option | 12:36 |
rdale_ | the bison bootstap script has '#! /bin/sh' at the top of it | 12:38 |
richard_maw | rdale_: doesn't mean it supports busybox sh | 12:38 |
rdale_ | ok | 12:39 |
richard_maw | a lot of systems have /bin/sh -> /bin/bash, which leads some build systems to assume it | 12:39 |
paulsher1ood | jjardon: yes it's lovely and tidy now... let's keep it that way :) | 12:40 |
* paulsher1ood proposes to change 'strata' to 'layers' | 12:41 | |
paulsher1ood | i'll get my coat :) | 12:42 |
richard_maw | paulsher1ood: stop trolling #baserock | 12:42 |
jmacs | +1 from me | 12:42 |
* SotK would find layers more confusing than strata | 12:42 | |
rjek | Let's call them 'meta packages' | 12:42 |
* rjek runs for the hills. | 12:42 | |
straycat | i think we should use locallycompact's naming scheme | 12:42 |
rjek | straycat: jake, finn, ice king? | 12:43 |
straycat | no, we just call everything a leaf | 12:43 |
straycat | leaves can have other leaves ofcourse | 12:43 |
jmacs | Just like on real plants, but unlike that. | 12:44 |
straycat | jmacs gets it | 12:44 |
rjek | reticulation nodes. | 12:45 |
DavePage | rjek: Splines? | 12:45 |
rjek | Don't be silly, DavePage. | 12:45 |
paulsher1ood | SotK: any chance you could test deploy with some clustes from master? | 12:47 |
pedroalvarez | Kinnison: looking at how others install libvirt, they remove the autostart symlink | 12:48 |
pedroalvarez | Kinnison: so it might be the best solution for us as well | 12:49 |
SotK | paulsher1ood: not right now really, I'll set one building/deploying this evening though | 12:49 |
Kinnison | pedroalvarez: nod. | 12:50 |
straycat | https://gerrit.baserock.org/#/c/751/ is a pretty trivial change, can anyone look at it? | 12:55 |
Kinnison | What is it to be used with? | 12:56 |
Kinnison | i.e. when would that be called with unshare=False ? | 12:56 |
straycat | with the import tool | 12:56 |
Kinnison | Well, it looks plausible | 12:57 |
Kinnison | what testing have you done? | 12:57 |
straycat | i ran the import tool as non-root on my debian box | 13:00 |
straycat | as well as running all the usual tests | 13:01 |
Kinnison | are the "usual tests" including normal deployments? | 13:01 |
straycat | ./check | 13:01 |
* Kinnison is not currently au-fait with that -- does it include deployments? | 13:01 | |
SotK | Kinnison: There are yarns for testing deployment, yes | 13:04 |
Kinnison | okay | 13:04 |
Kinnison | then you can have my +1 | 13:04 |
straycat | thanks | 13:08 |
tlsa | for deterministic builds, one of the things we need is constant time. | 13:16 |
tlsa | we can either do that in definitions (for chunks that need it) or in the tool (morph/ybd) | 13:16 |
tlsa | if its in definitions, we need to test each chunk, and keep on top of it for chunk updates. | 13:16 |
straycat | tool approach seems better to me | 13:16 |
tlsa | so I'd prefer to do it in the tool, as part of an environment sanitisation step. | 13:16 |
tlsa | yep | 13:16 |
tlsa | but I'm not sure if there would be any unwillingness to have to tools to this sort of magic. | 13:16 |
Kinnison | tlsa: My concern would be if you are using the tool to build something other than a Linux system | 13:16 |
tlsa | hmm, good point | 13:17 |
straycat | so we need to be able to set something in definitions to enable/disable morph/ybd from using libfaketime? | 13:18 |
tlsa | seems like a very specific option | 13:19 |
tlsa | which I generally don't like | 13:19 |
* richard_maw has data for stripped vs unstripped on a base system: 728M rootfs tarball without stripping, 605M rootfs tarball with stripping | 13:20 | |
Kinnison | so ca. 20% saved | 13:20 |
richard_maw | and it's not even a completely ELF-binary dominated system | 13:21 |
straycat | ssam2, biff | 13:26 |
* SotK has another merge commit which needs reviewing; this time bringing in writeexts.py and its history | 13:31 | |
richard_maw | moving writeexts.py to definitions.git‽ | 13:33 |
SotK | yes, so that the write extensions can use the code which is in it without needing to depend on all of morphlib | 13:34 |
richard_maw | oh, I thought you were doing that by putting the common code into the write extensions, rather than defining a manner for write extensions to share code | 13:34 |
SotK | I could do that, but it seems like it would cause unwanted duplication | 13:35 |
straycat | are we sure it makes sense to move the write extensions into definitions? | 13:41 |
SotK | straycat: Why doesn't it? | 13:42 |
rdale_ | i've configured 4 versions of bison with sh and bash, and again with git using both sh and bash | 13:42 |
straycat | SotK, because they're the build tool's means of deploying systems? | 13:42 |
rdale_ | and i can't see any differences when sh and bash are used without git | 13:42 |
SotK | straycat: there were already some write extensions in definitions though, and many configure extensions? | 13:43 |
tlsa | in morphlib/buildenvironment.py, LD_PRELOAD is one of the environment vaiables that morph copies from the original environment | 13:47 |
tlsa | what's that used for? | 13:47 |
tlsa | (if its used, then maybe I can't trample it) | 13:47 |
Kinnison | You should never trample LD_PRELOAD anyway | 13:49 |
Kinnison | you should always carefully add to it | 13:49 |
straycat | SotK, okay | 13:50 |
tlsa | Kinnison: I'm just surprised that its a whitelisted one, and wondering why | 13:50 |
Kinnison | Possibly for hand-bootstrapping stuff | 13:51 |
Kinnison | any hint in annotate? | 13:51 |
tlsa | no | 13:52 |
ssam2 | tksa: this overlaps a bit with something I'm doing: i'm currently looking at building with 'fakeroot' | 13:53 |
tlsa | ok | 13:53 |
ssam2 | which ties into a bigger task I have of moving the sandboxing code from ybd / morph into a separate library | 13:53 |
tlsa | right | 13:53 |
ssam2 | i'm thinking that the sandboxing library is a good place to deal with 'fakeroot' as well | 13:53 |
ssam2 | maybe it could deal with libfaketime too | 13:53 |
tlsa | perryl and I are looking at setting up environment to get deterministic builds out | 13:54 |
ssam2 | right | 13:54 |
tlsa | so things like faketime, for consistent time acros builds, and we'll need a way to make a fixed fake hostname | 13:54 |
ssam2 | i'm a bit worried about code that depends on LD_PRELOAD, but I'm not sure what else we can do for these sorts of things | 13:55 |
richard_maw | tlsa: patch linux-user-chroot to allow setting the hostname in a new CLONE_NEWUTS namespace? | 13:55 |
tlsa | and setting timezone, and locale consistently | 13:55 |
ssam2 | it does mean that the system running the build will need to use a libc that is ABI-compatible with the thing being built... | 13:55 |
ssam2 | which seems like it won't always be true | 13:55 |
tlsa | hmm | 13:56 |
ssam2 | tlsa: timezone and locale should be fine as environment variables | 13:56 |
ssam2 | but libfaketime is an awkward one | 13:56 |
tlsa | yeah | 13:56 |
ssam2 | as is fakeroot | 13:56 |
richard_maw | we've got some bits of build-essential that are statically linked, so LD_PRELOAD won't work anyway | 13:56 |
richard_maw | for reproducible builds fixing time we can patch around the awkward ones | 13:57 |
richard_maw | but for general purpose builds we don't want to have to patch everything | 13:57 |
ssam2 | the alternative for libfaketime is add it to builds /inside/ the sandbox | 13:57 |
ssam2 | which has its own issues... | 13:57 |
richard_maw | so I think we should build libfaketime inside the sandbox and set LD_PRELOAD, yesh | 13:57 |
ssam2 | on the plus side, if it's built inside the sandbox then I don't have to worry about it conflicting with what I'm looking at ;) | 13:58 |
richard_maw | I think we'll probably need to build libfaketime at least twice anyway, for LD_PRELOADing before the switch from bootstrap mode to staging mode, and after | 13:58 |
ssam2 | the only other approach I can think of is a bit of a wacky one, inspired by https://lwn.net/Articles/644675/ | 13:59 |
ssam2 | which is that we run each build in its own VM, where we can make the clock always report the same time ;) | 13:59 |
ssam2 | that would also mean there's no need for 'fakeroot' | 14:00 |
ssam2 | but, i don't think it would be quick to implement! | 14:00 |
richard_maw | ssam2: :) yeah | 14:00 |
tlsa | what if I made morphlib/buildsystem.py's BuildSystem __getitem__ prepend "faketime -f '2015-01-01 00:00:00' " as a short term hack for testing? Should that work? | 14:01 |
ssam2 | i can't predict whether or not that will work | 14:01 |
paulsher1ood | tlsa: if you mean will it run the faketime, i think so | 14:02 |
richard_maw | only for stuff that doesn't set its own commands | 14:02 |
* straycat imagines it couldn't work at the stages where we haven't built faketime | 14:02 | |
paulsher1ood | +1 | 14:02 |
richard_maw | straycat: you'd have to build libfaketime in stage2 of the bootstrap | 14:02 |
straycat | and prior to that rely on the host? | 14:03 |
richard_maw | straycat: if you build it sufficiently early in the stage1 bootstrap you'd probably be ok without needing it there too, provided you could override it to not attempt to faketime itself | 14:04 |
* richard_maw assumes faketime is sane enough to not build in timestamps | 14:04 | |
paulsher1ood | would it be possible to leave faketime out of the targets, while having it in build-essential? | 14:05 |
richard_maw | paulsher1ood: yes, with artifact splitting | 14:06 |
ssam2 | i've been wondering recently if we should separate out "build environment" from "system being built" completely | 14:06 |
ssam2 | it's not a panacea at all | 14:07 |
paulsher1ood | that would be great if i'ts possible? | 14:07 |
tlsa | faketime is simply a wrapper program that sets a bunch of environment variables which tell libfaketime how to behave and what time to set, and sets up LD_PRELOAD | 14:07 |
ssam2 | paulsher1ood: the issue I thought of with it is that we still need to bootstrap the build environment somehow | 14:07 |
ssam2 | and if we care just as much about that being reproducible, buildable as non-root, etc. then we're not much better off | 14:08 |
ssam2 | but, maybe it's worth pursuing | 14:08 |
paulsher1ood | ssam2: yup. i'm assuming we can't get stage1 to be bit-for-bit | 14:08 |
paulsher1ood | (maybe we can't get anything to be b4b, but i live in hope :-) | 14:08 |
paulsher1ood | i think all of build-essential is already reproducible, though? | 14:09 |
paulsher1ood | where reproducible is a much more vague term :) | 14:09 |
ssam2 | i meant bit-for-bit when I said reproducible | 14:09 |
paulsher1ood | ack | 14:09 |
paulsher1ood | can we call it b4b to save typing? | 14:09 |
richard_maw | I've got a full keyboard, I have no need to abbreviate. | 14:10 |
tlsa | paulsher1ood: I tested with two minimal system builds on different VMs yesterday. We're already bit-for-bit for most of the files on the system: https://www.diffchecker.com/26afjlzl | 14:10 |
tlsa | that's with different times, and different hostnames | 14:10 |
tlsa | same baserock version used to do the build | 14:10 |
paulsher1ood | tlsa: WOW! :-) | 14:12 |
* paulsher1ood dances a jig, does a back somersault giggling like a mad thing and falls flat on his face :-) | 14:13 | |
robtaylor | nice :) | 14:13 |
ssam2 | that is a surprise. cool! | 14:17 |
Kinnison | minimal system is a good start | 14:17 |
Kinnison | It'd be nice to know what sort of ratio we're at with a base system | 14:18 |
Kinnison | though with libm differing, it might behoove us to sort that first | 14:18 |
ssam2 | nice visualisation tool as well | 14:19 |
rdale_ | i've just built bison and g-o with the busybox sh running bootstrap, but with a dependency on bash and git for the bison chunk, and it worked | 14:19 |
richard_maw | rdale_: ok, it sounds like stuff depending on bison required bash without it being explictly declared then | 14:20 |
ssam2 | hmm, a more robust alternative to 'fakeroot' might be a FUSE filesystem that did the equivalent of what 'fakeroot' does | 14:26 |
ssam2 | that would mean we don't depend on LD_PRELOAD | 14:26 |
ssam2 | I'll see how I fare with 'fakeroot' first though | 14:26 |
robtaylor | i recall lars suggesting something like that once | 14:26 |
* richard_maw doesn't | 14:27 | |
robtaylor | richard_maw: you're right, i misremember. I'm thinking of the chunk-expanding fuse filesystem. | 14:28 |
Kinnison | a fuse FS won't help you | 14:28 |
Kinnison | if the kernel blocks the syscall | 14:28 |
robtaylor | good point | 14:29 |
ssam2 | Kinnison: ah, right | 14:31 |
rjek | qemu! | 14:31 |
ssam2 | i suggested that about 5 minutes ago ;) via https://lwn.net/Articles/644675/ | 14:32 |
* richard_maw just ran some numbers on reducing the target system size | 14:34 | |
richard_maw | https://www.diffchecker.com/9vghl9uz is a diff to visualise it | 14:34 |
richard_maw | I haven't yet gotten around to not including debug symbols on the target system except for the minimal system | 14:35 |
richard_maw | but I save 120MB of the size of the base system | 14:35 |
richard_maw | with cumulatively 11 lines of code added to morph | 14:35 |
richard_maw | and if I'd done it entirely in definitions.git, it would have added ~700 lines of code | 14:36 |
richard_maw | though I'm still puzzled at some of the diff result | 14:39 |
paulsher1ood | richard_maw: can we see the 11 lines? | 14:43 |
richard_maw | paulsher1ood: I'll push the series for review after I've sanitised some commit messages. But in the meantime | 14:45 |
richard_maw | 11 files changed, 463 insertions(+), 788 deletions(-) | 14:45 |
richard_maw | morphlib/sourceresolver_tests.py | 336 -------------------------------------------------------------------- | 14:45 |
richard_maw | I excluded the test suite removal because it was too much like cheating | 14:45 |
paulsher1ood | :-) | 14:46 |
*** mariaderidder has quit IRC | 14:46 | |
richard_maw | oh, and the most revolting change: morphlib/sourceresolver.py | 689 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------- | 14:46 |
paulsher1ood | heh | 14:46 |
richard_maw | git thinks I pretty much rewrote the whole file because the diff is line based and is bad at reordering | 14:47 |
* pedroalvarez sends a patch to disable the autostart of the default network created by libvirt https://gerrit.baserock.org/#/c/769/ | 14:50 | |
richard_maw | Have https://gerrit.baserock.org/771 to https://gerrit.baserock.org/786 (16 patches) | 14:58 |
*** mariaderidder has joined #baserock | 15:00 | |
jjardon | ok, I updated https://gerrit.baserock.org/#/c/765/3 to the minimal patch I think is needed (g-i needs bash) | 15:01 |
richard_maw | jjardon: is this tested? | 15:02 |
tlsa | http://postimg.org/image/3mpyqbk23/full/ <-- that's the sort of thing that's different in libm builds | 15:02 |
jjardon | richard_maw: only as a base system, building a weston one now | 15:02 |
tlsa | looks like its due to morph's remp directroy creation being non-deterministic? | 15:03 |
tlsa | *temp | 15:03 |
rdale_ | jjardon: i've given 765 a +1 | 15:03 |
richard_maw | jjardon: if it works with base, it's probably ok | 15:04 |
Kinnison | tlsa: well, I wouldn't expect the tempdir names to be identical each time | 15:04 |
Kinnison | tlsa: But I also wouldn't expect it to reach the non-bootstrap components | 15:04 |
tlsa | I don't really know anything about the bootstrapping, or build stages | 15:07 |
* tlsa has managed to avoid those horrors until now | 15:07 | |
* Kinnison is surprised we're seeing tmpXXXXX names in the final built system | 15:08 | |
* tlsa too | 15:08 | |
Kinnison | since for properly sandboxed chunk builds we should see /foo.build/ and /foo.inst/ at most | 15:08 |
tlsa | yeah | 15:08 |
Kinnison | it'd be handy to know if that libm content is really from the real build or has somehow leaked from a bootstrap | 15:08 |
tlsa | its from the system artifact | 15:09 |
Kinnison | That certainly *shouldn't* have any bootstrap in it | 15:09 |
Kinnison | I really don't want to have to add a fourth layer to build-essential | 15:09 |
tlsa | I'll look at busybox and see if its the same issue there, or something else | 15:10 |
Kinnison | You need to find out *why* those non-isolated paths have managed to be baked in. | 15:10 |
tlsa | I'm using `xxd` to convert the binarys to hex and `vimdiff` to view, btw | 15:10 |
pedroalvarez | franred: biff re https://gerrit.baserock.org/#/c/769/ | 15:13 |
franred | pedroalvarez, ta | 15:13 |
franred | looks fine by me | 15:13 |
Zara | straycat: I tried testing change 768 and got 'unexpected keyword argument "separate_mount_namespace"'. suspect it may just be that my devel vm is a bit old; if so it might be worth saying what versions of baserock the change is compatible with in the commit. (I tried updating morph and my import tool but the error was still there) | 15:14 |
pedroalvarez | Kinnison: re - libvirt change, makes sense to put -f | 15:14 |
pedroalvarez | thanks for reviewing | 15:14 |
Kinnison | y/w | 15:14 |
SotK | Zara: did you set PYTHONPATH to your morph checkout when running the import tool? | 15:15 |
straycat | Zara, depends on current master | 15:16 |
straycat | (of morph) | 15:16 |
richard_maw | tlsa: those look like header search paths to me | 15:16 |
straycat | pedroalvarez, take it "default.xml in 769 is a symlink? | 15:17 |
pedroalvarez | straycat: it is | 15:17 |
Zara | yeah, I think I have the right morph; just cloned it (and my PYTHONPATH is set to that checkout in usr/bin/morph) | 15:17 |
pedroalvarez | straycat: should I note that in the commit message? | 15:18 |
straycat | Zara, then you also need to set PYTHONPATH when you run the import tool as SotK says | 15:18 |
SotK | Zara: you'll need to set PYTHONPATH either in the environment or when you run the import tool too | 15:18 |
tlsa | richard_maw: yeah | 15:18 |
straycat | pedroalvarez, doesn't bother me, just wanted to make sure :) | 15:18 |
Zara | okay, that's odd, didn't need to in the past! | 15:18 |
SotK | it will have been using the morph that was installed in your system rather than the git checkout then I imagine | 15:19 |
pedroalvarez | straycat: ok :) The default network is going to be there, but it's not going to autostart | 15:19 |
* straycat nods | 15:19 | |
tlsa | richard_maw: but I'm not sure how they get inside the sandbox | 15:19 |
Zara | seems to still be doing the same thing | 15:20 |
richard_maw | it is worrying, as those paths look like they are from stage2 of the bootstrap | 15:20 |
tlsa | libm doesn't show up in a grep of definitions | 15:20 |
tlsa | where does it come from? | 15:20 |
richard_maw | glibc | 15:20 |
paulsher1ood | tlsa: is that tmpXXXX stuff in ybd too? | 15:20 |
tlsa | paulsher1ood: I don't know, yet | 15:21 |
paulsher1ood | tlsa: ok, np | 15:21 |
*** a1exhughe5 has quit IRC | 15:29 | |
*** jonathanmaw has quit IRC | 16:57 | |
*** ssam2 has quit IRC | 16:58 | |
*** Krin has quit IRC | 16:58 | |
richard_maw | jjardon: has your build where you've included bash in the dependencies for gobject-introspection built as far as weston? | 16:59 |
franred | pedroalvarez, +2 to https://gerrit.baserock.org/#/c/769/3 - I think it was a minor change and you already have 3 +1s from previous versions | 17:00 |
pedroalvarez | oh, I didn't notice straycat's one | 17:00 |
pedroalvarez | thanks! | 17:00 |
richard_maw | jjardon: if you have, I'd like to record that in the comments, and vote | 17:01 |
jjardon | richard_maw: not yet, I will comment when it finish | 17:02 |
richard_maw | jjardon: ack | 17:03 |
*** bashrc_ has quit IRC | 17:04 | |
richard_maw | jjardon: given my plan would be to +2 and merge if you proved it worked, I'd be fine with you submitting it, if your testing proves it works | 17:04 |
jjardon | richard_maw: ok, its at 172/261 so its going to take a while | 17:05 |
*** Guest51560 has quit IRC | 17:06 | |
pedroalvarez | my devel system build, on arm, with that patch, succeded | 17:07 |
pedroalvarez | s/e/ee/ | 17:08 |
pedroalvarez | well, no | 17:08 |
pedroalvarez | i tested the bison one | 17:08 |
*** mariaderidder has quit IRC | 17:21 | |
*** gary_perkins has quit IRC | 17:38 | |
*** edcragg has quit IRC | 17:59 | |
*** ctgriffiths has quit IRC | 18:14 | |
*** lachlanmackenzie has quit IRC | 18:17 | |
*** ctgriffiths has joined #baserock | 18:27 | |
*** zoli___ has quit IRC | 21:12 | |
*** zoli__ has joined #baserock | 21:51 | |
*** zoli__ has quit IRC | 22:17 | |
*** zoli__ has joined #baserock | 22:18 | |
*** zoli__ has quit IRC | 22:24 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!