Date: Sat, 11 Apr 2009 00:46:45 +0100 From: Chris Whitehouse <cwhiteh@onetel.com> To: User Questions <freebsd-questions@freebsd.org> Subject: Re: new package system proposal Message-ID: <49DFDA65.1030409@onetel.com> In-Reply-To: <49D76B02.4060201@onetel.com> References: <49D76B02.4060201@onetel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Ok here's an improved description of how it works. The key to the whole thing is the snapshot of the ports tree. Everything else follows from that. Build process: A predetermined set of packages is built from a ports tree. The most benefit comes with packages which would acceptable for use with the default config and require a lot of compile time (large distfiles and/or lots of dependencies). This probably means xorg, window managers, desktop environments and applications plus dependencies and libraries. The ports tree is not updated during this process. The ports tree and package tarballs are made available online as a ports-snapshot which is tagged to identify it. The tag could be a text file with a date in it which lives in the snapshot directory. This cycle is repeated at some suitable interval, by taking a new ports tree and building packages for any ports that have been updated in the meantime. (The actual build process could be done by one of the ports-mgmt tools which would take care of only updating changed ports or ports whose dependencies had changed). The new packages and the ports tree used to create them are tagged as a new snapshot. How to use: For a fresh install a user installs FreeBSD then downloads the tagged ports tree. S/he can then install packages from the ports-snapshot knowing that everything is in sync versionwise. At this stage the selection of packages is down to the user (plus dependencies will automatically be pulled in). Additional ports that are not in the snapshot can be installed using the normal ports mechanism and they will automatically be in sync. For an existing install, when a new ports-snapshot is available changed packages can be installed using some utility (call it ports-update) which downloads and installs the ports tree and tag file from the snapshot, checks versions of installed packages and upgrades accordingly. People can choose to upgrade frequently or infrequently. By choosing a tag users can choose to upgrade to the most recent ports-snapshot or an intermediate one. At this stage the selection of packages to upgrade is by ports-update. ports-update compares the version of each installed package with the one in the ports-snapshot. If a newer version exists ports-update installs it. Any installed packages which are not in the ports-snapshot are ignored. If a user wants to install or upgrade ports which are not in the ports-snapshot this can be done with the standard ports mechanism. As the bigger ports are already available as packages in the ports-snapshot any additional ports will be relatively quicker to install by building from source. If a port is being installed or upgraded and it has a dependency which has been installed from the snapshot the dependency port will be the right version and the new port will integrate perfectly. Thanks for reading this far Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49DFDA65.1030409>