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 1734200

Summary: libpqxx is old
Product: [Fedora] Fedora Reporter: sgiurgiu11
Component: libpqxxAssignee: Matthew Krupcale <mkrupcale>
Status: ON_QA --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: alalexey, andreas.bierfert, rdieter
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description sgiurgiu11 2019-07-30 00:32:07 UTC
Description of problem:

The library version available in Fedora is old, and has problems compiling with projects that require C++17. There are new'er versions available released that solve many long-standing compilation issues on newer compilers and standards. 

Version-Release number of selected component (if applicable):
4.0.1.17.fc30

How reproducible:

Always.

Steps to Reproduce:
1. Try to compile a uWebsockets program that requires -std=c++17 with libpqxx

cc -DLIBUS_NO_SSL -flto -O3 -c -IuSockets/src uSockets/src/*.c uSockets/src/eventing/*.c
g++ -DLIBUS_NO_SSL -DUWS_NO_ZLIB -flto -O3 -c -std=c++17 -L/usr/lib64 -lpqxx -Isrc -IuSockets/src examples/HelloWorld.cpp

#include "App.h"

#include <pqxx/pqxx>


int main() {

      pqxx::connection c("postgresql://localhost");

        /* Overly simple hello world app */
        uWS::App().get("/*", [](auto *res, auto *req) {
            res->end("Hello world!");
        }).listen(3000, [](auto *token) {
            if (token) {
                std::cout << "Listening on port " << 3000 << std::endl;
            }
        }).run();

        std::cout << "Failed to listen on port 3000" << std::endl;
}


Actual results:
/usr/include/pqxx/result.hxx:135:35: error: ISO C++17 does not allow dynamic exception specifications


Expected results:

clean compilation

Additional info:

https://github.com/jtv/libpqxx/issues/103

Comment 1 Aleksei Aleshin 2019-08-21 09:17:02 UTC
I have built latest libpqxx in copr https://copr.fedorainfracloud.org/coprs/krepver/libpqxx/

Spec here - https://github.com/krepver/libpqxx-fedora

It is my first experience in packaging, so something can be broken, but "it works on my machine" :)

Comment 2 Fedora Update System 2020-02-08 20:54:27 UTC
FEDORA-2020-5800668f86 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2020-5800668f86

Comment 3 Fedora Update System 2020-02-09 01:21:17 UTC
libpqxx-7.0.1-1.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-428425e010

Comment 4 Fedora Update System 2020-02-09 01:47:03 UTC
libpqxx-7.0.1-1.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-5800668f86