Bug 1311752 - (vrpn) Review Request: vrpn -The Virtual Reality Peripheral Network
Review Request: vrpn -The Virtual Reality Peripheral Network
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Zbigniew Jędrzejewski-Szmek
Fedora Extras Quality Assurance
:
Depends On:
Blocks: fedora-neuro openvibe
  Show dependency treegraph
 
Reported: 2016-02-24 16:52 EST by Dmitry Mikhirev
Modified: 2016-03-30 16:43 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-03-30 16:43:10 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
zbyszek: fedora‑review+


Attachments (Terms of Use)

  None (edit)
Description Dmitry Mikhirev 2016-02-24 16:52:45 EST
Spec URL: http://copr-dist-git.fedorainfracloud.org/cgit/bizdelnick/neuro/vrpn.git/plain/vrpn.spec?id=837d24b8f7f4ea2ba630dcf07f59a9471d62ddde
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/bizdelnick/neuro/fedora-rawhide-x86_64/00162899-vrpn/vrpn-07.33-1.fc24.src.rpm
Description: The Virtual-Reality Peripheral Network (VRPN) is a set of classes within a library and a set of servers that are designed to implement a network-transparent interface between application programs and the set of physical devices (tracker, etc.) used in a virtual-reality (VR) system. The idea is to have a PC or other host at each VR station that controls the peripherals (tracker, button device, haptic device, analog inputs, sound, etc). VRPN provides connections between the application and all of the devices using the appropriate class-of-service for each type of device sharing this link. The application remains unaware of the network topology.
Fedora Account System Username: bizdelnick
Comment 1 Zbigniew Jędrzejewski-Szmek 2016-03-05 14:11:55 EST
Does -doc really require the main package? Sometimes you just want to read the docs without pulling the libraries in.

Why build with openmpi only? Normally MPI packages in Fedora are built in three versions: plain, openmpi, mpich. It's more work, I know, but some people have good reasons to use mpich, and this would complicate things for them.
Comment 2 Dmitry Mikhirev 2016-03-05 14:37:38 EST
> Does -doc really require the main package? Sometimes you just want to read the docs without pulling the libraries in.

You are right, it's a mistake. BTW I forgot to make it noarch.

> Why build with openmpi only? Normally MPI packages in Fedora are built in three versions: plain, openmpi, mpich. It's more work, I know, but some people have good reasons to use mpich, and this would complicate things for them.

Is this process documented somewhere? Or can you point to some package for a reference?
Comment 3 Zbigniew Jędrzejewski-Szmek 2016-03-05 15:48:21 EST
E.g. gromacs: http://pkgs.fedoraproject.org/cgit/rpms/gromacs.git/tree/gromacs.spec.
Comment 4 Dmitry Mikhirev 2016-03-06 15:48:24 EST
Well, as I figured out MPI support is not implemented in fact (https://github.com/vrpn/vrpn/blob/version_07.33/vrpn_Connection.C#L5387), and the only thing that changed after %_openmpi_load was the cmake message "MPI Found". So I simply removed openmpi build dependency.

Spec URL: http://copr-dist-git.fedorainfracloud.org/cgit/bizdelnick/neuro/vrpn.git/plain/vrpn.spec?id=1b91629be55fe412a0591f28036beed83890a534
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/bizdelnick/neuro/fedora-rawhide-i386/00166162-vrpn/vrpn-07.33-1.fc25.src.rpm
Comment 5 Zbigniew Jędrzejewski-Szmek 2016-03-06 16:53:12 EST
Please provide a comment explaining what files are under what license in the binary RPMS (since you have two licenses) [https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios].

-java subpackage needs dependency on java-headless and javapackages-tools [https://fedoraproject.org/wiki/Packaging:Java#BuildRequires_and_Requires].
Comment 7 Zbigniew Jędrzejewski-Szmek 2016-03-07 16:17:29 EST
The review does not depend on this, but the spec file is a bit iffy.
It's something that would be nice to fix at some point.

1. Type=simple means that there's no synchronization wrt. to the daemon being ready to serve requests. So it's harder to write something that uses the daemon because it is necessary to poll for it to start. It would be much better to support Type=notify, or if that is not possible Type=forking.

2. /etc/default/* is a horrible "standard" that should not be propagated. Since you are introducing the package to Fedora with no prior installations, now is the best time to simply kill support for that file.

I have to go now, I'll do the rest of the review later.
Comment 8 Dmitry Mikhirev 2016-03-07 16:52:29 EST
> 1. Type=simple means that there's no synchronization wrt. to the daemon being ready to serve requests. So it's harder to write something that uses the daemon because it is necessary to poll for it to start. It would be much better to support Type=notify, or if that is not possible Type=forking.

It doesn't send systemd notification and it doesn't fork. Seems that it was written to be started by hands but not by any init system. But I think that systemd service is a good option anyway.

> 2. /etc/default/* is a horrible "standard" that should not be propagated. Since you are introducing the package to Fedora with no prior installations, now is the best time to simply kill support for that file.

There are several settings that can be specified only as command line options (address to listen on etc.). That's why I prefer to allow setting these options via file in /etc/default instead forcing users to use defaults.
Comment 9 Zbigniew Jędrzejewski-Szmek 2016-03-08 20:59:05 EST
> Seems that it was written to be started by hands but not by any init system. 
> But I think that systemd service is a good option anyway.
Yes, this service file is better than nothing. I'm just saying that this
is something that would be nice to fix in the long run.

> There are several settings that can be specified only as command line options
> (address to listen on etc.). That's why I prefer to allow setting these 
> options via file in /etc/default instead forcing users to use defaults.
This is not a packaging issue, but an upstream issue. But vrpn already has a config file, so it should simply read whatever options it need itself. Having a second config file is just a workaround for a stupid deficiency in the server. If you need to provide configuration options on the command-line, a systemd unit drop-in override is probably a better option.

But that somewhat matter of opinion, so I'll just get on with the review ;)

+ latest version
+ license is OK (GPLv3+)
- %license should be used for README.Legal
  README doesn't have to be packaged, since it just refers to README.Legal

- %python_provide macro should be used [https://fedoraproject.org/wiki/Packaging:Python#The_.25python_provide_macro]
+ provides/requires look OK otherwise
+ scriptlets look sane
+ builds and installs OK

Package is APPROVED. Please fix the license stuff and python provides.


You might consider defining %global _description to hold the repetead part of description. One trick is to do something like this:
%global _description The Virtual........................................... \
..............................................................    \
................................................................  \
.................................................................
(I.e. wrap the text to 80 columns but then merge the first row with %global.)
This way you avoid an empty line in %description. I haven't found a nicer
way to do this.

You can also replace Requires*: systemd lines with %systemd_requires. FPC just removed the ban a few days ago and it's more consise.
Comment 10 Zbigniew Jędrzejewski-Szmek 2016-03-08 21:03:07 EST
Pffff, I'll try to use conjunctions that actually make sense

> This is not a packaging issue, but an upstream issue. But vrpn already has a  config file, so it should simply read whatever options it need itself. Having a second config file is just a workaround for a stupid deficiency in the server. If you need to provide configuration options on the command-line, a systemd unit drop-in override is probably a better option.

This is not a packaging issue, but an upstream issue. Vrpn already has a  config file, so it should simply read whatever options it need itself. Having a second config file is just a workaround for a stupid deficiency in the server. Nevertheless, if you need to provide configuration options on the command-line, a systemd unit drop-in override is probably a better option. (Also, the name /etc/default/something to *override* *defaults* is backwards ;))
Comment 11 Zbigniew Jędrzejewski-Szmek 2016-03-08 21:08:54 EST
The tests fail now:
    Start 2: test_vrpn

2: Test command: /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn
2: Test timeout computed to be: 1500
2: vrpn_connect_udp_port: error finding host by name (localhost).
2: vrpn_Connection_IP: Can't Set up socket to lob UDP packets!
2: vrpn_connect_udp_port: error finding host by name (localhost).
2: vrpn_Connection_IP: Can't Set up socket to lob UDP packets!
2: vrpn_connect_udp_port: error finding host by name (localhost).
2: vrpn_Connection_IP: Can't Set up socket to lob UDP packets!
2: vrpn_connect_udp_port: error finding host by name (localhost).
2: vrpn_Connection_IP: Can't Set up socket to lob UDP packets!
2: *** buffer overflow detected ***: /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn terminated
2: ======= Backtrace: =========
2: /lib64/libc.so.6(+0x781f7)[0x7f1fe398c1f7]
2: /lib64/libc.so.6(__fortify_fail+0x37)[0x7f1fe3a2f717]
2: /lib64/libc.so.6(+0x119740)[0x7f1fe3a2d740]
2: /lib64/libc.so.6(+0x11b687)[0x7f1fe3a2f687]
2: /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07(+0xd4d6d)[0x7f1fe58f3d6d]
2: /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07(_ZN16vrpn_Endpoint_IP8mainloopEP7timeval+0x345)[0x7f1fe58f7825]
2: /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07(_ZN18vrpn_Connection_IP8mainloopEPK7timeval+0x7f)[0x7f1fe58f876f]
2: /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07(_ZN19vrpn_Tracker_Remote8mainloopEv+0x25)[0x7f1fe591eeb5]
2: /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn(main+0x97b)[0x561c91e0468b]
2: /lib64/libc.so.6(__libc_start_main+0xf1)[0x7f1fe39340c1]
2: /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn(_start+0x29)[0x561c91e04a49]
2: ======= Memory map: ========
2: 561c91e01000-561c91e07000 r-xp 00000000 fd:00 3136731                    /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn
2: 561c92006000-561c92007000 r--p 00005000 fd:00 3136731                    /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn
2: 561c92007000-561c92008000 rw-p 00006000 fd:00 3136731                    /builddir/build/BUILD/vrpn-version_07.33/build/server_src/test_vrpn
2: 561c929f4000-561c92b5a000 rw-p 00000000 00:00 0                          [heap]
2: 7f1fe1c0e000-7f1fe1c13000 r-xp 00000000 fd:00 3109199                    /usr/lib64/libnss_dns-2.23.90.so
2: 7f1fe1c13000-7f1fe1e13000 ---p 00005000 fd:00 3109199                    /usr/lib64/libnss_dns-2.23.90.so
2: 7f1fe1e13000-7f1fe1e14000 r--p 00005000 fd:00 3109199                    /usr/lib64/libnss_dns-2.23.90.so
2: 7f1fe1e14000-7f1fe1e15000 rw-p 00006000 fd:00 3109199                    /usr/lib64/libnss_dns-2.23.90.so
2: 7f1fe1e15000-7f1fe1e20000 r-xp 00000000 fd:00 3111673                    /usr/lib64/libnss_files-2.23.90.so
2: 7f1fe1e20000-7f1fe201f000 ---p 0000b000 fd:00 3111673                    /usr/lib64/libnss_files-2.23.90.so
2: 7f1fe201f000-7f1fe2020000 r--p 0000a000 fd:00 3111673                    /usr/lib64/libnss_files-2.23.90.so
2: 7f1fe2020000-7f1fe2021000 rw-p 0000b000 fd:00 3111673                    /usr/lib64/libnss_files-2.23.90.so
2: 7f1fe2021000-7f1fe2027000 rw-p 00000000 00:00 0 
2: 7f1fe2027000-7f1fe2028000 ---p 00000000 00:00 0 
2: 7f1fe2028000-7f1fe2828000 rw-p 00000000 00:00 0 
2: 7f1fe2828000-7f1fe282c000 r-xp 00000000 fd:00 3111911                    /usr/lib64/libattr.so.1.1.0
2: 7f1fe282c000-7f1fe2a2b000 ---p 00004000 fd:00 3111911                    /usr/lib64/libattr.so.1.1.0
2: 7f1fe2a2b000-7f1fe2a2c000 r--p 00003000 fd:00 3111911                    /usr/lib64/libattr.so.1.1.0
2: 7f1fe2a2c000-7f1fe2a2d000 rw-p 00000000 00:00 0 
2: 7f1fe2a2d000-7f1fe2a30000 r-xp 00000000 fd:00 3109131                    /usr/lib64/libdl-2.23.90.so
2: 7f1fe2a30000-7f1fe2c2f000 ---p 00003000 fd:00 3109131                    /usr/lib64/libdl-2.23.90.so
2: 7f1fe2c2f000-7f1fe2c30000 r--p 00002000 fd:00 3109131                    /usr/lib64/libdl-2.23.90.so
2: 7f1fe2c30000-7f1fe2c31000 rw-p 00003000 fd:00 3109131                    /usr/lib64/libdl-2.23.90.so
2: 7f1fe2c31000-7f1fe2ca0000 r-xp 00000000 fd:00 3109118                    /usr/lib64/libpcre.so.1.2.6
2: 7f1fe2ca0000-7f1fe2ea0000 ---p 0006f000 fd:00 3109118                    /usr/lib64/libpcre.so.1.2.6
2: 7f1fe2ea0000-7f1fe2ea1000 r--p 0006f000 fd:00 3109118                    /usr/lib64/libpcre.so.1.2.6
2: 7f1fe2ea1000-7f1fe2ea2000 rw-p 00070000 fd:00 3109118                    /usr/lib64/libpcre.so.1.2.6
2: 7f1fe2ea2000-7f1fe2eb9000 r-xp 00000000 fd:00 3111926                    /usr/lib64/libresolv-2.23.90.so
2: 7f1fe2eb9000-7f1fe30b9000 ---p 00017000 fd:00 3111926                    /usr/lib64/libresolv-2.23.90.so
2: 7f1fe30b9000-7f1fe30ba000 r--p 00017000 fd:00 3111926                    /usr/lib64/libresolv-2.23.90.so
2: 7f1fe30ba000-7f1fe30bb000 rw-p 00018000 fd:00 3111926                    /usr/lib64/libresolv-2.23.90.so
2: 7f1fe30bb000-7f1fe30bd000 rw-p 00000000 00:00 0 
2: 7f1fe30bd000-7f1fe30c1000 r-xp 00000000 fd:00 3111619                    /usr/lib64/libcap.so.2.24
2: 7f1fe30c1000-7f1fe32c0000 ---p 00004000 fd:00 3111619                    /usr/lib64/libcap.so.2.24
2: 7f1fe32c0000-7f1fe32c1000 r--p 00003000 fd:00 3111619                    /usr/lib64/libcap.so.2.24
2: 7f1fe32c1000-7f1fe32c2000 rw-p 00004000 fd:00 3111619                    /usr/lib64/libcap.so.2.24
2: 7f1fe32c2000-7f1fe32e5000 r-xp 00000000 fd:00 3114717                    /usr/lib64/libselinux.so.1
2: 7f1fe32e5000-7f1fe34e5000 ---p 00023000 fd:00 3114717                    /usr/lib64/libselinux.so.1
2: 7f1fe34e5000-7f1fe34e6000 r--p 00023000 fd:00 3114717                    /usr/lib64/libselinux.so.1
2: 7f1fe34e6000-7f1fe34e7000 rw-p 00024000 fd:00 3114717                    /usr/lib64/libselinux.so.1
2: 7f1fe34e7000-7f1fe34e9000 rw-p 00000000 00:00 0 
2: 7f1fe34e9000-7f1fe350a000 r-xp 00000000 fd:00 3116618                    /usr/lib64/libbluetooth.so.3.18.10
2: 7f1fe350a000-7f1fe3709000 ---p 00021000 fd:00 3116618                    /usr/lib64/libbluetooth.so.3.18.10
2: 7f1fe3709000-7f1fe370a000 r--p 00020000 fd:00 3116618                    /usr/lib64/libbluetooth.so.3.18.10
2: 7f1fe370a000-7f1fe370c000 rw-p 00021000 fd:00 3116618                    /usr/lib64/libbluetooth.so.3.18.10
2: 7f1fe370c000-7f1fe3713000 r-xp 00000000 fd:00 3109198                    /usr/lib64/librt-2.23.90.so
2: 7f1fe3713000-7f1fe3912000 ---p 00007000 fd:00 3109198                    /usr/lib64/librt-2.23.90.so
2: 7f1fe3912000-7f1fe3913000 r--p 00006000 fd:00 3109198                    /usr/lib64/librt-2.23.90.so
2: 7f1fe3913000-7f1fe3914000 rw-p 00007000 fd:00 3109198                    /usr/lib64/librt-2.23.90.so
2: 7f1fe3914000-7f1fe3ad7000 r-xp 00000000 fd:00 3111166                    /usr/lib64/libc-2.23.90.so
2: 7f1fe3ad7000-7f1fe3cd6000 ---p 001c3000 fd:00 3111166                    /usr/lib64/libc-2.23.90.so
2: 7f1fe3cd6000-7f1fe3cda000 r--p 001c2000 fd:00 3111166                    /usr/lib64/libc-2.23.90.so
2: 7f1fe3cda000-7f1fe3cdc000 rw-p 001c6000 fd:00 3111166                    /usr/lib64/libc-2.23.90.so
2: 7f1fe3cdc000-7f1fe3ce0000 rw-p 00000000 00:00 0 
2: 7f1fe3ce0000-7f1fe3cf6000 r-xp 00000000 fd:00 3116065                    /usr/lib64/libgcc_s-6.0.0-20160305.so.1
2: 7f1fe3cf6000-7f1fe3ef5000 ---p 00016000 fd:00 3116065                    /usr/lib64/libgcc_s-6.0.0-20160305.so.1
2: 7f1fe3ef5000-7f1fe3ef6000 r--p 00015000 fd:00 3116065                    /usr/lib64/libgcc_s-6.0.0-20160305.so.1
2: 7f1fe3ef6000-7f1fe3ef7000 rw-p 00016000 fd:00 3116065                    /usr/lib64/libgcc_s-6.0.0-20160305.so.1
2: 7f1fe3ef7000-7f1fe4000000 r-xp 00000000 fd:00 3111622                    /usr/lib64/libm-2.23.90.so
2: 7f1fe4000000-7f1fe41ff000 ---p 00109000 fd:00 3111622                    /usr/lib64/libm-2.23.90.so
2: 7f1fe41ff000-7f1fe4200000 r--p 00108000 fd:00 3111622                    /usr/lib64/libm-2.23.90.so
2: 7f1fe4200000-7f1fe4201000 rw-p 00109000 fd:00 3111622                    /usr/lib64/libm-2.23.90.so
2: 7f1fe4201000-7f1fe437a000 r-xp 00000000 fd:00 3109205                    /usr/lib64/libstdc++.so.6.0.22
2: 7f1fe437a000-7f1fe457a000 ---p 00179000 fd:00 3109205                    /usr/lib64/libstdc++.so.6.0.22
2: 7f1fe457a000-7f1fe4584000 r--p 00179000 fd:00 3109205                    /usr/lib64/libstdc++.so.6.0.22
2: 7f1fe4584000-7f1fe4586000 rw-p 00183000 fd:00 3109205                    /usr/lib64/libstdc++.so.6.0.22
2: 7f1fe4586000-7f1fe458a000 rw-p 00000000 00:00 0 
2: 7f1fe458a000-7f1fe4594000 r-xp 00000000 fd:00 3136258                    /builddir/build/BUILD/vrpn-version_07.33/build/gpsnmealib/libgpsnmea.so.07.33
2: 7f1fe4594000-7f1fe4793000 ---p 0000a000 fd:00 3136258                    /builddir/build/BUILD/vrpn-version_07.33/build/gpsnmealib/libgpsnmea.so.07.33
2: 7f1fe4793000-7f1fe4794000 r--p 00009000 fd:00 3136258                    /builddir/build/BUILD/vrpn-version_07.33/build/gpsnmealib/libgpsnmea.so.07.33
2: 7f1fe4794000-7f1fe4795000 rw-p 0000a000 fd:00 3136258                    /builddir/build/BUILD/vrpn-version_07.33/build/gpsnmealib/libgpsnmea.so.07.33
2: 7f1fe4795000-7f1fe4798000 r-xp 00000000 fd:00 3136237                    /builddir/build/BUILD/vrpn-version_07.33/build/atmellib/libvrpn_atmel.so.07.33
2: 7f1fe4798000-7f1fe4997000 ---p 00003000 fd:00 3136237                    /builddir/build/BUILD/vrpn-version_07.33/build/atmellib/libvrpn_atmel.so.07.33
2: 7f1fe4997000-7f1fe4998000 r--p 00002000 fd:00 3136237                    /builddir/build/BUILD/vrpn-version_07.33/build/atmellib/libvrpn_atmel.so.07.33
2: 7f1fe4998000-7f1fe4999000 rw-p 00000000 00:00 0 
2: 7f1fe4999000-7f1fe499e000 r-xp 00000000 fd:00 3123614                    /usr/lib64/libgpm.so.2.1.0
2: 7f1fe499e000-7f1fe4b9e000 ---p 00005000 fd:00 3123614                    /usr/lib64/libgpm.so.2.1.0
2: 7f1fe4b9e000-7f1fe4b9f000 r--p 00005000 fd:00 3123614                    /usr/lib64/libgpm.so.2.1.0
2: 7f1fe4b9f000-7f1fe4ba0000 rw-p 00006000 fd:00 3123614                    /usr/lib64/libgpm.so.2.1.0
2: 7f1fe4ba0000-7f1fe4bcf000 r-xp 00000000 fd:00 3123621                    /usr/lib64/libjsoncpp.so.0.10.5
2: 7f1fe4bcf000-7f1fe4dce000 ---p 0002f000 fd:00 3123621                    /usr/lib64/libjsoncpp.so.0.10.5
2: 7f1fe4dce000-7f1fe4dd0000 r--p 0002e000 fd:00 3123621                    /usr/lib64/libjsoncpp.so.0.10.5
2: 7f1fe4dd0000-7f1fe4dd1000 rw-p 00030000 fd:00 3123621                    /usr/lib64/libjsoncpp.so.0.10.5
2: 7f1fe4dd1000-7f1fe4ddb000 r-xp 00000000 fd:00 3127358                    /usr/lib64/libwiiuse.so.0
2: 7f1fe4ddb000-7f1fe4fda000 ---p 0000a000 fd:00 3127358                    /usr/lib64/libwiiuse.so.0
2: 7f1fe4fda000-7f1fe4fdb000 r--p 00009000 fd:00 3127358                    /usr/lib64/libwiiuse.so.0
2: 7f1fe4fdb000-7f1fe4fdc000 rw-p 00000000 00:00 0 
2: 7f1fe4fdc000-7f1fe4fe2000 r-xp 00000000 fd:00 3127379                    /usr/lib64/libhidapi-libusb.so.0.0.0
2: 7f1fe4fe2000-7f1fe51e1000 ---p 00006000 fd:00 3127379                    /usr/lib64/libhidapi-libusb.so.0.0.0
2: 7f1fe51e1000-7f1fe51e2000 r--p 00005000 fd:00 3127379                    /usr/lib64/libhidapi-libusb.so.0.0.0
2: 7f1fe51e2000-7f1fe51e3000 rw-p 00006000 fd:00 3127379                    /usr/lib64/libhidapi-libusb.so.0.0.0
2: 7f1fe51e3000-7f1fe51fa000 r-xp 00000000 fd:00 3116608                    /usr/lib64/libusb-1.0.so.0.1.0
2: 7f1fe51fa000-7f1fe53fa000 ---p 00017000 fd:00 3116608                    /usr/lib64/libusb-1.0.so.0.1.0
2: 7f1fe53fa000-7f1fe53fb000 r--p 00017000 fd:00 3116608                    /usr/lib64/libusb-1.0.so.0.1.0
2: 7f1fe53fb000-7f1fe53fc000 rw-p 00018000 fd:00 3116608                    /usr/lib64/libusb-1.0.so.0.1.0
2: 7f1fe53fc000-7f1fe5414000 r-xp 00000000 fd:00 3109202                    /usr/lib64/libpthread-2.23.90.so
2: 7f1fe5414000-7f1fe5613000 ---p 00018000 fd:00 3109202                    /usr/lib64/libpthread-2.23.90.so
2: 7f1fe5613000-7f1fe5614000 r--p 00017000 fd:00 3109202                    /usr/lib64/libpthread-2.23.90.so
2: 7f1fe5614000-7f1fe5615000 rw-p 00018000 fd:00 3109202                    /usr/lib64/libpthread-2.23.90.so
2: 7f1fe5615000-7f1fe5619000 rw-p 00000000 00:00 0 
2: 7f1fe5619000-7f1fe561e000 r-xp 00000000 fd:00 3136240                    /builddir/build/BUILD/vrpn-version_07.33/build/quat/libquat.so.07.33
2: 7f1fe561e000-7f1fe581d000 ---p 00005000 fd:00 3136240                    /builddir/build/BUILD/vrpn-version_07.33/build/quat/libquat.so.07.33
2: 7f1fe581d000-7f1fe581e000 r--p 00004000 fd:00 3136240                    /builddir/build/BUILD/vrpn-version_07.33/build/quat/libquat.so.07.33
2: 7f1fe581e000-7f1fe581f000 rw-p 00000000 00:00 0 
2: 7f1fe581f000-7f1fe59f1000 r-xp 00000000 fd:00 3136644                    /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07.33
2: 7f1fe59f1000-7f1fe5bf1000 ---p 001d2000 fd:00 3136644                    /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07.33
2: 7f1fe5bf1000-7f1fe5c1d000 r--p 001d2000 fd:00 3136644                    /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07.33
2: 7f1fe5c1d000-7f1fe5c1e000 rw-p 001fe000 fd:00 3136644                    /builddir/build/BUILD/vrpn-version_07.33/build/libvrpnserver.so.07.33
2: 7f1fe5c1e000-7f1fe5c44000 r-xp 00000000 fd:00 3100648                    /usr/lib64/ld-2.23.90.so
2: 7f1fe5e0b000-7f1fe5e14000 rw-p 00000000 00:00 0 
2: 7f1fe5e14000-7f1fe5e33000 r-xp 00000000 fd:00 3111261                    /usr/lib64/libudev.so.1.6.4
2: 7f1fe5e33000-7f1fe5e34000 r--p 0001e000 fd:00 3111261                    /usr/lib64/libudev.so.1.6.4
2: 7f1fe5e34000-7f1fe5e35000 rw-p 0001f000 fd:00 3111261                    /usr/lib64/libudev.so.1.6.4
2: 7f1fe5e35000-7f1fe5e39000 rw-p 00000000 00:00 0 
2: 7f1fe5e40000-7f1fe5e43000 rw-p 00000000 00:00 0 
2: 7f1fe5e43000-7f1fe5e44000 r--p 00025000 fd:00 3100648                    /usr/lib64/ld-2.23.90.so
2: 7f1fe5e44000-7f1fe5e45000 rw-p 00026000 fd:00 3100648                    /usr/lib64/ld-2.23.90.so
2: 7f1fe5e45000-7f1fe5e46000 rw-p 00000000 00:00 0 
2: 7ffdfc1af000-7ffdfc1d0000 rw-p 00000000 00:00 0                          [stack]
2: 7ffdfc1ef000-7ffdfc1f1000 r--p 00000000 00:00 0                          [vvar]
2: 7ffdfc1f1000-7ffdfc1f3000 r-xp 00000000 00:00 0                          [vdso]
2: ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
2: Thread code passes tests (not using for the following though)
2: Tracker's name is Tracker0@localhost.
2: Dial's name is Dial0@localhost.
2: Button's name is Button0@localhost.
2: Text's name is Text0@localhost.
2: Analog's name is Analog0@localhost.
2: Analog's name is AnalogOutput0@localhost.
2: Poser's name is Poser0@localhost.
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 1
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 2.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation relative:  (0.250000, 0.000000, 0.000000) 
2:       (1.000000, 1.000000, 1.000000, 1.000000)
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 0
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 3.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation:  (1.000000, 0.000000, 0.000000) 
2:       (1.000000, 1.000000, 1.000000, 1.000000)
2: 
2: Deleting and restarting _Remote objects
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 1
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 4.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation relative:  (1.000000, 0.250000, 0.000000) 
2:       (2.000000, 2.000000, 2.000000, -2.000000)
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 0
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 5.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation:  (1.000000, 1.000000, 0.000000) 
2:       (1.000000, 1.000000, 1.000000, 1.000000)
2: 
2: Deleting and restarting _Remote objects
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 1
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 6.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation relative:  (1.000000, 1.000000, 0.250000) 
2:       (2.000000, 2.000000, 2.000000, -2.000000)
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 0
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 7.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation:  (1.000000, 1.000000, 1.000000) 
2:       (1.000000, 1.000000, 1.000000, 1.000000)
2: 
2: Deleting and restarting _Remote objects
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 1
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 8.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation relative:  (1.250000, 1.000000, 1.000000) 
2:       (2.000000, 2.000000, 2.000000, -2.000000)
2: Dial 0 spun by 0.500000
2: Dial 1 spun by 0.500000
2: Button 0 is now in state 0
2: Got tracker pos, sensor 0
2:  + vel, sensor 0
2:  + acc, sensor 0
2: Got tracker pos, sensor 1
2:  + vel, sensor 1
2:  + acc, sensor 1
2: Received 12 analog output channels (first is 9.000000)
2: Received 8 analog channels
2: Received text "Text message"
2: Poser position/orientation:  (-1.000000, 1.000000, 1.000000) 
2:       (1.000000, 1.000000, 1.000000, 1.000000)
2: 
2: Deleting and restarting _Remote objects
2: 
2: Deleting _Remote objects
2: Testing whether two connections to a tracker and to a button each get their own messages.
2/2 Test #2: test_vrpn ........................***Exception: Other  8.95 sec

50% tests passed, 1 tests failed out of 2

Total Test time (real) =  19.75 sec

The following tests FAILED:
          2 - test_vrpn (OTHER_FAULT)
Errors while running CTest
Comment 12 Zbigniew Jędrzejewski-Szmek 2016-03-08 21:15:08 EST
OK, so it was mock misconfiguration, nss-myhostname was not enabled and localhost was not resolvable. But it seems that vrpn has a buffer overflow if the hostname cannot be resolved.
Comment 13 Gwyn Ciesla 2016-03-14 09:34:10 EDT
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/vrpn
Comment 14 Dmitry Mikhirev 2016-03-23 18:20:48 EDT
>- %python_provide macro should be used
Well, it works fine for local mock builds and for copr builds, but koji fails to build SRPM because python-devel is not installed in initial chroot and this macro does not expand (https://kojipkgs.fedoraproject.org//work/tasks/245/13440245/build.log). I believe there should be a solution, but I was unable to find it in the (very poor) documentation. How to get it built in koji?
Comment 15 Zbigniew Jędrzejewski-Szmek 2016-03-23 22:29:59 EDT
Both python-devel and python3-devel pull in python-macros which provides this macro. So something else must be going on.
Comment 16 Dmitry Mikhirev 2016-03-24 16:56:42 EDT
Yes, but koji tries to build SRPM before installing build dependencies, when there's no python-macros in chroot.
Comment 17 Zbigniew Jędrzejewski-Szmek 2016-03-24 17:36:18 EDT
Yeah, please look at the example in https://fedoraproject.org/wiki/Packaging:Python#Example_common_spec_file. That macro should be only used conditionally if defined.
Comment 18 Mike McCune 2016-03-28 19:47:57 EDT
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune@redhat.com with any questions

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