Hi,
based on Sammy's work I've set up another Azure build matrix behind a nice url:
https://dev.azure.com/gentoo-prefix/ci-builds/_build
This does bootstrap Gentoo Prefix (using self hosted Windows Server
build agents for the long running Cygwin builds) in all these setups:
---------------------+---------------+---------------+
| Prefix | RAP |
64bit OS | 64bit | 32bit | 64bit | 32bit |
---------------------+-------+-------+-------+-------+
Fedora current | yes | yes | yes | yes |
Fedora 28 | yes | yes | yes | yes |
OpenSUSE current | yes | yes | yes | yes |
Ubuntu current | - | - | yes | yes |
Ubuntu 16.04 | - | - | yes | yes |
MacOS current | yes | - | - | - |
Cygwin Server 2012R2 | yes | - | - | - |
Cygwin Server 2016 | yes | - | - | - |
Cygwin Server 2019 | yes | - | - | - |
---------------------+-------+-------+-------+-------+
One Cygwin agent on Windows Server 2019 also does submit results to
http://bootstrap.prefix.bitzolder.nl/results/
Uploading docker images with bootstrapped /tmp/gentoo Prefix I'm happy
to leave up to Sammy's jobs still.
Thanks!
/haubi/
On 11/26/18 5:02 AM, Sam Pfeiffer wrote:
> Hello,
>
> First, let me apologise if I have any wrong preexisting ideas/guesses about
> Gentoo Prefix and how it is developed. Secondly, sorry if this email is a bit
> too long.
>
> I'll present myself, explain my use-case and my troubles and tricks, and then
> ask for feedback.
>
> Hello, I'm Sammy Pfeiffer. I am a PhD student at University of Technology
> Sydney. I'm a (software) robotics engineer pursuing my PhD in a lab with a
> bunch of different robots and machine learning setups. I'm using Gentoo
> Prefix for deploying a big bunch of software into robots where the OS is old
> and frozen (and also to deploy in computation farms experiments... once again
> with no option to touch the OS). (The bunch of software is ROS, the 'Robotics
> Operating System' which has a ton of dependencies, and there is an existing
> overlay which I'm helping on maintaining and improving
> (https://github.com/ros/ros-overlay)).
>
> I'd like to share the trick I found to overcome a few annoying bits of my
> platforms:
> * I have no root access in the machines I need to deploy.
> * The machines don't have Docker installed (too old kernel anyways).
> * I have 32 bit and 64 bit machines (the OS running in them is).
> * I have a different username (and home folder) on each machine.
> * Each machine has a different disk(s)/partition(s) structure (main issue
> here is that I may need to use a different disk to store my data, cause of
> size constrains).
>
> The trick to be able to use Gentoo Prefix with all these constraints
> bootstrapping it only once is to set the EPREFIX to /tmp/gentoo.
> Then you can deploy the full bootstrapped system in any folder/disk and just
> do a softlink to /tmp/gentoo. This works nicely (I was scared of the softlink
> breaking stuff somewhere, but it was alright).
> The other trick is to bootstrap a 32bit Gentoo Prefix, which can be run in
> any 32b or 64b box (it's not ideal but simplifies my deployment currently).
>
> Also, having all these machines use the same Gentoo Prefix in the same place,
> with the same 32bit compilation, I can setup a binary package server, which
> all the deployments can point to and just get all the packages skipping the
> long compilation times (specially in very old and low powered machines).
>
> The final trick I'm experimenting with is to use a set of Docker images (and
> soon in a continuous integration environment) to bootstrap all the system.
> With that I can save snapshot of successfully built systems & packages to
> serve as an easy deployment (and easy installation of extra packages thru the
> binary package server).
>
> Given my particular annoyance of the 32bit system (and noting that my hosts
> are 64bits, as is the standard nowadays) I found that I can use either:
> * https://github.com/docker-32bit/ubuntu a 32bit Ubuntu Docker image
> * https://github.com/gentoo/gentoo-docker-images stage3-x86 32bit Gentoo
> Docker image
>
> And then execute the build step of Docker with:
>
> setarch i686 docker build -t my_bootstrapping_gentoo_prefix_32b_image .
>
> Which will trick any program trying to do uname -m to assume 32bit machine.
> (Previously I used the variable CHOST=i686-pc-linux-gnu for bootstrapping,
> but I found some problems, which didn't appear with this method).
>
> Once I have all this setup working nicely, I'd like to trigger rebuilds every
> X time, and on changes on main players (or all dependencies actually) of my
> setup, like the bootstrapping of Gentoo Prefix (Ideally, on every change of a
> part of the system just trigger a rebuild from that point on, Docker layers
> make this possible).
>
> With Azure announcing unlimited minutes on CI/CD for open source projects:
> https://azure.microsoft.com/en-us/blog/announcing-azure-pipelines-with-unlimited-ci-cd-minutes-for-open-source/
>
> Even bootstrapping Gentoo prefix, with pieces of software like gcc taking
> very long to compile, is possible.
>
> The point is: I have been trying to build Gentoo Prefix during the last days
> after a few months of break since the last time I touched the system. And
> it's failing. I haven't managed yet to bootstrap it completely. I feel there
> is no CI/CD setup to catch these issues and be able to offer a working
> version of Gentoo Prefix at any time.
>
> I was going to build it for myself (cause I need it), but instead, I'd like
> to offer my help to build it for the community. At least offer as an option
> ready-to-use /tmp/gentoo EPREFIX'ed built Gentoo Prefix from a Docker image,
> just copy the full folder structure, do the softlink, and you are ready to
> play with Gentoo. If you mess up anything, just re-deploy.
>
> To do this I'd need a bit of help as I'm quite new to Gentoo and I tend to
> get blocked on little issues that take a while to google or debug (specially
> with the long compilation times of the bootstrap and some big packages).
>
> I've posted a short issue in the Docker repo of Gentoo images about this
> (https://github.com/gentoo/gentoo-docker-images/issues/62) but I think the
> maintainers probably don't usually work with Gentoo Prefix.
>
> Thank you very much for your time, and for your open source efforts.
>
> --
> *
> *
> *Sammy Pfeiffer*
> PhD Candidate at The Magic Lab within UTS.