Bug 1513512

Summary: Review Request: mir - Next generation display server
Product: [Fedora] Fedora Reporter: Neal Gompa <ngompa13>
Component: Package ReviewAssignee: Igor Gnatenko <ignatenko>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: alan, eclipseo, package-review
Target Milestone: ---Flags: ignatenko: fedora-review+
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: 2017-11-28 01:41:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Neal Gompa 2017-11-15 14:41:36 UTC
Spec URL: http://kinginuyasha.enanocms.org/downloads/mir.spec
SRPM URL: http://kinginuyasha.enanocms.org/downloads/mir-0.28.1-1.fc26.src.rpm

Description:
Mir is a display server running on linux systems,
with a focus on efficiency, robust operation,
and a well-defined driver model.

Fedora Account System Username: ngompa

Comment 1 Igor Gnatenko 2017-11-15 18:42:46 UTC
2830 /usr/bin/c++ -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-     hardened-cc1 -m64 -mtune=generic -pthread -g -std=c++14 -Werror -Wall -fno-strict-aliasing -pedantic -Wnon-virtual-dtor -Wextra -fPIC -Wno-psabi -flto -ffat-lto-objects -Wl,--exclude-libs=ALL -Wl,--version-     script,/builddir/build/BUILD/mir-0.28.1/src/client/symbols.map -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--as-needed -Wl,--no-undefined -shared -Wl,-soname,libmirclient.so.9 -o ../../li     b/libmirclient.so.9 CMakeFiles/mirclientobjects.dir/display_configuration.cpp.o CMakeFiles/mirclientobjects.dir/drag_and_drop.cpp.o CMakeFiles/mirclientobjects.dir/error_connections.cpp.o CMakeFiles/mirclie     ntobjects.dir/event.cpp.o CMakeFiles/mirclientobjects.dir/event_printer.cpp.o CMakeFiles/mirclientobjects.dir/mir_blob.cpp.o CMakeFiles/mirclientobjects.dir/mir_cookie.cpp.o CMakeFiles/mirclientobjects.dir/     mir_connection.cpp.o CMakeFiles/mirclientobjects.dir/mir_connection_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_input_device_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_wait_handle.cpp.o CMakeFiles/mirc     lientobjects.dir/mir_wait_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_surface.cpp.o CMakeFiles/mirclientobjects.dir/mir_surface_api.cpp.o CMakeFiles/mirclientobjects.dir/logging/rpc_report.cpp.o CMakeFile     s/mirclientobjects.dir/logging/input_receiver_report.cpp.o CMakeFiles/mirclientobjects.dir/logging/perf_report.cpp.o CMakeFiles/mirclientobjects.dir/default_connection_configuration.cpp.o CMakeFiles/mirclie     ntobjects.dir/connection_surface_map.cpp.o CMakeFiles/mirclientobjects.dir/frame_clock.cpp.o CMakeFiles/mirclientobjects.dir/mir_screencast.cpp.o CMakeFiles/mirclientobjects.dir/mir_screencast_api.cpp.o CMa     keFiles/mirclientobjects.dir/mir_cursor_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_prompt_session.cpp.o CMakeFiles/mirclientobjects.dir/mir_prompt_session_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_ev     ent_distributor.cpp.o CMakeFiles/mirclientobjects.dir/probing_client_platform_factory.cpp.o CMakeFiles/mirclientobjects.dir/periodic_perf_report.cpp.o CMakeFiles/mirclientobjects.dir/mir_platform_message_ap     i.cpp.o CMakeFiles/mirclientobjects.dir/buffer_stream.cpp.o CMakeFiles/mirclientobjects.dir/screencast_stream.cpp.o CMakeFiles/mirclientobjects.dir/buffer_vault.cpp.o CMakeFiles/mirclientobjects.dir/mir_buf     fer_stream_api.cpp.o CMakeFiles/mirclientobjects.dir/error_stream.cpp.o CMakeFiles/mirclientobjects.dir/error_render_surface.cpp.o CMakeFiles/mirclientobjects.dir/buffer.cpp.o CMakeFiles/mirclientobjects.di     r/error_buffer.cpp.o CMakeFiles/mirclientobjects.dir/mir_render_surface_api.cpp.o CMakeFiles/mirclientobjects.dir/render_surface.cpp.o CMakeFiles/mirclientobjects.dir/presentation_chain.cpp.o CMakeFiles/mir     clientobjects.dir/mir_presentation_chain_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_buffer_api.cpp.o CMakeFiles/mirclientobjects.dir/display_configuration_api.cpp.o CMakeFiles/mirclientobjects.dir/protob     uf_to_native_buffer.cpp.o CMakeFiles/mirclientobjects.dir/buffer_factory.cpp.o CMakeFiles/mirclientobjects.dir/mir_error.cpp.o CMakeFiles/mirclientobjects.dir/mir_error_api.cpp.o CMakeFiles/mirclientobjects     .dir/buffer_stream_configuration.cpp.o CMakeFiles/mirclientobjects.dir/events/event_builders.cpp.o CMakeFiles/mirclientobjects.dir/mir_extension_core.cpp.o input/CMakeFiles/mirsharedinput.dir/input_event.cp     p.o input/CMakeFiles/mirsharedinput.dir/input_devices.cpp.o input/CMakeFiles/mirsharedinput.dir/xkb_mapper.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_basic_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/n     ull_rpc_report.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_protobuf_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/make_socket_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/stream_socket_transport.cpp.     o rpc/CMakeFiles/mirclientrpc.dir/mir_display_server.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_display_server_debug.cpp.o -Wl,-rpath,/builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu/lib: lttng/libmi     rclientlttng-static.a /usr/lib64/libxkbcommon.so ../../lib/libmircommon.so.7 ../../lib/libmirprotobuf.so.3 ../../lib/libmircookie.so.2 /usr/lib64/libxkbcommon.so -ldl ../capnproto/libmircapnproto.a /usr/lib     64/libcapnp.so.0.6.1 /usr/lib64/libkj.so.0.6.1 ../../lib/libmircore.so.1 /usr/lib64/libboost_date_time.so /usr/lib64/libboost_system.so /usr/lib64/libboost_program_options.so /usr/lib64/libboost_filesystem.     so -ldl /usr/lib64/libprotobuf-lite.so -lnettle
2831 make[2]: Leaving directory '/builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu'
2832 /tmp/cc2VcRKA.ltrans5.ltrans.o: In function `mir::protobuf::DisplayConfiguration::operator=(mir::protobuf::DisplayConfiguration&&)':
2833 /builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu/src/protobuf/mir_protobuf.pb.h:5080: undefined reference to `mir::protobuf::DisplayConfiguration::InternalSwap(mir::protobuf::DisplayConfiguration*)'
2834 collect2: error: ld returned 1 exit status

