openSUSE Build Service / incomplete source tarball

30 views
Skip to first unread message

A. Vontobel

unread,
Jan 24, 2017, 6:08:49 PM1/24/17
to Grzegorz Mazur, ya...@googlegroups.com
Hello Grzesiek

For OpenSUSE users it is convenient to get software from the openSUSE Build
Service (OBS).

Unfortunately the semi-official "Education"-repository
https://build.opensuse.org/package/show/Education/yacas provides yacas version
1.3.6 only. Yacas has matured since (thanks a lot!) and the GUI in yacas 1.6.1
is impressive, so it is a pity not to use the current release.

Summary of my tests with yacas 1.6.1 on OpenSUSE:
- Fedora rpm packages from yacas.org work on current openSUSE_Leap_42.2.
- Fedora rpm packages work on openSUSE_Leap_42.1, except the GUI rpm
(Qt version on 42.1 not new enough).
- yacas-1.6.1.tar.gz compiles on openSUSE_Leap_42.2 (including GUI)

The latter I have tested using rpmbuild with the spec file contained in the
sources. A few modifications of yacas.spec were enough:
-Source: v%{version}.tar.gz
-BuildRequires: cmake gcc-c++ python-sphinx python-sphinx_rtd_theme qt5-
qtwebkit-devel qt5-qtsvg-devel
+Source: yacas-%{version}.tar.gz
+BuildRequires: cmake gcc-c++ python-sphinx python-sphinx_rtd_theme libqt5-
qtsvg-devel libQt5WebKitWidgets-devel libQt5PrintSupport-devel

So I was able to produce (and install) rpm packages on the local openSUSE
installation.

Then I have tried to build yacas 1.6.1 on OBS, but interestingly it failed.
Supposed reason: The tarball does not contain all the sources needed for the
GUI to build. Instead the build scripts try to download several zip files from
github.com, but OBS seems not to allow that.

The way to go would probably be to manually upload the zip files to the OBS
project and to adapt the build scripts. But without any experience with cmake
it is not straightforward to do it.

Could you provide a source tarball that does not depend on external sources
(except the ones defined in the rpm package system)? Maybe it could be
generated be cmake itself...

Or, do you intend to update
https://build.opensuse.org/package/show/home:grzegorzmazur/yacas ? The repo
currently provides the out-of-date version 1.5.0.

Kind regards,
Adrian






Grzegorz Mazur

unread,
Jan 25, 2017, 3:57:59 AM1/25/17
to A. Vontobel, ya...@googlegroups.com
Hi,

Sorry, instead of answering your questions I'll only ask one. Do you think that the restriction on downloading external files is actually imposed by OBS, for, let's say, security reasons, or there's a chance that the programs required to download and unpack the external libraries simply are not installed by default and it'd be enough to extend the BuidRequires section? Is there any chance that you could please check this?

The whole issue of distribution-specific packaging is tedious and exhausting. I'm strugling with several aspects of it since some time; the OBS entry for previous version of yacas was one of my attempts. Unfortunately I can't say that I'm close to any reasonable solution. That's why I'd be very grateful for help with OBS.

Thanks,
Grzesiek 

Grzegorz Mazur

unread,
Jan 26, 2017, 5:41:44 AM1/26/17
to yacas, vont...@gmx.ch
Hi,

I've applied the changes you've suggested and gave OBS a try. As you've warned me, I'm getting 

CMake Error at yacas-gui_codemirror-stamp/download-yacas-gui_codemirror.cmake:21 (message):
[  247s]   error: downloading
[  247s]   'https://github.com/codemirror/CodeMirror/archive/5.19.0.zip' failed
[  247s] 
[  247s]     status_code: 6 on
[  247s]     status_string: "Couldn't resolve host name"
[  247s]     log: Could not resolve host: github.com
[  247s] 
[  247s]   Closing connection 0

which suggests that either any access to the network is blocked during a build, or the configuration is badly broken. Unfortunately, the documentation of OBS is not that great, and I wasn't able to find anything relevant.

I'm not that keen on incorporating the external js libraries into the tarball, because they are large and change quite frequently. Actually, one of the big changes between 1.5 and 1.6 was removing them and downloading during build. In the end, it'd require changing the build system specifically for Suse and providing a separate tarball for it. It can be certainly done, I'm just wondering if there's no simpler way.

Grzesiek

Grzegorz Mazur

