Bug 1513512 - Review Request: mir - Next generation display server
Summary: Review Request: mir - Next generation display server
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Igor Gnatenko
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-15 14:41 UTC by Neal Gompa
Modified: 2017-11-28 16:24 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-11-28 01:41:48 UTC
Type: ---
Embargoed:
ignatenko: fedora-review+


Attachments (Terms of Use)

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.


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