Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-06 Thread Mykel Alvis
Just to clarify, this package is NOT for public consumption.  The software
is distributed via installer, to be run by humans.  Since we're doing
automation using puppet, an RPM of the code reduces the complexity of the
installation substantially and generates a repeatably installable artifact
into an existing artifact repository (RH Satellite, in this case).

There actually IS a reason to believe that the ELF data can is, while not
wrong, producing undesirable output.  The problem isn't that the
dependencies aren't correct.  It's that the package itself supplies those
dependencies internally and very specifically doesn't want to external
system to interfere with its deployment of the shared libraries.

The package builds very well without turning off the internal dependency
generator.  The issue arises when I try to install it and rpm looks at it's
huge list of requirements and notes that apparently not all of them are
satisfied internally or it would rather I use the packages that it purports
work best.  The problem is that they ARE supplied internally and that rpm,
during the packaging step, didn't understand that.  I'm not terrible at
writing spec files, at least for private consumption, but this seems like
it might be something that the rpm developers didn't expect to have to
handle as often as I seem to.

The quantity of software that I've had to install using the various
shell/executable installer systems is growing, not shrinking.  I attribute
this to laziness on the part of the distributor/developer.  They don't take
the time to ensure compatibility with various distributions.
In all fairness, there are an awfully large number of distros to deal with
and many/most of them don't take wider-ranging compatibility into account,
at least not as a primary element, when getting their (frequently
volunteer) packagers to produce their native-level packaging.

Thus, in this case, this solution is (probably) the only viable one short
of writing more code to filter more packages, essentially by hand.  I can't
have compatibility with this package because if I stripped out all the perl
binaries and used the native perl executables, I might not get what I
expected.  Perl has a way of changing across versions and this is a pretty
complicated piece of code.

Because the developers saw fit to package a modified version of code that
exists generally in the wild (JDK, perl, probably something that I'm
missing), this entire piece of software can either be viewed as a black box
(install it all and let it sort itself out) or it would have to be
hand-engineered to extract all the pieces that are different and use those
as alternates to the ones supplied by standard OS packaging.  I don't have
the insight into the product to do the latter, so the former has to suffice.

Thus, I package it like it was a Big Pile of Obfuscated Code(tm), and it
works like a champ.  Scripts inside the code modify library paths to point
ot specific versions of specific things and I get a running server.  Woot!

Do I think this is a good idea?  No.
Do I think that packaging frankenserver versions of perl and the JDK are
good ideas?  Definitely not.
Do I think that software should be written towards wider compatibility with
existing packages?  Definitely yes.
Do most enterprise software developers seem to agree with me/us?  It
doesn't look that way.

I'm actually speaking at a conference in a few weeks about this specific
issue (not the rpm problem, but the stop writing stuff that's hard to
deliver problem).

Thanks again to you both.  You have saved me days of frustration and I owe
you both a beverage of your choice.

Mykel

On Sat, Jan 5, 2013 at 4:01 PM, devzero2000 pinto.e...@gmail.com wrote:

 On Sat, Jan 5, 2013 at 10:15 PM, Jeffrey Johnson n3...@me.com wrote:
 
  On Jan 5, 2013, at 4:02 PM, Mykel Alvis wrote:
 
 
  devzero2000 over on the rpm-users list suggested
  %define _use_internal_dependency_generator 0
 
 
  This did exactly what I needed.
 
 
 
  Yes but … there are profound changes to the *.rpm package
  format that are coupled to setting %_use_internal_dependency_generator
 to 0.
 
  That macro was _NEVER_ designed to be flipped around on a per-package
 basis
  by package monkeys.
 Yes, but apparently autoreq to 0 doesn't work on the sharelib deps on
 rpm 4.8 (@rpm.org). I have seen
 ocaml package setting %_use_internal_dependency_generator to 0 before
 ocaml deps was included in rpm.
 http://markmail.org/message/hdwyn3ys675psmcz
 But perhaps i am missing something, probably.

 Best regards
 __
 RPM Package Managerhttp://rpm5.org
 User Communication List rpm-users@rpm5.org



Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-06 Thread Jeffrey Johnson

