Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 49282

Summary: Arbitrary vendor support in installplatform
Product: [Retired] Red Hat Linux Reporter: hjl
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED WONTFIX QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-07-17 17:27:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
A patch for vendor none

Description hjl 2001-07-17 17:26:31 UTC
I will upload a patch to support arbitrary vendor in installplatform.

Comment 1 hjl 2001-07-17 17:27:14 UTC
Created attachment 23909 [details]
A patch for vendor

Comment 2 Jeff Johnson 2001-07-29 15:57:00 UTC
There's more to this problem than just supporting an arbitrary
platform vendor string. What still needs doing is to identify how
to retrieve an unambiguous vendor string at install time, as, without that,
there's little need for supporting the config.guess vendor string
in rpm at all.

Anyways I'm gonna mark this WONTFIX, but that should be taken
in the sense that there's much more to do than change the installplatform
script.

Comment 3 hjl 2001-07-29 16:14:37 UTC
At the install time, VENDOR is set by

VENDOR="`$RPM --eval '%{_vendor}'`"

and %{_vendor} is substituted by
@RPMCANONVENDOR@. In configure.in,
there is

RPMCANONVENDOR="$build_vendor"
case "${build_vendor}" in
unknown|pc|redhat|pld|mandrake|conectiva)
        test -f /etc/redhat-release &&          RPMCANONVENDOR=redhat
        test -f /etc/pld-release &&             RPMCANONVENDOR=pld
        test -f /etc/mandrake-release &&        RPMCANONVENDOR=mandrake
        test -f /etc/conectiva-release &&       RPMCANONVENDOR=conectiva
        ;;
esac

If rpm is configured with cpu-myvendor-linux,
there is no problem to identify the vendor.
The only problem is rpm may not be configured
with the explicit vendor string. In that case,
you have to guess what the vendor is. You can
easily add a checking there like

case x"$RPMCANONVENDOR" in
xunknown|xpc|x)
  echo "** Unkown vendor: $RPMCANONVENDOR. Abort!"
  exit 1
  ;;
esac


Comment 4 Jeff Johnson 2001-07-29 16:33:29 UTC
Yup. I understand that, but the problem is providing a guarantee
of the semantics associated with the value for %_vendor, not with
permitting an arbitrary string. At the moment rpm has strong semantics
for <arch> and <os> driven by uname(2) and inline asm voodoo. Similar
strong semantics for vendor are gonna be needed if vendor is ever to
be used reliably in rpm packaging. Otherwise, there's no reason to
support vendor in rpm at all. Look carefully at what's in installplatform,
the real macro configuration comes from the path
	/usr/lib/rpm/i386-linux
not from
	/usr/lib/rpm/i386-redhat-linux
and it's gonna take much more than permitting arbitrary vendor strings
in order to complete the transition from the current arch/os based on
uname(2) to a more general config.guess platform paradigm.

The test for /etc/<vendor>-release on the build
side is the only convention that has a prayer of mapping
onto rpm installs, so I choose to deliberately limit the set
of rpm vendors to those known to follow a semantic convention.