unread,
Jan 26, 2017, 8:01:10 AM1/26/17
to yacas, A. Vontobel
Hi,
OK, judging from the log file:
[   23s] ### VM INTERACTION START ###
[   23s] /usr/bin/qemu-kvm -nodefaults -no-reboot -nographic -vga none -object rng-random,filename=/dev/random,id=rng0 -device virtio-rng-pci,rng=rng0 -runas qemu -cpu host -net none -kernel /var/cache/obs/worker/root_3/.mount/boot/kernel -initrd 
^^^^^^^^^
/var/cache/obs/worker/root_3/.mount/boot/initrd -append root=/dev/disk/by-id/virtio-0 rootfstype=ext3 rootflags=data=writeback,nobarrier,commit=150,noatime panic=1 quiet no-kvmclock nmi_watchdog=0 rw rd.driver.pre=binfmt_misc elevator=noop console=ttyS0 init=/.build/build -m 3000 -drive file=/var/cache/obs/worker/root_3/root,format=raw,if=none,id=disk,serial=0,cache=unsafe -device virtio-blk-pci,drive=disk -drive 
the network is deliberately disabled. So for Suse everything has to be bundled together. I'll think how to do that and come beck to you.
Cheers,
Grzesiek

--
You received this message because you are subscribed to the Google Groups "yacas" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yacas+unsubscribe@googlegroups.com.
To post to this group, send email to ya...@googlegroups.com.
Visit this group at https://groups.google.com/group/yacas.
To view this discussion on the web visit https://groups.google.com/d/msgid/yacas/aab5b10c-6a02-4c77-b506-d0a4d458a1e8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Grzegorz Mazur

unread,
Jan 28, 2017, 7:06:51 PM1/28/17
to yacas, vont...@gmx.ch
Hi Adrian,

According to your suggestions I've fixed the spec file and written a script which builds self-contained source tarball (https://github.com/grzegorzmazur/yacas/commit/c04c114808a3de0b44782a2ff462d955c039ad12). As a result, yacas 1.6.1 seems to build on OBS (https://build.opensuse.org/package/show/home:grzegorzmazur/yacas-1.6.1).

Thanks a lot for all the detailed information.

Cheers,
Grzesiek

On Wednesday, 25 January 2017 00:08:49 UTC+1, A. Vontobel wrote:

A. Vontobel

unread,
Jan 29, 2017, 5:51:38 PM1/29/17
to Grzegorz Mazur, yacas
Hello Grzesiek

Thank you!
I'd suggest to add at least one more repository to your OBS project:
openSUSE_Leap_42.2

Best regards,
Adrian



> Betreff: Re: openSUSE Build Service / incomplete source tarball
> Datum: 28.01.2017
> Von: Grzegorz Mazur
> An: yacas <ya...@googlegroups.com>
>
> Hi Adrian,
>
> According to your suggestions I've fixed the spec file and written a script
> which builds self-contained source tarball
> (https://github.com/grzegorzmazur/yacas/commit/c04c114808a3de0b44782a2ff462d
> 955c039ad12). As a result, yacas 1.6.1 seems to build on OBS
> (https://build.opensuse.org/package/show/home:grzegorzmazur/yacas-1.6.1).
>
> Thanks a lot for all the detailed information.
>
> Cheers,
> Grzesiek
>
> On Wednesday, 25 January 2017 00:08:49 UTC+1, A. Vontobel wrote:
> > Hello Grzesiek
> >
> > For OpenSUSE users it is convenient to get software from the openSUSE
> > Build
> > Service (OBS).
> >
> > Unfortunately the semi-official "Education"-repository
> > https://build.opensuse.org/package/show/Education/yacas
> > <https://www.google.com/url?q=https%3A%2F%2Fbuild.opensuse.org%2Fpackage%2
> > Fshow%2FEducation%2Fyacas&sa=D&sntz=1&usg=AFQjCNFqU63OHlMgYDqKFYqWxq_EWWTU
> > Mw> provides yacas version

Grzegorz Mazur

unread,
Jan 30, 2017, 3:45:49 AM1/30/17
to yacas, vont...@gmx.ch
Hi Adrian,


On Sunday, 29 January 2017 23:51:38 UTC+1, A. Vontobel wrote:
I'd suggest to add at least one more repository to your OBS project:
openSUSE_Leap_42.2 

Auch, without you I'd be completely lost :( I've found where I can add repositories and have just added 42.2. Everything seems to work OK.

I've left builds for Fedora intact, but I'd rather not recommend them; the (admittedly silly) reason for this is that OBS does not tag the rpms with the distribution and release the way Fedora does it (there is no fcxx tag in the filename).

Thanks a lot,
Grzesiek
Reply all
Reply to author
Forward
0 new messages