On Jan 6, 2013, at 12:52 PM, Mykel Alvis wrote:

 Just to clarify, this package is NOT for public consumption.  The software is 
 distributed via installer, to be run by humans.  Since we're doing automation 
 using puppet, an RPM of the code reduces the complexity of the installation 
 substantially and generates a repeatably installable artifact into an 
 existing artifact repository (RH Satellite, in this case).
 

Most linux distros are development dog food aimed at enthusiasts.
Whether one wishes to call that piublic is a matter of taste and de facto.

 There actually IS a reason to believe that the ELF data can is, while not 
 wrong, producing undesirable output.  The problem isn't that the dependencies 
 aren't correct.  It's that the package itself supplies those dependencies 
 internally and very specifically doesn't want to external system to interfere 
 with its deployment of the shared libraries.
 

There is no reason that you have pointed out to suspect that ELF data is wrong.

There are reasosn to suspect that you aren't adding -Wl,soname,YOUR_SONAME_HERE
when building and I asked whether the libraries had DT_SONAME (and give you the 
readelf
command to verify.

 The package builds very well without turning off the internal dependency 
 generator.  The issue arises when I try to install it and rpm looks at it's 
 huge list of requirements and notes that apparently not all of them are 
 satisfied internally or it would rather I use the packages that it purports 
 work best.  The problem is that they ARE supplied internally and that rpm, 
 during the packaging step, didn't understand that.  I'm not terrible at 
 writing spec files, at least for private consumption, but this seems like it 
 might be something that the rpm developers didn't expect to have to handle as 
 often as I seem to.
 

THe buils is entirely in the eye of the beholder. RPM extracts info from ELF 
files:
if the build doesn't put the correct data into the ELF header, you can blame 
RPM
all you wish, but its the buikld that needs to be fixed.

 The quantity of software that I've had to install using the various 
 shell/executable installer systems is growing, not shrinking.  I attribute 
 this to laziness on the part of the distributor/developer.  They don't take 
 the time to ensure compatibility with various distributions.
 In all fairness, there are an awfully large number of distros to deal with 
 and many/most of them don't take wider-ranging compatibility into account, at 
 least not as a primary element, when getting their (frequently volunteer) 
 packagers to produce their native-level packaging.
 

Life's tough ... have a kleenex and my sympathies.

 Thus, in this case, this solution is (probably) the only viable one short of 
 writing more code to filter more packages, essentially by hand.  I can't have 
 compatibility with this package because if I stripped out all the perl 
 binaries and used the native perl executables, I might not get what I 
 expected.  Perl has a way of changing across versions and this is a pretty 
 complicated piece of code.  
 

You may supply whatever reasoning you wish for how you choose to solve your 
problem.

That won't solve my problem: supply reasonable support for unknown RPM 
problems.

 Because the developers saw fit to package a modified version of code that 
 exists generally in the wild (JDK, perl, probably something that I'm 
 missing), this entire piece of software can either be viewed as a black box 
 (install it all and let it sort itself out) or it would have to be 
 hand-engineered to extract all the pieces that are different and use those as 
 alternates to the ones supplied by standard OS packaging.  I don't have the 
 insight into the product to do the latter, so the former has to suffice.
 
 Thus, I package it like it was a Big Pile of Obfuscated Code(tm), and it 
 works like a champ.  Scripts inside the code modify library paths to point ot 
 specific versions of specific things and I get a running server.  Woot!
 

So Ship It!

 Do I think this is a good idea?  No. 
 Do I think that packaging frankenserver versions of perl and the JDK are good 
 ideas?  Definitely not.
 Do I think that software should be written towards wider compatibility with 
 existing packages?  Definitely yes.  
 Do most enterprise software developers seem to agree with me/us?  It doesn't 
 look that way.
 
 I'm actually speaking at a conference in a few weeks about this specific 
 issue (not the rpm problem, but the stop writing stuff that's hard to 
 deliver problem).
 

Good for you!

Now can you tell me whether your libraries have a DT_SONAME using
readelf -a /path/to/some/lib/libfoo*.so | grep SONAME
please?

73 de Jeff

__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-06 Thread Jeffrey Johnson

On Jan 6, 2013, at 3:34 PM, Mykel Alvis wrote:

 
 I think it's OK to do this, but I'm going to do so directly to your personal 
 email so that I don't display piles of potentially litigious data in a public 
 forum.  
 

Please reply with readelf output publically: the output is not that large if you
grep out only the SONAME (i.e. the Provides:) and the NEEDED (i.e the
Requires:) for a couple of libraries and executables.

There are also specific options to display exactly DT_SONAME/DT_NEEDED
if you wish to read man readelf: I deliberately gave you the easier to 
understand
readelf -a ... | grep SONAME
as something that an average RPM packager faced with a similar problem using
Google search might find useful, comprehensible, and perhaps easier to 
remember. YMMV.

Most users with RPM problems now use Google search first, you included.

This leads to a preponderance of problem (but not solution) reports.

For something like RPM w 15y of serachable information, searching can and will 
find
just about every answer you want to hear, with many answers that 
implictly/contextually
appropriate and generally foolish. If one is smart enough, one can sometimes 
find the best
solution. But generally, the deluge of possibile answers and No time! 
precludes best
or even thoughtful.

Yes I respond to requests out of good will, formerly out of some misplaced 
sense of duty
and obligation to assist with information on software I wrote and happen to 
know quite well.

The specific parts of your problem that have only to do with RPM are the 
metadata in
*.rpm package headers. The parts of this problem that I cannot help directly 
with are
what the packages are used for, how the software is to be built, how to setup 
yum repositories,
and why yum on RHEL (more likely CentOS) is reporting a dependency failure. The
other issues are implicitly related to the (non-)existence of metadata, as well 
as coupled
into the root causes for your specific issue, and cannot be ignored (or solved 
by RPM).

73 de Jeff
__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-06 Thread Mykel Alvis
I certainly understand the frustration in that I experience it identically
in other areas.

From your other email, I read

 I'm looking for libraries with _MISSING_ SONAME's. The solution there is
 to add DT_SONAME
 with -Wl,soname,YOUR_SONAME


It's been decades, literally, since I handled C linking on a daily basis.
So, assuming that we did locate such missing entries, is this something
that would need to be done at compile/link time or are those switches that
can be applied via a spec file/rpmbuild?  Are there existing mechanism for
re-building a compiled .so without access to the source?




On Sun, Jan 6, 2013 at 2:48 PM, Jeffrey Johnson n3...@me.com wrote:


 On Jan 6, 2013, at 3:34 PM, Mykel Alvis wrote:

 
  I think it's OK to do this, but I'm going to do so directly to your
 personal email so that I don't display piles of potentially litigious data
 in a public forum.
 

 Please reply with readelf output publically: the output is not that large
 if you
 grep out only the SONAME (i.e. the Provides:) and the NEEDED (i.e the
 Requires:) for a couple of libraries and executables.

 There are also specific options to display exactly DT_SONAME/DT_NEEDED
 if you wish to read man readelf: I deliberately gave you the easier to
 understand
 readelf -a ... | grep SONAME
 as something that an average RPM packager faced with a similar problem
 using
 Google search might find useful, comprehensible, and perhaps easier to
 remember. YMMV.

 Most users with RPM problems now use Google search first, you included.

 This leads to a preponderance of problem (but not solution) reports.

 For something like RPM w 15y of serachable information, searching can and
 will find
 just about every answer you want to hear, with many answers that
 implictly/contextually
 appropriate and generally foolish. If one is smart enough, one can
 sometimes find the best
 solution. But generally, the deluge of possibile answers and No time!
 precludes best
 or even thoughtful.

 Yes I respond to requests out of good will, formerly out of some
 misplaced sense of duty
 and obligation to assist with information on software I wrote and happen
 to know quite well.

 The specific parts of your problem that have only to do with RPM are the
 metadata in
 *.rpm package headers. The parts of this problem that I cannot help
 directly with are
 what the packages are used for, how the software is to be built, how to
 setup yum repositories,
 and why yum on RHEL (more likely CentOS) is reporting a dependency
 failure. The
 other issues are implicitly related to the (non-)existence of metadata, as
 well as coupled
 into the root causes for your specific issue, and cannot be ignored (or
 solved by RPM).

 73 de Jeff
 __
 RPM Package Managerhttp://rpm5.org
 User Communication List rpm-users@rpm5.org



Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-05 Thread Mykel Alvis
Responses inline below:


On Sat, Jan 5, 2013 at 11:10 AM, Jeffrey Johnson n3...@me.com wrote:



 Second, you're right, I'm using rpm 4.8 from RHEL.  It's the only choice I
 have.



 OK.

 FYI: there's not enough difference to worry about between @rpm.org - @
 rpm5.org.

 The goals are more different than the code is: RHEL support is a deadly
 sea-anchor
 to change. So @rpm5.org has more -- and more aggresive -- features.


Unfortunately, enterprise customers generally have artificial requirements
that force them to use tools that have support.  Without RHEL, they almost
certainly would have gone Microsoft.


 Next, at least in my case, setting the -x flag doesn't change anything.


 I have the following line in the %install section

find $RPM_BUILD_ROOT -name \*.so\* -exec chmod -x {} \;

prior to packaging, no shared libraries have the executable bit set.  I
think this is what you meant.

As for the dependencies, you're correct in that there is no reason to
suspect that they aren't required.  The problem I'm experiencing is that
all the dependencies that are required are being supplied by the local
package, but RPM is generating external dependencies because it sees the
need for a Requires and isn't noticing that it was supplied as a Provides.


Note that there may be a typo: note the extra '/' character within
parentheses:


Error: Package: endeca-toolsandframeworks-3.1.1-1.el6.x86_64
(/endeca-toolsandframeworks-3.1.1-1.el6.x86_64)
   Requires: endeca-mdex=6.4.0

See if that is in the package requirements
rpm -qp --requires endeca-toolsandframeworks-3.1.1-1.el6.x86_64.rpm


That is interesting.  I'm building a multi-subpackage RPM, and endeca-mdex
is a requirement for endeca-toolsandframeworks.
Here is the relevant package section from my spec
--- snip ---
%package mdex
Version:%{mdex_version}
Group:  Servers/Indexing
Summary:Endeca MDex %{version}
%description mdex
Endeca is an index engine
This is the MDex portion

%package presentationapi
Version:%{mdex_version}
Group:  Servers/Indexing
Summary:Endeca MDex Presentation API %{version}
Requires:   endeca-mdex=%{version}
%description presentationapi
Endeca is an index engine
This is the Presentation API found in the MDex installer

%package platformservices
Version:%{pfs_version}
Group:  Servers/Indexing
Summary:Endeca PlatformServices %{version}
Requires:   endeca-mdex=%{mdex_version}
%description platformservices
Endeca is an index engine
This is the Platform Services

%package toolsandframeworks
Version:%{tfw_version}
Group:  Servers/Indexing
Summary:Endeca Tools and Frameworks %{version}
Requires:   endeca-mdex=%{mdex_version}
endeca-platformservices=%{pfs_version}
%description toolsandframeworks
Endeca is an index engine
This is Tools and Frameworks for Endeca

--- snip ---
I have all versions set with %defines because they'll keep moving forward
and need to be rebuilt each time.

If you have any information about how I could filter using rpm 4.8 I'd
appreciate it.


Filtering in rpm-4.8 is fairly complex (compared to rpm5).

But filtering basically involves writing a 1 line wrapper script
to a helper to post-process stdout to remove a token using sed(1).
(rpm5 implements the same token removal by applying patterns
to tokens, and excluding, w/o the need for scripts  helpers).

There's a bunch of macros in rpm-4.8 (and conventions) that are supposed to
assist
with the filtering, but add complexity from the conventional choices/names
of parameters
used in wrappers etc.


According to the data I could glean initially, that's what all the %globals
were in my original post.  I spent about an hour trying to get them
stabilized.

I think filtering changed dramatically from 4.8 to 4.9.  Since I don't yet
have 4.9, I believe I'm stuck with the way you were describing.  I found a
few articles describing how people did it (the new way) so I'll probably be
able to glean enough data from them (and from pending requests to RH
support) to make this work.


Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-05 Thread Jeffrey Johnson

On Jan 5, 2013, at 4:02 PM, Mykel Alvis wrote:

 
 devzero2000 over on the rpm-users list suggested
 %define _use_internal_dependency_generator 0
 
 
 This did exactly what I needed.
 
 

Yes but … there are profound changes to the *.rpm package
format that are coupled to setting %_use_internal_dependency_generator to 0.

That macro was _NEVER_ designed to be flipped around on a per-package basis
by package monkeys.

For starter, your package is not multilib ready (which will cause issues on 
path collisions,
particularly for ELF libraries), and is generally
The Wrong Fix

You also cannot use --filerequire to see which files generated which 
dependencies.

The better fix examines the dependencies and finds out why they
dependencies don't match.

There is no reason at all -- EIGHT YEARS LATER -- to believe that
the dependency extraction based on ELF data is incorrect. In gafact it
is both correct and well tested, just5 that packagers have lost whatever
knowledge about how to compile programs they might once have had
because of the insane complexity of GNU tools like autoconf/automake.

Hint: Run
readelf -a libfoo.so | grep SONAME
I'll bet your libraries do not have an soname. the string SONAME aka DT_SONAME
is mapped into a Provides, the NEEDED string aka DT_NEEDED is mapped into a 
Requires:.

Including a DT_SONAME in the library is now harder than passing a
singlr option to the linker like
-WL,so name,THIS_IS_MY_SONAME

73 de Jeff
 
 On Sat, Jan 5, 2013 at 12:26 PM, Jeffrey Johnson n3...@me.com wrote:
 
 On Jan 5, 2013, at 1:07 PM, Mykel Alvis mal...@restorationhardware.com 
 wrote:
 
 Responses inline below:
 
 
 On Sat, Jan 5, 2013 at 11:10 AM, Jeffrey Johnson n3...@me.com wrote:
 
 
 Second, you're right, I'm using rpm 4.8 from RHEL.  It's the only choice I 
 have.
   
 
 OK.
 
 FYI: there's not enough difference to worry about between @rpm.org - 
 @rpm5.org.
 
 The goals are more different than the code is: RHEL support is a deadly 
 sea-anchor
 to change. So @rpm5.org has more -- and more aggresive -- features.
 
 
 Unfortunately, enterprise customers generally have artificial requirements 
 that force them to use tools that have support.  Without RHEL, they almost 
 certainly would have gone Microsoft.
  
 
 (aside)
 If enterprise customers used microsoft instead of RHEL, they would have
 saved oodles of money: RHEL pricing is obscenely expensive. *shrug*
 
 Note that I've used M$ Windows for perhaps 3 months over 30 years of uglix: 
 just saying.
 
 Next, at least in my case, setting the -x flag doesn't change anything.  
 
 
 I have the following line in the %install section
 
 find $RPM_BUILD_ROOT -name \*.so\* -exec chmod -x {} \;
 
 prior to packaging, no shared libraries have the executable bit set.  I 
 think this is what you meant. 
 
 
 Best is to verify the end result that is actually in the *.rpm package.
 
 Using --xml is WYSIWYG for everything: there are also query formats for
 a tag displayed in octal that can be substituted (untested, from memory):
 
   rpm -qp --qf '[%{FILENAMES}: %{FILEMODES:oct}\n]' foo*.rpm
 
 As for the dependencies, you're correct in that there is no reason to 
 suspect that they aren't required.  The problem I'm experiencing is that 
 all the dependencies that are required are being supplied by the local 
 package, but RPM is generating external dependencies because it sees the 
 need for a Requires and isn't noticing that it was supplied as a Provides.
 
 
 Note that there may be a typo: note the extra '/' character within 
 parentheses:
 
 Error: Package: endeca-toolsandframeworks-3.1.1-1.el6.x86_64 
 (/endeca-toolsandframeworks-3.1.1-1.el6.x86_64)
Requires: endeca-mdex=6.4.0
 
 See if that is in the package requirements
  rpm -qp --requires endeca-toolsandframeworks-3.1.1-1.el6.x86_64.rpm
 
 That is interesting.  I'm building a multi-subpackage RPM, and endeca-mdex 
 is a requirement for endeca-toolsandframeworks.
 
 If a replacement, then you need a Provides: with the other name as well.
 
 Here is the relevant package section from my spec
 --- snip ---
 %package mdex
 Version:%{mdex_version}
 Group:  Servers/Indexing
 Summary:Endeca MDex %{version}
 %description mdex
 Endeca is an index engine
 This is the MDex portion
 
 %package presentationapi
 Version:%{mdex_version}
 Group:  Servers/Indexing
 Summary:Endeca MDex Presentation API %{version}
 Requires:   endeca-mdex=%{version}
 %description presentationapi
 Endeca is an index engine
 This is the Presentation API found in the MDex installer
 
 %package platformservices
 Version:%{pfs_version}
 Group:  Servers/Indexing
 Summary:Endeca PlatformServices %{version}
 Requires:   endeca-mdex=%{mdex_version}
 %description platformservices
 Endeca is an index engine
 This is the Platform Services
 
 %package toolsandframeworks
 Version:%{tfw_version}
 Group:  

Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-05 Thread devzero2000
On Sat, Jan 5, 2013 at 10:02 PM, Mykel Alvis
mal...@restorationhardware.com wrote:

 devzero2000 over on the rpm-users list suggested
 %define _use_internal_dependency_generator 0
My self, devzero2000 (Elia Pinto) is part of the rpm5 team, thanks to
jeff. Since the request was for rpm 4.8 I preferred answer you
on the rpm mailing list.

Best
__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides issue with re-packaging a complex product (endeca)

2013-01-05 Thread devzero2000
On Sat, Jan 5, 2013 at 10:15 PM, Jeffrey Johnson n3...@me.com wrote:

 On Jan 5, 2013, at 4:02 PM, Mykel Alvis wrote:


 devzero2000 over on the rpm-users list suggested
 %define _use_internal_dependency_generator 0


 This did exactly what I needed.



 Yes but … there are profound changes to the *.rpm package
 format that are coupled to setting %_use_internal_dependency_generator to 0.

 That macro was _NEVER_ designed to be flipped around on a per-package basis
 by package monkeys.
Yes, but apparently autoreq to 0 doesn't work on the sharelib deps on
rpm 4.8 (@rpm.org). I have seen
ocaml package setting %_use_internal_dependency_generator to 0 before
ocaml deps was included in rpm.
http://markmail.org/message/hdwyn3ys675psmcz
But perhaps i am missing something, probably.

Best regards
__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides

2012-04-04 Thread Anders F Björklund
Rick Miller wrote:

 But even with all the patching, the only yum use is for handling
 RPM packages for Linux on FreeBSD (like for the linux emulator).
 It has too many hardcoded assumptions to work for native packages.
 There is no real interest in having it portable to other systems.
 
 I left something out when I explained that we were trying to build
 Yum.  We are looking to install RPM and Yum and use those to manage
 our homegrown software and packages on FreeBSD.  We're not looking to
 manage anything other than our own software and applicable
 dependancies.

That is a perfectly reasonable usage scenario, just not sure about yum.

But just because it isn't supported doesn't mean that it won't work.

 Having said that, do you believe that portability will continue to be
 an issue under these circumstances?

I haven't looked at the later versions, than rpm-5.2.1 and yum-3.2.29.

But yum used to have all kinds of assumptions coded in, like the use
of /usr/bin/python and not allowing prefix. Or using redhat-release.

And as far as I know, yum still declares conflicts on rpm5 and zif...

Should take a look at the later yum code, see how much it would take ?
A slight problem is that nobody is maintaining the python at rpm5.org.

--anders

__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides

2012-04-04 Thread Jeffrey Johnson

On Apr 4, 2012, at 3:29 PM, Anders F Björklund wrote:

 
 A slight problem is that nobody is maintaining the python at rpm5.org.
 

Yet.

73 de Jeff

__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides

2012-04-03 Thread Rick Miller
 What are the Requires: needed?

My mistake, they are BuildRequires: and are as follows:

python
gettext
intltool

 What version of RPM?

I *think* its 5.2.x, but not 100% sure.  I don't have access to the
host today and can let you know tomorrow.  It was installed from the
FreeBSD ports collection for 8.2-RELEASE.

 All (at least that I can think of) Requires can be stubbed out
 in (normally: dunno what paths FreeBSD uses) in
    /etc/rpm/sysinfo/Providename

I thought the same.  The path in FreeBSD is
/usr/local/etc/rpm/sysinfo/Providename

However, might it be different since they are BuildRequires: and not Requires: ?

 Alternatively, you can stub out by building a package with a Provides:

I had considered this and may try it tomorrow.

(aside)
The RPM I am trying to build is yum.  I suspect that I may hit a
number of snags with the yum.spec as I try to get an RPM built for
FreeBSD.  This happens to be the first.


-- 
Take care
Rick Miller
__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides

2012-04-03 Thread Anders F Björklund
Rick Miller wrote:

 What version of RPM?
 
 I *think* its 5.2.x, but not 100% sure.  I don't have access to the
 host today and can let you know tomorrow.  It was installed from the
 FreeBSD ports collection for 8.2-RELEASE.

That would be 5.2.1.

http://www.freebsd.org/cgi/cvsweb.cgi/ports/archivers/rpm5/

 (aside)
 The RPM I am trying to build is yum.  I suspect that I may hit a
 number of snags with the yum.spec as I try to get an RPM built for
 FreeBSD.  This happens to be the first.

Using the yum.spec from Fedora on FreeBSD won't work, and is
probably the least of your problems compared with portability.

A yum port is available, and it required *lots* of patching:
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/150541

But even with all the patching, the only yum use is for handling
RPM packages for Linux on FreeBSD (like for the linux emulator).
It has too many hardcoded assumptions to work for native packages.
There is no real interest in having it portable to other systems.

It was mistakenly submitted* as a dependency of createrepo-0.9.8,
but it would have been better to use createrepo-0.4.11 instead...
(* as per http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/150542)
At one point, there was even a port of mock for use in linux-base:

http://www.freebsd.org/cgi/cvsweb.cgi/ports/emulators/linux_base-f10/
(currently it has a long hardcoded list of rpms, and uses rpm2cpio)

--anders

__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: Requires/Provides

2012-04-03 Thread Rick Miller
Thanks for the info, Anders!

I had wondered if anyone had done this already and was unable to
locate the port using my google-foo.  Thank you for the URLs.  I guess
we will evaluate how important yum would be for us in our environment
and compare the benefits vs. the LOE to implement.

On Tue, Apr 3, 2012 at 12:30 PM, Anders F Björklund a...@rpm5.org wrote:
 Rick Miller wrote:

 What version of RPM?

 I *think* its 5.2.x, but not 100% sure.  I don't have access to the
 host today and can let you know tomorrow.  It was installed from the
 FreeBSD ports collection for 8.2-RELEASE.

 That would be 5.2.1.

 http://www.freebsd.org/cgi/cvsweb.cgi/ports/archivers/rpm5/

 (aside)
 The RPM I am trying to build is yum.  I suspect that I may hit a
 number of snags with the yum.spec as I try to get an RPM built for
 FreeBSD.  This happens to be the first.

 Using the yum.spec from Fedora on FreeBSD won't work, and is
 probably the least of your problems compared with portability.

 A yum port is available, and it required *lots* of patching:
 http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/150541

 But even with all the patching, the only yum use is for handling
 RPM packages for Linux on FreeBSD (like for the linux emulator).
 It has too many hardcoded assumptions to work for native packages.
 There is no real interest in having it portable to other systems.

 It was mistakenly submitted* as a dependency of createrepo-0.9.8,
 but it would have been better to use createrepo-0.4.11 instead...
 (* as per http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/150542)
 At one point, there was even a port of mock for use in linux-base:

 http://www.freebsd.org/cgi/cvsweb.cgi/ports/emulators/linux_base-f10/
 (currently it has a long hardcoded list of rpms, and uses rpm2cpio)

 --anders

-- 
Take care
Rick Miller
__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org