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

Reply via email to