Comment 2 Robert-André Mauchin 🐧 2017-11-15 19:30:40 UTC
It doesn't build correctly:

[ 79%] Linking CXX shared library ../../lib/libmirclient.so
cd /builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu/src/client && /usr/bin/cmake -E cmake_link_script CMakeFiles/mirclient.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -pthread -g -std=c++14 -Werror -Wall -fno-strict-aliasing -pedantic -Wnon-virtual-dtor -Wextra -fPIC -Wno-psabi -flto -ffat-lto-objects -Wl,--exclude-libs=ALL -Wl,--version-script,/builddir/build/BUILD/mir-0.28.1/src/client/symbols.map -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--as-needed -Wl,--no-undefined -shared -Wl,-soname,libmirclient.so.9 -o ../../lib/libmirclient.so.9 CMakeFiles/mirclientobjects.dir/display_configuration.cpp.o CMakeFiles/mirclientobjects.dir/drag_and_drop.cpp.o CMakeFiles/mirclientobjects.dir/error_connections.cpp.o CMakeFiles/mirclientobjects.dir/event.cpp.o CMakeFiles/mirclientobjects.dir/event_printer.cpp.o CMakeFiles/mirclientobjects.dir/mir_blob.cpp.o CMakeFiles/mirclientobjects.dir/mir_cookie.cpp.o CMakeFiles/mirclientobjects.dir/mir_connection.cpp.o CMakeFiles/mirclientobjects.dir/mir_connection_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_input_device_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_wait_handle.cpp.o CMakeFiles/mirclientobjects.dir/mir_wait_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_surface.cpp.o CMakeFiles/mirclientobjects.dir/mir_surface_api.cpp.o CMakeFiles/mirclientobjects.dir/logging/rpc_report.cpp.o CMakeFiles/mirclientobjects.dir/logging/input_receiver_report.cpp.o CMakeFiles/mirclientobjects.dir/logging/perf_report.cpp.o CMakeFiles/mirclientobjects.dir/default_connection_configuration.cpp.o CMakeFiles/mirclientobjects.dir/connection_surface_map.cpp.o CMakeFiles/mirclientobjects.dir/frame_clock.cpp.o CMakeFiles/mirclientobjects.dir/mir_screencast.cpp.o CMakeFiles/mirclientobjects.dir/mir_screencast_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_cursor_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_prompt_session.cpp.o CMakeFiles/mirclientobjects.dir/mir_prompt_session_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_event_distributor.cpp.o CMakeFiles/mirclientobjects.dir/probing_client_platform_factory.cpp.o CMakeFiles/mirclientobjects.dir/periodic_perf_report.cpp.o CMakeFiles/mirclientobjects.dir/mir_platform_message_api.cpp.o CMakeFiles/mirclientobjects.dir/buffer_stream.cpp.o CMakeFiles/mirclientobjects.dir/screencast_stream.cpp.o CMakeFiles/mirclientobjects.dir/buffer_vault.cpp.o CMakeFiles/mirclientobjects.dir/mir_buffer_stream_api.cpp.o CMakeFiles/mirclientobjects.dir/error_stream.cpp.o CMakeFiles/mirclientobjects.dir/error_render_surface.cpp.o CMakeFiles/mirclientobjects.dir/buffer.cpp.o CMakeFiles/mirclientobjects.dir/error_buffer.cpp.o CMakeFiles/mirclientobjects.dir/mir_render_surface_api.cpp.o CMakeFiles/mirclientobjects.dir/render_surface.cpp.o CMakeFiles/mirclientobjects.dir/presentation_chain.cpp.o CMakeFiles/mirclientobjects.dir/mir_presentation_chain_api.cpp.o CMakeFiles/mirclientobjects.dir/mir_buffer_api.cpp.o CMakeFiles/mirclientobjects.dir/display_configuration_api.cpp.o CMakeFiles/mirclientobjects.dir/protobuf_to_native_buffer.cpp.o CMakeFiles/mirclientobjects.dir/buffer_factory.cpp.o CMakeFiles/mirclientobjects.dir/mir_error.cpp.o CMakeFiles/mirclientobjects.dir/mir_error_api.cpp.o CMakeFiles/mirclientobjects.dir/buffer_stream_configuration.cpp.o CMakeFiles/mirclientobjects.dir/events/event_builders.cpp.o CMakeFiles/mirclientobjects.dir/mir_extension_core.cpp.o input/CMakeFiles/mirsharedinput.dir/input_event.cpp.o input/CMakeFiles/mirsharedinput.dir/input_devices.cpp.o input/CMakeFiles/mirsharedinput.dir/xkb_mapper.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_basic_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/null_rpc_report.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_protobuf_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/make_socket_rpc_channel.cpp.o rpc/CMakeFiles/mirclientrpc.dir/stream_socket_transport.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_display_server.cpp.o rpc/CMakeFiles/mirclientrpc.dir/mir_display_server_debug.cpp.o -Wl,-rpath,/builddir/build/BUILD/mir-0.28.1/x86_64-redhat-
linux-gnu/lib: lttng/libmirclientlttng-static.a /usr/lib64/libxkbcommon.so ../../lib/libmircommon.so.7 ../../lib/libmirprotobuf.so.3 ../../lib/libmircookie.so.2 /usr/lib64/libxkbcommon.so -ldl ../capnproto/libmircapnproto.a /usr/lib64/libcapnp.so.0.6.1 /usr/lib64/libkj.so.0.6.1 ../../lib/libmircore.so.1 /usr/lib64/libboost_date_time.so /usr/lib64/libboost_system.so /usr/lib64/libboost_program_options.so /usr/lib64/libboost_filesystem.so -ldl /usr/lib64/libprotobuf-lite.so -lnettle 
make[2]: Leaving directory '/builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu'
/tmp/ccIxM4gk.ltrans5.ltrans.o: In function `mir::protobuf::DisplayConfiguration::operator=(mir::protobuf::DisplayConfiguration&&)':
/builddir/build/BUILD/mir-0.28.1/x86_64-redhat-linux-gnu/src/protobuf/mir_protobuf.pb.h:5080: undefined reference to `mir::protobuf::DisplayConfiguration::InternalSwap(mir::protobuf::DisplayConfiguration*)'
collect2: error: ld returned 1 exit status
make[2]: *** [src/client/CMakeFiles/mirclient.dir/build.make:208: lib/libmirclient.so.9] Error 1
make[1]: *** [CMakeFiles/Makefile2:3949: src/client/CMakeFiles/mirclient.dir/all] Error 2
make: *** [Makefile:144: all] Error 2

