Bug 2074529 - Review Request: p4lang-pi - Protocol Independent API
Summary: Review Request: p4lang-pi - Protocol Independent API
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-04-12 12:22 UTC by Radostin Stoyanov
Modified: 2024-10-16 04:25 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-06-17 09:53:35 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Fedora-review report (15.79 KB, text/plain)
2022-04-15 18:02 UTC, Radostin Stoyanov
no flags Details
Fedora-review report (15.61 KB, text/plain)
2022-04-26 15:53 UTC, Radostin Stoyanov
no flags Details

Description Radostin Stoyanov 2022-04-12 12:22:32 UTC
Spec URL: https://rstoyanov.fedorapeople.org/p4lang-pi.spec
SRPM URL: https://rstoyanov.fedorapeople.org/p4lang-pi-0.1.0-1.fc37.src.rpm
Description: Protocol Independent API (PI or P4 Runtime) defines a set of APIs that allow interacting with entities defined in a P4 program, such as tables, counters, meters.
Fedora Account System Username: rstoyanov

Comment 1 Radostin Stoyanov 2022-04-15 18:02:18 UTC
Created attachment 1872814 [details]
Fedora-review report

Comment 2 Adrian Reber 2022-04-26 10:49:18 UTC
Could you remove

# license
%{__mkdir_p} %{buildroot}%{_datadir}/p4lang-pi
%{__cp} LICENSE %{buildroot}%{_datadir}/p4lang-pi/LICENSE

and do
%license PI-%{version}/LICENSE

does that work

Comment 3 Radostin Stoyanov 2022-04-26 15:29:32 UTC
Thank you for the review Adrian. I have updated the spec file and src RPM file with your suggestion. As as expected, the LICENSE file is now installed in /usr/share/licenses/p4lang-pi/.

Spec URL: https://rstoyanov.fedorapeople.org/p4lang-pi.spec
SRPM URL: https://rstoyanov.fedorapeople.org/p4lang-pi-0.1.0-1.fc37.src.rpm

Comment 4 Radostin Stoyanov 2022-04-26 15:53:44 UTC
Created attachment 1875111 [details]
Fedora-review report

Comment 5 Adrian Reber 2022-04-27 06:20:14 UTC
It does not build on my Fedora 36 system. Does the package require something from rawhide?



/bin/sh ../libtool  --tag=CXX   --mode=link g++ -Wall -Werror -Wno-unused-command-line-argument -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -Wl,-dT,/home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/.package_note-p4lang-pi-0.1.0-1.fc36.x86_64.ld -o pi_server_dummy pi_server_main.o ../server/libpigrpcserver.la ../frontend/libpifeproto.la ../libpiprotogrpc.la ../libpiprotobuf.la ../../src/libpiall.la ../../targets/dummy/libpi_dummy.la -lmicrohttpd 
libtool: link: g++ -Wall -Werror -Wno-unused-command-line-argument -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT -Wl,/home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/.package_note-p4lang-pi-0.1.0-1.fc36.x86_64.ld -o .libs/pi_server_dummy pi_server_main.o  ../server/.libs/libpigrpcserver.so -L/usr/lib64 -L/usr/lib /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/proto/frontend/.libs/libpifeproto.so /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/proto/.libs/libpiprotogrpc.so -lboost_system ../frontend/.libs/libpifeproto.so /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/frontends_extra/cpp/.libs/libpifecpp.so /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/proto/p4info/.libs/libpiconvertproto.so /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/src/.libs/libpip4info.so -lboost_thread ../.libs/libpiprotogrpc.so /home/adrian/rpmbuild/BUILD/p4lang-pi-0.1.0/PI-0.1.0/build/proto/.libs/libpiprotobuf.so -lgrpc++ -lgrpc -laddress_sorting -lre2 -lupb -lcares -lz -lgpr -lssl -lcrypto -labsl_hash -labsl_city -labsl_wyhash -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_exponential_biased -labsl_statusor -labsl_status -labsl_cord -labsl_bad_optional_access -labsl_str_format_internal -labsl_synchronization -labsl_graphcycles_internal -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_strings -labsl_strings_internal -lrt -labsl_base -labsl_spinlock_wait -labsl_int128 -labsl_throw_delegate -labsl_time_zone -labsl_bad_variant_access -labsl_raw_logging_internal -labsl_log_severity ../.libs/libpiprotobuf.so -lprotobuf ../../src/.libs/libpiall.so -lm ../../targets/dummy/.libs/libpi_dummy.so -lmicrohttpd -pthread
../../../proto/demo_grpc/web_server.cpp: In function 'int {anonymous}::answer_to_connection(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)':
../../../proto/demo_grpc/web_server.cpp:199:39: error: invalid conversion from 'int (*)(void*, MHD_ValueKind, const char*, const char*, const char*, const char*, const char*, uint64_t, size_t)' {aka 'int (*)(void*, MHD_ValueKind, const char*, const char*, const char*, const char*, const char*, long unsigned int, long unsigned int)'} to 'MHD_PostDataIterator' {aka 'MHD_Result (*)(void*, MHD_ValueKind, const char*, const char*, const char*, const char*, const char*, long unsigned int, long unsigned int)'} [-fpermissive]
  199 |           connection, POSTBUFFERSIZE, iterate_post,
      |                                       ^~~~~~~~~~~~
      |                                       |
      |                                       int (*)(void*, MHD_ValueKind, const char*, const char*, const char*, const char*, const char*, uint64_t, size_t) {aka int (*)(void*, MHD_ValueKind, const char*, const char*, const char*, const char*, const char*, long unsigned int, long unsigned int)}
