Dependency loops considered harmful?
Jon Ciesla
limb at jcomserv.net
Wed Sep 3 19:10:47 UTC 2008
> On Wed, 3 Sep 2008 13:36:41 -0500 (CDT), Jon Ciesla wrote:
>
>>
>> > On Wed, 3 Sep 2008 12:10:13 -0500 (CDT), Jon Ciesla wrote:
>> >
>> >> > For example, why games data depend on binaries?
>> >>
>> >> So that if we try to upgrade the version of the binaries and not the
>> >> data,
>> >> it will fail.
>> >
>> > Unconvincing.
>> >
>> > Why? Because the game program pkg could require a specific version of
>> > the data pkg to achieve the same. If game version gets bumped, dep
>> > would break, since you would need to update data pkg, too. Game
>> requires
>> > compatible data. So far so good.
>> >
>> > However, if the data pkg requires the game pkg (versioned! or else it
>> > would not be strict enough for your needs), this only increases the
>> > risk that you need to bump'n'rebuild the data pkg if the game version
>> > is increased without needing any changed data. It's a superfluous
>> > dependency that only tries to enhance "yum remove" a bit.
>>
>> How? For game data, the convention is to require on name and version,
>> but
>> not release. If new data is required, it will change the version. If
>> not, we only increment the binary rpm's release, so the data rpm matches
>> on version and needs no rebuild.
>
> game-0.8 Requires game-data = 0.8
> game-data-0.8 Requires game (which version? and why?)
>
> Case 1)
> game-data-0.8 Requires game = 0.8
> What happens if game-1.0 is released with unchanged game-data?
> Then you need to update game-data for nothing else than the broken dep.
I've yet to see this happen.
> Case 2)
> game-data-0.8 Requires game
> No version. Hence no dep breakage in all cases where you may update game
> without updating game-data. Instead, a strict dependency is installed
> in pkg game: game-%{version} Requires game-data = %{SOME_version}
> Here you can control the game-data version within pkg "game".
But then if I somehow manage to update the game data but not the binary
rpm, and there's an incompatibility, Bad Things happen to the user.
>
> Dep 1) is really just for "yum remove".
>
> --
> fedora-devel-list mailing list
> fedora-devel-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-devel-list
>
--
novus ordo absurdum
More information about the devel
mailing list