[R-sig-Fedora] WARNING you cannot build info or html versions of the R manuals

Tom Callaway tcallawa at redhat.com
Wed Jan 20 00:20:13 CET 2016


On 01/18/2016 08:50 PM, Rolf Turner wrote:
> Okay; tried this.  The executive summary is:  It didn't work.

I normally would charge a modest fee of a good bottle of liquor or a
six-pack of craft beer for the following lesson, but in the spirit of
easing your suffering, I shall do it once more at no charge. ;)

Let's look at what didn't work.

> In more detail:  I got a sequence of warnings
> 
> warning: group mockbuild does not exist - using root

Yep. This is safe to ignore. What RPM is saying here is that the user
who originally built this package ("mockbuild") isn't on your system.
"mockbuild" is the unprivileged user/group that the Fedora buildsystem
uses to build packages. However, part of that warning is something you
should not ignore:

" - using root".

You should not be building software as root. That path leads to terrible
pain and destruction. When you're ready to install the software you've
built, su to root, but not before.

>> error: Failed build dependencies:
>> help2man is needed by texinfo-6.0-2.fc17.x86_64
>> perl(Locale::Messages) is needed by texinfo-6.0-2.fc17.x86_64
>> perl(Unicode::EastAsianWidth) is needed by texinfo-6.0-2.fc17.x86_64
>> perl(Text::Unidecode) is needed by texinfo-6.0-2.fc17.x86_64

These messages come from RPM and they say "I've checked my database of
packages against what this src RPM says it needs to build and nothing
provides these". RPM isn't psychic. It only knows about packages that
have been installed by RPM. Anything you build from source by hand is
not known to it at all. These "perl(Foo::Bar)" dependencies are provided
by perl packages, where Foo::Bar is the CPAN module. You can see an
example of this by querying the perl package:

[spot at localhost ~]$ rpm -q perl --provides
perl = 4:5.22.1-355.fc24
perl(AnyDBM_File) = 1.01
perl(AutoLoader) = 5.74
perl(AutoSplit) = 1.06
...

This allows you to say:

yum install "perl(AnyDBM_File)"

And yum will go find the RPM package that Provides: perl(AnyDBM_File)
and install it for you. You don't have to remember the name of the
package, just the CPAN module name.

> Did a sudo yum install help2man which seemed to work. 

> Then searched
> around to try to fathom the perl messages.  Found indications that I
> needed to install perl-libintl-1.20-13.fc21.src.rpm.

Points to you. perl-libintl Provides: perl(Locale::Messages). That
package actually exists in Fedora 17, so you can do:

   sudo yum install "perl(Locale::Messages)"

And it will install it for you. The same is true for
"perl(Text::Unidecode)" but sadly, not for "perl(Unicode::EastAsianWidth)".

> Got that rpm and did
> 
> rpmbuild --rebuild perl-libintl-1.20-13.fc21.src.rpm
> 
> going by analogy and hope.  Something seemed to happen.  Then did

That built the src rpm into binary packages for Fedora 17.

> cd ~/rpmbuild/RPMS/x86_64
> sudo rpm -Uvh perl-libintl-1.20-13.fc17.x86_64.rpm
>               perl-libintl-debuginfo-1.20-13.fc17.x86_64.rpm
> 
> (The forgoing two lines were actually a single line; I broke it for
> email formatting.)

That's fine. For future knowledge, you only need to install the
debuginfo packages if you're planning on running the binaries in the
main RPM through gdb. Otherwise, it's just eating space on your hard drive.

> Then tried
> 
> rpmbuild --rebuild texinfo-6.0-2.fc24.src.rpm
> 
> again.  Got the warnings again, of course, then the errors:
> 
>> error: Failed build dependencies:
>> perl(Unicode::EastAsianWidth) is needed by texinfo-6.0-2.fc17.x86_64
>> perl(Text::Unidecode) is needed by texinfo-6.0-2.fc17.x86_64
> 
> 
> Found what seemed to be an appropriate rpm and did
> 
> rpmbuild --rebuild perl-Unicode-EastAsianWidth-1.33-6.fc23.src.rpm
> 
> Got the errors
> 
>> error: Failed build dependencies:
>> perl(Module::Package) is needed by
>> perl-Unicode-EastAsianWidth-1.33-6.fc17.noarch
>> perl(Pod::Markdown) is needed by
>> perl-Unicode-EastAsianWidth-1.33-6.fc17.noarch
>> perl(Module::Package::Au) is needed by
>> perl-Unicode-EastAsianWidth-1.33-6.fc17.noarch
> 
> Scrounged around with Google; found instructions for installing perl
> modules using "cpanm".

Here's where you got off the main road:

Installing modules via CPAN is the same as building them by hand: RPM
doesn't know they exist.

And that's where you lost hope. What you need to do is to keep tracing
down RPM packages for dependencies and rebuilding. Normally, most Fedora
users don't have to do this, because we build a whole repository of
packages for them, but since you're 6 (almost 7) releases out of date,
you've got harder work to do.

koji.fedoraproject.org is your friend here. You can search for srpms
there, download them, and rebuild them.

That said, since you've listened to all of this, I've installed a Fedora
17 VM instance on my laptop and built you the missing packages you need
to build R fully featured:

https://spot.fedorapeople.org/fedora17-R-deps/

There is a src.rpm in there too for texlive, you don't need to install
it, I just included it because I had to make a minor fix in that package
to reflect the dependencies available in Fedora 17 (but really only to
install the texinfo-tex subpackage, which I don't think you need to
build R... but still, better complete than not).

Good luck!

~tom

==
Red Hat



More information about the R-SIG-Fedora mailing list