It works on Fedora 27 though. Maybe due to a change in protobuf whose version 3.4.1 was pushed in Rawhide.

Comment 3 alan 2017-11-17 11:11:14 UTC
FTBFS reported https://github.com/MirServer/mir/issues/39

Comment 4 Neal Gompa 2017-11-17 12:59:11 UTC
I've added a patch from upstream to fix the build, and replaced the spec and srpm:

Spec URL: http://kinginuyasha.enanocms.org/downloads/mir.spec
SRPM URL: http://kinginuyasha.enanocms.org/downloads/mir-0.28.1-1.fc26.src.rpm

Comment 5 Robert-André Mauchin 🐧 2017-11-17 14:23:29 UTC
Review:

 - mir-demos contains an icon, you need to use the gtk-update-icon-cache scriplet. See https://fedoraproject.org/wiki/Packaging:Scriptlets#Icon_Cache

Requires:       hicolor-icon-theme

   And:

%post demos
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :

%postun demos
if [ $1 -eq 0 ] ; then
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi

%posttrans demos
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :


 - You should call /sbin/ldconfig for client-libs-debugext which contains the library libmirclient-debug-extension.so.*

 - mir-demos contains a desktop file, miral-shell.desktop, it should be validated in %install or %check. See: https://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage

BuildRequires: desktop-file-utils

   And:

