Heres another option
Outline
RepositoryRepository (r²) is a repository format that handles
repositories
Each r² contains at least one .repository-$version package, describing a
single paludis-recognized repository. This may include other r²
repositories.
You can query, install, uninstall and upgrade repositories just like
exheres, though the database to keep track of installed repositories
will be
in a new format, and called ::installed-repositories.
Installing / Updating
Resolve an RepositoryPackage like any other package, except the masters
key
substituting for dependencies (always pre-dependencies)
grep -v 'masters' name.repository >
$PALUDIS_CONFIG_DIR/repositories/$name.conf
update ::installed-repositories
Uninstalling
Bail if any packages match ::$TARGET->installed
New Options
--import
post-install, sync newly installed repository config
--permit-unsafe-uninstall
allow uninstall even if a package matches ::$TARGET->installed
--with-packages
first uninstall '*/*::$TARGET->installed', then $TARGET
Examples
Configuration
/etc/paludis/repositories/
official.conf:
format=repository
sync=git://git.exherbo.org/repositories/official
unofficial.conf:
format=repository
sync=git://git.exherbo.org/repositories/unofficial
Layout
/var/paludis/repositories/unofficial/
jedahan-1.repository
homepage=http://jedahan.github.com
format=exheres-0
sync=git://jedahan.github.com/jedahan/
masters=arbor gnome
The nice thing about this is that you can upgrade repository configurations
just by incrementing the version, and handle them with eclectic pretty
nicely. You can even make sure to upgrade repository configurations and sync
them *first* by re-introducing the everything set to include repositories.
Theres a decent amount of flexibility there, methinks.
- Jonathan
On Mon, Jan 11, 2010 at 11:54 AM, Mike Kelly <[email protected]> wrote:
> I think that R² could be written as an extension of the unavailable
> format.
>
> The additional keys to add would be 'sync' and 'masters'. For example:
>
> .../unavailable/gnome.repository:
>
> format = unavailable-2
> repo_name = gnome
> homepage = http://www.gnome.org
> description = Gnome packages
> sync = git://git.exherbo.org/gnome.git
> masters = arbor x11
>
> app-editors/
> gedit/
> ....
>
> I haven't looked at playboy's code recently, but it seems like this
> should be a fairly trivial extension.
>
> As far as how paludis handles this... I'm not sure of the nicest
> interface. Possible ideas include:
>
> $ cave resolve ::gnome
>
> $ cave sync gnome
>
> The idea being, it would write out a config for ::arbor and ::x11, if
> needed, then the config for ::gnome.
>
> --
> Mike Kelly
>
> _______________________________________________
> Exherbo-dev mailing list
> [email protected]
> http://lists.exherbo.org/mailman/listinfo/exherbo-dev
>
_______________________________________________
Exherbo-dev mailing list
[email protected]
http://lists.exherbo.org/mailman/listinfo/exherbo-dev