On Sun, 14 Oct 2018 12:19:33 +0200 Andreas Beckmann <a...@debian.org> wrote:
> Version: 7.2.5.1+dfsg-1
>
> A new upstream version is available in experimental.

Unfortunately this fails to build from source on all 32-bit platforms:
https://buildd.debian.org/status/package.php?p=virtuoso-opensource&suite=experimental

On the x32 build (which is what I was looking at, in case Virtuoso is used
for Wikibase: https://phabricator.wikimedia.org/T206561 ):
https://buildd.debian.org/status/fetch.php?pkg=virtuoso-opensource&arch=x32&ver=7.2.5.1%2Bdfsg-2&stamp=1550089395&raw=0
configure:6904: error: The current version of Virtuoso Open Source Edition
(Column Store) can only be build on 64bit platforms

This is of course an intentional change:
https://github.com/openlink/virtuoso-opensource/issues/439
https://github.com/openlink/virtuoso-opensource/commit/33178d7bc9888e025da1894e0e1f0652212d729d

However, I am uncertain as to whether it is a *necessary* change, or
reflects the fact that they do not wish to support 32-bit (which might,
after all, cause segmentation faults on large databases). Perhaps it will
actually build and run fine on 32-bit if the block is patched out?

I don't know Debian's policy on this, but it seems similar to other
platforms (such as x32) that are sometimes not supported upstream. In this
case, though, it is breaking the package for 32-bit platforms officially
supported by Debian, in which Virtuoso 6 worked fine.

For many uses, it seems a 32-bit userspace should be sufficient:
"The defaults with Virtuoso Open-Source give a 160MB process size in
memory"
http://vos.openlinksw.com/owiki/wiki/VOS/VOSDebianNotes
(though per #720770 the memory limit may be ineffective; but maybe this was
fixed:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720770 )

The build also fails on s390x, ppc64 and sparc64 because DV_INT_TAG_WORD is
not defined.

Dkpool.c: In function 'mp_box_num':
../../libsrc/Dk/Dkbox.h:1034:28: error: 'DV_INT_TAG_WORD' undeclared
(first use in this function); did you mean 'DV_INT_TAG_WORD_64'?
 #define DV_INT_TAG_WORD_64 DV_INT_TAG_WORD
                            ^~~~~~~~~~~~~~~
../../libsrc/Dk/Dkpool.h:428:23: note: in definition of macro 'MP_INT'
     ((int64*)x)[-1] = tag_word; \
                       ^~~~~~~~

and there is some dubious pointer use in Dkbasket.c which might cause
problems on some platforms:

Dkbasket.c:335:51: note: expected ‘int *’ but argument is of type ‘long int *’
 rbuf_delete (rbuf_t * rb, rbuf_elt_t * rbe, int * inx_ret)
                                             ~~~~~~^~~~~~~


Best regards,
--
Laurence "GreenReaper" Parry

Reply via email to