Bug#265597: Bug#264403: rpvm: FTBFS m68k: /usr/lib/pvm3/conf/LINUXR68R.def: No such file or directory
On Tue, Aug 17, 2004 at 01:54:34AM -0600, Christian T. Steigies wrote:
> > I'm mystified too. Builds fine on i386, not sure anybody ever tried it
> > anywhere else ...
>
> It seems to fail on most arches wit a similar problem:
Yes (see below).
> ** libs
> make[1]: Entering directory /build/buildd/rpvm-0.6.2/src'
> Makevars:3: /usr/lib/pvm3/conf/LINUXRRR.def: No such file or directory
> make[1]: *** No rule to make target /usr/lib/pvm3/conf/LINUXRRR.def'. Stop.
>
> http://buildd.debian.org/build.php?arch=&pkg=rpvm
>
> > > BTW, for both this and the other rpvm-related bug: I'm quite new as PVM
> > > maintainer; I hijacked the package some time ago and fixed the worst bugs,
> > > but it rarely gives me problems so I'm not really into all the packaging
> > > details yet :-)
> > >
> > > >> Try to guess if pvm is installed somewhere ...
> > > >> Found pvm: /usr/lib/pvm3
> > > >> PVM_ROOT is /usr/lib/pvm3
> > > >> PVM_ARCH is LINUXR68R
> > >
> > > This seems rather odd...
>
> I would say you have an overflow of "R"'s in your code... they kill
> everything but the numbers.
Yes (see below).
> > > What does "/usr/lib/pvm3/lib/pvmgetarch" return?
> > > How about "uname -m"?
>
> On woody:
> Setting up libpvm3 (3.4.2-8) ...
>
> Setting up pvm (3.4.2-8) ...
>
> Setting up pvm-dev (3.4.2-8) ...
>
> buildd@aahz:~>uname -m
> m68k
> buildd@aahz:~>/usr/lib/pvm3/lib/pvmgetarch
> LINUXM68K
>
> On unstable:
> Setting up libpvm3 (3.4.2-11) ...
>
> Setting up pvm (3.4.2-11) ...
>
> Setting up pvm-dev (3.4.2-11) ...
> root@aahz:/# uname -m
> m68k
> root@aahz:/# /usr/lib/pvm3/lib/pvmgetarch
> LINUXM68K
>
> Where R the RRRs???
That really is the problem. And I still think the two FTBFS, which I merged
and which Steinar unmerged, are the same and should be merged again.
Witness the following:
1. rpvm has a very simple and standard structure confirming to the layout
of the over 400 R packages. In particular, in rpvm-0.6.2/src/, the
following -- and really simple -- Makevars.in is included:
edd@chibud:~/src/debian/CRAN/rpvm-0.6.2/src> cat Makevars.in
# -*- Makefile -*- vim : ft = make
include @PVM_ROOT@/conf/@PVM_ARCH@.def
# PVM library and header files
PKG_CPPFLAGS = @PKG_CPPFLAGS@ -I$(PVM_ROOT)/include
PKK_CFLAGS = $(ARCHCFLAGS)
PKG_LIBS = @PKG_LIBS@ $(ARCHLIB)
edd@chibud:~/src/debian/CRAN/rpvm-0.6.2/src>
2. Notice how it wants @PVM_ARCH@.def. The pvm-dev package in testing
ships these:
edd@chibud:~/src/debian/CRAN/rpvm-0.6.2/src> ls /usr/lib/pvm3/conf/*def
/usr/lib/pvm3/conf/LINUX.def /usr/lib/pvm3/conf/LINUXM68K.def
/usr/lib/pvm3/conf/LINUXALPHA.def /usr/lib/pvm3/conf/LINUXMIPS.def
/usr/lib/pvm3/conf/LINUXAMD64.def /usr/lib/pvm3/conf/LINUXPPC.def
/usr/lib/pvm3/conf/LINUXARM.def /usr/lib/pvm3/conf/LINUXS390.def
/usr/lib/pvm3/conf/LINUXHPPA.def /usr/lib/pvm3/conf/LINUXSPARC.def
/usr/lib/pvm3/conf/LINUXIA64.def
edd@chibud:~/src/debian/CRAN/rpvm-0.6.2/src>
Should be fine for all of us, you'd think.
3. Now, configure.in and configure determine @PVM_ARCH@ in a very simple
way:
if test -z "${PVM_ARCH}"; then
PVM_ARCH=${PVM_ROOT}/lib/pvmgetarch
fi
fi
I.e., if unset, the output of pvmgetarch is used [ and PVM_ROOT is set
to /usr/lib/pvm3 if that directory exists -- explicit Debian test ]
4. This brings us back to Christian's comment above. It looks like (cf.
http://buildd.debian.org/build.php?pkg=rpvm ) that 6 out of 7 autobuild
attempt failed, and they all seem to have this problem (here using sparc):
Try to guess if pvm is installed somewhere ...
Found pvm: /usr/lib/pvm3
PVM_ROOT is /usr/lib/pvm3
PVM_ARCH is LINUXRRRRR
[...]
make[1]: Entering directory /build/buildd/rpvm-0.6.2/src'
Makevars:3: /usr/lib/pvm3/conf/LINUXRRRRR.def: No such file or directory
make[1]: *** No rule to make target /usr/lib/pvm3/conf/LINUXRRRRR.def'. Stop.
Similarly on ia64
Try to guess if pvm is installed somewhere ...
Found pvm: /usr/lib/pvm3
PVM_ROOT is /usr/lib/pvm3
PVM_ARCH is LINUXRR64
[...]
make[1]: Entering directory /build/buildd/rpvm-0.6.2/src'
Makevars:3: /usr/lib/pvm3/conf/LINUXRR64.def: No such file or directory
make[1]: *** No rule to make target /usr/lib/pvm3/conf/LINUXRR64.def'. Stop.
5. Now, R uses the _exact_ same debian/rules files for about 40 packages in
the archive. I have used it on another 400 auto-generated packages I
have included in Quantian 0.5.9.3.
I don't see why rpvm would need anything special. I also don't
understand how the shell script pvmgetarch can get so confused.
That said, for Linux it does the following:
os="/bin/uname -s"
ht="/bin/uname -m"
ov="/bin/uname -v"
[...]
case "$os,$ht" in
[...]
Linux,i[3456]86 ) ARCH=LINUX ;;
Linux,sparc64 ) ARCH=LINUXSPARC ;;
Linux,parisc* ) ARCH=LINUXHPPA ;;
Linux,arm* ) ARCH=LINUXARM ;;
Linux,x86_64* ) ARCH=LINUXAMD64 ;;
Linux,* ) ARCH=LINUX`uname -m | tr [a-z] [A-Z]` ;;
[...]
6. From this we note
a) that arm -- which built successfully -- is covered
whereas none of the failed arches is (ia64, hppa, s390, powerpc,
mipsel, sparc), and
b) that the little tr(1) call may not be the most robust thing on Earth.
7. So the question is: how to we fix this? The best place, I'd say, is
pvmgetarch.
8. I am not seeing anything obvious. Any takers?
Thanks for reading this far, Dirk
--
Those are my principles, and if you don't like them... well, I have others.
-- Groucho Marx
Reply to: