Bug 2010890 - xmlrpc-c has missing C++ symbols
Summary: xmlrpc-c has missing C++ symbols
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: xmlrpc-c
Version: 37
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Jonathan Wright
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-10-05 14:54 UTC by Sebastien BLANCHET
Modified: 2022-12-28 01:39 UTC (History)
1 user (show)

Fixed In Version: xmlrpc-c-1.51.08-1.fc37 xmlrpc-c-1.51.08-1.fc36
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-12-19 01:14:51 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Example source code + Makefile (797 bytes, application/gzip)
2021-10-05 14:54 UTC, Sebastien BLANCHET
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FREEIPA-7035 0 None None None 2021-10-05 14:54:38 UTC

Description Sebastien BLANCHET 2021-10-05 14:54:04 UTC
Created attachment 1829475 [details]
Example source code + Makefile

Description of problem:

The package xmlrpc-c-devel-1.51 that is shipped with Fedora 35 has missing C++ symbols that prevent compiling C++ clients.

It affects also Fedora 34 and EPEL-8.


How reproducible:

It happens every time

Steps to Reproduce:

1. Install Fedora Server 35 in a virtual machine
2. Install some packages: 

    dnf install xmlrpc-c-devel g++ make

3. Compile the basic c++ client example from the xmlrpc-c web site
https://sourceforge.net/p/xmlrpc-c/code/HEAD/tree/trunk/examples/cpp/xmlrpc_sample_add_client.cpp

For convenience, the needed Makefile and .cpp file are attached to the bug report

    tar xvf test_client_xmlrpc.tar.gz
    cd test_client_xmlrpc
    make

/usr/bin/xmlrpc-c-config version 1.51.0
rm -f a.out
g++   test_client_xmlrpc.cpp  -lxmlrpc_client++
/usr/bin/ld: /tmp/ccXzKiXh.o: undefined reference to symbol '_ZNK8xmlrpc_c9value_intcviEv'
/usr/bin/ld: /usr/lib64/libxmlrpc++.so.8: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:10: all] Error 1


Actual results:

The example does not compile.


Expected results:

It should compile without errors like on CentOS7 (which has an older package version).


Additional info:

If I build the src.rpm without the RPM patches, the bug disappears

1. Install prerequesites

    dnf install g++ make openssl-devel libcurl-devel

2. Download and install xmlrpc-c .src.rpm

    wget https://kojipkgs.fedoraproject.org//packages/xmlrpc-c/1.51.0/14.fc36/src/xmlrpc-c-1.51.0-14.fc36.src.rpm

    rpm -i xmlrpc-c-1.51.0-14.fc36.src.rpm

3. Extract the source code, build and install it

    tar xf rpmbuild/SOURCES/xmlrpc-c-1.51.0.tar.xz
    cd xmlrpc-c-1.51.0/
    ./configure
    make
    make install

4. Then try again to build the example

This time the Makefile will pick xmlrpc-c-config from /usr/local/bin and then the libraries in /usr/local/lib

    cd ~/test_client_xmlrpc
    make

/usr/local/bin/xmlrpc-c-config version 1.51.0
rm -f a.out
g++ -I/usr/local/include   test_client_xmlrpc.cpp  -L/usr/local/lib   -lxmlrpc_client++ -lxmlrpc_client -lxmlrpc++ -lxmlrpc_util++ -lxmlrpc  -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util -lpthread -lcurl -lxmlrpc_packetsocket


When the RPM patches are not applied, there is no compilation errors and the example program works as expected.

Comment 1 Ben Cotton 2022-11-29 17:07:15 UTC
This message is a reminder that Fedora Linux 35 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 35 on 2022-12-13.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '35'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 35 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 2 Sebastien BLANCHET 2022-11-30 13:32:58 UTC
Unfortunately, the bug is still present on Fedora 37. 

Install Fedora Server 37, with default settings in VirtualBox

    dnf install g++ make xmlrpc-c-devel
    wget https://bugzilla.redhat.com/attachment.cgi?id=1829475 -O test_client_xmlrpc.tar.gz
    tar xvf test_client_xmlrpc.tar.gz
    cd test_client_xmlrpc
    make

Result
    /usr/bin/xmlrpc-c-config version 1.51.0
    rm -f a.out
    g++   test_client_xmlrpc.cpp  -lxmlrpc_client++ 
    /usr/bin/ld: /tmp/ccJSg2rp.o: undefined reference to symbol '_ZNK8xmlrpc_c9value_intcviEv'
    /usr/bin/ld: /usr/lib64/libxmlrpc++.so.8: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:11: all] Error 1

Comment 3 Jonathan Wright 2022-12-07 05:45:52 UTC
Sebastien,

Can you give the builds from https://koji.fedoraproject.org/koji/taskinfo?taskID=95038453 a shot?  Based on your test case provided it resolves the issue, but there are significant changes in the way the package is built in my test build so if you could just check general functionality of the package that would be great.

Comment 4 Sebastien BLANCHET 2022-12-12 10:55:24 UTC
Hi,

I confirm that the test program builds without errors
with the packages from https://koji.fedoraproject.org/koji/taskinfo?taskID=95038453 


Procedure:
----------------
Install Fedora Server 37, with default settings in VirtualBox

    dnf install g++ make curl-devel

    wget https://kojipkgs.fedoraproject.org//work/tasks/8472/95038472/xmlrpc-c-devel-1.51.08-1.fc37.x86_64.rpm  https://kojipkgs.fedoraproject.org//work/tasks/8472/95038472/xmlrpc-c-c%2B%2B-1.51.08-1.fc37.x86_64.rpm  https://kojipkgs.fedoraproject.org//work/tasks/8472/95038472/xmlrpc-c-client-1.51.08-1.fc37.x86_64.rpm  https://kojipkgs.fedoraproject.org//work/tasks/8472/95038472/xmlrpc-c-client%2B%2B-1.51.08-1.fc37.x86_64.rpm  https://kojipkgs.fedoraproject.org//work/tasks/8472/95038472/xmlrpc-c-1.51.08-1.fc37.x86_64.rpm
    rpm -Uvh xmlrpc-c-devel-1.51.08-1.fc37.x86_64.rpm xmlrpc-c-c++-1.51.08-1.fc37.x86_64.rpm xmlrpc-c-client-1.51.08-1.fc37.x86_64.rpm xmlrpc-c-client++-1.51.08-1.fc37.x86_64.rpm xmlrpc-c-1.51.08-1.fc37.x86_64.rpm

    wget https://bugzilla.redhat.com/attachment.cgi?id=1829475 -O test_client_xmlrpc.tar.gz
    tar xvf test_client_xmlrpc.tar.gz
    cd test_client_xmlrpc
    make
----------------


Checking general functionality
-------------------------------
I have built an other program, much more complex, and it seems to work normally.
So at a first sight, I would say that the general functionalities work as expected.

Comment 5 Fedora Update System 2022-12-12 19:47:18 UTC
FEDORA-2022-692c5bed30 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-692c5bed30

Comment 6 Fedora Update System 2022-12-12 19:47:24 UTC
FEDORA-2022-1cd3550b91 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-1cd3550b91

Comment 7 Fedora Update System 2022-12-12 19:47:30 UTC
FEDORA-2022-908778bf50 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2022-908778bf50

Comment 8 Fedora Update System 2022-12-13 01:24:33 UTC
FEDORA-2022-1cd3550b91 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-1cd3550b91`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-1cd3550b91

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2022-12-13 01:32:54 UTC
FEDORA-2022-692c5bed30 has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-692c5bed30`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-692c5bed30

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Fedora Update System 2022-12-13 03:48:16 UTC
FEDORA-2022-908778bf50 has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-908778bf50`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-908778bf50

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 11 Fedora Update System 2022-12-19 01:14:51 UTC
FEDORA-2022-692c5bed30 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2022-12-28 01:39:32 UTC
FEDORA-2022-1cd3550b91 has been pushed to the Fedora 36 stable repository.
If problem still persists, 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.