In file included from ../../../proto/demo_grpc/web_server.cpp:26:
/usr/include/microhttpd.h:4020:49: note:   initializing argument 3 of 'MHD_PostProcessor* MHD_create_post_processor(MHD_Connection*, size_t, MHD_PostDataIterator, void*)'
 4020 |                            MHD_PostDataIterator iter, void *iter_cls);
      |                            ~~~~~~~~~~~~~~~~~~~~~^~~~
../../../proto/demo_grpc/web_server.cpp: In member function 'int WebServer::start()':
../../../proto/demo_grpc/web_server.cpp:240:29: error: invalid conversion from 'int (*)(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**)' {aka 'int (*)(void*, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} to 'MHD_AccessHandlerCallback' {aka 'MHD_Result (*)(void*, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)'} [-fpermissive]
  240 |                             &answer_to_connection, static_cast<void *>(this),
      |                             ^~~~~~~~~~~~~~~~~~~~~
      |                             |
      |                             int (*)(void*, MHD_Connection*, const char*, const char*, const char*, const char*, size_t*, void**) {aka int (*)(void*, MHD_Connection*, const char*, const char*, const char*, const char*, long unsigned int*, void**)}
/usr/include/microhttpd.h:2701:45: note:   initializing argument 5 of 'MHD_Daemon* MHD_start_daemon(unsigned int, uint16_t, MHD_AcceptPolicyCallback, void*, MHD_AccessHandlerCallback, void*, ...)'
 2701 |                   MHD_AccessHandlerCallback dh, void *dh_cls,
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
At global scope:
cc1plus: note: unrecognized command-line option '-Wno-unused-command-line-argument' may have been intended to silence earlier diagnostics
make[4]: *** [Makefile:559: web_server.o] Error 1
make[4]: *** Waiting for unfinished jobs....
../../../proto/demo_grpc/test_perf.cpp: In member function 'int P4RuntimeClient::assign_device(int, const pi_p4info_t*)':
../../../proto/demo_grpc/test_perf.cpp:115:27: error: ignoring return value of 'p4::config::v1::P4Info* p4::v1::ForwardingPipelineConfig::release_p4info()', declared with attribute 'nodiscard' [-Werror=unused-result]
  115 |     config->release_p4info();
      |     ~~~~~~~~~~~~~~~~~~~~~~^~
In file included from ../grpc_out/p4/v1/p4runtime.grpc.pb.h:22,
                 from ../../../proto/demo_grpc/test_perf.cpp:20:
../cpp_out/p4/v1/p4runtime.pb.h:20462:34: note: declared here
20462 | inline ::p4::config::v1::P4Info* ForwardingPipelineConfig::release_p4info() {
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~
At top level:
cc1plus: note: unrecognized command-line option '-Wno-unused-command-line-argument' may have been intended to silence earlier diagnostics
cc1plus: all warnings being treated as errors
make[4]: *** [Makefile:559: test_perf.o] Error 1
In file included from /usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 from /usr/include/boost/smart_ptr/detail/yield_k.hpp:23,
                 from /usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 from /usr/include/boost/smart_ptr/detail/spinlock.hpp:42,
                 from /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:29,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/date_time/time_clock.hpp:17,
                 from /usr/include/boost/date_time/posix_time/posix_time_types.hpp:10,
                 from /usr/include/boost/asio/time_traits.hpp:23,
                 from /usr/include/boost/asio/detail/timer_queue_ptime.hpp:22,
                 from /usr/include/boost/asio/detail/deadline_timer_service.hpp:29,
                 from /usr/include/boost/asio/basic_deadline_timer.hpp:25,
                 from /usr/include/boost/asio.hpp:25,
                 from ../../../proto/demo_grpc/simple_router_mgr.h:25,
                 from ../../../proto/demo_grpc/simple_router_mgr.cpp:21:
/usr/include/boost/bind.hpp:36:1: note: '#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.'
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
../../../proto/demo_grpc/simple_router_mgr.cpp: In member function 'int SimpleRouterMgr::assign(const std::string&, const std::string*)':
../../../proto/demo_grpc/simple_router_mgr.cpp:273:25: error: ignoring return value of 'p4::config::v1::P4Info* p4::v1::ForwardingPipelineConfig::release_p4info()', declared with attribute 'nodiscard' [-Werror=unused-result]
  273 |   config->release_p4info();
      |   ~~~~~~~~~~~~~~~~~~~~~~^~
In file included from ../grpc_out/p4/v1/p4runtime.grpc.pb.h:22,
                 from ../../../proto/demo_grpc/simple_router_mgr.h:29:
../cpp_out/p4/v1/p4runtime.pb.h:20462:34: note: declared here
20462 | inline ::p4::config::v1::P4Info* ForwardingPipelineConfig::release_p4info() {
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~
../../../proto/demo_grpc/simple_router_mgr.cpp: In member function 'int SimpleRouterMgr::add_one_entry(p4::v1::TableEntry*)':
../../../proto/demo_grpc/simple_router_mgr.cpp:318:30: error: ignoring return value of 'p4::v1::TableEntry* p4::v1::Entity::release_table_entry()', declared with attribute 'nodiscard' [-Werror=unused-result]
  318 |   entity->release_table_entry();
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../cpp_out/p4/v1/p4runtime.pb.h:12593:30: note: declared here
12593 | inline ::p4::v1::TableEntry* Entity::release_table_entry() {
      |                              ^~~~~~
../../../proto/demo_grpc/simple_router_mgr.cpp: In member function 'int SimpleRouterMgr::set_one_default_entry(pi_p4_id_t, p4::v1::Action*)':
../../../proto/demo_grpc/simple_router_mgr.cpp:442:24: error: ignoring return value of 'p4::v1::Action* p4::v1::TableAction::release_action()', declared with attribute 'nodiscard' [-Werror=unused-result]
  442 |   entry->release_action();
      |   ~~~~~~~~~~~~~~~~~~~~~^~
../cpp_out/p4/v1/p4runtime.pb.h:14995:26: note: declared here
14995 | inline ::p4::v1::Action* TableAction::release_action() {
      |                          ^~~~~~~~~~~
../../../proto/demo_grpc/simple_router_mgr.cpp: In member function 'int SimpleRouterMgr::update_config_(const std::string&, const std::string*)':
../../../proto/demo_grpc/simple_router_mgr.cpp:729:27: error: ignoring return value of 'p4::config::v1::P4Info* p4::v1::ForwardingPipelineConfig::release_p4info()', declared with attribute 'nodiscard' [-Werror=unused-result]
  729 |     config->release_p4info();
      |     ~~~~~~~~~~~~~~~~~~~~~~^~
../cpp_out/p4/v1/p4runtime.pb.h:20462:34: note: declared here
20462 | inline ::p4::config::v1::P4Info* ForwardingPipelineConfig::release_p4info() {
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~
At top level:
cc1plus: note: unrecognized command-line option '-Wno-unused-command-line-argument' may have been intended to silence earlier diagnostics
cc1plus: all warnings being treated as errors

Comment 6 Adrian Reber 2022-04-27 06:21:07 UTC
If you make changes to your package during the review process please increase the Release and mention the changes in the changelog.

Comment 7 Radostin Stoyanov 2022-04-27 18:03:31 UTC
I am not able to replicate this error. Here are the steps I followed to test with Fedora 36:

$ sudo podman run -it registry.fedoraproject.org/fedora:36 bash

dnf install -y fedpkg rpmdevtools valgrind automake libtool python3-devel glibc-devel gcc gcc-c++ boost-devel boost-system boost-thread grpc-devel grpc-plugins protobuf-devel
git clone https://github.com/rst0git/p4lang-pi-rpm.git
cd p4lang-pi-rpm/
spectool -g p4lang-pi.spec
fedpkg local

Comment 8 Adrian Reber 2022-05-02 13:48:47 UTC
That error only happens when libmicrohttpd-deve is installed, right.

Comment 9 Adrian Reber 2022-05-02 13:50:11 UTC
Looks good. Please open an ExclusiveArch tracker bug once the package has been imported.

Comment 10 Package Review 2023-05-19 07:38:44 UTC
Package was never imported.
The ticket status is being reset, since creating the repository will require a fresh approval.
Let us know if you're still interested in this package.

Comment 11 Package Review 2024-05-19 00:45:30 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.

Comment 12 Red Hat Bugzilla 2024-10-16 04:25:02 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days


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