desktop-file-validate %{buildroot}/%{_datadir}/applications/miral-shell.desktop

 - Package should own these directories: /usr/lib64/mir, /usr/lib64/mir/tools, /usr/lib64/mir/client-platform, /usr/lib64/mir/server-platform

Comment 7 Igor Gnatenko 2017-11-19 18:11:17 UTC
I would remove static subpackage unless there is some hard requirement.

Comment 8 Neal Gompa 2017-11-19 18:13:00 UTC
The subpackage is currently disabled due to brokenness with Google Test in Rawhide anyway, but I'll check with upstream on whether it's useful for anything...

Comment 9 Gwyn Ciesla 2017-11-20 15:36:00 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/mir

Comment 10 Fedora Update System 2017-11-21 15:58:59 UTC
mir-0.28.1-1.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-db63d31a86

Comment 11 Fedora Update System 2017-11-22 06:33:36 UTC
mir-0.28.1-1.fc27 has been pushed to the Fedora 27 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-2017-db63d31a86

Comment 12 Fedora Update System 2017-11-22 11:09:49 UTC
mir-0.28.1-1.fc26 has been pushed to the Fedora 26 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-2017-ec8ee3a847

Comment 13 Fedora Update System 2017-11-28 01:41:48 UTC
mir-0.28.1-1.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2017-11-28 16:24:42 UTC
mir-0.28.1-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.