gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 23-07-2010 11:37, Ciaran McCreesh wrote:
> On Fri, 23 Jul 2010 13:30:02 +0200
> Thomas Beierlein <tomjbe@gentoo.org> wrote:
>>>> interesting. I did not know that an ebuild can use-depend on
>>>> itself. Good to know.
>>>
>>> No, not good. It doesn't make any sense.
>
>> Can you give some reasoning for that?
>
> It's entirely unclear what deps upon self actually mean. Some people
> use them to say that a package needs to be installed before it can
> install itself. Thus, things like:
>
> DEPEND="|| ( myself myself-bin )"
>
> So a dependency upon myself[foo] would probably mean "I need
> myself[foo] to be installed before I can install myself", not "I need
> the foo flag to be set on myself".
In this case the dependencies are clear. They're not pretty, but they're
clear.
> In any case, abusing DEPEND isn't a mechanism for implementing use
> requirements. You should use the mechanism that's designed for use
> requirements to do use requirements, which means waiting for EAPI 4
> and pkg_pretend, or just follow existing policy and pick one in the
> case of a conflict.
Abusing depend is a good way to do this, until we get better tools. I
have to agree with Brian's proposal and say that in this particular
case, the best solution is required_use and not pkg_pretend.
- --
Regards,
Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / KDE / Elections
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, 23 Jul 2010 12:30:35 +0000
"Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
> > In any case, abusing DEPEND isn't a mechanism for implementing use
> > requirements. You should use the mechanism that's designed for use
> > requirements to do use requirements, which means waiting for EAPI 4
> > and pkg_pretend, or just follow existing policy and pick one in the
> > case of a conflict.
>
> Abusing depend is a good way to do this, until we get better tools.
No, it's not, because it doesn't work. Assuming self deps are legal in
the || ( myself myself-bin ) case, they can't do what you want for use
requirements. myself[foo] would be met when building with USE=-foo so
long as myself[foo] was installed originally, and it wouldn't be met
unless myself were already installed.
> I have to agree with Brian's proposal and say that in this particular
> case, the best solution is required_use and not pkg_pretend.
required_use may theoretically allow a package manager to do cycle
breaking if all the relevant packages are updated to export information
about which flags are and are not safe to toggle, but since no-one's
proposed exporting that information or has even worked out exactly what
the requirements would be for that to happen, and since pkg_pretend is
required anyway for other things, just going with pkg_pretend for now
is the sensible solution.
Of course, this is all irrelevant since at the current rate of progress
Portage is two years off any of this being available for developers
anyway...
gentoo-x86 commit in app-backup/bacula: bacula-5.0.2-r2.ebuild ChangeLog
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, 23 Jul 2010 12:28:21 +0000
"Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org> wrote:
> Nothing prevents us from using the above, which already produces the
> same output as basic use dependencies, so users should be getting used
> to it by now. It would be great if PMs could produce more detailed
> warnings to the user, but that can wait (may have to wait?) for the
> new solutions.
If it does, it's a bug in Portage.
If you've got foo[bar] installed, and the user tries to install
foo[-bar], and foo[bar] DEPENDs upon foo[bar], that has to be allowed as
a generalisation of handling || ( foo foo-bin ).
Conversely, if foo isn't installed at all, then foo[bar] as a dependency
must not be met even if the user is installing foo[bar].
Dependencies on self must match the previously installed package, not
the thing being installed at the time.