Re: OpenDKIM RPM upgrade dependency issues from libopendkim

From: Steve Jenkins <stevejenkins_at_gmail.com>
Date: Mon, 15 Aug 2011 07:19:18 -0700

On Sun, Aug 14, 2011 at 10:15 PM, Murray S. Kucherawy <msk_at_cloudmark.com> wrote:
>> -----Original Message-----
>> From: opendkim-dev-bounce_at_lists.opendkim.org [mailto:opendkim-dev-bounce_at_lists.opendkim.org] On Behalf Of Steve Jenkins
>> Sent: Sunday, August 14, 2011 9:39 PM
>> To: opendkim-dev_at_lists.opendkim.org
>> Subject: OpenDKIM RPM upgrade dependency issues from libopendkim
>>
>> Today, I created new RPM files for the updated version (2.4.2), but
>> I'm in a catch 22 when I try to upgrade:
>>
>> $ rpm -Uvh libopendkim-2.4.2-1.i386.rpm
>> error: Failed dependencies:
>>         libopendkim = 2.4.1-1 is needed by (installed) opendkim-2.4.1-
>> 1.i386
>>
>> $ rpm -Uvh opendkim-2.4.2-1.i386.rpm
>> error: Failed dependencies:
>>         libopendkim = 2.4.2-1 is needed by opendkim-2.4.2-1.i386
>>
>> Any ideas of how to get out of this mess? Requiring a user to manually
>> remove packages prior to installing the new ones via RPM kinda defeats
>> a lot of the purpose of using RPMs. :)
>
> My knowledge of spec files is too limited to be of help here, I'm afraid.  It looks like you'd have to force the installation of libopendkim-2.4.2-1.i386.rpm, which could (depending on versioning of the library file itself) overwrite an open shared library.
>
> Maybe in the libopendkim spec file, have it stop opendkim (if installed), then proceed (ignoring the conflict), then restart opendkim?

Hi, Murray. Maybe I should have framed the question a bit differently.
Of course, there ARE way to force RPM around this problem. There are a
number of different options that can be invoked when the rpm command
is run to make it ignore certain dependencies, etc. But most users
won't know about those (or which one(s) to use). My goal in building
this package is to make installing OpenDKIM on RedHat-based distros as
easy as possible, and one of the requirements is allowing users to
simply upgrade when new versions are released, simply by typing rpm
-Uvh packagename. That's what 99% of users will try first. And if it
doesn't work, they may just give up on installing the package
altogether... which would make me cry. :)

I don't think the issue with installing libopendkim 2.4.2 over 2.4.1
has anything to do with the fact that 2.4.1 is current "open" when the
upgrade is attempting. It's that the system is complaining "Hey - you
can't overwrite that, because I have this package over here named
opendkim 2.4.1 that says it needs libopendkim 2.4.1, so you'll break
things if you do that" because the system doesn't know there's a new
opendkim 2.4.2 waiting in the wings. The main issue is that the one
spec file results in two RPMs with a dependency.

Did the old DKIM-milter also build a dependent library separately? If
so, I think I might go peek at what those package maintainers did to
get around the issue. Or, if anyone has some other ideas that could
result in both the library and the binaries ending up in one RPM, that
could be a solution - or would that break more things that it would
fix?

SteveJ
Received on Mon Aug 15 2011 - 14:19:32 PST

This archive was generated by hypermail 2.3.0 : Mon Oct 29 2012 - 23:33:11 PST