On Mon, Jul 7, 2008 at 10:35 AM, Jeff Johnson <[EMAIL PROTECTED]> wrote:
> But I still dunno why a prerequsite relation needs to be retrofitted into a
> vendor package ...

Well as expected, the problem is political, not technical.

Customer has group A which delivers an RPM (the "vendor" RPM) which
behaves differently depending upon the state of the system before it
is installed.

Customer has group B which wants to put the system into a certain
state before the vendor RPM is installed. It has chosen to use RPM to
do this. So we have the desired install order:

- pre-vendor.RPM
- vendor.RPM

But group B cannot get group A to put a "Requires: pre-vendor" into vendor.RPM.

Anyway, this is not your problem, so I will go beat on the customer
some more to fix their packaging. However, I thought I'd point out
that I was surprised by the order here:

$ sudo rpm -U foo-1-0.x86_64.rpm bar-1-0.x86_64.rpm baz-1-0.x86_64.rpm
baz-1-0 pre 1
baz-1-0 post 1
foo-1-0 pre 1
foo-1-0 post 1
bar-1-0 pre 1
bar-1-0 post 1

And I get the same with --noorder as well as --nodeps.

$ rpm -qp --requires foo-1-0.x86_64.rpm | sort -u
/bin/sh
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

$ rpm -qp --requires bar-1-0.x86_64.rpm | sort -u
/bin/sh
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

$ rpm -qp --requires baz-1-0.x86_64.rpm | sort -u
/bin/sh
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

$ rpm --version
RPM version 4.4.2

$ rpm -q rpm
rpm-4.4.2-48.el5.x86_64

I realize those last two make this Not Your Problem as this is
rpm5.org after all, but if you have an insight you can share, it'd be
appreciated. spec attached and was built with: for n in foo bar baz;
do rpmbuild -bb --define "name $n" foo.spec; done

Thanks,

j.
%define version 1
%define release 0
%define __check_files %{nil}
%define __os_install_post %{nil}

Summary: %{name}
Name: %{name}
Version: %version
Release: %release
Group: None
License: None
AutoReqProv: no
BuildRoot: /var/tmp/rpmbuild-%{name}

%install
rm -rf $RPM_BUILD_ROOT
d="$RPM_BUILD_ROOT/var/tmp"
mkdir -p "$d" || true
echo "%{name}-%{version}-%{release}" > "$d/%{name}"

%description
%{name}

%pre
echo "%name-%version-%release pre $1"

%post
echo "%name-%version-%release post $1"

%preun
echo "%name-%version-%release preun $1"

%postun
echo "%name-%version-%release postun $1"

%files
/var/tmp/%{name}

Reply via email to