Re: gar2vcheck
William Immerman <[email protected]> Fri, 17 Feb 2006 08:16:54 -0500
| Newsgroups | gmane.linux.bbc.general |
|---|---|
| Message-ID | <[email protected]> |
Paul-- Absolutely I'd be interested in including the chroot(s), initially. I view this as a bootstrapping process: initially we'd make the build self-contained by packaging the chroot'ed build environments, but ultimately the build would be able to produce a chroot image or a virtualized image so that the entire process could occur from source. Kind of like compiler bootstrapping. As I said, if I recall the way things worked, we'd be fairly close to what I described as the ideal. Here are the things I remember being missing...maybe you can correct or update me: -- While a garchive could be used to locally aggregate most sources, some of the sources, particularly the internally developed ones, didn't have adequate versioning info to prevent aliasing a new version over an older version, so that if you had updated and then tried to build from an earlier copy of gar, you'd get some mismatched source, and the build would fail. My main objective here is that a user could check out any version of gar from the repository beginning with the earliest date of their garchive and as recent as their most recent addition to the garchive, and generate exactly the same output system each time. -- The system was not far from, but couldn't self host. Even though the sources included the development tools, the goals of the system were fixed at generating a bbc-sized image, and a bbc-like functionality. It seems to me that gar is much more general than that, and if it were parameterized properly could build a family of systems, all sharing a minimal core of packages, and all coming from a common package and build system set. At the minimum, the output might be suitable for a true embedded device, a small USB bootable device, etc. At some intermediate level, you'd see the minimal system necessary to self-host. At the higher end, there'd be full server or desktop systems based on the same technology. As I recall, part of what got in the way was the strict separation of building the build tools and building the target system. On the other hand, I remember a later trend toward treating the whole build as a cross-compile, allowing, in principle, any combination of host/target system. Is this right? I seem to recall that's when the project was bogging down....did that approach ever get finished? -- The info in the package meta-data and the info needed by vcheck are not precisely in synch, and gar2vcheck was a quick hack, just getting close. If you wanted to actually use the output you'd really need to go through by hand and clean up the specs. Maybe we could include the vcheck configuration files on a per-package basis, so that gar would start with a valid vcheck description for the package, and if the upstream changed, the gar version could be updated by the package maintainer to reflect that. -- You wouldn't want to automatically update gar to incorporate a new version of a package, just because it had been updated. Designing the interface so that package maintainers and other users could optionally build from the standard version or test with the newest would be helpful. -- Gar, an improved garchive, CVS or alternative, and vcheck together get a large part of the way toward recording the state from which the system got built. Some of the info is transient, though. For instance, vcheck overwrites its own configuration file to reflect the newest version info it has retrieved. For my purposes, I'd want to make sure that historical info was recorded. Maybe it would be as simple as including the vcheck config files in the gar tree, and checking them in with all the other package description meta data after every check with vcheck, so that no version info would be lost. Or at another interval...? In any case, while getting enough data in the repository/archive to rebuild any version at any time is the biggest part, for my purposes even recovering descriptive historical data would be important to providing an "audit trail" of where the system came from. -- I'm sure there are things I'm not thinking of ... and misremembering... any advice? By the way...I'm kind of interested in virtualization, but not that familiar. Do you think there might be better alternatives to chroot, like Xen, or is that overkill? Thanks for keeping this going....and for the feedback Bill On Thursday, February 16, 2006, at 08:05 AM, Paul Gray wrote: > ... The one thing missing above, that I can > envision, is the actual build environment in the form of a chroot. As > building > the lnx-bbc from sources can illustrate, the build environment comes > into play > in the final deliverable too. > > We have some chroots for the ppc and i386 variants. Is this something > you'd be > interested in including?