Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1131492 - moarvm: package contains bundled libraries
Summary: moarvm: package contains bundled libraries
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: moarvm
Version: rawhide
Hardware: All
OS: Linux
urgent
high
Target Milestone: ---
Assignee: Gerd Pokorra
QA Contact: Christopher Meng
URL:
Whiteboard:
Depends On:
Blocks: DuplicSysLibsTracker
TreeView+ depends on / blocked
 
Reported: 2014-08-19 12:16 UTC by Jakub Čajka
Modified: 2014-09-23 04:50 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-09-10 02:38:26 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jakub Čajka 2014-08-19 12:16:29 UTC
Package violate packaging guidelines( https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries and https://fedoraproject.org/wiki/Packaging:Treatment_Of_Bundled_Libraries ) as it contains bundled libraries which are used during package build(removing 3rdparty dir in %prep breaks build in %build phase):

tinyMT(probably not a big deal as MT is approved to be bundled, but still should be brought up to FPC https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Exceptions , also breaks build on s390(x))
libatomic_ops
uthash 
libuv
dyncall
libtommath

3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttypes build passes without them.

Please look in to it.

Comment 1 Dan Horák 2014-08-19 12:25:54 UTC
rpmls moarvm-debuginfo-0.2014.04-3.fc20.x86_64.rpm returns:

...
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncall
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncall/dyncall.h
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncall/dyncall_types.h
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncall/dyncall_value.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncallback
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncallback/dyncall_args.h
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dyncallback/dyncall_callback.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dynload
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/dyncall/dynload/dynload.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/generalize-small.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/loadstore
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/loadstore/atomic_load.h
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/loadstore/atomic_store.h
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/ordered_except_wr.h
-rwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/read_ordered.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libtommath
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/libtommath/bn_mp_get_long.c
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/libtommath/bn_mp_set_long.c
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/libtommath/tommath.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libuv
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/libuv/include
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/libuv/include/uv-unix.h
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/libuv/include/uv.h
drwxr-xr-x  /usr/src/debug/MoarVM-2014.04/3rdparty/tinymt
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/tinymt/tinymt64.c
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/tinymt/tinymt64.h
-rw-r--r--  /usr/src/debug/MoarVM-2014.04/3rdparty/uthash.h
...

so even for libs, that are set as BuildRequires, some bundled files are used

Comment 2 Christopher Meng 2014-08-19 14:29:12 UTC
It finally sucks. 

Gerd, now you should understand me why I didn't want to approve it at the time.

For uthash, I don't consider it as a bundled library, because the bundled library policy is unclear to me, you can check the mail thread on devel.

uthash is a header only library and the one shipped in moarvm is not the same as the current version in Fedora, and moarvm has done some modifications on it. 

I will track this bug and get these craps out ASAP.

Comment 3 Gerd Pokorra 2014-08-19 14:55:37 UTC
The moarvm package do not bundle:

3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttypes

During the review special options was added with upstream and they are used at the configuration:

%{__perl} Configure.pl --prefix=%{_usr} --has-libtommath --use-readline \
                       --has-sha --has-libuv --has-libatomic_ops

The directories 3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttype are only not deleted before the build.

Only uthash.h is really used wich is not the same as in Fedora.

Comment 4 Dan Horák 2014-08-19 15:15:08 UTC
(In reply to Gerd Pokorra from comment #3)
> The moarvm package do not bundle:
> 
> 3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttypes
> 
> During the review special options was added with upstream and they are used
> at the configuration:
> 
> %{__perl} Configure.pl --prefix=%{_usr} --has-libtommath --use-readline \
>                        --has-sha --has-libuv --has-libatomic_ops

but the buildsystem is not 100% correct so some of the bundled files still are used, as you can see in my comment #1, that's why is recommended to remove the unbundled files before build
 
> The directories 3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttype are only
> not deleted before the build.
> 
> Only uthash.h is really used wich is not the same as in Fedora.

Comment 5 Gerd Pokorra 2014-08-19 15:34:31 UTC
(In reply to Dan Horák from comment #4)
> but the buildsystem is not 100% correct so some of the bundled files still
> are used, as you can see in my comment #1, that's why is recommended to
> remove the unbundled files before build

Okay! I will try a build with first removing the files excluded uthash.h.

Comment 6 Gerd Pokorra 2014-08-20 05:27:38 UTC
The build works if I add the line:

rm -r 3rdparty/sha1 3rdparty/linenoise 3rdparty/libtommath

To my surprise it do not build if I remove more.
For example: 3rdparty/libatomic_ops

I will look daeper for the reason, may be I need some days to find a solution, because I am working also on other things.

Comment 7 Gerd Pokorra 2014-08-22 13:03:34 UTC
To libatomic_ops:

I forgot to add the RuildRequires libatomic_ops-devel.
It is corrected.

MoarVM rebuilds are done for f21 and f22 (rawhide):

f21: https://koji.fedoraproject.org/koji/buildinfo?buildID=569986

f22: https://koji.fedoraproject.org/koji/buildinfo?buildID=569984


I also add in the specfile the line:
rm -r 3rdparty/sha1 3rdparty/linenoise 3rdparty/libatomic_ops 3rdparty/msinttypes

In Fedora 20 the libatomic_ops version is: 7.2d
In MoarVM the bundled libatomic_ops version is: 7.3alpha3

So there is a problem to do this in Fedora 20. I ask for updating libatomic_ops in Fedora 20 but the package maintainers have reasons not to do this.

Next I will have a deeper look to libtommath and MoarVM. I hope I will find some time for it soon.

Comment 8 Fedora Update System 2014-08-28 10:11:50 UTC
moarvm-0.2014.04-5.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/moarvm-0.2014.04-5.fc21

Comment 9 Fedora Update System 2014-08-28 10:35:46 UTC
moarvm-0.2014.04-4.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/moarvm-0.2014.04-4.fc20

Comment 10 Gerd Pokorra 2014-08-30 04:15:47 UTC
Remove of libtommath source files is added.

The rebuilds are at:

F20:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7473745

F21:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7473645

F22:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7473588


Now there are 3rdparth source files are removed as much as possible.

This is added to the specfils:

# make sure to not bundle this
rm -r 3rdparty/sha1 3rdparty/linenoise 3rdparty/msinttypes
%if 0%{?fedora} > 20
rm -r 3rdparty/libatomic_ops
%endif
#
# The upstream libtommath doesn't have the conversion from and to
# float/double that MoarVM needs. bn_mp_(get|set)_long.c are extentions of the
# origin libtommath source. The header files are needed to build.
rm `find 3rdparty/libtommath -type f ! -name '*long.c' -a ! -name '*.h'`


I did not found the software dnycall and tinymt in Fedora 20. So this software needed to be included. Let me know if I am wrong.

Comment 11 Fedora Update System 2014-09-09 22:25:50 UTC
moarvm-0.2014.04-4.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2014-09-23 04:50:24 UTC
moarvm-0.2014.04-5.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.