Metro 1.2 Released
Metro 1.2, my tool for building Gentoo and Funtoo releases and custom builds, has been released. Learn about Metro here. Technically, this is a maintenance release, but looking at the ChangeLog tells me that this is more like a major release.
I’ve added a metro-1.2.ebuild to the Funtoo Portage tree.
Here are the changes in 1.2:
- NEW target: "stage3-freshen" uses emerge -up world to update stage
- NEW target: "stage3-quick" builds stage3->stage3, skipping stage1 and 2.
- NEW target: "git-snapshot" creates a full .tar.bz2 snapshot of git repo with the .git directory intact, so it is a full working git repo when unpacked.
- NEW target: "emerge" for adding packages to an existing stage3
- NEW subarch: ~core2 for Intel Core 2 series processors. Supported with gcc 4.3.2 which is in the funtoo build.
- Updated targets: "openvz" updated to support OpenRC 0.4.0.
- stage3-freshen supports emerge/packages/force target, which is a list of packages to rebuild using "emerge <packages>". This is a great way to force a rebuild of packages that may need to be rebuilt but did not get a rev-bump (ie. openrc.:)
- Metro now properly cleans /var/tmp/metro after it is done, unless the build aborted due to an error.
- scripts/build.sh: now supports stage3-freshen and stage3-quick by allowing an extra "quick" or "freshen" option as the last argument.
- scripts/build.sh: now creates a "current" symlink pointing to the most recent stage3 built. This "current" symlink exists in the subarch directory and the filename is "stage3-subarch-current.tar.bz2."
- scripts/build.sh: now uses "git-snapshot" for funtoo builds, so funtoo snapshots are now double the size but are a full working and "git pull"-able git repo, simplifying funtoo install process.
- stage3 targets: try to ensure that /etc/make.conf.example exists. Create a symlink from /etc/make.conf.example to /usr/share/portage/config/make.conf.example.
- metro core: robust mount point detection using /proc/mounts instead of output from the mount command, which can be unreliable.
- metro core: more robust umount algorithm.
- metro core: local name support, so your custom stages don't need to be called "funtoo" anymore. Also quite useful with the "emerge" target for creating custom stage3's with different names.
- metro core: ccache works correctly, but has been disabled by default as it may cause build failures when used with Portage parallel merges (--jobs) and we now have "stage3-freshen" and "stage3-quick" when we need a stage3 built quickly.
- parser syntax: For conditionals, the "in" keyword is now supported as an equivalent for "is".
- parser syntax: New "lax" expansion method, ie: $[foo:lax] will expand to foo if it is defined, otherwise it will not throw a parser error (as it normally would) and instead expand to a dummy value which may contain spaces.
- Documentation: github wiki documentation updated to reflect new features and QuickStart Guide refined to be easier to understand.
- Projects: new projects/ directory contains source code for funtoo.org Web site. Funtoo.org Web site redesigned to be more of a portal for new Funtoo builds. The funtoo Web site can be generated by running "pytext index.html" (sent to stdout.) Embedded python code automatically updates Web site symlinks to point to most recent versions of builds and list relevant build-related information. Support for displaying build dates in human-parseable form (ie. "Yesterday" or "2 Days Ago".)
