Merge lp:~larryprice/miral/release-0.1.0 into lp:miral/release

Proposed by Larry Price
Status: Merged
Approved by: Larry Price
Approved revision: 335
Merged at revision: 331
Proposed branch: lp:~larryprice/miral/release-0.1.0
Merge into: lp:miral/release
Diff against target: 33209 lines (+701/-31026)
282 files modified
.bzr-builddeb/default.conf (+2/-0)
COPYING (+674/-0)
debian/changelog (+5/-5)
debian/control (+1/-1)
debian/copyright (+11/-7)
debian/rules (+8/-0)
miral-qt/CMakeLists.txt (+0/-181)
miral-qt/README (+0/-47)
miral-qt/benchmarks/CMakeLists.txt (+0/-8)
miral-qt/benchmarks/README (+0/-12)
miral-qt/benchmarks/common.py (+0/-33)
miral-qt/benchmarks/report_types.py (+0/-121)
miral-qt/benchmarks/touch_event_latency.R (+0/-6)
miral-qt/benchmarks/touch_event_latency.py (+0/-271)
miral-qt/cmake/modules/FindGLESv2.cmake (+0/-25)
miral-qt/cmake/modules/FindQt5PlatformSupport.cmake (+0/-121)
miral-qt/cmake/modules/QmlPlugins.cmake (+0/-150)
miral-qt/cmake/modules/QmlTest.cmake (+0/-192)
miral-qt/cmake/modules/UseLttngGenTp.cmake (+0/-24)
miral-qt/cmake/modules/autopilot.cmake (+0/-24)
miral-qt/debian/bileto_convert_to_gles (+0/-28)
miral-qt/debian/changelog (+0/-1275)
miral-qt/debian/compat (+0/-1)
miral-qt/debian/control (+0/-124)
miral-qt/debian/copyright (+0/-78)
miral-qt/debian/docs (+0/-1)
miral-qt/debian/gles-patches/convert-to-gles.patch (+0/-179)
miral-qt/debian/gles-patches/series (+0/-1)
miral-qt/debian/qtdeclarative5-qtmir-plugin.install (+0/-2)
miral-qt/debian/qtmir-android.install (+0/-1)
miral-qt/debian/qtmir-desktop.install (+0/-1)
miral-qt/debian/qtmir-tests.install (+0/-6)
miral-qt/debian/rules (+0/-62)
miral-qt/demos/CMakeLists.txt (+0/-4)
miral-qt/demos/paths.h.in (+0/-58)
miral-qt/demos/qml-demo-client/CMakeLists.txt (+0/-41)
miral-qt/demos/qml-demo-client/MovingRect.qml (+0/-59)
miral-qt/demos/qml-demo-client/main.cpp (+0/-73)
miral-qt/demos/qml-demo-client/qml-demo-client.qml (+0/-35)
miral-qt/demos/qml-demo-client/qtmir-demo-client.desktop.in (+0/-9)
miral-qt/demos/qml-demo-shell/Button.qml (+0/-26)
miral-qt/demos/qml-demo-shell/CMakeLists.txt (+0/-35)
miral-qt/demos/qml-demo-shell/ResizeArea.qml (+0/-128)
miral-qt/demos/qml-demo-shell/Shell.qml (+0/-182)
miral-qt/demos/qml-demo-shell/TitleBar.qml (+0/-72)
miral-qt/demos/qml-demo-shell/Window.qml (+0/-96)
miral-qt/demos/qml-demo-shell/WindowBufferSized.qml (+0/-178)
miral-qt/demos/qml-demo-shell/main.cpp (+0/-61)
miral-qt/demos/qml-demo-shell/qml-demo-shell.qml (+0/-38)
miral-qt/demos/qml-demo-shell/qml-demo-shell.qmlproject (+0/-20)
miral-qt/demos/qml-demo-shell/windowModel.qml (+0/-127)
miral-qt/src/CMakeLists.txt (+0/-2)
miral-qt/src/common/abstractdbusservicemonitor.cpp (+0/-99)
miral-qt/src/common/abstractdbusservicemonitor.h (+0/-58)
miral-qt/src/common/debughelpers.cpp (+0/-351)
miral-qt/src/common/debughelpers.h (+0/-46)
miral-qt/src/common/mirqtconversion.h (+0/-57)
miral-qt/src/common/timestamp.cpp (+0/-18)
miral-qt/src/common/timestamp.h (+0/-39)
miral-qt/src/common/timestamp_impl.h (+0/-37)
miral-qt/src/common/windowcontrollerinterface.h (+0/-55)
miral-qt/src/common/windowmodelnotifierinterface.h (+0/-107)
miral-qt/src/modules/CMakeLists.txt (+0/-14)
miral-qt/src/modules/Unity/Application/CMakeLists.txt (+0/-108)
miral-qt/src/modules/Unity/Application/application.cpp (+0/-862)
miral-qt/src/modules/Unity/Application/application.h (+0/-202)
miral-qt/src/modules/Unity/Application/application_manager.cpp (+0/-879)
miral-qt/src/modules/Unity/Application/application_manager.h (+0/-161)
miral-qt/src/modules/Unity/Application/applicationinfo.h (+0/-59)
miral-qt/src/modules/Unity/Application/cgmanager.cpp (+0/-117)
miral-qt/src/modules/Unity/Application/cgmanager.h (+0/-42)
miral-qt/src/modules/Unity/Application/com.canonical.qtmir.gschema.xml (+0/-12)
miral-qt/src/modules/Unity/Application/dbusfocusinfo.cpp (+0/-133)
miral-qt/src/modules/Unity/Application/dbusfocusinfo.h (+0/-64)
miral-qt/src/modules/Unity/Application/dbuswindowstack.cpp (+0/-116)
miral-qt/src/modules/Unity/Application/dbuswindowstack.h (+0/-72)
miral-qt/src/modules/Unity/Application/gscopedpointer.h (+0/-113)
miral-qt/src/modules/Unity/Application/mirbuffersgtexture.cpp (+0/-99)
miral-qt/src/modules/Unity/Application/mirbuffersgtexture.h (+0/-53)
miral-qt/src/modules/Unity/Application/mirfocuscontroller.cpp (+0/-69)
miral-qt/src/modules/Unity/Application/mirfocuscontroller.h (+0/-49)
miral-qt/src/modules/Unity/Application/mirsurface.cpp (+0/-1095)
miral-qt/src/modules/Unity/Application/mirsurface.h (+0/-240)
miral-qt/src/modules/Unity/Application/mirsurfaceinterface.h (+0/-136)
miral-qt/src/modules/Unity/Application/mirsurfaceitem.cpp (+0/-727)
miral-qt/src/modules/Unity/Application/mirsurfaceitem.h (+0/-179)
miral-qt/src/modules/Unity/Application/mirsurfacelistmodel.cpp (+0/-312)
miral-qt/src/modules/Unity/Application/mirsurfacelistmodel.h (+0/-100)
miral-qt/src/modules/Unity/Application/objectlistmodel.h (+0/-110)
miral-qt/src/modules/Unity/Application/plugin.cpp (+0/-97)
miral-qt/src/modules/Unity/Application/proc_info.cpp (+0/-61)
miral-qt/src/modules/Unity/Application/proc_info.h (+0/-56)
miral-qt/src/modules/Unity/Application/qmldir (+0/-2)
miral-qt/src/modules/Unity/Application/session.cpp (+0/-552)
miral-qt/src/modules/Unity/Application/session.h (+0/-130)
miral-qt/src/modules/Unity/Application/session_interface.h (+0/-134)
miral-qt/src/modules/Unity/Application/sessionmanager.cpp (+0/-213)
miral-qt/src/modules/Unity/Application/sessionmanager.h (+0/-87)
miral-qt/src/modules/Unity/Application/sessionmodel.h (+0/-32)
miral-qt/src/modules/Unity/Application/settings.cpp (+0/-39)
miral-qt/src/modules/Unity/Application/settings.h (+0/-45)
miral-qt/src/modules/Unity/Application/settings_interface.h (+0/-40)
miral-qt/src/modules/Unity/Application/sharedwakelock.cpp (+0/-231)
miral-qt/src/modules/Unity/Application/sharedwakelock.h (+0/-55)
miral-qt/src/modules/Unity/Application/taskcontroller.h (+0/-73)
miral-qt/src/modules/Unity/Application/timer.cpp (+0/-109)
miral-qt/src/modules/Unity/Application/timer.h (+0/-88)
miral-qt/src/modules/Unity/Application/timesource.cpp (+0/-48)
miral-qt/src/modules/Unity/Application/timesource.h (+0/-61)
miral-qt/src/modules/Unity/Application/tracepoints.tp (+0/-14)
miral-qt/src/modules/Unity/Application/upstart/applicationinfo.cpp (+0/-109)
miral-qt/src/modules/Unity/Application/upstart/applicationinfo.h (+0/-57)
miral-qt/src/modules/Unity/Application/upstart/taskcontroller.cpp (+0/-247)
miral-qt/src/modules/Unity/Application/upstart/taskcontroller.h (+0/-52)
miral-qt/src/modules/Unity/Application/windowmodel.cpp (+0/-208)
miral-qt/src/modules/Unity/Application/windowmodel.h (+0/-82)
miral-qt/src/modules/Unity/CMakeLists.txt (+0/-2)
miral-qt/src/modules/Unity/Screens/CMakeLists.txt (+0/-29)
miral-qt/src/modules/Unity/Screens/plugin.cpp (+0/-45)
miral-qt/src/modules/Unity/Screens/qmldir (+0/-2)
miral-qt/src/modules/Unity/Screens/qquickscreenwindow.cpp (+0/-185)
miral-qt/src/modules/Unity/Screens/qquickscreenwindow.h (+0/-60)
miral-qt/src/modules/Unity/Screens/screens.cpp (+0/-126)
miral-qt/src/modules/Unity/Screens/screens.h (+0/-96)
miral-qt/src/platforms/CMakeLists.txt (+0/-1)
miral-qt/src/platforms/mirserver/CMakeLists.txt (+0/-131)
miral-qt/src/platforms/mirserver/argvHelper.h (+0/-52)
miral-qt/src/platforms/mirserver/clipboard.cpp (+0/-109)
miral-qt/src/platforms/mirserver/clipboard.h (+0/-69)
miral-qt/src/platforms/mirserver/creationhints.cpp (+0/-67)
miral-qt/src/platforms/mirserver/creationhints.h (+0/-56)
miral-qt/src/platforms/mirserver/cursor.cpp (+0/-180)
miral-qt/src/platforms/mirserver/cursor.h (+0/-68)
miral-qt/src/platforms/mirserver/customscreenconfiguration.h (+0/-41)
miral-qt/src/platforms/mirserver/logging.cpp (+0/-27)
miral-qt/src/platforms/mirserver/logging.h (+0/-31)
miral-qt/src/platforms/mirserver/mircursorimages.cpp (+0/-28)
miral-qt/src/platforms/mirserver/mircursorimages.h (+0/-33)
miral-qt/src/platforms/mirserver/mirdisplayconfigurationpolicy.cpp (+0/-126)
miral-qt/src/platforms/mirserver/mirdisplayconfigurationpolicy.h (+0/-28)
miral-qt/src/platforms/mirserver/mirglconfig.h (+0/-29)
miral-qt/src/platforms/mirserver/miropenglcontext.cpp (+0/-197)
miral-qt/src/platforms/mirserver/miropenglcontext.h (+0/-61)
miral-qt/src/platforms/mirserver/mirserver.json (+0/-3)
miral-qt/src/platforms/mirserver/mirserverhooks.cpp (+0/-134)
miral-qt/src/platforms/mirserver/mirserverhooks.h (+0/-56)
miral-qt/src/platforms/mirserver/mirserverintegration.cpp (+0/-209)
miral-qt/src/platforms/mirserver/mirserverintegration.h (+0/-68)
miral-qt/src/platforms/mirserver/mirserverstatuslistener.cpp (+0/-37)
miral-qt/src/platforms/mirserver/mirserverstatuslistener.h (+0/-30)
miral-qt/src/platforms/mirserver/mirsingleton.cpp (+0/-33)
miral-qt/src/platforms/mirserver/mirsingleton.h (+0/-46)
miral-qt/src/platforms/mirserver/namedcursor.h (+0/-48)
miral-qt/src/platforms/mirserver/nativeinterface.cpp (+0/-80)
miral-qt/src/platforms/mirserver/nativeinterface.h (+0/-52)
miral-qt/src/platforms/mirserver/offscreensurface.cpp (+0/-51)
miral-qt/src/platforms/mirserver/offscreensurface.h (+0/-43)
miral-qt/src/platforms/mirserver/openglcontextfactory.cpp (+0/-51)
miral-qt/src/platforms/mirserver/openglcontextfactory.h (+0/-47)
miral-qt/src/platforms/mirserver/plugin.cpp (+0/-26)
miral-qt/src/platforms/mirserver/plugin.h (+0/-31)
miral-qt/src/platforms/mirserver/promptsessionlistener.cpp (+0/-76)
miral-qt/src/platforms/mirserver/promptsessionlistener.h (+0/-51)
miral-qt/src/platforms/mirserver/qmirserver.cpp (+0/-114)
miral-qt/src/platforms/mirserver/qmirserver.h (+0/-64)
miral-qt/src/platforms/mirserver/qmirserver_p.cpp (+0/-151)
miral-qt/src/platforms/mirserver/qmirserver_p.h (+0/-112)
miral-qt/src/platforms/mirserver/qtcompositor.cpp (+0/-36)
miral-qt/src/platforms/mirserver/qtcompositor.h (+0/-49)
miral-qt/src/platforms/mirserver/qteventfeeder.cpp (+0/-866)
miral-qt/src/platforms/mirserver/qteventfeeder.h (+0/-83)
miral-qt/src/platforms/mirserver/screen.cpp (+0/-417)
miral-qt/src/platforms/mirserver/screen.h (+0/-120)
miral-qt/src/platforms/mirserver/screenscontroller.cpp (+0/-84)
miral-qt/src/platforms/mirserver/screenscontroller.h (+0/-54)
miral-qt/src/platforms/mirserver/screensmodel.cpp (+0/-263)
miral-qt/src/platforms/mirserver/screensmodel.h (+0/-102)
miral-qt/src/platforms/mirserver/screenwindow.cpp (+0/-129)
miral-qt/src/platforms/mirserver/screenwindow.h (+0/-48)
miral-qt/src/platforms/mirserver/services.cpp (+0/-48)
miral-qt/src/platforms/mirserver/services.h (+0/-31)
miral-qt/src/platforms/mirserver/sessionauthorizer.cpp (+0/-95)
miral-qt/src/platforms/mirserver/sessionauthorizer.h (+0/-51)
miral-qt/src/platforms/mirserver/sessionlistener.cpp (+0/-96)
miral-qt/src/platforms/mirserver/sessionlistener.h (+0/-63)
miral-qt/src/platforms/mirserver/setqtcompositor.cpp (+0/-55)
miral-qt/src/platforms/mirserver/setqtcompositor.h (+0/-47)
miral-qt/src/platforms/mirserver/shelluuid.cpp (+0/-35)
miral-qt/src/platforms/mirserver/shelluuid.h (+0/-33)
miral-qt/src/platforms/mirserver/surfaceobserver.cpp (+0/-237)
miral-qt/src/platforms/mirserver/surfaceobserver.h (+0/-98)
miral-qt/src/platforms/mirserver/tracepoints.tp (+0/-15)
miral-qt/src/platforms/mirserver/ubuntutheme.cpp (+0/-43)
miral-qt/src/platforms/mirserver/ubuntutheme.h (+0/-33)
miral-qt/src/platforms/mirserver/windowcontroller.cpp (+0/-92)
miral-qt/src/platforms/mirserver/windowcontroller.h (+0/-53)
miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp (+0/-230)
miral-qt/src/platforms/mirserver/windowmanagementpolicy.h (+0/-90)
miral-qt/src/platforms/mirserver/windowmodelnotifier.cpp (+0/-152)
miral-qt/src/platforms/mirserver/windowmodelnotifier.h (+0/-51)
miral-qt/tests/CMakeLists.txt (+0/-14)
miral-qt/tests/convert-to-gles.sh (+0/-14)
miral-qt/tests/framework/CMakeLists.txt (+0/-47)
miral-qt/tests/framework/fake_application_info.cpp (+0/-66)
miral-qt/tests/framework/fake_application_info.h (+0/-51)
miral-qt/tests/framework/fake_displayconfigurationoutput.h (+0/-91)
miral-qt/tests/framework/fake_mirsurface.cpp (+0/-231)
miral-qt/tests/framework/fake_mirsurface.h (+0/-183)
miral-qt/tests/framework/fake_session.cpp (+0/-125)
miral-qt/tests/framework/fake_session.h (+0/-96)
miral-qt/tests/framework/fake_surface.h (+0/-114)
miral-qt/tests/framework/gmock_fixes.h (+0/-124)
miral-qt/tests/framework/mock_application_info.cpp (+0/-46)
miral-qt/tests/framework/mock_application_info.h (+0/-49)
miral-qt/tests/framework/mock_display.cpp (+0/-35)
miral-qt/tests/framework/mock_display.h (+0/-75)
miral-qt/tests/framework/mock_display_configuration.cpp (+0/-25)
miral-qt/tests/framework/mock_display_configuration.h (+0/-40)
miral-qt/tests/framework/mock_gl_display_buffer.cpp (+0/-30)
miral-qt/tests/framework/mock_gl_display_buffer.h (+0/-45)
miral-qt/tests/framework/mock_main_loop.cpp (+0/-28)
miral-qt/tests/framework/mock_main_loop.h (+0/-55)
miral-qt/tests/framework/mock_mir_session.cpp (+0/-64)
miral-qt/tests/framework/mock_mir_session.h (+0/-89)
miral-qt/tests/framework/mock_persistent_surface_store.cpp (+0/-30)
miral-qt/tests/framework/mock_persistent_surface_store.h (+0/-24)
miral-qt/tests/framework/mock_proc_info.cpp (+0/-37)
miral-qt/tests/framework/mock_proc_info.h (+0/-37)
miral-qt/tests/framework/mock_prompt_session.cpp (+0/-33)
miral-qt/tests/framework/mock_prompt_session.h (+0/-41)
miral-qt/tests/framework/mock_prompt_session_manager.cpp (+0/-33)
miral-qt/tests/framework/mock_prompt_session_manager.h (+0/-61)
miral-qt/tests/framework/mock_renderable.cpp (+0/-33)
miral-qt/tests/framework/mock_renderable.h (+0/-44)
miral-qt/tests/framework/mock_session.cpp (+0/-70)
miral-qt/tests/framework/mock_session.h (+0/-84)
miral-qt/tests/framework/mock_settings.cpp (+0/-40)
miral-qt/tests/framework/mock_settings.h (+0/-37)
miral-qt/tests/framework/mock_shared_wakelock.cpp (+0/-61)
miral-qt/tests/framework/mock_shared_wakelock.h (+0/-46)
miral-qt/tests/framework/mock_shell.h (+0/-111)
miral-qt/tests/framework/mock_surface.cpp (+0/-45)
miral-qt/tests/framework/mock_surface.h (+0/-101)
miral-qt/tests/framework/mock_task_controller.cpp (+0/-117)
miral-qt/tests/framework/mock_task_controller.h (+0/-60)
miral-qt/tests/framework/qtmir_test.cpp (+0/-152)
miral-qt/tests/framework/qtmir_test.h (+0/-82)
miral-qt/tests/framework/stub_input_channel.cpp (+0/-52)
miral-qt/tests/framework/stub_input_channel.h (+0/-47)
miral-qt/tests/framework/stub_scene_surface.h (+0/-108)
miral-qt/tests/framework/stub_windowcontroller.h (+0/-43)
miral-qt/tests/mirserver/ArgvHelper/CMakeLists.txt (+0/-18)
miral-qt/tests/mirserver/ArgvHelper/argvHelper_test.cpp (+0/-72)
miral-qt/tests/mirserver/CMakeLists.txt (+0/-4)
miral-qt/tests/mirserver/QtEventFeeder/CMakeLists.txt (+0/-23)
miral-qt/tests/mirserver/QtEventFeeder/mock_qtwindowsystem.h (+0/-90)
miral-qt/tests/mirserver/QtEventFeeder/qteventfeeder_test.cpp (+0/-281)
miral-qt/tests/mirserver/Screen/CMakeLists.txt (+0/-25)
miral-qt/tests/mirserver/Screen/screen_test.cpp (+0/-97)
miral-qt/tests/mirserver/ScreensModel/CMakeLists.txt (+0/-32)
miral-qt/tests/mirserver/ScreensModel/screensmodel_test.cpp (+0/-180)
miral-qt/tests/mirserver/ScreensModel/stub_display.h (+0/-111)
miral-qt/tests/mirserver/ScreensModel/stub_displayconfigurationcontroller.h (+0/-30)
miral-qt/tests/mirserver/ScreensModel/stub_screen.h (+0/-31)
miral-qt/tests/mirserver/ScreensModel/testable_screensmodel.h (+0/-38)
miral-qt/tests/modules/Application/CMakeLists.txt (+0/-36)
miral-qt/tests/modules/Application/application_test.cpp (+0/-650)
miral-qt/tests/modules/ApplicationManager/CMakeLists.txt (+0/-33)
miral-qt/tests/modules/ApplicationManager/application_manager_test.cpp (+0/-1966)
miral-qt/tests/modules/CMakeLists.txt (+0/-6)
miral-qt/tests/modules/General/CMakeLists.txt (+0/-24)
miral-qt/tests/modules/General/objectlistmodel_test.cpp (+0/-131)
miral-qt/tests/modules/General/timestamp_test.cpp (+0/-78)
miral-qt/tests/modules/SessionManager/CMakeLists.txt (+0/-34)
miral-qt/tests/modules/SessionManager/session_manager_test.cpp (+0/-124)
miral-qt/tests/modules/SessionManager/session_test.cpp (+0/-315)
miral-qt/tests/modules/SharedWakelock/CMakeLists.txt (+0/-27)
miral-qt/tests/modules/SharedWakelock/sharedwakelock_test.cpp (+0/-388)
miral-qt/tests/modules/WindowManager/CMakeLists.txt (+0/-37)
miral-qt/tests/modules/WindowManager/mirsurface_test.cpp (+0/-207)
miral-qt/tests/modules/WindowManager/mirsurfaceitem_test.cpp (+0/-298)
miral-qt/tests/modules/WindowManager/windowmodel_test.cpp (+0/-740)
To merge this branch: bzr merge lp:~larryprice/miral/release-0.1.0
Reviewer Review Type Date Requested Status
Larry Price (community) Approve
Gerry Boland (community) Abstain
Alan Griffiths Approve
Review via email: mp+305633@code.launchpad.net

Commit message

[Larry Price]
* Initial release. (LP: #1613220)

Description of the change

This is the initial release branch for merging into a newly created release series branch. Most of the code here is not intended to be merged back into the devel branch, although some updates may be cherry-picked that direction. I'll merge this after getting through the NEWing process and getting MirAL into universe.

[Larry Price]
* Initial release. (LP: #1613220)

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

It would be slightly more convenient to merge the .bzr-builddeb, COPYING and debian changes in a separate commit, but not a blocker.

review: Approve
Revision history for this message
Gerry Boland (gerboland) wrote :

=== removed directory 'miral-qt/demos'
I'm using the demos for miral-qt development, please don't remove it

review: Needs Fixing
Revision history for this message
Gerry Boland (gerboland) wrote :

> === removed directory 'miral-qt/demos'
> I'm using the demos for miral-qt development, please don't remove it
Ah, just for a release branch, I don't object

review: Abstain
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

This needs top-approval, publish not possible without.

Revision history for this message
Larry Price (larryprice) wrote :

prepping for top approval

review: Approve
lp:~larryprice/miral/release-0.1.0 updated
335. By Larry Price

Update libmiral-dev short description

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory '.bzr-builddeb'
2=== added file '.bzr-builddeb/default.conf'
3--- .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000
4+++ .bzr-builddeb/default.conf 2016-09-19 13:28:17 +0000
5@@ -0,0 +1,2 @@
6+[BUILDDEB]
7+split = True
8
9=== added file 'COPYING'
10--- COPYING 1970-01-01 00:00:00 +0000
11+++ COPYING 2016-09-19 13:28:17 +0000
12@@ -0,0 +1,674 @@
13+ GNU GENERAL PUBLIC LICENSE
14+ Version 3, 29 June 2007
15+
16+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
17+ Everyone is permitted to copy and distribute verbatim copies
18+ of this license document, but changing it is not allowed.
19+
20+ Preamble
21+
22+ The GNU General Public License is a free, copyleft license for
23+software and other kinds of works.
24+
25+ The licenses for most software and other practical works are designed
26+to take away your freedom to share and change the works. By contrast,
27+the GNU General Public License is intended to guarantee your freedom to
28+share and change all versions of a program--to make sure it remains free
29+software for all its users. We, the Free Software Foundation, use the
30+GNU General Public License for most of our software; it applies also to
31+any other work released this way by its authors. You can apply it to
32+your programs, too.
33+
34+ When we speak of free software, we are referring to freedom, not
35+price. Our General Public Licenses are designed to make sure that you
36+have the freedom to distribute copies of free software (and charge for
37+them if you wish), that you receive source code or can get it if you
38+want it, that you can change the software or use pieces of it in new
39+free programs, and that you know you can do these things.
40+
41+ To protect your rights, we need to prevent others from denying you
42+these rights or asking you to surrender the rights. Therefore, you have
43+certain responsibilities if you distribute copies of the software, or if
44+you modify it: responsibilities to respect the freedom of others.
45+
46+ For example, if you distribute copies of such a program, whether
47+gratis or for a fee, you must pass on to the recipients the same
48+freedoms that you received. You must make sure that they, too, receive
49+or can get the source code. And you must show them these terms so they
50+know their rights.
51+
52+ Developers that use the GNU GPL protect your rights with two steps:
53+(1) assert copyright on the software, and (2) offer you this License
54+giving you legal permission to copy, distribute and/or modify it.
55+
56+ For the developers' and authors' protection, the GPL clearly explains
57+that there is no warranty for this free software. For both users' and
58+authors' sake, the GPL requires that modified versions be marked as
59+changed, so that their problems will not be attributed erroneously to
60+authors of previous versions.
61+
62+ Some devices are designed to deny users access to install or run
63+modified versions of the software inside them, although the manufacturer
64+can do so. This is fundamentally incompatible with the aim of
65+protecting users' freedom to change the software. The systematic
66+pattern of such abuse occurs in the area of products for individuals to
67+use, which is precisely where it is most unacceptable. Therefore, we
68+have designed this version of the GPL to prohibit the practice for those
69+products. If such problems arise substantially in other domains, we
70+stand ready to extend this provision to those domains in future versions
71+of the GPL, as needed to protect the freedom of users.
72+
73+ Finally, every program is threatened constantly by software patents.
74+States should not allow patents to restrict development and use of
75+software on general-purpose computers, but in those that do, we wish to
76+avoid the special danger that patents applied to a free program could
77+make it effectively proprietary. To prevent this, the GPL assures that
78+patents cannot be used to render the program non-free.
79+
80+ The precise terms and conditions for copying, distribution and
81+modification follow.
82+
83+ TERMS AND CONDITIONS
84+
85+ 0. Definitions.
86+
87+ "This License" refers to version 3 of the GNU General Public License.
88+
89+ "Copyright" also means copyright-like laws that apply to other kinds of
90+works, such as semiconductor masks.
91+
92+ "The Program" refers to any copyrightable work licensed under this
93+License. Each licensee is addressed as "you". "Licensees" and
94+"recipients" may be individuals or organizations.
95+
96+ To "modify" a work means to copy from or adapt all or part of the work
97+in a fashion requiring copyright permission, other than the making of an
98+exact copy. The resulting work is called a "modified version" of the
99+earlier work or a work "based on" the earlier work.
100+
101+ A "covered work" means either the unmodified Program or a work based
102+on the Program.
103+
104+ To "propagate" a work means to do anything with it that, without
105+permission, would make you directly or secondarily liable for
106+infringement under applicable copyright law, except executing it on a
107+computer or modifying a private copy. Propagation includes copying,
108+distribution (with or without modification), making available to the
109+public, and in some countries other activities as well.
110+
111+ To "convey" a work means any kind of propagation that enables other
112+parties to make or receive copies. Mere interaction with a user through
113+a computer network, with no transfer of a copy, is not conveying.
114+
115+ An interactive user interface displays "Appropriate Legal Notices"
116+to the extent that it includes a convenient and prominently visible
117+feature that (1) displays an appropriate copyright notice, and (2)
118+tells the user that there is no warranty for the work (except to the
119+extent that warranties are provided), that licensees may convey the
120+work under this License, and how to view a copy of this License. If
121+the interface presents a list of user commands or options, such as a
122+menu, a prominent item in the list meets this criterion.
123+
124+ 1. Source Code.
125+
126+ The "source code" for a work means the preferred form of the work
127+for making modifications to it. "Object code" means any non-source
128+form of a work.
129+
130+ A "Standard Interface" means an interface that either is an official
131+standard defined by a recognized standards body, or, in the case of
132+interfaces specified for a particular programming language, one that
133+is widely used among developers working in that language.
134+
135+ The "System Libraries" of an executable work include anything, other
136+than the work as a whole, that (a) is included in the normal form of
137+packaging a Major Component, but which is not part of that Major
138+Component, and (b) serves only to enable use of the work with that
139+Major Component, or to implement a Standard Interface for which an
140+implementation is available to the public in source code form. A
141+"Major Component", in this context, means a major essential component
142+(kernel, window system, and so on) of the specific operating system
143+(if any) on which the executable work runs, or a compiler used to
144+produce the work, or an object code interpreter used to run it.
145+
146+ The "Corresponding Source" for a work in object code form means all
147+the source code needed to generate, install, and (for an executable
148+work) run the object code and to modify the work, including scripts to
149+control those activities. However, it does not include the work's
150+System Libraries, or general-purpose tools or generally available free
151+programs which are used unmodified in performing those activities but
152+which are not part of the work. For example, Corresponding Source
153+includes interface definition files associated with source files for
154+the work, and the source code for shared libraries and dynamically
155+linked subprograms that the work is specifically designed to require,
156+such as by intimate data communication or control flow between those
157+subprograms and other parts of the work.
158+
159+ The Corresponding Source need not include anything that users
160+can regenerate automatically from other parts of the Corresponding
161+Source.
162+
163+ The Corresponding Source for a work in source code form is that
164+same work.
165+
166+ 2. Basic Permissions.
167+
168+ All rights granted under this License are granted for the term of
169+copyright on the Program, and are irrevocable provided the stated
170+conditions are met. This License explicitly affirms your unlimited
171+permission to run the unmodified Program. The output from running a
172+covered work is covered by this License only if the output, given its
173+content, constitutes a covered work. This License acknowledges your
174+rights of fair use or other equivalent, as provided by copyright law.
175+
176+ You may make, run and propagate covered works that you do not
177+convey, without conditions so long as your license otherwise remains
178+in force. You may convey covered works to others for the sole purpose
179+of having them make modifications exclusively for you, or provide you
180+with facilities for running those works, provided that you comply with
181+the terms of this License in conveying all material for which you do
182+not control copyright. Those thus making or running the covered works
183+for you must do so exclusively on your behalf, under your direction
184+and control, on terms that prohibit them from making any copies of
185+your copyrighted material outside their relationship with you.
186+
187+ Conveying under any other circumstances is permitted solely under
188+the conditions stated below. Sublicensing is not allowed; section 10
189+makes it unnecessary.
190+
191+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
192+
193+ No covered work shall be deemed part of an effective technological
194+measure under any applicable law fulfilling obligations under article
195+11 of the WIPO copyright treaty adopted on 20 December 1996, or
196+similar laws prohibiting or restricting circumvention of such
197+measures.
198+
199+ When you convey a covered work, you waive any legal power to forbid
200+circumvention of technological measures to the extent such circumvention
201+is effected by exercising rights under this License with respect to
202+the covered work, and you disclaim any intention to limit operation or
203+modification of the work as a means of enforcing, against the work's
204+users, your or third parties' legal rights to forbid circumvention of
205+technological measures.
206+
207+ 4. Conveying Verbatim Copies.
208+
209+ You may convey verbatim copies of the Program's source code as you
210+receive it, in any medium, provided that you conspicuously and
211+appropriately publish on each copy an appropriate copyright notice;
212+keep intact all notices stating that this License and any
213+non-permissive terms added in accord with section 7 apply to the code;
214+keep intact all notices of the absence of any warranty; and give all
215+recipients a copy of this License along with the Program.
216+
217+ You may charge any price or no price for each copy that you convey,
218+and you may offer support or warranty protection for a fee.
219+
220+ 5. Conveying Modified Source Versions.
221+
222+ You may convey a work based on the Program, or the modifications to
223+produce it from the Program, in the form of source code under the
224+terms of section 4, provided that you also meet all of these conditions:
225+
226+ a) The work must carry prominent notices stating that you modified
227+ it, and giving a relevant date.
228+
229+ b) The work must carry prominent notices stating that it is
230+ released under this License and any conditions added under section
231+ 7. This requirement modifies the requirement in section 4 to
232+ "keep intact all notices".
233+
234+ c) You must license the entire work, as a whole, under this
235+ License to anyone who comes into possession of a copy. This
236+ License will therefore apply, along with any applicable section 7
237+ additional terms, to the whole of the work, and all its parts,
238+ regardless of how they are packaged. This License gives no
239+ permission to license the work in any other way, but it does not
240+ invalidate such permission if you have separately received it.
241+
242+ d) If the work has interactive user interfaces, each must display
243+ Appropriate Legal Notices; however, if the Program has interactive
244+ interfaces that do not display Appropriate Legal Notices, your
245+ work need not make them do so.
246+
247+ A compilation of a covered work with other separate and independent
248+works, which are not by their nature extensions of the covered work,
249+and which are not combined with it such as to form a larger program,
250+in or on a volume of a storage or distribution medium, is called an
251+"aggregate" if the compilation and its resulting copyright are not
252+used to limit the access or legal rights of the compilation's users
253+beyond what the individual works permit. Inclusion of a covered work
254+in an aggregate does not cause this License to apply to the other
255+parts of the aggregate.
256+
257+ 6. Conveying Non-Source Forms.
258+
259+ You may convey a covered work in object code form under the terms
260+of sections 4 and 5, provided that you also convey the
261+machine-readable Corresponding Source under the terms of this License,
262+in one of these ways:
263+
264+ a) Convey the object code in, or embodied in, a physical product
265+ (including a physical distribution medium), accompanied by the
266+ Corresponding Source fixed on a durable physical medium
267+ customarily used for software interchange.
268+
269+ b) Convey the object code in, or embodied in, a physical product
270+ (including a physical distribution medium), accompanied by a
271+ written offer, valid for at least three years and valid for as
272+ long as you offer spare parts or customer support for that product
273+ model, to give anyone who possesses the object code either (1) a
274+ copy of the Corresponding Source for all the software in the
275+ product that is covered by this License, on a durable physical
276+ medium customarily used for software interchange, for a price no
277+ more than your reasonable cost of physically performing this
278+ conveying of source, or (2) access to copy the
279+ Corresponding Source from a network server at no charge.
280+
281+ c) Convey individual copies of the object code with a copy of the
282+ written offer to provide the Corresponding Source. This
283+ alternative is allowed only occasionally and noncommercially, and
284+ only if you received the object code with such an offer, in accord
285+ with subsection 6b.
286+
287+ d) Convey the object code by offering access from a designated
288+ place (gratis or for a charge), and offer equivalent access to the
289+ Corresponding Source in the same way through the same place at no
290+ further charge. You need not require recipients to copy the
291+ Corresponding Source along with the object code. If the place to
292+ copy the object code is a network server, the Corresponding Source
293+ may be on a different server (operated by you or a third party)
294+ that supports equivalent copying facilities, provided you maintain
295+ clear directions next to the object code saying where to find the
296+ Corresponding Source. Regardless of what server hosts the
297+ Corresponding Source, you remain obligated to ensure that it is
298+ available for as long as needed to satisfy these requirements.
299+
300+ e) Convey the object code using peer-to-peer transmission, provided
301+ you inform other peers where the object code and Corresponding
302+ Source of the work are being offered to the general public at no
303+ charge under subsection 6d.
304+
305+ A separable portion of the object code, whose source code is excluded
306+from the Corresponding Source as a System Library, need not be
307+included in conveying the object code work.
308+
309+ A "User Product" is either (1) a "consumer product", which means any
310+tangible personal property which is normally used for personal, family,
311+or household purposes, or (2) anything designed or sold for incorporation
312+into a dwelling. In determining whether a product is a consumer product,
313+doubtful cases shall be resolved in favor of coverage. For a particular
314+product received by a particular user, "normally used" refers to a
315+typical or common use of that class of product, regardless of the status
316+of the particular user or of the way in which the particular user
317+actually uses, or expects or is expected to use, the product. A product
318+is a consumer product regardless of whether the product has substantial
319+commercial, industrial or non-consumer uses, unless such uses represent
320+the only significant mode of use of the product.
321+
322+ "Installation Information" for a User Product means any methods,
323+procedures, authorization keys, or other information required to install
324+and execute modified versions of a covered work in that User Product from
325+a modified version of its Corresponding Source. The information must
326+suffice to ensure that the continued functioning of the modified object
327+code is in no case prevented or interfered with solely because
328+modification has been made.
329+
330+ If you convey an object code work under this section in, or with, or
331+specifically for use in, a User Product, and the conveying occurs as
332+part of a transaction in which the right of possession and use of the
333+User Product is transferred to the recipient in perpetuity or for a
334+fixed term (regardless of how the transaction is characterized), the
335+Corresponding Source conveyed under this section must be accompanied
336+by the Installation Information. But this requirement does not apply
337+if neither you nor any third party retains the ability to install
338+modified object code on the User Product (for example, the work has
339+been installed in ROM).
340+
341+ The requirement to provide Installation Information does not include a
342+requirement to continue to provide support service, warranty, or updates
343+for a work that has been modified or installed by the recipient, or for
344+the User Product in which it has been modified or installed. Access to a
345+network may be denied when the modification itself materially and
346+adversely affects the operation of the network or violates the rules and
347+protocols for communication across the network.
348+
349+ Corresponding Source conveyed, and Installation Information provided,
350+in accord with this section must be in a format that is publicly
351+documented (and with an implementation available to the public in
352+source code form), and must require no special password or key for
353+unpacking, reading or copying.
354+
355+ 7. Additional Terms.
356+
357+ "Additional permissions" are terms that supplement the terms of this
358+License by making exceptions from one or more of its conditions.
359+Additional permissions that are applicable to the entire Program shall
360+be treated as though they were included in this License, to the extent
361+that they are valid under applicable law. If additional permissions
362+apply only to part of the Program, that part may be used separately
363+under those permissions, but the entire Program remains governed by
364+this License without regard to the additional permissions.
365+
366+ When you convey a copy of a covered work, you may at your option
367+remove any additional permissions from that copy, or from any part of
368+it. (Additional permissions may be written to require their own
369+removal in certain cases when you modify the work.) You may place
370+additional permissions on material, added by you to a covered work,
371+for which you have or can give appropriate copyright permission.
372+
373+ Notwithstanding any other provision of this License, for material you
374+add to a covered work, you may (if authorized by the copyright holders of
375+that material) supplement the terms of this License with terms:
376+
377+ a) Disclaiming warranty or limiting liability differently from the
378+ terms of sections 15 and 16 of this License; or
379+
380+ b) Requiring preservation of specified reasonable legal notices or
381+ author attributions in that material or in the Appropriate Legal
382+ Notices displayed by works containing it; or
383+
384+ c) Prohibiting misrepresentation of the origin of that material, or
385+ requiring that modified versions of such material be marked in
386+ reasonable ways as different from the original version; or
387+
388+ d) Limiting the use for publicity purposes of names of licensors or
389+ authors of the material; or
390+
391+ e) Declining to grant rights under trademark law for use of some
392+ trade names, trademarks, or service marks; or
393+
394+ f) Requiring indemnification of licensors and authors of that
395+ material by anyone who conveys the material (or modified versions of
396+ it) with contractual assumptions of liability to the recipient, for
397+ any liability that these contractual assumptions directly impose on
398+ those licensors and authors.
399+
400+ All other non-permissive additional terms are considered "further
401+restrictions" within the meaning of section 10. If the Program as you
402+received it, or any part of it, contains a notice stating that it is
403+governed by this License along with a term that is a further
404+restriction, you may remove that term. If a license document contains
405+a further restriction but permits relicensing or conveying under this
406+License, you may add to a covered work material governed by the terms
407+of that license document, provided that the further restriction does
408+not survive such relicensing or conveying.
409+
410+ If you add terms to a covered work in accord with this section, you
411+must place, in the relevant source files, a statement of the
412+additional terms that apply to those files, or a notice indicating
413+where to find the applicable terms.
414+
415+ Additional terms, permissive or non-permissive, may be stated in the
416+form of a separately written license, or stated as exceptions;
417+the above requirements apply either way.
418+
419+ 8. Termination.
420+
421+ You may not propagate or modify a covered work except as expressly
422+provided under this License. Any attempt otherwise to propagate or
423+modify it is void, and will automatically terminate your rights under
424+this License (including any patent licenses granted under the third
425+paragraph of section 11).
426+
427+ However, if you cease all violation of this License, then your
428+license from a particular copyright holder is reinstated (a)
429+provisionally, unless and until the copyright holder explicitly and
430+finally terminates your license, and (b) permanently, if the copyright
431+holder fails to notify you of the violation by some reasonable means
432+prior to 60 days after the cessation.
433+
434+ Moreover, your license from a particular copyright holder is
435+reinstated permanently if the copyright holder notifies you of the
436+violation by some reasonable means, this is the first time you have
437+received notice of violation of this License (for any work) from that
438+copyright holder, and you cure the violation prior to 30 days after
439+your receipt of the notice.
440+
441+ Termination of your rights under this section does not terminate the
442+licenses of parties who have received copies or rights from you under
443+this License. If your rights have been terminated and not permanently
444+reinstated, you do not qualify to receive new licenses for the same
445+material under section 10.
446+
447+ 9. Acceptance Not Required for Having Copies.
448+
449+ You are not required to accept this License in order to receive or
450+run a copy of the Program. Ancillary propagation of a covered work
451+occurring solely as a consequence of using peer-to-peer transmission
452+to receive a copy likewise does not require acceptance. However,
453+nothing other than this License grants you permission to propagate or
454+modify any covered work. These actions infringe copyright if you do
455+not accept this License. Therefore, by modifying or propagating a
456+covered work, you indicate your acceptance of this License to do so.
457+
458+ 10. Automatic Licensing of Downstream Recipients.
459+
460+ Each time you convey a covered work, the recipient automatically
461+receives a license from the original licensors, to run, modify and
462+propagate that work, subject to this License. You are not responsible
463+for enforcing compliance by third parties with this License.
464+
465+ An "entity transaction" is a transaction transferring control of an
466+organization, or substantially all assets of one, or subdividing an
467+organization, or merging organizations. If propagation of a covered
468+work results from an entity transaction, each party to that
469+transaction who receives a copy of the work also receives whatever
470+licenses to the work the party's predecessor in interest had or could
471+give under the previous paragraph, plus a right to possession of the
472+Corresponding Source of the work from the predecessor in interest, if
473+the predecessor has it or can get it with reasonable efforts.
474+
475+ You may not impose any further restrictions on the exercise of the
476+rights granted or affirmed under this License. For example, you may
477+not impose a license fee, royalty, or other charge for exercise of
478+rights granted under this License, and you may not initiate litigation
479+(including a cross-claim or counterclaim in a lawsuit) alleging that
480+any patent claim is infringed by making, using, selling, offering for
481+sale, or importing the Program or any portion of it.
482+
483+ 11. Patents.
484+
485+ A "contributor" is a copyright holder who authorizes use under this
486+License of the Program or a work on which the Program is based. The
487+work thus licensed is called the contributor's "contributor version".
488+
489+ A contributor's "essential patent claims" are all patent claims
490+owned or controlled by the contributor, whether already acquired or
491+hereafter acquired, that would be infringed by some manner, permitted
492+by this License, of making, using, or selling its contributor version,
493+but do not include claims that would be infringed only as a
494+consequence of further modification of the contributor version. For
495+purposes of this definition, "control" includes the right to grant
496+patent sublicenses in a manner consistent with the requirements of
497+this License.
498+
499+ Each contributor grants you a non-exclusive, worldwide, royalty-free
500+patent license under the contributor's essential patent claims, to
501+make, use, sell, offer for sale, import and otherwise run, modify and
502+propagate the contents of its contributor version.
503+
504+ In the following three paragraphs, a "patent license" is any express
505+agreement or commitment, however denominated, not to enforce a patent
506+(such as an express permission to practice a patent or covenant not to
507+sue for patent infringement). To "grant" such a patent license to a
508+party means to make such an agreement or commitment not to enforce a
509+patent against the party.
510+
511+ If you convey a covered work, knowingly relying on a patent license,
512+and the Corresponding Source of the work is not available for anyone
513+to copy, free of charge and under the terms of this License, through a
514+publicly available network server or other readily accessible means,
515+then you must either (1) cause the Corresponding Source to be so
516+available, or (2) arrange to deprive yourself of the benefit of the
517+patent license for this particular work, or (3) arrange, in a manner
518+consistent with the requirements of this License, to extend the patent
519+license to downstream recipients. "Knowingly relying" means you have
520+actual knowledge that, but for the patent license, your conveying the
521+covered work in a country, or your recipient's use of the covered work
522+in a country, would infringe one or more identifiable patents in that
523+country that you have reason to believe are valid.
524+
525+ If, pursuant to or in connection with a single transaction or
526+arrangement, you convey, or propagate by procuring conveyance of, a
527+covered work, and grant a patent license to some of the parties
528+receiving the covered work authorizing them to use, propagate, modify
529+or convey a specific copy of the covered work, then the patent license
530+you grant is automatically extended to all recipients of the covered
531+work and works based on it.
532+
533+ A patent license is "discriminatory" if it does not include within
534+the scope of its coverage, prohibits the exercise of, or is
535+conditioned on the non-exercise of one or more of the rights that are
536+specifically granted under this License. You may not convey a covered
537+work if you are a party to an arrangement with a third party that is
538+in the business of distributing software, under which you make payment
539+to the third party based on the extent of your activity of conveying
540+the work, and under which the third party grants, to any of the
541+parties who would receive the covered work from you, a discriminatory
542+patent license (a) in connection with copies of the covered work
543+conveyed by you (or copies made from those copies), or (b) primarily
544+for and in connection with specific products or compilations that
545+contain the covered work, unless you entered into that arrangement,
546+or that patent license was granted, prior to 28 March 2007.
547+
548+ Nothing in this License shall be construed as excluding or limiting
549+any implied license or other defenses to infringement that may
550+otherwise be available to you under applicable patent law.
551+
552+ 12. No Surrender of Others' Freedom.
553+
554+ If conditions are imposed on you (whether by court order, agreement or
555+otherwise) that contradict the conditions of this License, they do not
556+excuse you from the conditions of this License. If you cannot convey a
557+covered work so as to satisfy simultaneously your obligations under this
558+License and any other pertinent obligations, then as a consequence you may
559+not convey it at all. For example, if you agree to terms that obligate you
560+to collect a royalty for further conveying from those to whom you convey
561+the Program, the only way you could satisfy both those terms and this
562+License would be to refrain entirely from conveying the Program.
563+
564+ 13. Use with the GNU Affero General Public License.
565+
566+ Notwithstanding any other provision of this License, you have
567+permission to link or combine any covered work with a work licensed
568+under version 3 of the GNU Affero General Public License into a single
569+combined work, and to convey the resulting work. The terms of this
570+License will continue to apply to the part which is the covered work,
571+but the special requirements of the GNU Affero General Public License,
572+section 13, concerning interaction through a network will apply to the
573+combination as such.
574+
575+ 14. Revised Versions of this License.
576+
577+ The Free Software Foundation may publish revised and/or new versions of
578+the GNU General Public License from time to time. Such new versions will
579+be similar in spirit to the present version, but may differ in detail to
580+address new problems or concerns.
581+
582+ Each version is given a distinguishing version number. If the
583+Program specifies that a certain numbered version of the GNU General
584+Public License "or any later version" applies to it, you have the
585+option of following the terms and conditions either of that numbered
586+version or of any later version published by the Free Software
587+Foundation. If the Program does not specify a version number of the
588+GNU General Public License, you may choose any version ever published
589+by the Free Software Foundation.
590+
591+ If the Program specifies that a proxy can decide which future
592+versions of the GNU General Public License can be used, that proxy's
593+public statement of acceptance of a version permanently authorizes you
594+to choose that version for the Program.
595+
596+ Later license versions may give you additional or different
597+permissions. However, no additional obligations are imposed on any
598+author or copyright holder as a result of your choosing to follow a
599+later version.
600+
601+ 15. Disclaimer of Warranty.
602+
603+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
604+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
605+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
606+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
607+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
608+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
609+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
610+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
611+
612+ 16. Limitation of Liability.
613+
614+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
615+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
616+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
617+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
618+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
619+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
620+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
621+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
622+SUCH DAMAGES.
623+
624+ 17. Interpretation of Sections 15 and 16.
625+
626+ If the disclaimer of warranty and limitation of liability provided
627+above cannot be given local legal effect according to their terms,
628+reviewing courts shall apply local law that most closely approximates
629+an absolute waiver of all civil liability in connection with the
630+Program, unless a warranty or assumption of liability accompanies a
631+copy of the Program in return for a fee.
632+
633+ END OF TERMS AND CONDITIONS
634+
635+ How to Apply These Terms to Your New Programs
636+
637+ If you develop a new program, and you want it to be of the greatest
638+possible use to the public, the best way to achieve this is to make it
639+free software which everyone can redistribute and change under these terms.
640+
641+ To do so, attach the following notices to the program. It is safest
642+to attach them to the start of each source file to most effectively
643+state the exclusion of warranty; and each file should have at least
644+the "copyright" line and a pointer to where the full notice is found.
645+
646+ <one line to give the program's name and a brief idea of what it does.>
647+ Copyright (C) <year> <name of author>
648+
649+ This program is free software: you can redistribute it and/or modify
650+ it under the terms of the GNU General Public License as published by
651+ the Free Software Foundation, either version 3 of the License, or
652+ (at your option) any later version.
653+
654+ This program is distributed in the hope that it will be useful,
655+ but WITHOUT ANY WARRANTY; without even the implied warranty of
656+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
657+ GNU General Public License for more details.
658+
659+ You should have received a copy of the GNU General Public License
660+ along with this program. If not, see <http://www.gnu.org/licenses/>.
661+
662+Also add information on how to contact you by electronic and paper mail.
663+
664+ If the program does terminal interaction, make it output a short
665+notice like this when it starts in an interactive mode:
666+
667+ <program> Copyright (C) <year> <name of author>
668+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
669+ This is free software, and you are welcome to redistribute it
670+ under certain conditions; type `show c' for details.
671+
672+The hypothetical commands `show w' and `show c' should show the appropriate
673+parts of the General Public License. Of course, your program's commands
674+might be different; for a GUI interface, you would use an "about box".
675+
676+ You should also get your employer (if you work as a programmer) or school,
677+if any, to sign a "copyright disclaimer" for the program, if necessary.
678+For more information on this, and how to apply and follow the GNU GPL, see
679+<http://www.gnu.org/licenses/>.
680+
681+ The GNU General Public License does not permit incorporating your program
682+into proprietary programs. If your program is a subroutine library, you
683+may consider it more useful to permit linking proprietary applications with
684+the library. If this is what you want to do, use the GNU Lesser General
685+Public License instead of this License. But first, please read
686+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
687
688=== modified file 'debian/changelog'
689--- debian/changelog 2016-08-08 11:53:32 +0000
690+++ debian/changelog 2016-09-19 13:28:17 +0000
691@@ -1,5 +1,5 @@
692-miral (0.1.0) UNRELEASED; urgency=medium
693-
694- * Initial release. (Closes: #XXXXXX)
695-
696- -- Alan Griffiths <alan.griffiths@canonical.com> Mon, 08 Aug 2016 10:41:55 +0100
697+miral (0.1.0-0ubuntu1) yakkety; urgency=medium
698+
699+ * Initial release. (LP: #1613220)
700+
701+ -- Larry Price <larry.price@canonical.com> Fri, 09 Sep 2016 11:09:40 -0500
702
703=== modified file 'debian/control'
704--- debian/control 2016-09-12 15:00:18 +0000
705+++ debian/control 2016-09-19 13:28:17 +0000
706@@ -50,7 +50,7 @@
707 Pre-Depends: ${misc:Pre-Depends}
708 Depends: libmiral1 (= ${binary:Version}),
709 ${misc:Depends},
710-Description: Display server for Ubuntu - ABI preserving abstraction layer
711+Description: Developer files for the Mir ABI-stable abstraction layer
712 MirAL provides an ABI-stable abstraction layer for Mir based shells,
713 insulating them from mirserver ABI breaks.
714 .
715
716=== modified file 'debian/copyright'
717--- debian/copyright 2016-08-15 10:42:45 +0000
718+++ debian/copyright 2016-09-19 13:28:17 +0000
719@@ -1,20 +1,24 @@
720 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
721 Upstream-Name: MirAL
722 Upstream-Contact: Alan Griffiths <alan.griffiths@canonical.com>
723-Source: http://launchpad.net/miral
724+Source: https://launchpad.net/miral
725
726 Files: *
727-Copyright: 2016, Canonical Ltd.
728+Copyright: 2016 Canonical Ltd.
729+License: GPL-3
730+
731 License: GPL-3
732 This program is free software: you can redistribute it and/or modify
733- it under the terms of the GNU General Public License version 3 as
734- published by the Free Software Foundation.
735+ it under the terms of the GNU General Public License as published by
736+ the Free Software Foundation, version 3 of the License.
737 .
738 This program is distributed in the hope that it will be useful,
739 but WITHOUT ANY WARRANTY; without even the implied warranty of
740 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
741 GNU General Public License for more details.
742 .
743- On Debian systems, the full text of the GNU General Public
744- License version 3 can be found in the file
745- `/usr/share/common-licenses/GPL-3'.
746+ You should have received a copy of the GNU General Public License
747+ along with this program. If not, see <http://www.gnu.org/licenses/>.
748+ .
749+ On Debian systems, the full text of the GNU General Public License
750+ version 3 can be found in the file /usr/share/common-licenses/GPL-3.
751
752=== modified file 'debian/rules'
753--- debian/rules 2016-09-01 14:33:21 +0000
754+++ debian/rules 2016-09-19 13:28:17 +0000
755@@ -4,6 +4,9 @@
756
757 export DPKG_GENSYMBOLS_CHECK_LEVEL = 4
758
759+# GLPixelBuffer doesn't support big endian architectures
760+testskip_architectures := s390x powerpc
761+
762 %:
763 dh $@ --parallel --fail-missing
764
765@@ -16,3 +19,8 @@
766 # Only build the docs when we need them
767 override_dh_auto_build-indep:
768 dh_auto_build -- doc
769+
770+override_dh_auto_test:
771+ifneq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(testskip_architectures)))
772+ dh_auto_test $@
773+endif
774
775=== removed directory 'miral-qt'
776=== removed file 'miral-qt/CMakeLists.txt'
777--- miral-qt/CMakeLists.txt 2016-09-07 14:35:25 +0000
778+++ miral-qt/CMakeLists.txt 1970-01-01 00:00:00 +0000
779@@ -1,181 +0,0 @@
780-cmake_minimum_required(VERSION 2.8.9)
781-
782-project(qtmir)
783-
784-set(QTMIR_VERSION_MAJOR 0)
785-set(QTMIR_VERSION_MINOR 1)
786-set(QTMIR_VERSION_PATCH 0)
787-
788-if(${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
789- message(FATAL_ERROR "In-tree build attempt detected, aborting. Set your build dir outside your source dir, delete CMakeCache.txt and CMakeFiles/ from source root and try again.")
790-endif()
791-
792-set(MIRAL_QT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
793-
794-# Find includes in corresponding build directories
795-set(CMAKE_INCLUDE_CURRENT_DIR ON)
796-
797-find_package (ECM 1.7.0 QUIET NO_MODULE)
798-if (ECM_FOUND)
799- # Provides us with -DECM_ENABLE_SANITIZERS='X'
800- # Where X can be address, thread, memory, leak, undefined
801- include("${ECM_MODULE_DIR}/ECMEnableSanitizers.cmake")
802-endif()
803-
804-# add custom cmake modules
805-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
806-
807-# Instruct CMake to run moc automatically when needed.
808-set(CMAKE_AUTOMOC ON)
809-
810-# FIXME - am not inheriting the C/CXXFlags from parent as too strict & fails to build
811-set(CMAKE_C_FLAGS "-std=gnu99 -Wall -Wextra -Werror")
812-set(CMAKE_CXX_FLAGS "-std=c++14 -fPIC -Wall -fno-strict-aliasing -Werror -Wextra")
813-set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined")
814-
815-if ("${CMAKE_CXX_COMPILER}" MATCHES "clang")
816- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-mismatched-tags -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-unknown-pragmas")
817-endif()
818-
819-
820-include(EnableCoverageReport)
821-#####################################################################
822-# Enable code coverage calculation with gcov/gcovr/lcov
823-# Usage:
824-# * Switch build type to coverage (use ccmake or cmake-gui)
825-# * Invoke make, make test, make coverage (or ninja if you use that backend)
826-# * Find html report in subdir coveragereport
827-# * Find xml report feasible for jenkins in coverage.xml
828-#####################################################################
829-if(cmake_build_type_lower MATCHES coverage)
830- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage" )
831- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage" )
832- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --coverage" )
833- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage" )
834- ENABLE_COVERAGE_REPORT(TARGETS ${SHELL_APP} FILTER /usr/include ${CMAKE_SOURCE_DIR}/tests/* ${CMAKE_BINARY_DIR}/*)
835-endif()
836-
837-# Make sure we have all the needed symbols
838-set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
839-set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-z,defs")
840-
841-# Static C++ checks
842-add_custom_target(cppcheck COMMAND cppcheck --enable=all -q --error-exitcode=2
843- ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests)
844-
845-include(FindPkgConfig)
846-find_package(Qt5Core 5.4 REQUIRED)
847-find_package(Qt5DBus 5.4 REQUIRED)
848-find_package(Qt5Gui 5.4 REQUIRED)
849-find_package(Qt5Qml 5.4 REQUIRED)
850-find_package(Qt5Quick 5.4 REQUIRED)
851-find_package(Qt5Sensors 5.4 REQUIRED)
852-find_package(Qt5Test 5.4 REQUIRED)
853-
854-find_package(Threads REQUIRED)
855-
856-pkg_check_modules(MIRSERVER mirserver>=0.22 REQUIRED)
857-pkg_check_modules(MIRCLIENT mirclient>=0.22 REQUIRED)
858-pkg_check_modules(MIRRENDERERGLDEV mir-renderer-gl-dev>=0.22 REQUIRED)
859-
860-pkg_check_modules(XKBCOMMON xkbcommon REQUIRED)
861-pkg_check_modules(GLIB glib-2.0 REQUIRED)
862-pkg_check_modules(PROCESS_CPP process-cpp REQUIRED)
863-pkg_check_modules(UBUNTU_APP_LAUNCH ubuntu-app-launch-2 REQUIRED)
864-pkg_check_modules(URL_DISPATCHER url-dispatcher-1)
865-pkg_check_modules(EGL egl)
866-pkg_check_modules(GIO gio-2.0)
867-pkg_check_modules(GIO_UNIX gio-unix-2.0)
868-pkg_check_modules(LTTNG lttng-ust)
869-pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
870-pkg_check_modules(QTDBUSTEST libqtdbustest-1 REQUIRED)
871-pkg_check_modules(QTDBUSMOCK libqtdbusmock-1 REQUIRED)
872-pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=21)
873-pkg_check_modules(CGMANAGER libcgmanager REQUIRED)
874-pkg_check_modules(CONTENT_HUB libcontent-hub>=0.2 REQUIRED)
875-
876-add_definitions(-DMIR_REQUIRE_DEPRECATED_EVENT_OPT_IN=1)
877-
878-# Use the fast string builder
879-add_definitions(-DQT_USE_QSTRINGBUILDER)
880-
881-include_directories( ${APPLICATION_API_INCLUDE_DIRS} )
882-
883-# We expect this to be set via debian/rules for GLES builds
884-if ("${USE_OPENGLES}" STREQUAL 1)
885- message(STATUS "Qt5 determined to be compiled with GLES support")
886- pkg_check_modules(GLESv2 glesv2)
887- add_definitions(-DQT_USING_GLES)
888- include_directories (${GLESv2_INCLUDE_DIRS})
889- set (GL_LIBRARIES "${GLESv2_LIBRARIES}")
890-# Because qt/gl and qt/gles are not parallel installable we have a difficulty
891-# building qtmir-desktop on armhf. We would like to link against opengl and bind the
892-# opengl API but Qt is already linked against the ES APIs. So in this setup we link against OpenGLES
893-# to accomodate Qt but bind the OpenGL API anyway. This is technically broken though
894-# I suspect Mesa may allow it ~racarr.
895-elseif("${USE_OPENGL_BUT_LINK_AGAINST_OPENGLES}")
896- message(STATUS "Linking against OpenGL ES but binding OpenGL API")
897- pkg_check_modules(GLESv2 glesv2)
898- add_definitions(-DQT_USING_GL)
899- include_directories (${GLESv2_INCLUDE_DIRS})
900- set (GL_LIBRARIES "${GLESv2_LIBRARIES}")
901-else()
902- message(STATUS "Qt5 determined to be compiled with OpenGL support")
903- pkg_check_modules(GL gl)
904- add_definitions(-DQT_USING_OPENGL)
905- include_directories (${GL_INCLUDE_DIRS})
906-endif()
907-
908-# Standard install paths
909-include(GNUInstallDirs)
910-
911-
912-# Determine QPA plugin install path
913-# FIXME(greyback) there must be a better way than calling a private macro to set a property.
914-# I'm manually calling a macro from Qt5GuiConfig.cmake, but I don't understand why it isn't being called.
915-_populate_Gui_plugin_properties("Gui" "PLATFORMS" "platforms")
916-get_target_property(Qt5Gui_QPA_Plugin_Path Qt5::Gui IMPORTED_LOCATION_PLATFORMS)
917-
918-# Set QML module install path
919-set(QML_MODULE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/qt5/qml")
920-set(QTMIR_DATA_DIR ${CMAKE_INSTALL_DATADIR}/qtmir)
921-
922-
923-# Customisations for the build type
924-if(NOT CMAKE_BUILD_TYPE)
925- message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
926- set(CMAKE_BUILD_TYPE RelWithDebInfo)
927-endif()
928-
929-string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower)
930-
931-if(cmake_build_type_lower MATCHES relwithdebinfo) # workaround for http://public.kitware.com/Bug/view.php?id=14696
932- add_definitions(-DQT_NO_DEBUG)
933-endif()
934-if ("${CMAKE_BUILD_TYPE}" STREQUAL "release" OR "${CMAKE_BUILD_TYPE}" STREQUAL "relwithdebinfo")
935- option(Werror "Treat warnings as errors" ON)
936-else()
937- option(Werror "Treat warnings as errors" OFF)
938-endif()
939-
940-if (Werror)
941- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
942-endif()
943-
944-
945-# Mir uses boost, which does not like Qt defining macros named "signals" and "slots"
946-add_definitions(-DQT_NO_KEYWORDS)
947-
948-# Tests
949-if (NOT NO_TESTS)
950- include(CTest)
951- enable_testing()
952- add_subdirectory(tests)
953-else()
954- message(STATUS "Tests disabled")
955-endif()
956-
957-# add subdirectories to build
958-add_subdirectory(src)
959-add_subdirectory(demos)
960-add_subdirectory(benchmarks)
961
962=== removed file 'miral-qt/README'
963--- miral-qt/README 2016-06-01 22:06:51 +0000
964+++ miral-qt/README 1970-01-01 00:00:00 +0000
965@@ -1,47 +0,0 @@
966-This repo contains a QPA plugin to make Qt a Mir server.
967-
968-Handy way to grab dependencies is with:
969-$ sudo mk-build-deps -ir debian/control
970-
971-To use, compile and install (building in a "build" subdir as an example):
972-$ mkdir build
973-$ cd build
974-$ cmake -DCMAKE_INSTALL_PREFIX=/usr ../
975-$ make
976-$ sudo make install
977-
978-To enable debug output, replace the single "cmake" command with
979-$ cmake -DCMAKE_BUILD_TYPE=Debug
980-(is good to "make clean" beforehand)
981-
982-To avoid building the tests (to speed up the build):
983-$ cmake -DNO_TESTS=true
984-
985-To enable logging of Qt's OpenGL debug messages:
986-$ cmake -DQGL_DEBUG=true
987-
988-To test the server, enter the demos directory, and run (NB: server should be run as root):
989-
990-$ sudo su
991-$ export QT_QPA_PLATFORM=mirserver
992-$ export MIR_SERVER_FILE=/tmp/mir_socket
993-$ unset QT_QPA_PLATFORMTHEME
994-
995-then run the Qt application of your choice (qmlscene best). As example, try
996-
997-$ qmlscene qml-demo-shell/qml-demo-shell.qml
998-
999-prepare the environment for running mir clients:
1000-
1001-$ sudo chmod a+rw /tmp/mir_socket
1002-$ export MIR_SOCKET=/tmp/mir_socket
1003-
1004-and then try running an application:
1005-
1006-$ mir_demo_client_egltriangle --desktop_file_hint=/usr/share/applications/gallery-app.desktop
1007-or
1008-$ unset QT_QPA_PLATFORMTHEME
1009-$ export QT_QPA_PLATFORM=ubuntumirclient
1010-$ qmlscene qml-demo-client/qml-demo-client.qml --desktop_file_hint=/usr/share/click/preinstalled/com.ubuntu.calendar/0.4.172/calendar-app.desktop
1011-
1012-where the desktop file hint specifies an existing file.
1013
1014=== removed directory 'miral-qt/benchmarks'
1015=== removed file 'miral-qt/benchmarks/CMakeLists.txt'
1016--- miral-qt/benchmarks/CMakeLists.txt 2016-06-01 22:06:51 +0000
1017+++ miral-qt/benchmarks/CMakeLists.txt 1970-01-01 00:00:00 +0000
1018@@ -1,8 +0,0 @@
1019-file(GLOB BENCHMARK_FILES
1020- *.py
1021- *.R
1022-)
1023-
1024-install(FILES ${BENCHMARK_FILES}
1025- DESTINATION ${QTMIR_DATA_DIR}/benchmarks
1026-)
1027
1028=== removed file 'miral-qt/benchmarks/README'
1029--- miral-qt/benchmarks/README 2016-06-01 22:06:51 +0000
1030+++ miral-qt/benchmarks/README 1970-01-01 00:00:00 +0000
1031@@ -1,12 +0,0 @@
1032-To run performance tests on device:
1033-
1034-Firstly, you will need to install the qtmir-tests package. So either install the package using apt or build
1035-and install from source
1036-$ sudo apt-get install qtmir-tests
1037-
1038-Then you need to stop unity8 & unity-system compositor so that we can start out test in a controlled environment.
1039-$ sudo stop lightdm
1040-
1041-Next, start the test!
1042-$ cd benchmarks
1043-$ sudo python3 touch_event_latency.py
1044\ No newline at end of file
1045
1046=== removed file 'miral-qt/benchmarks/common.py'
1047--- miral-qt/benchmarks/common.py 2016-06-01 22:06:51 +0000
1048+++ miral-qt/benchmarks/common.py 1970-01-01 00:00:00 +0000
1049@@ -1,33 +0,0 @@
1050-# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1051-#
1052-# Copyright (C) 2015 Canonical Ltd.
1053-#
1054-# This program is free software; you can redistribute it and/or modify
1055-# it under the terms of the GNU Lesser General Public License as published by
1056-# the Free Software Foundation; version 3.
1057-#
1058-# This program is distributed in the hope that it will be useful,
1059-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1060-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1061-# GNU Lesser General Public License for more details.
1062-#
1063-# You should have received a copy of the GNU Lesser General Public License
1064-# along with this program. If not, see <http://www.gnu.org/licenses/>.
1065-
1066-from autopilot import (
1067- input,
1068- platform
1069-)
1070-
1071-def get_pointing_device():
1072- """Return the pointing device depending on the platform.
1073-
1074- If the platform is `Desktop`, the pointing device will be a `Mouse`.
1075- If not, the pointing device will be `Touch`.
1076-
1077- """
1078- if platform.model() == 'Desktop':
1079- input_device_class = input.Mouse
1080- else:
1081- input_device_class = input.Touch
1082- return input.Pointer(device=input_device_class.create())
1083\ No newline at end of file
1084
1085=== removed file 'miral-qt/benchmarks/report_types.py'
1086--- miral-qt/benchmarks/report_types.py 2016-06-01 22:06:51 +0000
1087+++ miral-qt/benchmarks/report_types.py 1970-01-01 00:00:00 +0000
1088@@ -1,121 +0,0 @@
1089-# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1090-#
1091-# Copyright (C) 2015 Canonical Ltd.
1092-#
1093-# This program is free software; you can redistribute it and/or modify
1094-# it under the terms of the GNU Lesser General Public License as published by
1095-# the Free Software Foundation; version 3.
1096-#
1097-# This program is distributed in the hope that it will be useful,
1098-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1099-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1100-# GNU Lesser General Public License for more details.
1101-#
1102-# You should have received a copy of the GNU Lesser General Public License
1103-# along with this program. If not, see <http://www.gnu.org/licenses/>.
1104-
1105-import subprocess
1106-import os
1107-import shutil
1108-
1109-class Node:
1110- def __init__(self, name):
1111- self.name = name
1112- self.children = []
1113-
1114- def add_child(self, child):
1115- self.children.append(child)
1116-
1117- def to_string(self):
1118- output = "<%s>" % self.name
1119- for child in self.children:
1120- output += child.to_string()
1121- output += "</%s>" % self.name
1122- return output
1123-
1124-class Results(Node):
1125- def __init__(self):
1126- super().__init__("results")
1127-
1128-class Events(Node):
1129- def __init__(self):
1130- super().__init__("events")
1131-
1132-class Event:
1133- def __init__(self, event):
1134- self.pid = event["vpid"]
1135- self.name = event.name
1136- self.timestamp = event.timestamp
1137-
1138- def to_string(self):
1139- output = "<event "
1140- output += "pid='{}' ".format(self.pid)
1141- output += "name='{}' ".format(self.name)
1142- output += "timestamp='{}' ".format(self.timestamp)
1143- output += "/>"
1144- return output
1145-
1146-class Processes(Node):
1147- def __init__(self):
1148- super().__init__("processes")
1149-
1150-class Process:
1151- def __init__(self, name, pid):
1152- self.name = name
1153- self.pid = pid
1154-
1155- def to_string(self):
1156- output = "<process "
1157- output += "name='{}' ".format(self.name)
1158- output += "pid='{}' ".format(self.pid)
1159- output += "/>"
1160- return output
1161-
1162-class ResultsData:
1163- def __init__(self, name, mean=0.0, deviation=0.0, comment=""):
1164- self.data = []
1165- self.name = name
1166- self.mean = mean
1167- self.deviation = deviation
1168- self.comment = comment
1169-
1170- def add_data(self, value):
1171- self.data.append(value)
1172-
1173- def to_string(self):
1174- output = "<data name='{}' mean='{}' deviation='{}' comment='{}' count='{}'>".format(
1175- self.name,
1176- self.mean,
1177- self.deviation,
1178- self.comment,
1179- len(self.data))
1180- output += "<values>"
1181- output += ",".join(map( lambda x: str(x), self.data))
1182- output += "</values>"
1183- output += "</data>"
1184- return output;
1185-
1186- def generate_histogram(self, filename):
1187- cmdline = [
1188- shutil.which("Rscript"),
1189- os.path.split(os.path.abspath(__file__))[0] + "/touch_event_latency.R",
1190- "data.csv",
1191- "%s.png" % filename]
1192- # Use R to generate a histogram plot
1193- f = open("data.csv", "w")
1194- f.write(",".join(map( lambda x: str(x), self.data)));
1195- f.close()
1196- process = subprocess.Popen(cmdline)
1197- process.wait()
1198- if process.returncode != 0:
1199- print("Failed to generate histogram");
1200- os.remove("data.csv")
1201-
1202-
1203-class Error:
1204- def __init__(self, comment):
1205- self.comment = comment
1206-
1207- def to_string(self):
1208- return "<error comment='{}' />".format(self.comment)
1209- return output
1210\ No newline at end of file
1211
1212=== removed file 'miral-qt/benchmarks/touch_event_latency.R'
1213--- miral-qt/benchmarks/touch_event_latency.R 2016-06-01 22:06:51 +0000
1214+++ miral-qt/benchmarks/touch_event_latency.R 1970-01-01 00:00:00 +0000
1215@@ -1,6 +0,0 @@
1216-args <- commandArgs(trailingOnly = TRUE)
1217-data <- scan(args[1], numeric(), sep=",")
1218-colors = c("red", "yellow", "green", "violet", "orange", "pink", "blue")
1219-png(filename=args[2])
1220-hist(data, breaks=max(data), col=colors)
1221-dev.off()
1222
1223=== removed file 'miral-qt/benchmarks/touch_event_latency.py'
1224--- miral-qt/benchmarks/touch_event_latency.py 2016-06-01 22:06:51 +0000
1225+++ miral-qt/benchmarks/touch_event_latency.py 1970-01-01 00:00:00 +0000
1226@@ -1,271 +0,0 @@
1227-# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1228-#
1229-# Copyright (C) 2015 Canonical Ltd.
1230-#
1231-# This program is free software; you can redistribute it and/or modify
1232-# it under the terms of the GNU Lesser General Public License as published by
1233-# the Free Software Foundation; version 3.
1234-#
1235-# This program is distributed in the hope that it will be useful,
1236-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1237-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1238-# GNU Lesser General Public License for more details.
1239-#
1240-# You should have received a copy of the GNU Lesser General Public License
1241-# along with this program. If not, see <http://www.gnu.org/licenses/>.
1242-
1243-from mir_perf_framework import PerformanceTest, Server, Client
1244-import time
1245-import statistics
1246-import shutil
1247-import sys
1248-from common import get_pointing_device
1249-import report_types
1250-
1251-####### TEST #######
1252-
1253-
1254-def perform_test():
1255- host = Server(reports=["input"])
1256- nested = Server(executable=shutil.which("qtmir-demo-shell"),
1257- host=host,
1258- reports=["input","client-input-receiver"],
1259- env={"QT_QPA_PLATFORM": "mirserver", "QML_NO_TOUCH_COMPRESSION": "1"})
1260- client = Client(executable=shutil.which("qtmir-demo-client"),
1261- server=nested,
1262- reports=["input","client-input-receiver"],
1263- env={"QT_QPA_PLATFORM": "ubuntumirclient", "QML_NO_TOUCH_COMPRESSION": "1"},
1264- options=["--", "--desktop_file_hint=/usr/share/applications/qtmir-demo-client.desktop"])
1265-
1266- test = PerformanceTest([host, nested, client])
1267- test.start()
1268-
1269- results = report_types.Results()
1270- processes = report_types.Processes()
1271- processes.add_child(report_types.Process("Host", host.process.pid))
1272- processes.add_child(report_types.Process("Nested Server", nested.process.pid))
1273- processes.add_child(report_types.Process("Client", client.process.pid))
1274- results.add_child(processes)
1275-
1276- time.sleep(3) # wait for settle
1277-
1278- host_pid = host.process.pid
1279- nested_pid = nested.process.pid
1280- client_pid = client.process.pid
1281-
1282- touch = get_pointing_device()
1283- time.sleep(1) # let mir pick up the new input device
1284- touch.drag(100, 100, 1000, 100, 5, 0.006)
1285- touch.drag(1000, 100, 1000, 1000, 5, 0.006)
1286- touch.drag(1000, 1000, 100, 1000, 5, 0.006)
1287- touch.drag(100, 1000, 100, 100, 5, 0.006)
1288-
1289- # time.sleep(5) # wait for settle
1290- time.sleep(2) # wait for settle
1291- test.stop()
1292-
1293- ####### TRACE PARSING #######
1294-
1295- trace = test.babeltrace()
1296-
1297- server_touch_data_timestamps = {}
1298- client_touch_data_timestamps = {}
1299- client_touch_data_latency = {}
1300-
1301- qtmir_touch_dispatch_start = {}
1302- qtmir_touch_dispatch_end = {}
1303- qtmir_touch_consume_start = {}
1304- qtmir_touch_consume_end = {}
1305-
1306- events = report_types.Events()
1307-
1308- for event in trace.events:
1309- events.add_child(report_types.Event(event))
1310- pid = event["vpid"]
1311- if event.name == "mir_client_input_receiver:touch_event":
1312- if pid not in client_touch_data_timestamps: client_touch_data_timestamps[pid] = []
1313- if pid not in client_touch_data_latency: client_touch_data_latency[pid] = []
1314- diff = (event.timestamp - event["event_time"]) / 1000000.0
1315- if diff > 0:
1316- client_touch_data_timestamps[pid].append(event.timestamp)
1317- client_touch_data_latency[pid].append(diff)
1318-
1319- elif event.name == "mir_server_input:published_motion_event":
1320- if pid not in server_touch_data_timestamps: server_touch_data_timestamps[pid] = []
1321- server_touch_data_timestamps[pid].append(event["event_time"])
1322-
1323- elif event.name == "qtmirserver:touchEventDispatch_start":
1324- if pid not in qtmir_touch_dispatch_start: qtmir_touch_dispatch_start[pid] = []
1325- qtmir_touch_dispatch_start[pid].append(event.timestamp)
1326-
1327- elif event.name == "qtmirserver:touchEventDispatch_end":
1328- if pid not in qtmir_touch_dispatch_end: qtmir_touch_dispatch_end[pid] = []
1329- qtmir_touch_dispatch_end[pid].append(event.timestamp)
1330-
1331- elif event.name == "qtmir:touchEventConsume_start":
1332- if pid not in qtmir_touch_consume_start: qtmir_touch_consume_start[pid] = []
1333- qtmir_touch_consume_start[pid].append(event.timestamp)
1334-
1335- elif event.name == "qtmir:touchEventConsume_end":
1336- if pid not in qtmir_touch_consume_end: qtmir_touch_consume_end[pid] = []
1337- qtmir_touch_consume_end[pid].append(event.timestamp)
1338-
1339- # LATENCY MEANS
1340-
1341- if nested_pid in client_touch_data_latency:
1342- nested_data = client_touch_data_latency[nested_pid]
1343- nested_latency_xml = report_types.ResultsData(
1344- "nested_latency",
1345- statistics.mean(nested_data),
1346- statistics.stdev(nested_data),
1347- "Kernel to nested server latency")
1348- for value in nested_data:
1349- nested_latency_xml.add_data(value)
1350- results.add_child(nested_latency_xml)
1351- nested_latency_xml.generate_histogram("nested_latency")
1352- else:
1353- results.add_child(report_types.Error("No nested server touch latency data"))
1354-
1355- if client_pid in client_touch_data_latency:
1356- client_data = client_touch_data_latency[client_pid]
1357-
1358- client_latency_xml = report_types.ResultsData(
1359- "client_latency",
1360- statistics.mean(client_data),
1361- statistics.stdev(client_data),
1362- "Kernel to client latency")
1363- for value in client_data:
1364- client_latency_xml.add_data(value)
1365- results.add_child(client_latency_xml)
1366- client_latency_xml.generate_histogram("client_latency")
1367- else:
1368- results.add_child(report_types.Error("No client touch latency data"))
1369-
1370- # EVENT RATES
1371- if host_pid in server_touch_data_timestamps:
1372- last_timestamp = -1
1373- input_rate = []
1374-
1375- for next_timestamp in server_touch_data_timestamps[host_pid]:
1376- if last_timestamp != -1:
1377- diff = (next_timestamp - last_timestamp) / 1000000.0
1378- input_rate.append(diff)
1379- last_timestamp = next_timestamp
1380-
1381- input_rate_xml = report_types.ResultsData(
1382- "host_input_ate",
1383- statistics.mean(input_rate),
1384- statistics.stdev(input_rate),
1385- "Host input event rate")
1386- for value in input_rate:
1387- input_rate_xml.add_data(value)
1388- results.add_child(input_rate_xml)
1389- input_rate_xml.generate_histogram("host_input_rate")
1390- else:
1391- results.add_child(report_types.Error("No host server input event timestamp data"))
1392-
1393- if nested_pid in client_touch_data_timestamps:
1394- last_timestamp = -1
1395- input_rate = []
1396- for next_timestamp in client_touch_data_timestamps[nested_pid]:
1397- if last_timestamp != -1:
1398- diff = (next_timestamp - last_timestamp) / 1000000.0
1399- input_rate.append(diff)
1400- last_timestamp = next_timestamp
1401-
1402- input_rate_xml = report_types.ResultsData(
1403- "nested_input_rate",
1404- statistics.mean(input_rate),
1405- statistics.stdev(input_rate),
1406- "Nested server event rate")
1407- for value in input_rate:
1408- input_rate_xml.add_data(value)
1409- results.add_child(input_rate_xml)
1410- input_rate_xml.generate_histogram("nested_input_rate")
1411- else:
1412- results.add_child(report_types.Error("No nested server input event timestamp data"))
1413-
1414- if client_pid in client_touch_data_timestamps:
1415- last_timestamp = -1
1416- input_rate = []
1417- for next_timestamp in client_touch_data_timestamps[client_pid]:
1418- if last_timestamp != -1:
1419- diff = (next_timestamp - last_timestamp) / 1000000.0
1420- input_rate.append(diff)
1421- last_timestamp = next_timestamp
1422-
1423- input_rate_xml = report_types.ResultsData(
1424- "client_input_rate",
1425- statistics.mean(input_rate),
1426- statistics.stdev(input_rate),
1427- "Client event rate")
1428- for value in input_rate:
1429- input_rate_xml.add_data(value)
1430- results.add_child(input_rate_xml)
1431- input_rate_xml.generate_histogram("client_input_rate")
1432- else:
1433- results.add_child(report_types.Error("No client event timestamp data"))
1434-
1435- qtmir_loop_data = []
1436- dispatch_data = []
1437- consume_data = []
1438-
1439- # TIME BETWEEN TRACEPOINTS
1440- dispatch_starts = qtmir_touch_dispatch_start[nested_pid] if nested_pid in qtmir_touch_dispatch_start else []
1441- dispatch_ends = qtmir_touch_dispatch_end[nested_pid] if nested_pid in qtmir_touch_dispatch_end else []
1442- consume_starts = qtmir_touch_consume_start[nested_pid] if nested_pid in qtmir_touch_consume_start else []
1443- consume_ends = qtmir_touch_consume_end[nested_pid] if nested_pid in qtmir_touch_consume_end else []
1444-
1445- # since there's no uniqueness to events, we need to assume all events are 1:1 through system
1446- if len(dispatch_starts) > 0 and len(dispatch_starts) == len(dispatch_ends) and len(dispatch_starts) == len(consume_starts) and len(consume_starts) == len(consume_ends):
1447- i = 0
1448-
1449- for start in dispatch_starts:
1450- dispatch_diff = (dispatch_ends[i] - start) / 1000000.0
1451- consume_diff = (consume_ends[i] - consume_starts[i]) / 1000000.0
1452- loop_dif = (consume_starts[i] - dispatch_ends[i]) / 1000000.0
1453- dispatch_data.append(dispatch_diff);
1454- consume_data.append(consume_diff);
1455- qtmir_loop_data.append(loop_dif);
1456- i=i+1
1457-
1458- qtmir_loop_xml = report_types.ResultsData(
1459- "qtmir_eventloop",
1460- statistics.mean(qtmir_loop_data),
1461- statistics.stdev(qtmir_loop_data),
1462- "Time spent in qtmir event loop")
1463- for value in qtmir_loop_data:
1464- qtmir_loop_xml.add_data(value)
1465- results.add_child(qtmir_loop_xml)
1466- qtmir_loop_xml.generate_histogram("qtmir_eventloop")
1467-
1468- qtmir_dispatch_xml = report_types.ResultsData(
1469- "qtmir_dispatch",
1470- statistics.mean(dispatch_data),
1471- statistics.stdev(dispatch_data),
1472- "Time QteventFeeder spent dispatching event to qt")
1473- for value in dispatch_data:
1474- qtmir_dispatch_xml.add_data(value)
1475- results.add_child(qtmir_dispatch_xml)
1476- qtmir_dispatch_xml.generate_histogram("qtmir_dispatch")
1477-
1478- qtmir_consume_xml = report_types.ResultsData(
1479- "qtmir_consume",
1480- statistics.mean(consume_data),
1481- statistics.stdev(consume_data),
1482- "Time MirSurfaceItem spent consiming event")
1483- for value in consume_data:
1484- qtmir_consume_xml.add_data(value)
1485- results.add_child(qtmir_consume_xml)
1486- qtmir_consume_xml.generate_histogram("qtmir_consume")
1487-
1488- else:
1489- results.add_child(report_types.Error("Cannot calculate QtMir loop data - Dispatch event count did not match surface consume event count"))
1490-
1491- results.add_child(events)
1492- return results
1493-
1494-if __name__ == "__main__":
1495- results = perform_test();
1496- f = open("touch_event_latency.xml", "w")
1497- f.write(results.to_string())
1498
1499=== removed directory 'miral-qt/cmake'
1500=== removed directory 'miral-qt/cmake/modules'
1501=== removed file 'miral-qt/cmake/modules/FindGLESv2.cmake'
1502--- miral-qt/cmake/modules/FindGLESv2.cmake 2016-06-01 22:06:51 +0000
1503+++ miral-qt/cmake/modules/FindGLESv2.cmake 1970-01-01 00:00:00 +0000
1504@@ -1,25 +0,0 @@
1505-# - Try to find GLESv2
1506-# Once done this will define
1507-# GLESv2_FOUND - System has GLESv2
1508-# GLESv2_INCLUDE_DIRS - The GLESv2 include directories
1509-# GLESv2_LIBRARIES - The libraries needed to use GLESv2
1510-
1511-find_package(PkgConfig)
1512-pkg_check_modules(PC_GLESv2 QUIET glesv2)
1513-
1514-find_path(GLESv2_INCLUDE_DIR GLES2/gl2.h
1515- HINTS ${PC_GLESv2_INCLUDEDIR} ${PC_GLESv2_INCLUDE_DIRS})
1516-
1517-find_library(GLESv2_LIBRARY GLESv2
1518- HINTS ${PC_GLESv2_LIBDIR} ${PC_GLESv2_LIBRARY_DIRS})
1519-
1520-set(GLESv2_LIBRARIES ${GLESv2_LIBRARY})
1521-set(GLESv2_INCLUDE_DIRS ${GLESv2_INCLUDE_DIR})
1522-
1523-include(FindPackageHandleStandardArgs)
1524-# handle the QUIETLY and REQUIRED arguments and set GLESv2_FOUND to TRUE
1525-# if all listed variables are TRUE
1526-find_package_handle_standard_args(GLESv2 DEFAULT_MSG
1527- GLESv2_LIBRARY GLESv2_INCLUDE_DIR)
1528-
1529-mark_as_advanced(GLESv2_INCLUDE_DIR GLESv2_LIBRARY)
1530
1531=== removed file 'miral-qt/cmake/modules/FindQt5PlatformSupport.cmake'
1532--- miral-qt/cmake/modules/FindQt5PlatformSupport.cmake 2016-06-01 22:06:51 +0000
1533+++ miral-qt/cmake/modules/FindQt5PlatformSupport.cmake 1970-01-01 00:00:00 +0000
1534@@ -1,121 +0,0 @@
1535-#.rst:
1536-# FindQt5PlatformSupport
1537-# -------
1538-#
1539-# Try to find Qt5PlatformSupport on a Unix system.
1540-#
1541-# This will define the following variables:
1542-#
1543-# ``Qt5PlatformSupport_FOUND``
1544-# True if (the requested version of) Qt5PlatformSupport is available
1545-# ``Qt5PlatformSupport_VERSION``
1546-# The version of Qt5PlatformSupport
1547-# ``Qt5PlatformSupport_LIBRARIES``
1548-# This can be passed to target_link_libraries() instead of the ``Qt5PlatformSupport::Qt5PlatformSupport``
1549-# target
1550-# ``Qt5PlatformSupport_INCLUDE_DIRS``
1551-# This should be passed to target_include_directories() if the target is not
1552-# used for linking
1553-# ``Qt5PlatformSupport_DEFINITIONS``
1554-# This should be passed to target_compile_options() if the target is not
1555-# used for linking
1556-#
1557-# If ``Qt5PlatformSupport_FOUND`` is TRUE, it will also define the following imported target:
1558-#
1559-# ``Qt5PlatformSupport::Qt5PlatformSupport``
1560-# The Qt5PlatformSupport library
1561-#
1562-# In general we recommend using the imported target, as it is easier to use.
1563-# Bear in mind, however, that if the target is in the link interface of an
1564-# exported library, it must be made available by the package config file.
1565-
1566-#=============================================================================
1567-# Copyright 2014 Alex Merry <alex.merry@kde.org>
1568-# Copyright 2014 Martin Gräßlin <mgraesslin@kde.org>
1569-#
1570-# Redistribution and use in source and binary forms, with or without
1571-# modification, are permitted provided that the following conditions
1572-# are met:
1573-#
1574-# 1. Redistributions of source code must retain the copyright
1575-# notice, this list of conditions and the following disclaimer.
1576-# 2. Redistributions in binary form must reproduce the copyright
1577-# notice, this list of conditions and the following disclaimer in the
1578-# documentation and/or other materials provided with the distribution.
1579-# 3. The name of the author may not be used to endorse or promote products
1580-# derived from this software without specific prior written permission.
1581-#
1582-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
1583-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1584-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1585-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
1586-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
1587-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1588-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1589-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1590-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
1591-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1592-#=============================================================================
1593-
1594-if(CMAKE_VERSION VERSION_LESS 2.8.12)
1595- message(FATAL_ERROR "CMake 2.8.12 is required by FindQt5PlatformSupport.cmake")
1596-endif()
1597-if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
1598- message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindQt5PlatformSupport.cmake")
1599-endif()
1600-
1601-# Use pkg-config to get the directories and then use these values
1602-# in the FIND_PATH() and FIND_LIBRARY() calls
1603-find_package(PkgConfig)
1604-pkg_check_modules(PKG_Qt5PlatformSupport QUIET Qt5Gui)
1605-
1606-set(Qt5PlatformSupport_DEFINITIONS ${PKG_Qt5PlatformSupport_CFLAGS_OTHER})
1607-set(Qt5PlatformSupport_VERSION ${PKG_Qt5PlatformSupport_VERSION})
1608-
1609-find_path(Qt5PlatformSupport_INCLUDE_DIR
1610- NAMES
1611- QtPlatformSupport/private/qfontconfigdatabase_p.h
1612- HINTS
1613- ${PKG_Qt5PlatformSupport_INCLUDEDIR}/QtPlatformSupport/${PKG_Qt5PlatformSupport_VERSION}/
1614-)
1615-find_library(Qt5PlatformSupport_LIBRARY
1616- NAMES
1617- Qt5PlatformSupport
1618- HINTS
1619- ${PKG_Qt5PlatformSupport_LIBRARY_DIRS}
1620-)
1621-
1622-include(FindPackageHandleStandardArgs)
1623-find_package_handle_standard_args(Qt5PlatformSupport
1624- FOUND_VAR
1625- Qt5PlatformSupport_FOUND
1626- REQUIRED_VARS
1627- Qt5PlatformSupport_LIBRARY
1628- Qt5PlatformSupport_INCLUDE_DIR
1629- VERSION_VAR
1630- Qt5PlatformSupport_VERSION
1631-)
1632-
1633-if(Qt5PlatformSupport_FOUND AND NOT TARGET Qt5PlatformSupport::Qt5PlatformSupport)
1634- add_library(Qt5PlatformSupport::Qt5PlatformSupport UNKNOWN IMPORTED)
1635- set_target_properties(Qt5PlatformSupport::Qt5PlatformSupport PROPERTIES
1636- IMPORTED_LOCATION "${Qt5PlatformSupport_LIBRARY}"
1637- INTERFACE_COMPILE_OPTIONS "${Qt5PlatformSupport_DEFINITIONS}"
1638- INTERFACE_INCLUDE_DIRECTORIES "${Qt5PlatformSupport_INCLUDE_DIR}"
1639- )
1640-endif()
1641-
1642-mark_as_advanced(Qt5PlatformSupport_LIBRARY Qt5PlatformSupport_INCLUDE_DIR)
1643-
1644-# compatibility variables
1645-set(Qt5PlatformSupport_LIBRARIES ${Qt5PlatformSupport_LIBRARY})
1646-set(Qt5PlatformSupport_INCLUDE_DIRS ${Qt5PlatformSupport_INCLUDE_DIR})
1647-set(Qt5PlatformSupport_VERSION_STRING ${Qt5PlatformSupport_VERSION})
1648-
1649-
1650-include(FeatureSummary)
1651-set_package_properties(Qt5PlatformSupport PROPERTIES
1652- URL "http://www.qt.io"
1653- DESCRIPTION "Qt PlatformSupport module."
1654-)
1655-
1656
1657=== removed file 'miral-qt/cmake/modules/QmlPlugins.cmake'
1658--- miral-qt/cmake/modules/QmlPlugins.cmake 2016-06-01 22:06:51 +0000
1659+++ miral-qt/cmake/modules/QmlPlugins.cmake 1970-01-01 00:00:00 +0000
1660@@ -1,150 +0,0 @@
1661-# If you need to override the qmlplugindump binary, create the qmlplugin executable
1662-# target before loading this plugin.
1663-
1664-if(NOT TARGET qmlplugindump)
1665- find_program(qmlplugindump_exe qmlplugindump)
1666-
1667- if(NOT qmlplugindump_exe)
1668- msg(FATAL_ERROR "Could not locate qmlplugindump.")
1669- endif()
1670-
1671- add_executable(qmlplugindump IMPORTED)
1672- set_target_properties(qmlplugindump PROPERTIES IMPORTED_LOCATION ${qmlplugindump_exe})
1673-endif()
1674-
1675-#
1676-# A custom target for building the qmltypes files manually.
1677-#
1678-if (NOT TARGET qmltypes)
1679- add_custom_target(qmltypes)
1680-endif()
1681-
1682-# Creates a target for copying resource files into build dir and optionally installing them.
1683-#
1684-# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
1685-# into ${DESTINATION}/${path}.
1686-#
1687-# Resource file names are matched against {*.{qml,js,jpg,png,sci,svg},qmldir}.
1688-#
1689-# export_qmlfiles(plugin path
1690-# [SEARCH_PATH path] # Path to search for resources in (defaults to ${CMAKE_CURRENT_SOURCE_DIR})
1691-# [BINARY_DIR path]
1692-# [DESTINATION path]
1693-# [TARGET_PREFIX string] # Will be prefixed to the target name
1694-# )
1695-#
1696-# Created target:
1697-# - ${TARGET_PREFIX}${plugin}-qmlfiles - Copies resources into the binary dir.
1698-
1699-macro(export_qmlfiles PLUGIN PATH)
1700- set(single SEARCH_PATH BINARY_DIR DESTINATION TARGET_PREFIX)
1701- cmake_parse_arguments(QMLFILES "" "${single}" "" ${ARGN})
1702-
1703- if(NOT QMLFILES_SEARCH_PATH)
1704- set(QMLFILES_SEARCH_PATH ${CMAKE_CURRENT_SOURCE_DIR})
1705- endif()
1706-
1707- if(QMLFILES_BINARY_DIR)
1708- set(qmlfiles_dir ${QMLFILES_BINARY_DIR}/${PATH})
1709- else()
1710- set(qmlfiles_dir ${CMAKE_CURRENT_BINARY_DIR})
1711- endif()
1712-
1713- file(GLOB QMLFILES
1714- ${QMLFILES_SEARCH_PATH}/*.qml
1715- ${QMLFILES_SEARCH_PATH}/*.js
1716- ${QMLFILES_SEARCH_PATH}/*.jpg
1717- ${QMLFILES_SEARCH_PATH}/*.png
1718- ${QMLFILES_SEARCH_PATH}/*.sci
1719- ${QMLFILES_SEARCH_PATH}/*.svg
1720- ${QMLFILES_SEARCH_PATH}/*.qmltypes
1721- ${QMLFILES_SEARCH_PATH}/qmldir
1722- )
1723-
1724- execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${qmlfiles_dir})
1725-
1726- # copy the files
1727- add_custom_target(${QMLFILES_TARGET_PREFIX}${PLUGIN}-qmlfiles ALL
1728- COMMAND cp ${QMLFILES} ${qmlfiles_dir}
1729- DEPENDS ${QMLFILES}
1730- SOURCES ${QMLFILES}
1731- )
1732-
1733- if(QMLFILES_DESTINATION)
1734- # install the qmlfiles file.
1735- install(FILES ${QMLFILES}
1736- DESTINATION ${QMLFILES_DESTINATION}/${PATH}
1737- )
1738- endif()
1739-endmacro()
1740-
1741-
1742-# Creates a target for generating the typeinfo file for a QML plugin and/or installs the plugin
1743-# targets.
1744-#
1745-# Files will be copied into ${BINARY_DIR}/${path} or ${CMAKE_CURRENT_BINARY_DIR} and installed
1746-# into ${DESTINATION}/${path}. If you don't pass BINARY_DIR, it's assumed that current source
1747-# path ends with ${path}.
1748-#
1749-# The generated file will be named after the last segment of the plugin name, e.g. Foo.qmltypes.
1750-#
1751-# export_qmlplugin(plugin version path
1752-# [BINARY_DIR path]
1753-# [DESTINATION path]
1754-# [TARGET_PREFIX string] # Will be prefixed to the target name
1755-# [ENVIRONMENT string] # Will be added to qmlplugindump's env
1756-# [TARGETS target1 [target2 ...]] # Targets to depend on and install (e.g. the plugin shared object)
1757-# [NO_TYPES] # Do not create the qmltypes target
1758-# )
1759-#
1760-# Created target:
1761-# - ${TARGET_PREFIX}${plugin}-qmltypes - Generates the qmltypes file in the source dir.
1762-# It will be made a dependency of the "qmltypes" target.
1763-
1764-macro(export_qmlplugin PLUGIN VERSION PATH)
1765- set(options NO_TYPES)
1766- set(single BINARY_DIR DESTINATION TARGET_PREFIX ENVIRONMENT)
1767- set(multi TARGETS)
1768- cmake_parse_arguments(QMLPLUGIN "${options}" "${single}" "${multi}" ${ARGN})
1769-
1770- get_target_property(qmlplugindump_executable qmlplugindump LOCATION)
1771-
1772- if(QMLPLUGIN_BINARY_DIR)
1773- set(qmlplugin_dir ${QMLPLUGIN_BINARY_DIR}/${PATH})
1774- else()
1775- # Find import path to point qmlplugindump at
1776- string(REGEX REPLACE "/${PATH}$" "" QMLPLUGIN_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
1777- set(qmlplugin_dir ${CMAKE_CURRENT_BINARY_DIR})
1778- endif()
1779-
1780- if(NOT QMLPLUGIN_NO_TYPES)
1781- # Relative path for the module
1782- string(REPLACE "${CMAKE_BINARY_DIR}/" "" QMLPLUGIN_MODULE_DIR "${QMLPLUGIN_BINARY_DIR}")
1783-
1784- # Find the last segment of the plugin name to use as qmltypes basename
1785- string(REGEX MATCH "[^.]+$" plugin_suffix ${PLUGIN})
1786- set(target_prefix ${QMLPLUGIN_TARGET_PREFIX}${PLUGIN})
1787- set(qmltypes_path ${CMAKE_CURRENT_SOURCE_DIR}/${plugin_suffix}.qmltypes)
1788-
1789- add_custom_target(${target_prefix}-qmltypes
1790- COMMAND env ${QMLPLUGIN_ENVIRONMENT} ${qmlplugindump_executable} -notrelocatable
1791- ${PLUGIN} ${VERSION} ${QMLPLUGIN_MODULE_DIR} > ${qmltypes_path}
1792- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
1793- )
1794- add_dependencies(${target_prefix}-qmltypes ${target_prefix}-qmlfiles ${QMLPLUGIN_TARGETS})
1795- add_dependencies(qmltypes ${target_prefix}-qmltypes)
1796- endif()
1797-
1798- set_target_properties(${QMLPLUGIN_TARGETS} PROPERTIES
1799- ARCHIVE_OUTPUT_DIRECTORY ${qmlplugin_dir}
1800- LIBRARY_OUTPUT_DIRECTORY ${qmlplugin_dir}
1801- RUNTIME_OUTPUT_DIRECTORY ${qmlplugin_dir}
1802- )
1803-
1804- if (QMLPLUGIN_DESTINATION)
1805- # Install additional targets
1806- install(TARGETS ${QMLPLUGIN_TARGETS}
1807- DESTINATION ${QMLPLUGIN_DESTINATION}/${PATH}
1808- )
1809- endif()
1810-endmacro()
1811
1812=== removed file 'miral-qt/cmake/modules/QmlTest.cmake'
1813--- miral-qt/cmake/modules/QmlTest.cmake 2016-06-01 22:06:51 +0000
1814+++ miral-qt/cmake/modules/QmlTest.cmake 1970-01-01 00:00:00 +0000
1815@@ -1,192 +0,0 @@
1816-# add_qml_test(path component_name [NO_ADD_TEST] [NO_TARGETS]
1817-# [TARGETS target1 [target2 [...]]]
1818-# [IMPORT_PATHS import_path1 [import_path2 [...]]
1819-# [PROPERTIES prop1 value1 [prop2 value2 [...]]])
1820-#
1821-# NO_ADD_TEST will prevent adding the test to the "test" target
1822-# NO_TARGETS will prevent adding the test to any targets
1823-# TARGETS lists the targets the test should be added to
1824-# IMPORT_PATHS will pass those paths to qmltestrunner as "-import" arguments
1825-# PROPERTIES will be set on the target and test target. See CMake's set_target_properties()
1826-#
1827-# Two targets will be created:
1828-# - testComponentName - Runs the test with qmltestrunner
1829-# - tryComponentName - Runs the test with uqmlscene, for manual interaction
1830-#
1831-# To change/set a default value for the whole test suite, prior to calling add_qml_test, set:
1832-# qmltest_DEFAULT_NO_ADD_TEST (default: FALSE)
1833-# qmltest_DEFAULT_TARGETS
1834-# qmltest_DEFAULT_IMPORT_PATHS
1835-# qmltest_DEFAULT_PROPERTIES
1836-
1837-find_program(qmltestrunner_exe qmltestrunner)
1838-
1839-if(NOT qmltestrunner_exe)
1840- msg(FATAL_ERROR "Could not locate qmltestrunner.")
1841-endif()
1842-
1843-set(qmlscene_exe ${CMAKE_BINARY_DIR}/tests/uqmlscene/uqmlscene)
1844-
1845-macro(add_manual_qml_test SUBPATH COMPONENT_NAME)
1846- set(options NO_ADD_TEST NO_TARGETS)
1847- set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
1848-
1849- cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
1850-
1851- set(qmlscene_TARGET try${COMPONENT_NAME})
1852- set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
1853-
1854- set(qmlscene_imports "")
1855- if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "")
1856- foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS})
1857- list(APPEND qmlscene_imports "-I")
1858- list(APPEND qmlscene_imports ${IMPORT_PATH})
1859- endforeach(IMPORT_PATH)
1860- elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "")
1861- foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS})
1862- list(APPEND qmlscene_imports "-I")
1863- list(APPEND qmlscene_imports ${IMPORT_PATH})
1864- endforeach(IMPORT_PATH)
1865- endif()
1866-
1867- set(qmlscene_command
1868- env ${qmltest_ENVIRONMENT}
1869- ${qmlscene_exe} ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
1870- ${qmlscene_imports}
1871- )
1872- add_custom_target(${qmlscene_TARGET} ${qmlscene_command})
1873-
1874-endmacro(add_manual_qml_test)
1875-
1876-macro(add_qml_benchmark SUBPATH COMPONENT_NAME ITERATIONS)
1877- add_qml_test_internal(${SUBPATH} ${COMPONENT_NAME} ${ITERATIONS} ${ARGN})
1878-endmacro(add_qml_benchmark)
1879-
1880-macro(add_qml_test SUBPATH COMPONENT_NAME)
1881- add_qml_test_internal(${SUBPATH} ${COMPONENT_NAME} 0 ${ARGN})
1882-endmacro(add_qml_test)
1883-
1884-macro(add_qml_test_internal SUBPATH COMPONENT_NAME ITERATIONS)
1885- set(options NO_ADD_TEST NO_TARGETS)
1886- set(multi_value_keywords IMPORT_PATHS TARGETS PROPERTIES ENVIRONMENT)
1887-
1888- cmake_parse_arguments(qmltest "${options}" "" "${multi_value_keywords}" ${ARGN})
1889-
1890- set(qmltest_TARGET test${COMPONENT_NAME})
1891- set(qmltest_xvfb_TARGET xvfbtest${COMPONENT_NAME})
1892- set(qmltest_FILE ${SUBPATH}/tst_${COMPONENT_NAME})
1893-
1894- set(qmltestrunner_imports "")
1895- if(NOT "${qmltest_IMPORT_PATHS}" STREQUAL "")
1896- foreach(IMPORT_PATH ${qmltest_IMPORT_PATHS})
1897- list(APPEND qmltestrunner_imports "-import")
1898- list(APPEND qmltestrunner_imports ${IMPORT_PATH})
1899- endforeach(IMPORT_PATH)
1900- elseif(NOT "${qmltest_DEFAULT_IMPORT_PATHS}" STREQUAL "")
1901- foreach(IMPORT_PATH ${qmltest_DEFAULT_IMPORT_PATHS})
1902- list(APPEND qmltestrunner_imports "-import")
1903- list(APPEND qmltestrunner_imports ${IMPORT_PATH})
1904- endforeach(IMPORT_PATH)
1905- endif()
1906-
1907- string(TOLOWER "${CMAKE_GENERATOR}" cmake_generator_lower)
1908- if(cmake_generator_lower STREQUAL "unix makefiles")
1909- set(function_ARGS $(FUNCTION))
1910- else()
1911- set(function_ARGS "")
1912- endif()
1913-
1914- if (${ITERATIONS} GREATER 0)
1915- set(ITERATIONS_STRING "-iterations" ${ITERATIONS})
1916- else()
1917- set(ITERATIONS_STRING "")
1918- endif()
1919-
1920- set(qmltest_command
1921- env ${qmltest_ENVIRONMENT}
1922- ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
1923- ${qmltestrunner_imports}
1924- ${ITERATIONS_STRING}
1925- -o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
1926- -o -,txt
1927- ${function_ARGS}
1928- )
1929- find_program( HAVE_GCC gcc )
1930- if (NOT ${HAVE_GCC} STREQUAL "")
1931- exec_program( gcc ARGS "-dumpmachine" OUTPUT_VARIABLE ARCH_TRIPLET )
1932- set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
1933- endif()
1934- set(qmltest_xvfb_command
1935- env ${qmltest_ENVIRONMENT} ${LD_PRELOAD_PATH}
1936- xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
1937- ${qmltestrunner_exe} -input ${CMAKE_CURRENT_SOURCE_DIR}/${qmltest_FILE}.qml
1938- ${qmltestrunner_imports}
1939- -o ${CMAKE_BINARY_DIR}/${qmltest_TARGET}.xml,xunitxml
1940- -o -,txt
1941- ${function_ARGS}
1942- )
1943-
1944- add_qmltest_target(${qmltest_TARGET} "${qmltest_command}" TRUE ${qmltest_NO_ADD_TEST})
1945- add_qmltest_target(${qmltest_xvfb_TARGET} "${qmltest_xvfb_command}" ${qmltest_NO_TARGETS} TRUE)
1946- add_manual_qml_test(${SUBPATH} ${COMPONENT_NAME} ${ARGN})
1947-endmacro(add_qml_test_internal)
1948-
1949-macro(add_binary_qml_test CLASS_NAME LD_PATH DEPS)
1950- set(testCommand
1951- LD_LIBRARY_PATH=${LD_PATH}
1952- ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
1953- -o ${CMAKE_BINARY_DIR}/${CLASSNAME}Test.xml,xunitxml
1954- -o -,txt)
1955-
1956- add_qmltest_target(test${CLASS_NAME} "${testCommand}" FALSE TRUE)
1957- add_dependencies(test${CLASS_NAME} ${CLASS_NAME}TestExec ${DEPS})
1958-
1959- find_program( HAVE_GCC gcc )
1960- if (NOT ${HAVE_GCC} STREQUAL "")
1961- exec_program( gcc ARGS "-dumpmachine" OUTPUT_VARIABLE ARCH_TRIPLET )
1962- set(LD_PRELOAD_PATH "LD_PRELOAD=/usr/lib/${ARCH_TRIPLET}/mesa/libGL.so.1")
1963- endif()
1964- set(xvfbtestCommand
1965- ${LD_PRELOAD_PATH}
1966- LD_LIBRARY_PATH=${LD_PATH}
1967- xvfb-run --server-args "-screen 0 1024x768x24" --auto-servernum
1968- ${CMAKE_CURRENT_BINARY_DIR}/${CLASS_NAME}TestExec
1969- -o ${CMAKE_BINARY_DIR}/${CLASS_NAME}Test.xml,xunitxml
1970- -o -,txt)
1971-
1972- add_qmltest_target(xvfbtest${CLASS_NAME} "${xvfbtestCommand}" FALSE TRUE)
1973- add_dependencies(qmluitests xvfbtest${CLASS_NAME})
1974-endmacro(add_binary_qml_test)
1975-
1976-macro(add_qmltest_target qmltest_TARGET qmltest_command qmltest_NO_TARGETS qmltest_NO_ADD_TEST)
1977- add_custom_target(${qmltest_TARGET} ${qmltest_command})
1978-
1979- if(NOT "${qmltest_PROPERTIES}" STREQUAL "")
1980- set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
1981- elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
1982- set_target_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
1983- endif()
1984-
1985- if("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
1986- add_test(${qmltest_TARGET} ${qmltest_command})
1987-
1988- if(NOT "${qmltest_UNPARSED_ARGUMENTS}" STREQUAL "")
1989- set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_PROPERTIES})
1990- elseif(NOT "${qmltest_DEFAULT_PROPERTIES}" STREQUAL "")
1991- set_tests_properties(${qmltest_TARGET} PROPERTIES ${qmltest_DEFAULT_PROPERTIES})
1992- endif()
1993- endif("${qmltest_NO_ADD_TEST}" STREQUAL FALSE AND NOT "${qmltest_DEFAULT_NO_ADD_TEST}" STREQUAL "TRUE")
1994-
1995- if("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
1996- if(NOT "${qmltest_TARGETS}" STREQUAL "")
1997- foreach(TARGET ${qmltest_TARGETS})
1998- add_dependencies(${TARGET} ${qmltest_TARGET})
1999- endforeach(TARGET)
2000- elseif(NOT "${qmltest_DEFAULT_TARGETS}" STREQUAL "")
2001- foreach(TARGET ${qmltest_DEFAULT_TARGETS})
2002- add_dependencies(${TARGET} ${qmltest_TARGET})
2003- endforeach(TARGET)
2004- endif()
2005- endif("${qmltest_NO_TARGETS}" STREQUAL "FALSE")
2006-
2007-endmacro(add_qmltest_target)
2008
2009=== removed file 'miral-qt/cmake/modules/UseLttngGenTp.cmake'
2010--- miral-qt/cmake/modules/UseLttngGenTp.cmake 2016-06-01 22:06:51 +0000
2011+++ miral-qt/cmake/modules/UseLttngGenTp.cmake 1970-01-01 00:00:00 +0000
2012@@ -1,24 +0,0 @@
2013-cmake_minimum_required(VERSION 2.6)
2014-if(POLICY CMP0011)
2015- cmake_policy(SET CMP0011 NEW)
2016-endif(POLICY CMP0011)
2017-
2018-find_program(LTTNG_GEN_TP NAMES lttng-gen-tp DOC "lttng-gen-tp executable")
2019-if(NOT LTTNG_GEN_TP)
2020- message(FATAL_ERROR "Excutable lttng-gen-top not found")
2021-endif()
2022-
2023-function(add_lttng_gen_tp)
2024- set(_one_value NAME)
2025- cmake_parse_arguments (arg "" "${_one_value}" "" ${ARGN})
2026-
2027- add_custom_command(
2028- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${arg_NAME}.h" "${CMAKE_CURRENT_BINARY_DIR}/${arg_NAME}.c"
2029- COMMAND "${LTTNG_GEN_TP}"
2030- -o "${arg_NAME}.h"
2031- -o "${arg_NAME}.c"
2032- "${CMAKE_CURRENT_SOURCE_DIR}/${arg_NAME}.tp"
2033- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
2034- DEPENDS "${arg_NAME}.tp"
2035- )
2036-endfunction(add_lttng_gen_tp)
2037\ No newline at end of file
2038
2039=== removed file 'miral-qt/cmake/modules/autopilot.cmake'
2040--- miral-qt/cmake/modules/autopilot.cmake 2016-06-01 22:06:51 +0000
2041+++ miral-qt/cmake/modules/autopilot.cmake 1970-01-01 00:00:00 +0000
2042@@ -1,24 +0,0 @@
2043-add_custom_target(autopilot)
2044-
2045-function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
2046- add_custom_target(autopilot-${TEST_NAME}
2047- COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${QTMIR_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
2048- WORKING_DIRECTORY ${WORKING_DIR}
2049- DEPENDS fake_install
2050- )
2051-
2052- add_custom_target(fake_install
2053- COMMAND cmake --build ${CMAKE_BINARY_DIR} --target install
2054- )
2055-
2056- add_dependencies(autopilot autopilot-${TEST_NAME})
2057-
2058- add_custom_target(autopilot2-${TEST_NAME}
2059- COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${QTMIR_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
2060- WORKING_DIRECTORY ${WORKING_DIR}
2061- DEPENDS fake_install
2062- )
2063-
2064- add_dependencies(autopilot autopilot2-${TEST_NAME})
2065-
2066-endfunction()
2067
2068=== removed directory 'miral-qt/debian'
2069=== removed file 'miral-qt/debian/bileto_convert_to_gles'
2070--- miral-qt/debian/bileto_convert_to_gles 2016-06-01 22:06:51 +0000
2071+++ miral-qt/debian/bileto_convert_to_gles 1970-01-01 00:00:00 +0000
2072@@ -1,28 +0,0 @@
2073-#!/bin/sh
2074-
2075-# This script converts the debian/ packaging into an alternate source package
2076-# which builds with GLES. You should copy the source tree into a new directory
2077-# before running this script (so you have one copy for GLES and one copy for
2078-# regular GL).
2079-
2080-set -eu
2081-
2082-# Steps to start a new quilt patch:
2083-# quilt new convert-to-gles.patch
2084-# quilt add debian/*
2085-# # apply changes
2086-
2087-# Steps to refresh this quilt patch when nongles changes:
2088-# quilt push -af
2089-# # fix up
2090-
2091-# When finished, save quilt patch with:
2092-# quilt refresh
2093-# quilt pop -a
2094-
2095-export QUILT_PATCHES=debian/gles-patches
2096-quilt push -a
2097-
2098-sed --in-place 's/^qtmir /qtmir-gles /g' debian/changelog
2099-
2100-rm --recursive --force ./.pc/
2101
2102=== removed file 'miral-qt/debian/changelog'
2103--- miral-qt/debian/changelog 2016-06-01 22:06:51 +0000
2104+++ miral-qt/debian/changelog 1970-01-01 00:00:00 +0000
2105@@ -1,1275 +0,0 @@
2106-qtmir (0.4.8+16.10.20160520.1-0ubuntu1) yakkety; urgency=medium
2107-
2108- [ Alan Griffiths ]
2109- * Reduce coupling to MirServer - it has been misused as a context
2110- object.
2111-
2112- [ Daniel d'Andrada ]
2113- * Also interpret the cursor names used by Mir client API (LP:
2114- #1447839)
2115- * Application: Don't respawn if closed while still starting up (LP:
2116- #1575577)
2117-
2118- [ Daniel d'Andrada, Michał Sawicz ]
2119- * Centralize logging categories
2120-
2121- [ Gerry Boland ]
2122- * UAL can throw on creating Application if invalid appId, catch
2123- instead of aborting (LP: #1578258)
2124-
2125- [ Timo Jyrinki ]
2126- * Use FindQt5PlatformSupport to find platform support, other methods
2127- not available on Qt 5.6 anymore. (LP: #1554404)
2128-
2129- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 20 May 2016 08:41:51 +0000
2130-
2131-qtmir (0.4.8+16.04.20160518.1-0ubuntu1) xenial; urgency=medium
2132-
2133- [ Daniel d'Andrada ]
2134- * Fix ProxySurfaceListModel::countChanged signal
2135-
2136- [ Daniel d'Andrada, Michał Sawicz ]
2137- * Move prompt surfaces from MirSurface to Application and emit
2138- firstChanged signal
2139-
2140- -- Nick Dedekind <ci-train-bot@canonical.com> Wed, 18 May 2016 11:18:33 +0000
2141-
2142-qtmir (0.4.8+16.04.20160511-0ubuntu1) xenial; urgency=medium
2143-
2144- [ Daniel d'Andrada ]
2145- * Session: Add a blank surface to the public list if it already has
2146- child prompt surfaces (LP: #1578665)
2147-
2148- -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 11 May 2016 09:08:29 +0000
2149-
2150-qtmir (0.4.8+16.04.20160429.1-0ubuntu1) xenial; urgency=medium
2151-
2152- [ Gerry Boland, Michał Sawicz, Nick Dedekind ]
2153- * Enhance ScreenController & the DisplayConfigurationPolicy to
2154- implement dynamic grid units. (LP: #1573532)
2155-
2156- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Apr 2016 20:04:55 +0000
2157-
2158-qtmir (0.4.8+16.04.20160428-0ubuntu1) xenial; urgency=medium
2159-
2160- [ Lukáš Tinkl ]
2161- * Regression fix: restore window title handling (LP: #1563522)
2162-
2163- [ Michael Terry ]
2164- * Use latest UbuntuAppLaunch API which supports libertine apps.
2165-
2166- -- Michael Terry <michael.terry@canonical.com> Thu, 28 Apr 2016 12:48:51 +0000
2167-
2168-qtmir (0.4.8+16.04.20160426-0ubuntu1) xenial; urgency=medium
2169-
2170- * Mir 0.22 compatibility
2171-
2172- -- Alberto Aguirre <alberto.aguirre@canonical.com> Tue, 26 Apr 2016 07:20:39 +0000
2173-
2174-qtmir (0.4.8+16.04.20160413-0ubuntu1) xenial; urgency=medium
2175-
2176- [ Daniel d'Andrada ]
2177- * Application: improve debug logging
2178- * Logging of Qt's OpenGL debug messages now must be enabled via CMake
2179- option
2180- * MirSurface: replace keymapLayout and keymapVariant with keymap
2181- * Remove application screenshot provider
2182- * Surface-based window management
2183-
2184- [ Michał Sawicz, Robert Bruce Park ]
2185- * Inline -gles packaging.
2186-
2187- -- Gerry Boland <ci-train-bot@canonical.com> Wed, 13 Apr 2016 18:38:59 +0000
2188-
2189-qtmir (0.4.8+16.04.20160330-0ubuntu1) xenial; urgency=medium
2190-
2191- * Drop leftover Xs-Testsuite header
2192-
2193- -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Mar 2016 22:53:20 +0000
2194-
2195-qtmir (0.4.8+16.04.20160329.1-0ubuntu1) xenial; urgency=medium
2196-
2197- [ Daniel van Vugt ]
2198- * Don't use preferred_mode_index. Some devices like TVs don't provide
2199- a preferred mode, so preferred_mode_index may be out of range (a
2200- clumsy way to represent 'none'). Instead use the resolution of the
2201- current display mode, which should always be in range. (LP:
2202- #1560497)
2203-
2204- -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 29 Mar 2016 19:24:13 +0000
2205-
2206-qtmir (0.4.8+16.04.20160322.1-0ubuntu1) xenial; urgency=medium
2207-
2208- [ Nick Dedekind ]
2209- * Added Application::setStage
2210-
2211- [ Lukáš Tinkl, Michał Sawicz ]
2212- * Support for switching keyboard layouts (LP: #1524400, #1491340)
2213-
2214- [ Lukáš Tinkl, Michał Sawicz, Nick Dedekind ]
2215- * Add support for low shell chrome. (LP: #1535397)
2216-
2217- -- Michael Zanetti <michael.zanetti@canonical.com> Tue, 22 Mar 2016 16:18:06 +0000
2218-
2219-qtmir (0.4.7+16.04.20160310.1-0ubuntu1) xenial; urgency=medium
2220-
2221- [ Alan Griffiths ]
2222- * Copy the Window Management work-in-progress from Mir examples.
2223-
2224- [ Alberto Aguirre ]
2225- * Hook MirOpenGLContext::doneCurrent to Screen::doneCurrent
2226-
2227- [ Daniel d'Andrada ]
2228- * Ensure QmlEngine doesn't delete our MirSurfaces
2229-
2230- [ Gerry Boland ]
2231- * Allow Mir remove command line arguments it understands, before
2232- letting Qt process them.
2233- * Ensure ScreenWindow geometry correctly set and used after moving
2234- Screen (LP: #1545286)
2235- * Screen: only enable orientation sensor for internal display. (LP:
2236- #1545286)
2237-
2238- [ Michael Terry ]
2239- * Fix some mocks to use more realistic code paths.
2240-
2241- [ Michael Zanetti ]
2242- * Add a dedicated property for the inputMethodSurface (LP: #1545286)
2243-
2244- [ Michał Sawicz ]
2245- * Drop dummy autopkgtest
2246-
2247- -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 10 Mar 2016 09:29:49 +0000
2248-
2249-qtmir (0.4.7+16.04.20160219-0ubuntu1) xenial; urgency=medium
2250-
2251- * Mir 0.20 Release
2252-
2253- -- Alan Griffiths <ci-train-bot@canonical.com> Fri, 19 Feb 2016 10:41:19 +0000
2254-
2255-qtmir (0.4.7+16.04.20160212-0ubuntu1) xenial; urgency=medium
2256-
2257- [ Albert Astals Cid ]
2258- * Provide branch prediction information to the if in compressTimestamp
2259- * Reset start time if the timestamp travels to the past (LP: #1524488)
2260-
2261- [ Daniel d'Andrada ]
2262- * Let shell decide the initial surface size (LP: #1532974)
2263- * Remove the useless TaskController
2264- * Surface Size Hints
2265- * Update mir version requirement
2266-
2267- [ Michał Sawicz ]
2268- * Bump unity-api dependencies
2269- * Use QStandardPaths to determine QML cache location
2270-
2271- [ Nick Dedekind ]
2272- * Moved test framework into a static library for quicker
2273- recompilation.
2274-
2275- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 12 Feb 2016 00:07:26 +0000
2276-
2277-qtmir (0.4.7+16.04.20160208-0ubuntu1) xenial; urgency=medium
2278-
2279- [ Nick Dedekind ]
2280- * Added fix and test for closing app during the StoppedResumable
2281- state. (LP: #1541388)
2282-
2283- -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 08 Feb 2016 09:36:17 +0000
2284-
2285-qtmir (0.4.7+16.04.20160127.1-0ubuntu1) xenial; urgency=medium
2286-
2287- * Changes for mir 0.19.
2288-
2289- -- Brandon Schaefer <ci-train-bot@canonical.com> Wed, 27 Jan 2016 21:42:31 +0000
2290-
2291-qtmir (0.4.7+16.04.20160122-0ubuntu1) xenial; urgency=medium
2292-
2293- [ Nick Dedekind ]
2294- * Fixed issue where stopping the session while suspending was causing
2295- app close to stall. (LP: #1536133)
2296-
2297- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 22 Jan 2016 16:54:39 +0000
2298-
2299-qtmir (0.4.7+16.04.20160104-0ubuntu1) xenial; urgency=medium
2300-
2301- [ Daniel d'Andrada ]
2302- * Update Session.fullscreen properties at the right time (LP:
2303- #1525893)
2304-
2305- -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 04 Jan 2016 09:38:12 +0000
2306-
2307-qtmir (0.4.7+16.04.20151222-0ubuntu1) xenial; urgency=medium
2308-
2309- * No-change rebuild to get -gles in sync
2310-
2311- -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 22 Dec 2015 15:29:49 +0000
2312-
2313-qtmir (0.4.7+16.04.20151217-0ubuntu1) xenial; urgency=medium
2314-
2315- [ Andreas Pokorny ]
2316- * compatibility branch for Mir 0.18
2317-
2318- [ Cemil Azizoglu ]
2319- * compatibility branch for Mir 0.18
2320-
2321- [ Kevin DuBois ]
2322- * compatibility branch for Mir 0.18
2323-
2324- -- Kevin DuBois <kevin.dubois@canonical.com> Thu, 17 Dec 2015 12:01:56 +0000
2325-
2326-qtmir (0.4.7+16.04.20151210-0ubuntu1) xenial; urgency=medium
2327-
2328- [ Nick Dedekind ]
2329- * [ Nick Dedekind ]
2330- * Request app closing rather than killing.
2331-
2332- [ Daniel d'Andrada ]
2333- * Add MirSurfaceItem.fillMode and ensure items and buffer are in sync
2334- * Make Session hold multiple surfaces
2335-
2336- [ Michael Terry ]
2337- * Don't hold a wakelock on apps that are exempt from lifecycle
2338- management. (LP: #1518764)
2339-
2340- [ Michał Sawicz ]
2341- * Add MirSurfaceItem.fillMode and ensure items and buffer are in sync
2342- * Don't hold a wakelock on apps that are exempt from lifecycle
2343- management. (LP: #1518764)
2344-
2345- -- Gerry Boland <ci-train-bot@canonical.com> Thu, 10 Dec 2015 13:08:47 +0000
2346-
2347-qtmir (0.4.6+16.04.20151125-0ubuntu2) xenial; urgency=medium
2348-
2349- * Rebuild against Qt 5.5.1.
2350-
2351- -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Mon, 30 Nov 2015 16:16:06 +0200
2352-
2353-qtmir (0.4.6+16.04.20151125-0ubuntu1) xenial; urgency=medium
2354-
2355- [ Daniel d'Andrada ]
2356- * Forward Mir mouse wheel events to the shell cursor (LP: #1497091)
2357- * Implemented support for cursors set by client surfaces
2358- * Revert revision 415
2359-
2360- [ Gerry Boland ]
2361- * Manage frameSwapped signal/slot connection with MirSurface more
2362- strictly to avoid crash. (LP: #1517571)
2363-
2364- -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 25 Nov 2015 15:38:57 +0000
2365-
2366-qtmir (0.4.6+16.04.20151119-0ubuntu1) xenial; urgency=medium
2367-
2368- [ Albert Astals Cid ]
2369- * Build with clang (tests/gmock fails and is unfixable on our side i'd
2370- say)
2371- * Enable Efficient String Construction by default
2372-
2373- [ Gerry Boland ]
2374- * Fix use of uninitialized variable
2375- * Use pid_t for PIDs.
2376-
2377- [ Loïc Molinari ]
2378- * Ensured Mir surface items with size less than or equal to zero are
2379- not rendered, as it's usually done for standard QtQuick items.
2380-
2381- [ Michał Sawicz ]
2382- * Build with clang (tests/gmock fails and is unfixable on our side i'd
2383- say)
2384-
2385- [ Nick Dedekind ]
2386- * Fix a crash when dropping a surface frame before Qt draws a surface
2387- item. (LP: #1517139)
2388-
2389- -- Gerry Boland <ci-train-bot@canonical.com> Thu, 19 Nov 2015 12:56:17 +0000
2390-
2391-qtmir (0.4.6+16.04.20151113-0ubuntu1) xenial; urgency=medium
2392-
2393- [ Nick Dedekind ]
2394- * Update surface textures when dropping frames. (LP: #1515356)
2395-
2396- -- Gerry Boland <ci-train-bot@canonical.com> Fri, 13 Nov 2015 16:42:38 +0000
2397-
2398-qtmir (0.4.6+16.04.20151112-0ubuntu1) xenial; urgency=medium
2399-
2400- * Fix armhf builds on Xenial by using -std=gnu99 instead of c99
2401-
2402- -- Gerry Boland <ci-train-bot@canonical.com> Thu, 12 Nov 2015 16:26:27 +0000
2403-
2404-qtmir (0.4.6+16.04.20151110-0ubuntu1) xenial; urgency=medium
2405-
2406- [ Nick Dedekind ]
2407- * Reverted occlusion detection (lp#1514556) (LP: #1514556)
2408-
2409- -- Gerry Boland <ci-train-bot@canonical.com> Tue, 10 Nov 2015 09:19:59 +0000
2410-
2411-qtmir (0.4.6+16.04.20151102-0ubuntu1) xenial; urgency=medium
2412-
2413- [ Alan Griffiths ]
2414- * Test harness for MirWindowManager (in preparation for more
2415- intelligent window management)
2416-
2417- [ CI Train Bot ]
2418- * New rebuild forced.
2419-
2420- [ Michael Terry ]
2421- * Support new isTouchApp property to ApplicationInfoInterface and move
2422- lifecycle policy logic out of qtmir.
2423-
2424- [ Michał Sawicz ]
2425- * Clean up packaging and fix autopkgtest on armhf
2426-
2427- [ Nick Dedekind ]
2428- * Hand Qt millisecond timestamps rather than nanosecond. (LP:
2429- #1510571, #1511076, #1511711)
2430- * Support server->client visibility change to stop rendering
2431- (lp:#1475678) (LP: #1475678)
2432-
2433- -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 02 Nov 2015 11:22:29 +0000
2434-
2435-qtmir (0.4.6+15.10.20151021-0ubuntu1) wily; urgency=medium
2436-
2437- [ Alan Griffiths ]
2438- * Opaquify MirWindowManager to control visibility of upcoming Window
2439- Management work
2440-
2441- [ Albert Astals Cid ]
2442- * Don't search for the element again
2443-
2444- [ CI Train Bot ]
2445- * New rebuild forced.
2446-
2447- [ Daniel d'Andrada ]
2448- * Improve multimonitor support
2449- * MirSurfaceItem: Survive holding a surface with an empty texture
2450- * Shell draws its own cursor using the new Cursor QML element
2451-
2452- [ Gerry Boland ]
2453- * Initial multimonitor support - react correctly to Mir
2454- DisplayConfiguration changes. (LP: #1488831, #1488863, #1436735)
2455- * Workaround for AutoPilot input coordinate positioning being outside
2456- screen geometry
2457-
2458- [ Lukáš Tinkl ]
2459- * Implement support for mouse wheel events; correctly pass around
2460- buttons (LP: #1497091)
2461- * React to surface modifications (window caption)
2462-
2463- [ Michał Sawicz ]
2464- * Improve multimonitor support
2465- * MirSurfaceItem: Survive holding a surface with an empty texture
2466- * React to surface modifications (window caption)
2467-
2468- [ Nick Dedekind ]
2469- * Added touch performance tracing and test.
2470- * Removed the manipulation of the CMAKE_INSTALL_PREFIX from
2471- debian/rules
2472-
2473- -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 21 Oct 2015 11:47:16 +0000
2474-
2475-qtmir (0.4.6+15.10.20151008.2-0ubuntu1) wily; urgency=medium
2476-
2477- [ Alexandros Frantzis ]
2478- * Update for Mir 0.17 changes
2479-
2480- [ CI Train Bot ]
2481- * New rebuild forced.
2482-
2483- -- Alexandros Frantzis <alexandros.frantzis@canonical.com> Thu, 08 Oct 2015 17:56:00 +0000
2484-
2485-qtmir (0.4.6+15.10.20150930.1-0ubuntu1) wily; urgency=medium
2486-
2487- [ CI Train Bot ]
2488- * New rebuild forced.
2489-
2490- [ Daniel d'Andrada ]
2491- * MirSurfaceItem: texture must be manipulated only from the scene
2492- graph thread (LP: #1499388, #1495871)
2493-
2494- [ Gerry Boland ]
2495- * Add "Closing" state to Application, use it to distinguish user-
2496- induced close from app-induced close. Don't clear QML cache if user-
2497- induced. (LP: #1500372)
2498-
2499- -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 30 Sep 2015 10:08:37 +0000
2500-
2501-qtmir (0.4.6+15.10.20150925-0ubuntu1) wily; urgency=medium
2502-
2503- * Bump application API version
2504-
2505- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 25 Sep 2015 12:11:11 +0000
2506-
2507-qtmir (0.4.6+15.10.20150923-0ubuntu1) wily; urgency=medium
2508-
2509- [ CI Train Bot ]
2510- * New rebuild forced.
2511-
2512- [ Cemil Azizoglu ]
2513- * Port gl_bind_to_texture to the new TextureSource interface. Update
2514- for Mir 0.16 release.
2515-
2516- -- Cemil Azizoglu <cemil.azizoglu@canonical.com> Wed, 23 Sep 2015 15:17:13 +0000
2517-
2518-qtmir (0.4.6+15.10.20150918-0ubuntu1) wily; urgency=medium
2519-
2520- [ Daniel d'Andrada ]
2521- * Update surface focus when a surface enters or leaves a
2522- MirSurfaceItem (LP: #1491034, #1495437)
2523-
2524- -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 18 Sep 2015 20:11:52 +0000
2525-
2526-qtmir (0.4.6+15.10.20150914-0ubuntu1) wily; urgency=medium
2527-
2528- [ Daniel d'Andrada ]
2529- * MirSurfaceItem gets dirty when it's set to draw a different (or no)
2530- surface (LP: #1492185)
2531- * QtEventFeeder: log the pointer events it gets from Mir
2532-
2533- [ Daniel van Vugt ]
2534- * Stop waking up every 200ms if there's nothing to wake up for. It's
2535- just wasting battery. (LP: #1479250)
2536-
2537- -- Gerry Boland <ci-train-bot@canonical.com> Mon, 14 Sep 2015 13:11:56 +0000
2538-
2539-qtmir (0.4.6+15.10.20150904-0ubuntu1) wily; urgency=medium
2540-
2541- [ Michal Sawicz ]
2542- * No change rebuild to resync vivid+overlay and wily
2543-
2544- [ CI Train Bot ]
2545- * No-change rebuild.
2546-
2547- -- CI Train Bot <ci-train-bot@canonical.com> Fri, 04 Sep 2015 10:40:35 +0000
2548-
2549-qtmir (0.4.6+15.04.20150827.1-0ubuntu1) vivid; urgency=medium
2550-
2551- [ Daniel d'Andrada ]
2552- * Enable multiple MirSurfaceItems rendering the same MirSurface
2553- * Allow resizing an app that is in the process of getting suspended.
2554- (LP: #1466510)
2555-
2556- -- CI Train Bot <ci-train-bot@canonical.com> Thu, 27 Aug 2015 13:58:54 +0000
2557-
2558-qtmir (0.4.5+15.10.20150817-0ubuntu1) wily; urgency=medium
2559-
2560- *
2561-
2562- -- CI Train Bot <ci-train-bot@canonical.com> Mon, 17 Aug 2015 19:28:26 +0000
2563-
2564-qtmir (0.4.5+15.10.20150812.1-0ubuntu1) vivid; urgency=medium
2565-
2566- [ Daniel van Vugt ]
2567- * MirSurfaceItem: Remove an unnecessary and potentially infinite loop
2568- (LP: #1477430) (LP: #1477430)
2569-
2570- [ Gerry Boland ]
2571- * Standardize licences to LGPLv3, update years, remove authors (LP:
2572- #1483664)
2573- * authorizeSession incorrectly edits desktopFilePath supplied by
2574- desktop_file_hint (LP: #1483225)
2575-
2576- -- CI Train Bot <ci-train-bot@canonical.com> Wed, 12 Aug 2015 11:36:06 +0000
2577-
2578-qtmir (0.4.5+15.10.20150804.1-0ubuntu1) vivid; urgency=medium
2579-
2580- * Dual release with wily
2581-
2582- -- Gerry Boland <gerry.boland@canonical.com> Tue, 04 Aug 2015 17:21:12 +0000
2583-
2584-qtmir (0.4.5+15.04.20150821-0ubuntu1) vivid; urgency=medium
2585-
2586- [ Daniel d'Andrada ]
2587- * Improve handling of applications that are stopping or getting killed
2588- (LP: #1483840, #1485608)
2589-
2590- [ Gerry Boland ]
2591- * AppMan: if app destroys surface while in Running state, it is
2592- probably shutting down, so preempt it by removing it from the model
2593-
2594- -- CI Train Bot <ci-train-bot@canonical.com> Fri, 21 Aug 2015 11:40:14 +0000
2595-
2596-qtmir (0.4.5+15.04.20150820-0ubuntu1) vivid; urgency=medium
2597-
2598- [ Gerry Boland ]
2599- * Hotfix to work around bug 1483752 (LP: #1483752)
2600-
2601- [ Michael Zanetti ]
2602- * Hotfix to work around bug 1483752 (LP: #1483752)
2603-
2604- -- CI Train Bot <ci-train-bot@canonical.com> Thu, 20 Aug 2015 12:59:54 +0000
2605-
2606-qtmir (0.4.5+15.10.20150804.1-0ubuntu1) wily; urgency=medium
2607-
2608- [ Alan Griffiths ]
2609- * Start restructuring code to use the Mir WindowManager interface for
2610- window management. (Instead of completely replacing the Shell.)
2611-
2612- [ Andreas Pokorny ]
2613- * ensure the argv passed to mir is a null terminated list (not a
2614- nullptr)
2615-
2616- [ Daniel d'Andrada ]
2617- * Remove focus-based app lifecycle. Let shell control it.
2618- * Remove focus-based app lifecycle. Let shell control it.
2619-
2620- [ Daniel van Vugt ]
2621- * ensure the argv passed to mir is a null terminated list (not a
2622- nullptr)
2623-
2624- [ Gerry Boland ]
2625- * CMake should require mir 0.14
2626- * Ubuntu Touch has no shared graphics cache implemented, QPA should
2627- not say it does
2628- * We depend on Qt 5.4, remove compatibility code for older versions
2629-
2630- [ Lukáš Tinkl ]
2631- * Extend the key table to cover full xkb range of keycodes.
2632-
2633- -- CI Train Bot <ci-train-bot@canonical.com> Tue, 04 Aug 2015 17:21:12 +0000
2634-
2635-qtmir (0.4.5+15.10.20150728-0ubuntu2~gcc5.1) wily; urgency=medium
2636-
2637- * No change rebuild using GCC 5.
2638-
2639- -- Matthias Klose <doko@ubuntu.com> Wed, 29 Jul 2015 15:04:01 +0200
2640-
2641-qtmir (0.4.5+15.10.20150728-0ubuntu1) wily; urgency=medium
2642-
2643- [ Gerry Boland ]
2644- * Remove explicit gcc4.9 dependency (LP: #1452338)
2645-
2646- -- CI Train Bot <ci-train-bot@canonical.com> Tue, 28 Jul 2015 09:57:00 +0000
2647-
2648-qtmir (0.4.5+15.10.20150722-0ubuntu1) wily; urgency=medium
2649-
2650- [ Andreas Pokorny ]
2651- * Release in step with Mir 0.14.0
2652-
2653- [ CI Train Bot ]
2654- * New rebuild forced.
2655-
2656- -- CI Train Bot <ci-train-bot@canonical.com> Wed, 22 Jul 2015 13:01:05 +0000
2657-
2658-qtmir (0.4.5+15.10.20150617-0ubuntu1) wily; urgency=medium
2659-
2660- [ Gerry Boland ]
2661- * [qpa] refactor QMirServer to clean up its API, and fix strange
2662- thread design.
2663-
2664- [ Michał Sawicz ]
2665- * Depend on same-version qtmir-{desktop,android}
2666-
2667- -- CI Train Bot <ci-train-bot@canonical.com> Wed, 17 Jun 2015 13:46:09 +0000
2668-
2669-qtmir (0.4.5+15.10.20150611-0ubuntu2) wily; urgency=medium
2670-
2671- * No-change rebuild against Qt 5.4.2.
2672-
2673- -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Mon, 15 Jun 2015 12:31:38 +0300
2674-
2675-qtmir (0.4.5+15.10.20150611-0ubuntu1) wily; urgency=medium
2676-
2677- [ Daniel d'Andrada ]
2678- * Add X-Ubuntu-Supported-Orientations desktop file entry
2679-
2680- -- CI Train Bot <ci-train-bot@canonical.com> Thu, 11 Jun 2015 09:10:38 +0000
2681-
2682-qtmir (0.4.4+15.04.20150513-0ubuntu1) vivid; urgency=medium
2683-
2684- [ Alan Griffiths ]
2685- * Release in step with Mir 0.13.0
2686-
2687- [ Daniel van Vugt ]
2688- * Release in step with Mir 0.13.0
2689-
2690- [ Gerry Boland ]
2691- * Release in step with Mir 0.13.0
2692-
2693- -- CI Train Bot <ci-train-bot@canonical.com> Wed, 13 May 2015 09:44:12 +0000
2694-
2695-qtmir (0.4.4+15.04.20150511.1-0ubuntu1) vivid; urgency=medium
2696-
2697- [ Albert Astals Cid ]
2698- * Fix debug line
2699-
2700- [ Daniel d'Andrada ]
2701- * When synthesizing touch releases for absent touches, send them in
2702- separate events (LP: #1437357)
2703-
2704- [ Gerry Boland ]
2705- * If Mir fails to start, exit the process immediately as nothing else
2706- can be done
2707- * Remove boost dependence, it supplies almost nothing of benefit to
2708- offset its cost
2709- * Remove legacy surface configuration change code, use newer
2710- SurfaceObserver
2711- * Remove useless profiling information, fixes build with Qt5.5 (LP:
2712- #1437181)
2713-
2714- [ Michael Zanetti ]
2715- * read exception list from gsettings instead of a hardcoded list
2716-
2717- [ Michał Sawicz ]
2718- * Require an application API version, fix the provided version and use
2719- include dir from the .pc file
2720-
2721- -- CI Train Bot <ci-train-bot@canonical.com> Mon, 11 May 2015 13:16:33 +0000
2722-
2723-qtmir (0.4.4+15.04.20150318-0ubuntu1) vivid; urgency=medium
2724-
2725- [ Daniel d'Andrada ]
2726- * Port to the new MirEvent API and add support for pointer events.
2727- (LP: #1417650, #1392716)
2728-
2729- [ Gerry Boland ]
2730- * Refactor wakelock handling. Lifecycle exempt apps now release
2731- wakelock when shell tries to suspend them (LP: #1423787)
2732-
2733- [ Robert Carr ]
2734- * Port to the new MirEvent API and add support for pointer events.
2735- (LP: #1417650, #1392716)
2736-
2737- -- CI Train Bot <ci-train-bot@canonical.com> Wed, 18 Mar 2015 10:12:22 +0000
2738-
2739-qtmir (0.4.4+15.04.20150317-0ubuntu1) vivid; urgency=medium
2740-
2741- [ Albert Astals Cid ]
2742- * Make the test pass with Qt >= 5.4.1 (LP: #1427529)
2743-
2744- -- CI Train Bot <ci-train-bot@canonical.com> Tue, 17 Mar 2015 18:01:53 +0000
2745-
2746-qtmir (0.4.4+15.04.20150227.1-0ubuntu1) vivid; urgency=medium
2747-
2748- [ CI Train Bot ]
2749- * New rebuild forced.
2750-
2751- [ Kevin DuBois ]
2752- * No change rebuild for mir 0.12
2753-
2754- -- CI Train Bot <ci-train-bot@canonical.com> Fri, 27 Feb 2015 18:53:32 +0000
2755-
2756-qtmir (0.4.4+15.04.20150220-0ubuntu1) vivid; urgency=medium
2757-
2758- [ Albert Astals Cid ]
2759- * Don't start timer from the thread it doesn't belong to
2760-
2761- -- CI Train Bot <ci-train-bot@canonical.com> Fri, 20 Feb 2015 10:33:30 +0000
2762-
2763-qtmir (0.4.4+15.04.20150209-0ubuntu2) vivid; urgency=medium
2764-
2765- * No-change rebuild against Qt 5.4.0.
2766-
2767- -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Fri, 13 Feb 2015 13:05:26 +0200
2768-
2769-qtmir (0.4.4+15.04.20150209-0ubuntu1) vivid; urgency=medium
2770-
2771- [ Daniel van Vugt ]
2772- * QtMir changes required to support the Mir branch of the same name.
2773- Landing soon. (LP: #1395581)
2774-
2775- [ Alan Griffiths ]
2776- * Port to the msh::Shell API in Mir
2777-
2778- [ Robert Carr ]
2779- * Bump build-dep to mir 0.11.
2780-
2781- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 09 Feb 2015 16:29:08 +0000
2782-
2783-qtmir (0.4.4+15.04.20150206-0ubuntu1) vivid; urgency=medium
2784-
2785- [ Gerry Boland ]
2786- * Explicitly setting GL-mode breaks GTK app rendering. Removing the
2787- hack appears to just work (LP: #1401968)
2788-
2789- [ Michał Sawicz ]
2790- * Add moot autopkgtest to run the standard unit tests
2791-
2792- [ Albert Astals Cid ]
2793- * Fix demo shell import name
2794-
2795- [ Daniel d'Andrada ]
2796- * Don't suspend&resume the main stage app when switching focus from
2797- side to main stage
2798-
2799- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 06 Feb 2015 10:23:19 +0000
2800-
2801-qtmir (0.4.4+15.04.20150115-0ubuntu1) vivid; urgency=low
2802-
2803- [ Gerry Boland ]
2804- * Add Wakelock support - ensures device drops to deep-sleep mode only
2805- when all AppMan suspend tasks have completed
2806-
2807- [ Ricardo Mendoza ]
2808- * Reduce suspend timeout to half of the previous value because the
2809- long value was too apparent on fast paced apps, like web games of
2810- music players; it broke the user experience according to design.
2811- (LP: #1402650)
2812-
2813- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 15 Jan 2015 15:19:46 +0000
2814-
2815-qtmir (0.4.4+15.04.20150114-0ubuntu1) vivid; urgency=low
2816-
2817- [ Gerry Boland ]
2818- * Depend on :native version of g++ to allow cross-compiling to work.
2819- (LP: #1353855)
2820-
2821- [ Michał Sawicz ]
2822- * Declare the QByteArray in callDispatcher so it doesn't get deleted
2823- before it's copied. (LP: #1408819)
2824-
2825- [ Josh Arenson ]
2826- * Assign touch events area to the correct values.
2827-
2828- [ Albert Astals ]
2829- * Move the creation of the surface observer to
2830- SessionListener::surface_created
2831-
2832- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 14 Jan 2015 09:07:53 +0000
2833-
2834-qtmir (0.4.4+15.04.20150109-0ubuntu1) vivid; urgency=low
2835-
2836- [ Ubuntu daily release ]
2837- * New rebuild forced
2838-
2839- [ Nick Dedekind ]
2840- * Notify prompt sessions that sessions have been suspended/resumed.
2841- (LP: #1355173, #1384950)
2842-
2843- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 09 Jan 2015 17:26:00 +0000
2844-
2845-qtmir (0.4.4+15.04.20150108.1-0ubuntu1) vivid; urgency=low
2846-
2847- [ Ubuntu daily release ]
2848- * New rebuild forced
2849-
2850- [ Cemil Azizoglu ]
2851- * Rebuild for Mir 0.10.
2852-
2853- [ Nick Dedekind ]
2854- * Compatibility for Mir 0.10.0
2855-
2856- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 08 Jan 2015 14:18:06 +0000
2857-
2858-qtmir (0.4.4+15.04.20141215-0ubuntu1) vivid; urgency=low
2859-
2860- [ Daniel d'Andrada ]
2861- * Update README and readd option to disable building tests
2862-
2863- [ Gerry Boland ]
2864- * Emit SIGSTOP when AppMan fully initialized, when Mir is ready is too
2865- soon (LP: #1394208)
2866-
2867- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 15 Dec 2014 08:27:44 +0000
2868-
2869-qtmir (0.4.4+15.04.20141211-0ubuntu1) vivid; urgency=low
2870-
2871- [ Ubuntu daily release ]
2872- * New rebuild forced
2873-
2874- [ Alan Griffiths ]
2875- * Migration of qtmir from the legacy Mir API
2876- * Refactor to better reflect the code structure following new-migrate-
2877- to-mir-Server-API
2878-
2879- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 11 Dec 2014 16:55:53 +0000
2880-
2881-qtmir (0.4.4+15.04.20141205-0ubuntu1) vivid; urgency=low
2882-
2883- [ CI Train Bot ]
2884- * Resync trunk
2885- * Resync trunk
2886- * Resync trunk
2887- * Resync trunk
2888- * Resync trunk
2889-
2890- [ Ricardo Salveti de Araujo ]
2891- * qteventfeeder: adding bt and wired headset multimedia keys (LP:
2892- #1398427)
2893-
2894- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 05 Dec 2014 11:04:29 +0000
2895-
2896-qtmir (0.4.4+15.04.20141203-0ubuntu1) vivid; urgency=low
2897-
2898- [ Gerry Boland ]
2899- * Port qmake->cmake to enable sbuild usage for crosscompiling.
2900- * Fix build with Qt5.4 (LP: #1394884)
2901-
2902- [ Michał Sawicz ]
2903- * Port qmake->cmake to enable sbuild usage for crosscompiling.
2904-
2905- [ Robert Carr ]
2906- * Port qmake->cmake to enable sbuild usage for crosscompiling.
2907-
2908- [ Alberto Aguirre ]
2909- * Select mirclient backend for platform-api instead of mirserver.
2910-
2911- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 03 Dec 2014 10:07:12 +0000
2912-
2913-qtmir (0.4.4+15.04.20141124-0ubuntu1) vivid; urgency=low
2914-
2915- [ Alberto Aguirre ]
2916- * No-change rebuild againts mir 0.9.0
2917-
2918- [ Ubuntu daily release ]
2919- * New rebuild forced
2920-
2921- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 24 Nov 2014 23:07:01 +0000
2922-
2923-qtmir (0.4.4+15.04.20141110-0ubuntu2) vivid; urgency=medium
2924-
2925- * No-change rebuild against Qt 5.3.2.
2926-
2927- -- Timo Jyrinki <timo-jyrinki@ubuntu.com> Mon, 10 Nov 2014 16:50:43 +0200
2928-
2929-qtmir (0.4.4+15.04.20141110-0ubuntu1) vivid; urgency=low
2930-
2931- [ Michael Zanetti ]
2932- * Use QSGDefaultImageNode instead of QSGSimpleTexture to gain surface
2933- manipulation features such as antialiasing (LP: #1351559)
2934-
2935- [ josharenson ]
2936- * Add support for enabling/disabling orientation sensor based on
2937- screen power state. (LP: #1375297)
2938-
2939- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 10 Nov 2014 09:41:58 +0000
2940-
2941-qtmir (0.4.4+15.04.20141030.2-0ubuntu1) vivid; urgency=low
2942-
2943- [ Ted Gould ]
2944- * Use UAL pause/resume functions for stopping/continuing all tasks in
2945- the cgroup (LP: #1379786)
2946-
2947- [ Timo Jyrinki ]
2948- * Add libmtdev-dev build dependency (LP: #1379152) (LP: #1379152)
2949-
2950- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 Oct 2014 21:48:30 +0000
2951-
2952-qtmir (0.4.4+15.04.20141030.1-0ubuntu1) vivid; urgency=low
2953-
2954- [ Ricardo Mendoza ]
2955- * Clean up QML Compilation cache if application fails to start
2956- correctly.
2957-
2958- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 Oct 2014 11:55:27 +0000
2959-
2960-qtmir (0.4.4+14.10.20141013-0ubuntu1) utopic; urgency=medium
2961-
2962- [ Daniel d'Andrada ]
2963- * Turn UbuntuKeyboardInfo into a QML singleton
2964-
2965- [ Gerry Boland ]
2966- * Rewrite DesktopFileReader to use GDesktopAppInfo, enables reading
2967- localized keys (LP: #1350360)
2968-
2969- [ Michał Sawicz ]
2970- * Ensure unity8-dash is less likely to be killed than other background
2971- apps. (LP: #1379296)
2972-
2973- [ Robert Carr ]
2974- * Pass key auto-repeat flag through QtEventFeeder.
2975-
2976- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 13 Oct 2014 10:08:04 +0000
2977-
2978-qtmir (0.4.3+14.10.20141010-0ubuntu1) utopic; urgency=low
2979-
2980- [ Ubuntu daily release ]
2981- * New rebuild forced
2982-
2983- [ Cemil Azizoglu ]
2984- * Rebuild for Mir 0.8.0.
2985-
2986- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 10 Oct 2014 16:33:24 +0000
2987-
2988-qtmir (0.4.3+14.10.20141006-0ubuntu1) utopic; urgency=low
2989-
2990- [ Michael Zanetti ]
2991- * Fix some bugs in app lifecycle management.
2992-
2993- [ Albert Astals ]
2994- * Wait for ApplicationManager to be there
2995-
2996- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 06 Oct 2014 12:00:01 +0000
2997-
2998-qtmir (0.4.3+14.10.20141001.5-0ubuntu1) utopic; urgency=low
2999-
3000- [ Daniel d'Andrada ]
3001- * CONFIG+=no_tests to avoid building the tests and therefore speed up
3002- the build
3003- * Provide a global clipboard via D-Bus (LP: #1367814)
3004-
3005- [ josharenson ]
3006- * Remove check to see if application is already focused before
3007- focusing.
3008-
3009- [ Robert Carr ]
3010- * MirSurfaceItem::consume Set motion event tooltypes based on
3011- QTouchPoints (LP: #1371282)
3012-
3013- [ Gerry Boland ]
3014- * Fix AppMan handling Upstart resuming a Stopped application
3015-
3016- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 01 Oct 2014 18:43:00 +0000
3017-
3018-qtmir (0.4.3+14.10.20140922.1-0ubuntu1) utopic; urgency=low
3019-
3020- [ Gerry Boland ]
3021- * Expose Mir surface orientation property to QML (LP: #1288332)
3022- * Add splash screen properties to Application
3023-
3024- [ Florian Boucault ]
3025- * Add splash screen properties to Application
3026-
3027- [ Daniel d'Andrada ]
3028- * Add splash screen properties to Application
3029-
3030- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 22 Sep 2014 17:38:51 +0000
3031-
3032-qtmir (0.4.3+14.10.20140918.3-0ubuntu1) utopic; urgency=low
3033-
3034- [ Gerry Boland ]
3035- * TaskController may call processStarted synchronously, so check for
3036- that in startApplication before adding (LP: #1371047)
3037-
3038- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 18 Sep 2014 16:57:48 +0000
3039-
3040-qtmir (0.4.3+14.10.20140918.1-0ubuntu1) utopic; urgency=low
3041-
3042- [ Gerry Boland ]
3043- * Fix unstable test - be more careful about synchronizing the Qt image
3044- provider and Mir snapshot threads
3045-
3046- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 18 Sep 2014 09:38:52 +0000
3047-
3048-qtmir (0.4.3+14.10.20140915-0ubuntu1) utopic; urgency=low
3049-
3050- [ Daniel d'Andrada ]
3051- * MirSurfaceItem: Ensure all touch sequences sent to Mir surface are
3052- properly ended.
3053-
3054- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 15 Sep 2014 14:50:16 +0000
3055-
3056-qtmir (0.4.3+14.10.20140907-0ubuntu1) utopic; urgency=low
3057-
3058- [ Daniel d'Andrada ]
3059- * QtEventFeeder: validate touches before sending them to Qt
3060-
3061- [ josharenson ]
3062- * Fix a small typo in the README file
3063-
3064- [ Alan Griffiths ]
3065- * Provide Mir with a handler for any command-line arguments it fails
3066- to parse. For the moment, these are simply ignored.
3067-
3068- [ Gerry Boland ]
3069- * Add LTTng tracepoints
3070-
3071- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Sun, 07 Sep 2014 19:42:56 +0000
3072-
3073-qtmir (0.4.3+14.10.20140903-0ubuntu1) utopic; urgency=medium
3074-
3075- [ Nick Dedekind ]
3076- * Use a model for child surfaces/sessions. Add surface tests.
3077- * Support for nesting prompt sessions.
3078-
3079-
3080- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 03 Sep 2014 08:03:52 +0000
3081-
3082-qtmir (0.4.2+14.10.20140829-0ubuntu1) utopic; urgency=low
3083-
3084- [ Ubuntu daily release ]
3085- * New rebuild forced
3086-
3087- [ Cemil Azizoglu ]
3088- * Rebuild for the Mir 0.7.0 release.
3089-
3090- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 29 Aug 2014 18:59:49 +0000
3091-
3092-qtmir (0.4.2+14.10.20140825-0ubuntu1) utopic; urgency=low
3093-
3094- [ Daniel d'Andrada ]
3095- * Revamp screenshotting to use an image provider again, removing
3096- screenshot-related methods on Application
3097-
3098- [ Daniel van Vugt ]
3099- * Add support for building against Mir when it's installed somewhere
3100- other than /usr (like with a custom $PKG_CONFIG_PATH).
3101-
3102- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 25 Aug 2014 07:46:36 +0000
3103-
3104-qtmir (0.4.1+14.10.20140817-0ubuntu1) utopic; urgency=medium
3105-
3106- [ Michał Sawicz ]
3107- * Unrevert "MirSurfaceItem: always try to consume new mir frames"
3108-
3109- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Sun, 17 Aug 2014 00:41:51 +0000
3110-
3111-qtmir (0.4.1+14.10.20140815.is.0.4.1+14.10.20140811.1-0ubuntu1) utopic; urgency=medium
3112-
3113- * Reverting previous commit since unity8 started deadlocking in ap
3114- test runs (requested by Saviq)
3115-
3116- -- Ricardo Salveti de Araujo <ricardo.salveti@canonical.com> Sat, 16 Aug 2014 17:18:12 -0300
3117-
3118-qtmir (0.4.1+14.10.20140815-0ubuntu1) utopic; urgency=low
3119-
3120- [ Daniel d'Andrada ]
3121- * MirSurfaceItem: always try to consume new mir frames Otherwise those
3122- frames will get dropped and MirSurfaceItem will therefore never use
3123- them, being left displaying an old, stale, frame until the
3124- application renders again.This could happen for instance if an
3125- application was rendering between the time the Application object
3126- goes to Suspended state and the actual process getting SIG_STOPPED
3127- (ie, suspended for real). Frames rendered in this interval were
3128- getting dropped and once that app was resumed and its MirSurfaceItem
3129- brought to front the user would see an old stale frame until some
3130- new event caused the application to render a new frame (e.g. an
3131- input event) (LP: #1353374)
3132-
3133- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 15 Aug 2014 17:13:24 +0000
3134-
3135-qtmir (0.4.1+14.10.20140811.1-0ubuntu1) utopic; urgency=low
3136-
3137- [ Ubuntu daily release ]
3138- * New rebuild forced
3139-
3140- [ Michał Sawicz ]
3141- * Bumped dependency for Mir 0.6.0. Switch to using supported API
3142- (the_ipc_factory -> new_ipc_factory).
3143-
3144- [ Cemil Azizoglu ]
3145- * Bumped dependency for Mir 0.6.0. Switch to using supported API
3146- (the_ipc_factory -> new_ipc_factory).
3147-
3148- [ Alan Griffiths ]
3149- * Bumped dependency for Mir 0.6.0. Switch to using supported API
3150- (the_ipc_factory -> new_ipc_factory).
3151-
3152- [ Kevin Gunn ]
3153- * Bumped dependency for Mir 0.6.0. Switch to using supported API
3154- (the_ipc_factory -> new_ipc_factory).
3155-
3156- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 11 Aug 2014 21:12:34 +0000
3157-
3158-qtmir (0.4.1+14.10.20140811-0ubuntu1) utopic; urgency=low
3159-
3160- [ Gerry Boland ]
3161- * AppMan: fix dbus GetWindowStack & GetAppFromPid APIs. On suspend,
3162- mark focused application unfocused, and reverse on resume.
3163-
3164- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 11 Aug 2014 15:53:40 +0000
3165-
3166-qtmir (0.4.1+14.10.20140808-0ubuntu1) utopic; urgency=medium
3167-
3168- [ Nick Dedekind ]
3169- * Added prompt surfaces to application
3170-
3171- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 08 Aug 2014 12:19:29 +0000
3172-
3173-qtmir (0.4.0+14.10.20140805.1-0ubuntu1) utopic; urgency=low
3174-
3175- [ Nick Dedekind ]
3176- * Only add prompt session surfaces to the surface stack once their
3177- first frame has been drawn.
3178-
3179- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 05 Aug 2014 19:23:27 +0000
3180-
3181-qtmir (0.4.0+14.10.20140805-0ubuntu1) utopic; urgency=low
3182-
3183- [ Daniel d'Andrada ]
3184- * Don't take screenshots automatically and emit focusRequested()
3185- reliably (LP: #1350917)
3186-
3187- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 05 Aug 2014 12:01:39 +0000
3188-
3189-qtmir (0.4.0+14.10.20140729-0ubuntu1) utopic; urgency=medium
3190-
3191- [ Gerry Boland ]
3192- * Update for Mir 0.4.0 compatibility
3193- * Remove unneeded properties from SurfaceManager and restore support
3194- for surface with no app parent
3195- * Add patches to ubuntuclient plugin to enable sharing of GL context -
3196- needed for oxide
3197- * Rename client plugin to ubuntumirclient (to match that of qtubuntu)
3198- There are some apps which check the QPA name is ubuntumirclient, and
3199- fail with ubuntuclient. Worst offender is Oxide, which is hard to
3200- rebuild, so this change is easier fix.
3201- * Revert 125, incorrect branch merged
3202- * Rename client plugin to ubuntumirclient (to match that of qtubuntu)
3203- There are some apps which check the QPA name is ubuntumirclient, and
3204- fail with ubuntuclient. Worst offender is Oxide, which is hard to
3205- rebuild, so this change is easier fix.
3206- * Remove surface observer on MirSurfaceItem destruction
3207- * New apps placed at start of model and are focused immediately.
3208- AppMan model has proper surface and fullscreen roles now. Whitespace
3209- fixes
3210- * Enable UbuntuPlatformServices for a mirserver
3211- * Fix FTBFS - header file moved
3212- * Remove ubuntumirclient plugin as it moved to qtubuntu
3213- * Empty commit to force rebuild for Qt5.3
3214- * debian: update package name, fixes dependency wait in PPA
3215- * Fix Qt5.3 compile - QQmlProfiler changed to QQuickProfiler
3216- * Update README, rename root pro file to match project name
3217- * debian: replace old libplatform-api-dev with newer libubuntu-
3218- application-api-dev
3219- * Fix lifecycle by pulling latest unity-mir code. Rename QML module
3220- back to Unity.Application. Import unity-mir tests. Use category
3221- logging
3222- * Restore code to override side-stage apps to be on main stage on
3223- single-stage devices
3224- * Remove unused *toBeFocused state savers
3225- * debian: update mir & papi version dependencies
3226- * Fix out-of-tree builds
3227- * Using const QString ref to save possible QString copy
3228- * Small header file cleaning
3229- * Fix test fails - do not run moc again on headers used by tests
3230- * Downgrade error warning of unmanaged session startup
3231- * Simplify focus logic, fix tablet lifecycle
3232- * Workaround GL/GLES conflict between Qt and Mir. Split into 3
3233- packages: GL qpa, GLES qpa & QML plugin Mir is GLES only. Qt on
3234- desktop is desktop-GL only. To workaround this, (ab)use the fact
3235- that MESA on the desktop allows you to bind GL apis to a GLES
3236- context via eglBindAPI. To use this, need to compile with QPA
3237- separately for GL and GLES targets. Thus need to split the packaging
3238- into: + qtmir-android - qpa plugin for GLES targets + qtmir-desktop
3239- - qpa plugin for desktop-GL targets (uses MESA hack) +
3240- qtdeclarative5-qtmir-plugin - the QML plugin Also stopped unit tests
3241- from being installed
3242- * Re-enable Buffer Queueing OpenGL, should improve graphics
3243- performance
3244- * Remove refresh-rate override as Mir now returns correct value
3245- * MirGLContext - temporary gl context from mir does not have
3246- attributes defined by GLConfig applied, so need to do so manually
3247- * DisplayWindow listens for Hide/Show events with its event handler,
3248- not via a static variable
3249- * QtEventFeeder - add deconstructor to delete the mTouchDevice
3250- * Application: delete TODO comment in setSession as nonsensical
3251- * SessionName removed. PID matching was introduced some time ago and
3252- so session name unnecessary
3253- * Application: remove hack to guess app supported orientations,
3254- implement properly later
3255- * Fixed threading issue when screen-shotting application about to be
3256- stopped. By Nick Dedekind
3257- * Revert rev 179, add comment to clarify
3258- * Application: replace direct call into MirSurfaceItem with a
3259- signal/slot. Removes FIXME
3260- * MirSurfaceItem: setting unfocused on creation breaks camera & videos
3261- app, so disabling and added fixme
3262- * Add FIXME about the custom roles
3263- * Remove redundant comment
3264- * Remove ApplicationManager::topmostApplication
3265- * AppMan: if foreground app closes, set all unfocused to let shell
3266- decide what next to focus
3267- * Useless static_cast removed
3268- * DebugHelpers: do not use default state for last option in the enum
3269- today, the enum may grow in future
3270- * MirBufferSGTexture: remove the Qt5.3 ifdefs, were probably broken
3271- for older Qt versions
3272- * MirSurfaceItem - standardize on qCDebug(QTMIR_SURFACES)
3273- * MirSurfaceManager: generate roleNames only on read
3274- * MirSurfaceManager: remove commented line
3275- * TaskController: add a few more consts
3276- * Removed WindowScreenshotProvider as not needed for now
3277- * AppMan: be slightly more verbose with desktop file locating for
3278- desktop_file_hint. Also use faster exists() static function
3279- * AppMan: data - remove nonsensical default role
3280- * ProcessController: expand documentation
3281- * Clarify licences
3282- * Give AppMan & SurfMan objectNames
3283- * MirSurfaceItem: do not print keystrokes to log
3284- * Fix crash bug - disable input events going to MirSurfaceItem whose
3285- backing mir surface was destroyed
3286- * SurfaceManager: do not add each surface to the model twice silly
3287- * debian: only use gcc4.9 compiler to prevent ABI breaks due to some
3288- C++11 features still being experimental in gcc
3289- * AppMan: emit unfocus dbus event on suspend, and focus on resume
3290- * Revert 214 - breaks install of qtmir and qtubuntu
3291- * Input Event timestamp - do not overwrite timestamp of events sent to
3292- client
3293-
3294- [ Nick Dedekind ]
3295- * Compatibility with mir-0.5
3296-
3297- [ Robert Bruce Park ]
3298- * CI Train packaging cleanup. Minor packaging cleanup for CI Train
3299- standards.
3300- * Slightly more readable debian/rules.
3301-
3302- [ Michael Zanetti ]
3303- * append newly focused apps instead of prepending them. Allows the ui
3304- to do the regular app focused animation for newly started apps too
3305- * Fix multi touch points on mirsurfaceitems. Patch kindly provided by
3306- anpok.
3307- * also mir specific key codes through the QKeyEvent
3308-
3309- [ Michael Terry ]
3310- * Use virtual package names in Conflicts/Replaces fields and clean
3311- build dirs when doing dh_clean.
3312-
3313- [ Daniel d'Andrada ]
3314- * ubuntuclient: Properly handle mir's resize event Take it as a
3315- promise for a future buffer size instead of immediately obeying it.
3316- * Some MirSurfaceItem fixes Don't assume that it always have an
3317- Application. Slightly improve its ownership mess.
3318- * Work around crash in MirSurfaceManager::onSurfaceAttributeChanged
3319- * Improve debug output of surfaces handled by MirSurfaceManager
3320- * Make mirserver QPA implement QPlatformIntegration::inputContext() So
3321- that shell can get a virtual keyboard
3322- * Wait for screen orientation to stabilize before committing to it
3323- * Reduce orientation stabilization time and cancel pending change when
3324- facing up/down
3325- * Merge multiple qml size changes into a single mir surface resize
3326- Resizing a mir surface is a costly operation and qml items can get
3327- resized multiple times in a single event loop iteration. Besides, a
3328- qml item changes its width and height separately
3329- * Add WindowScreenshotProvider
3330- * s/upstart-app-launch-2/ubuntu-app-launch-2
3331- * Add clipboard support had to remove the dependency of mirserver to
3332- platform-api-client as it caused a clash as both libs are loading
3333- unityrpc.proto. That's a protobuffer limitation. Added the protobuf
3334- generated files directly (unityrpc.cpp and unityrpc.h) as I couldn't
3335- bend qmake to my will.
3336- * UbuntuPlatformServices is no longer shared by both QPAs
3337- * Update Application::fullscreen when the application gets its surface
3338- * MirSurfaceManager: s/DLOG/qCDebug Use Qt's new categorized logging
3339- system
3340- * MirSurfaceManager: improve debug output
3341- * Hold back this commit for now as qtmir trunk still uses an old mir
3342- version
3343- * adapt to latest mir/devel + input_sender branch
3344- * MirSurfaceManager: improve debug output
3345- * Revert to the old ways regarding rotation Where unity8 doesn't move
3346- and apps rotate by themselves. Retake that rotation approach at a
3347- later time
3348- * Forward item focus to the underlying mir surface
3349- * Dispatch keys to mir surface
3350- * Add a comment with the rationale behind the frame dropper
3351- * Fix copyright headers
3352- * Fix and update debian/copyright
3353- * Removing debian/qtdeclarative5-qtmir-plugin.maintscript This came
3354- with the copy-pasting unity-mir packaging. Makes no sense in qtmir
3355- as it never installed a com.canonical.Unity.conf file in the first
3356- place. That's unity-mir's problems.
3357- * Add a TODO notice
3358- * Fix copy-and-paste error in log message
3359- * Improve Application::setState debug output
3360-
3361- [ Kevin Gunn ]
3362- * merge lp:~nick-dedekind/qtmir/prompt_sessions
3363- * no change, rebuild
3364-
3365- [ Ubuntu daily release ]
3366- * New rebuild forced
3367-
3368- -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 29 Jul 2014 15:13:00 +0000
3369-
3370-qtmir (0.0.1-ppa5) utopic; urgency=medium
3371-
3372- * packaging works now
3373-
3374- -- Michael Zanetti <michael.zanetti@canonical.com> Fri, 16 May 2014 14:04:29 +0200
3375-
3376-qtmir (0.0.1-ppa1) utopic; urgency=medium
3377-
3378- * Initial release.
3379-
3380- -- Michael Zanetti <michael.zanetti@canonical.com> Wed, 14 May 2014 14:28:17 +0200
3381
3382=== removed file 'miral-qt/debian/compat'
3383--- miral-qt/debian/compat 2016-06-01 22:06:51 +0000
3384+++ miral-qt/debian/compat 1970-01-01 00:00:00 +0000
3385@@ -1,1 +0,0 @@
3386-9
3387
3388=== removed file 'miral-qt/debian/control'
3389--- miral-qt/debian/control 2016-09-07 14:35:25 +0000
3390+++ miral-qt/debian/control 1970-01-01 00:00:00 +0000
3391@@ -1,124 +0,0 @@
3392-Source: qtmir
3393-Section: libs
3394-Priority: optional
3395-Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
3396-Build-Depends: cmake,
3397- cmake-extras (>= 0.3),
3398- debhelper (>= 9),
3399- google-mock (>= 1.6.0+svn437),
3400- libcgmanager-dev,
3401- libcontent-hub-dev (>= 0.2),
3402- libfontconfig1-dev,
3403- libgles2-mesa-dev,
3404- libglib2.0-dev,
3405- libgsettings-qt-dev,
3406- liblttng-ust-dev,
3407- libmirclient-dev (>= 0.22.0),
3408- libmircommon-dev (>= 0.22.0),
3409- libmirserver-dev (>= 0.22.0),
3410- libmtdev-dev,
3411- libprocess-cpp-dev,
3412- libqt5sensors5-dev,
3413- libqtdbusmock1-dev (>= 0.2),
3414- libqtdbustest1-dev (>= 0.2),
3415- libubuntu-app-launch2-dev (>= 0.9),
3416- libubuntu-application-api-dev (>= 2.1.0),
3417- libudev-dev,
3418- libunity-api-dev (>= 7.118),
3419- liburl-dispatcher1-dev,
3420- libxkbcommon-dev,
3421- libxrender-dev,
3422- mir-renderer-gl-dev (>= 0.22.0),
3423- pkg-config,
3424-# lttng-gen-ts needs python3, but doesn't depend on it itself: bug 1359147
3425- python3:any,
3426- qt5-default,
3427- qtbase5-dev,
3428- qtbase5-private-dev,
3429- qtdeclarative5-dev,
3430- qtdeclarative5-private-dev,
3431- quilt,
3432-# libmirserver-dev should have brought this dep. Bug lp:1617435
3433- uuid-dev,
3434-Standards-Version: 3.9.5
3435-Homepage: https://launchpad.net/qtmir
3436-# if you don't have have commit access to this branch but would like to upload
3437-# directly to Ubuntu, don't worry: your changes will be merged back into the
3438-# upstream branch
3439-Vcs-Bzr: lp:qtmir
3440-Vcs-Browser: http://bazaar.launchpad.net/~mir-team/qtmir/trunk/files
3441-
3442-Package: qtmir-android
3443-Architecture: armhf
3444-Multi-Arch: same
3445-Conflicts: libqtmir,
3446- qtmir-desktop,
3447- qtubuntu-desktop,
3448-Replaces: libqtmir,
3449- qtmir-desktop,
3450- qtubuntu-desktop,
3451-Provides: qtmir,
3452-Depends: ${misc:Depends},
3453- ${shlibs:Depends},
3454-Description: Qt platform abstraction (QPA) plugin for a Mir server (mobile)
3455- QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
3456- It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
3457- a Mir server. It also exposes some internal Mir functionality.
3458- .
3459- This variant of the package is for Android-based phones and tablets.
3460-
3461-Package: qtmir-desktop
3462-Architecture: any
3463-Multi-Arch: same
3464-Conflicts: qtmir-android,
3465- qtubuntu-android,
3466-Replaces: libqtmir,
3467- qtmir-android,
3468- qtubuntu-android,
3469-Provides: qtmir,
3470-Depends: ${misc:Depends},
3471- ${shlibs:Depends},
3472-Description: Qt platform abstraction (QPA) plugin for a Mir server (desktop)
3473- QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
3474- It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
3475- a Mir server. It also exposes some internal Mir functionality.
3476- .
3477- This variant of the package is for GNU-based desktops.
3478-
3479-Package: qtdeclarative5-qtmir-plugin
3480-Architecture: any
3481-Multi-Arch: same
3482-Pre-Depends: ${misc:Pre-Depends},
3483-Depends: qtmir-desktop (= ${source:Version}) | qtmir-android (= ${source:Version}),
3484- ${misc:Depends},
3485- ${shlibs:Depends},
3486-Replaces: libqtmir,
3487- libunity-mir1,
3488-Conflicts: libqtmir,
3489- libunity-mir1,
3490-Provides: unity-application-impl,
3491- unity-application-impl-21,
3492-Description: Qt plugin for Unity specific Mir APIs
3493- QtMir provides Qt/QML bindings for Mir features that are exposed through the
3494- qtmir-desktop or qtmir-android QPA plugin such as Application management
3495- (start/stop/suspend/resume) and surface management.
3496-
3497-Package: qtmir-tests
3498-Architecture: any
3499-Multi-Arch: same
3500-Pre-Depends: ${misc:Pre-Depends},
3501-Depends: autopilot-qt5,
3502- littler,
3503- lttng-tools,
3504- mir-test-tools,
3505- python3-autopilot,
3506- python3-babeltrace,
3507- python3-evdev,
3508- python3-mir-perf-framework,
3509- qtdeclarative5-qtmir-plugin,
3510- qtmir-desktop (= ${source:Version}) | qtmir-android (= ${source:Version}),
3511- ${misc:Depends},
3512- ${shlibs:Depends},
3513-Description: QtMir tests and demos
3514- This package provides benchmark tests and a simple shell and client using the
3515- QtMir QPA.
3516
3517=== removed file 'miral-qt/debian/copyright'
3518--- miral-qt/debian/copyright 2016-06-01 22:06:51 +0000
3519+++ miral-qt/debian/copyright 1970-01-01 00:00:00 +0000
3520@@ -1,78 +0,0 @@
3521-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
3522-Upstream-Name: qtmir
3523-
3524-Files: *
3525-Copyright: 2013-2015 Canonical Ltd.
3526-License: LGPL-3
3527-
3528-Files: debian/*
3529-Copyright: 2013-2015 Canonical Ltd.
3530-License: GPL-3
3531-
3532-Files: tests/*
3533-Copyright: 2013-2015 Canonical Ltd.
3534-License: GPL-3
3535-
3536-Files: cmake/modules/FindQt5PlatformSupport.cmake
3537-Copyright: 2014 Alex Merry <alex.merry@kde.org>
3538- 2014 Martin Gräßlin <mgraesslin@kde.org>
3539-License: BSD-3-clause
3540-
3541-License: LGPL-3
3542- This package is free software; you can redistribute it and/or
3543- modify it under the terms of the GNU Lesser General Public
3544- License as published by the Free Software Foundation, version 3 of
3545- the License.
3546- .
3547- This package is distributed in the hope that it will be useful,
3548- but WITHOUT ANY WARRANTY; without even the implied warranty of
3549- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3550- Lesser General Public License for more details.
3551- .
3552- You should have received a copy of the GNU Lesser General Public
3553- License along with this package; if not, write to the Free Software
3554- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
3555- .
3556- On Debian systems, the complete text of the GNU Lesser General
3557- Public License can be found in `/usr/share/common-licenses/LGPL-3'.
3558-
3559-License: GPL-3
3560- This program is free software: you can redistribute it and/or modify
3561- it under the terms of the GNU General Public License as published by
3562- the Free Software Foundation, version 3 of the License.
3563- .
3564- This program is distributed in the hope that it will be useful,
3565- but WITHOUT ANY WARRANTY; without even the implied warranty of
3566- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3567- GNU General Public License for more details.
3568- .
3569- You should have received a copy of the GNU General Public License
3570- along with this program. If not, see <http://www.gnu.org/licenses/>.
3571- .
3572- On Debian systems, the full text of the GNU General Public License
3573- version 3 can be found in the file /usr/share/common-licenses/GPL-3.
3574-
3575-License: BSD-3-clause
3576- Redistribution and use in source and binary forms, with or without
3577- modification, are permitted provided that the following conditions
3578- are met:
3579- .
3580- 1. Redistributions of source code must retain the copyright
3581- notice, this list of conditions and the following disclaimer.
3582- 2. Redistributions in binary form must reproduce the copyright
3583- notice, this list of conditions and the following disclaimer in the
3584- documentation and/or other materials provided with the distribution.
3585- 3. The name of the author may not be used to endorse or promote products
3586- derived from this software without specific prior written permission.
3587- .
3588- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
3589- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
3590- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
3591- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
3592- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3593- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3594- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3595- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3596- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3597- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3598-
3599
3600=== removed file 'miral-qt/debian/docs'
3601--- miral-qt/debian/docs 2016-06-01 22:06:51 +0000
3602+++ miral-qt/debian/docs 1970-01-01 00:00:00 +0000
3603@@ -1,1 +0,0 @@
3604-README
3605
3606=== removed directory 'miral-qt/debian/gles-patches'
3607=== removed file 'miral-qt/debian/gles-patches/convert-to-gles.patch'
3608--- miral-qt/debian/gles-patches/convert-to-gles.patch 2016-09-07 14:11:13 +0000
3609+++ miral-qt/debian/gles-patches/convert-to-gles.patch 1970-01-01 00:00:00 +0000
3610@@ -1,179 +0,0 @@
3611-Index: inline-gles-quilt/debian/control
3612-===================================================================
3613---- inline-gles-quilt.orig/debian/control
3614-+++ inline-gles-quilt/debian/control
3615-@@ -1,4 +1,4 @@
3616--Source: qtmir
3617-+Source: qtmir-gles
3618- Section: libs
3619- Priority: optional
3620- Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
3621-@@ -16,7 +16,13 @@ Build-Depends: cmake,
3622- libmirserver-dev (>= 0.24.0),
3623- libmtdev-dev,
3624- libprocess-cpp-dev,
3625-+ libqt5gui5-gles,
3626-+ libqt5quick5-gles,
3627-+ libqt5quickparticles5-gles,
3628-+ libqt5quicktest5,
3629-+ libqt5quickwidgets5-gles,
3630- libqt5sensors5-dev,
3631-+ libqt5test5,
3632- libqtdbusmock1-dev (>= 0.2),
3633- libqtdbustest1-dev (>= 0.2),
3634- libubuntu-app-launch2-dev,
3635-@@ -31,8 +37,8 @@ Build-Depends: cmake,
3636- # lttng-gen-ts needs python3, but doesn't depend on it itself: bug 1359147
3637- python3:any,
3638- qt5-default,
3639-- qtbase5-dev,
3640-- qtbase5-private-dev,
3641-+ qtbase5-gles-dev,
3642-+ qtbase5-private-gles-dev,
3643- qtdeclarative5-dev,
3644- qtdeclarative5-private-dev,
3645- quilt,
3646-@@ -45,7 +51,7 @@ Vcs-Bzr: lp:qtmir
3647- Vcs-Browser: http://bazaar.launchpad.net/~mir-team/qtmir/trunk/files
3648-
3649- Package: qtmir-android
3650--Architecture: armhf
3651-+Architecture: amd64 i386
3652- Multi-Arch: same
3653- Conflicts: libqtmir,
3654- qtmir-desktop,
3655-@@ -56,65 +62,10 @@ Replaces: libqtmir,
3656- Provides: qtmir,
3657- Depends: ${misc:Depends},
3658- ${shlibs:Depends},
3659--Description: Qt platform abstraction (QPA) plugin for a Mir server (mobile)
3660-+Description: Qt platform abstraction (QPA) plugin for a Mir server (mobile) - OpenGLES
3661- QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
3662- It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
3663- a Mir server. It also exposes some internal Mir functionality.
3664- .
3665-- This variant of the package is for Android-based phones and tablets.
3666--
3667--Package: qtmir-desktop
3668--Architecture: any
3669--Multi-Arch: same
3670--Conflicts: qtmir-android,
3671-- qtubuntu-android,
3672--Replaces: libqtmir,
3673-- qtmir-android,
3674-- qtubuntu-android,
3675--Provides: qtmir,
3676--Depends: ${misc:Depends},
3677-- ${shlibs:Depends},
3678--Description: Qt platform abstraction (QPA) plugin for a Mir server (desktop)
3679-- QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
3680-- It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
3681-- a Mir server. It also exposes some internal Mir functionality.
3682-- .
3683-- This variant of the package is for GNU-based desktops.
3684--
3685--Package: qtdeclarative5-qtmir-plugin
3686--Architecture: any
3687--Multi-Arch: same
3688--Pre-Depends: ${misc:Pre-Depends},
3689--Depends: qtmir-desktop (= ${source:Version}) | qtmir-android (= ${source:Version}),
3690-- ${misc:Depends},
3691-- ${shlibs:Depends},
3692--Replaces: libqtmir,
3693-- libunity-mir1,
3694--Conflicts: libqtmir,
3695-- libunity-mir1,
3696--Provides: unity-application-impl,
3697-- unity-application-impl-21,
3698--Description: Qt plugin for Unity specific Mir APIs
3699-- QtMir provides Qt/QML bindings for Mir features that are exposed through the
3700-- qtmir-desktop or qtmir-android QPA plugin such as Application management
3701-- (start/stop/suspend/resume) and surface management.
3702--
3703--Package: qtmir-tests
3704--Architecture: any
3705--Multi-Arch: same
3706--Pre-Depends: ${misc:Pre-Depends},
3707--Depends: autopilot-qt5,
3708-- littler,
3709-- lttng-tools,
3710-- mir-test-tools,
3711-- python3-autopilot,
3712-- python3-babeltrace,
3713-- python3-evdev,
3714-- python3-mir-perf-framework,
3715-- qtdeclarative5-qtmir-plugin,
3716-- qtmir-desktop (= ${source:Version}) | qtmir-android (= ${source:Version}),
3717-- ${misc:Depends},
3718-- ${shlibs:Depends},
3719--Description: QtMir tests and demos
3720-- This package provides benchmark tests and a simple shell and client using the
3721-- QtMir QPA.
3722-+ This variant of the package is for Android-based phones and tablets (built
3723-+ against the OpenGLES variant of qtbase).
3724-Index: inline-gles-quilt/debian/rules
3725-===================================================================
3726---- inline-gles-quilt.orig/debian/rules
3727-+++ inline-gles-quilt/debian/rules
3728-@@ -3,60 +3,28 @@
3729-
3730- export DPKG_GENSYMBOLS_CHECK_LEVEL=4
3731-
3732--include /usr/share/dpkg/default.mk
3733--
3734- ANDROID_DIR = build-android
3735--DESKTOP_DIR = build-desktop
3736- TMP1_DIR = $(CURDIR)/debian/tmp1
3737--TMP2_DIR = $(CURDIR)/debian/tmp2
3738--
3739--# We only want to build qtmir-android on arches using Qt built with OpenGL ES2.0
3740--DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
3741--gles2_architectures = armhf
3742--
3743--USES_GLES2 = $(findstring $(DEB_HOST_ARCH), $(gles2_architectures))
3744-
3745- %:
3746- dh $@ --parallel --fail-missing
3747-
3748- override_dh_clean:
3749--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3750- rm -rf $(TMP1_DIR)
3751--endif
3752-- rm -rf $(TMP2_DIR)
3753- dh_clean
3754-
3755- override_dh_auto_configure:
3756--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3757- mkdir -p $(ANDROID_DIR) && dh_auto_configure -B$(ANDROID_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGLES=1
3758--# See comment in CMakeLists.txt
3759-- mkdir -p $(DESKTOP_DIR) && dh_auto_configure -B$(DESKTOP_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGL_BUT_LINK_AGAINST_OPENGLES=1
3760--else
3761-- mkdir -p $(DESKTOP_DIR) && dh_auto_configure -B$(DESKTOP_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGLES=1
3762--endif
3763-
3764- override_dh_auto_build:
3765--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3766- dh_auto_build -B$(ANDROID_DIR)
3767--endif
3768-- dh_auto_build -B$(DESKTOP_DIR)
3769-
3770- override_dh_auto_test:
3771--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3772- dh_auto_test -B$(ANDROID_DIR)
3773--endif
3774-- dh_auto_test -B$(DESKTOP_DIR)
3775-
3776- override_dh_auto_install:
3777--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3778- dh_auto_install -B$(ANDROID_DIR) --destdir=$(TMP1_DIR)
3779--endif
3780-- dh_auto_install -B$(DESKTOP_DIR) --destdir=$(TMP2_DIR)
3781-
3782- override_dh_install:
3783--ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3784-+ cat $(CURDIR)/debian/qtmir-tests.install $(CURDIR)/debian/qtdeclarative5-qtmir-plugin.install | xargs -I% sh -c "rm -rf $(TMP1_DIR)/%"
3785- dh_install --sourcedir=$(TMP1_DIR) -pqtmir-android
3786--endif
3787-- dh_install --sourcedir=$(TMP2_DIR) -pqtmir-desktop
3788-- dh_install --sourcedir=$(TMP2_DIR) -pqtdeclarative5-qtmir-plugin
3789-- dh_install --sourcedir=$(TMP2_DIR) -pqtmir-tests
3790
3791=== removed file 'miral-qt/debian/gles-patches/series'
3792--- miral-qt/debian/gles-patches/series 2016-06-01 22:06:51 +0000
3793+++ miral-qt/debian/gles-patches/series 1970-01-01 00:00:00 +0000
3794@@ -1,1 +0,0 @@
3795-convert-to-gles.patch
3796
3797=== removed file 'miral-qt/debian/qtdeclarative5-qtmir-plugin.install'
3798--- miral-qt/debian/qtdeclarative5-qtmir-plugin.install 2016-06-01 22:06:51 +0000
3799+++ miral-qt/debian/qtdeclarative5-qtmir-plugin.install 1970-01-01 00:00:00 +0000
3800@@ -1,2 +0,0 @@
3801-usr/lib/*/qt5/qml/*
3802-usr/share/glib-2.0/schemas
3803
3804=== removed file 'miral-qt/debian/qtmir-android.install'
3805--- miral-qt/debian/qtmir-android.install 2016-06-01 22:06:51 +0000
3806+++ miral-qt/debian/qtmir-android.install 1970-01-01 00:00:00 +0000
3807@@ -1,1 +0,0 @@
3808-usr/lib/*/qt5/plugins/platforms/*
3809
3810=== removed file 'miral-qt/debian/qtmir-desktop.install'
3811--- miral-qt/debian/qtmir-desktop.install 2016-06-01 22:06:51 +0000
3812+++ miral-qt/debian/qtmir-desktop.install 1970-01-01 00:00:00 +0000
3813@@ -1,1 +0,0 @@
3814-usr/lib/*/qt5/plugins/platforms/*
3815
3816=== removed file 'miral-qt/debian/qtmir-tests.install'
3817--- miral-qt/debian/qtmir-tests.install 2016-06-01 22:06:51 +0000
3818+++ miral-qt/debian/qtmir-tests.install 1970-01-01 00:00:00 +0000
3819@@ -1,6 +0,0 @@
3820-usr/bin/qtmir-demo-client
3821-usr/bin/qtmir-demo-shell
3822-usr/share/applications/qtmir-demo-client.desktop
3823-usr/share/qtmir/benchmarks/*
3824-usr/share/qtmir/qtmir-demo-client/*
3825-usr/share/qtmir/qtmir-demo-shell/
3826
3827=== removed file 'miral-qt/debian/rules'
3828--- miral-qt/debian/rules 2016-06-01 22:06:51 +0000
3829+++ miral-qt/debian/rules 1970-01-01 00:00:00 +0000
3830@@ -1,62 +0,0 @@
3831-#!/usr/bin/make -f
3832-# -*- makefile -*-
3833-
3834-export DPKG_GENSYMBOLS_CHECK_LEVEL=4
3835-
3836-include /usr/share/dpkg/default.mk
3837-
3838-ANDROID_DIR = build-android
3839-DESKTOP_DIR = build-desktop
3840-TMP1_DIR = $(CURDIR)/debian/tmp1
3841-TMP2_DIR = $(CURDIR)/debian/tmp2
3842-
3843-# We only want to build qtmir-android on arches using Qt built with OpenGL ES2.0
3844-DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
3845-gles2_architectures = armhf
3846-
3847-USES_GLES2 = $(findstring $(DEB_HOST_ARCH), $(gles2_architectures))
3848-
3849-%:
3850- dh $@ --parallel --fail-missing
3851-
3852-override_dh_clean:
3853-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3854- rm -rf $(TMP1_DIR)
3855-endif
3856- rm -rf $(TMP2_DIR)
3857- dh_clean
3858-
3859-override_dh_auto_configure:
3860-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3861- mkdir -p $(ANDROID_DIR) && dh_auto_configure -B$(ANDROID_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGLES=1
3862-# See comment in CMakeLists.txt
3863- mkdir -p $(DESKTOP_DIR) && dh_auto_configure -B$(DESKTOP_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGL_BUT_LINK_AGAINST_OPENGLES=1
3864-else
3865- mkdir -p $(DESKTOP_DIR) && dh_auto_configure -B$(DESKTOP_DIR) -- $(FLAGS) $(CURDIR) -DUSE_OPENGLES=1
3866-endif
3867-
3868-override_dh_auto_build:
3869-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3870- dh_auto_build -B$(ANDROID_DIR)
3871-endif
3872- dh_auto_build -B$(DESKTOP_DIR)
3873-
3874-override_dh_auto_test:
3875-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3876- dh_auto_test -B$(ANDROID_DIR)
3877-endif
3878- dh_auto_test -B$(DESKTOP_DIR)
3879-
3880-override_dh_auto_install:
3881-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3882- dh_auto_install -B$(ANDROID_DIR) --destdir=$(TMP1_DIR)
3883-endif
3884- dh_auto_install -B$(DESKTOP_DIR) --destdir=$(TMP2_DIR)
3885-
3886-override_dh_install:
3887-ifeq ($(DEB_HOST_ARCH),$(USES_GLES2))
3888- dh_install --sourcedir=$(TMP1_DIR) -pqtmir-android
3889-endif
3890- dh_install --sourcedir=$(TMP2_DIR) -pqtmir-desktop
3891- dh_install --sourcedir=$(TMP2_DIR) -pqtdeclarative5-qtmir-plugin
3892- dh_install --sourcedir=$(TMP2_DIR) -pqtmir-tests
3893
3894=== removed directory 'miral-qt/demos'
3895=== removed file 'miral-qt/demos/CMakeLists.txt'
3896--- miral-qt/demos/CMakeLists.txt 2016-06-01 22:06:51 +0000
3897+++ miral-qt/demos/CMakeLists.txt 1970-01-01 00:00:00 +0000
3898@@ -1,4 +0,0 @@
3899-configure_file(paths.h.in ${CMAKE_CURRENT_BINARY_DIR}/paths.h @ONLY)
3900-
3901-add_subdirectory(qml-demo-client)
3902-add_subdirectory(qml-demo-shell)
3903\ No newline at end of file
3904
3905=== removed file 'miral-qt/demos/paths.h.in'
3906--- miral-qt/demos/paths.h.in 2016-07-25 15:32:21 +0000
3907+++ miral-qt/demos/paths.h.in 1970-01-01 00:00:00 +0000
3908@@ -1,58 +0,0 @@
3909-/*
3910- * Copyright (C) 2015 Canonical, Ltd.
3911- *
3912- * This program is free software; you can redistribute it and/or modify
3913- * it under the terms of the GNU General Public License as published by
3914- * the Free Software Foundation; version 3.
3915- *
3916- * This program is distributed in the hope that it will be useful,
3917- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3918- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3919- * GNU General Public License for more details.
3920- *
3921- * You should have received a copy of the GNU General Public License
3922- * along with this program. If not, see <http://www.gnu.org/licenses/>.
3923- */
3924-
3925-#ifndef PATHS_H
3926-#define PATHS_H
3927-
3928-// Qt
3929-#include <QtCore/QCoreApplication>
3930-#include <QtCore/QDir>
3931-#include <QtGui/QIcon>
3932-#include <QtQml/QQmlEngine>
3933-#include <QStandardPaths>
3934-
3935-inline bool isRunningInstalled() {
3936- static bool installed = (QCoreApplication::applicationDirPath() ==
3937- QDir(("@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@")).canonicalPath());
3938- return installed;
3939-}
3940-
3941-inline QString qmlDirectory() {
3942- if (isRunningInstalled()) {
3943- return QString("@CMAKE_INSTALL_PREFIX@/@QTMIR_DATA_DIR@/");
3944- } else {
3945- return QString("@CMAKE_SOURCE_DIR@/miral-qt/demos/");
3946- }
3947-}
3948-
3949-inline QString qmlPluginDirectory() {
3950- if (isRunningInstalled()) {
3951- return QString("@QML_MODULE_INSTALL_DIR@/");
3952- } else {
3953- return QString("@CMAKE_BINARY_DIR@/miral-qt/src/modules/");
3954- }
3955-}
3956-
3957-inline QString qpaPluginDirectory() {
3958- if (isRunningInstalled()) {
3959- return QString("@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/qt5/plugins/platforms/");
3960- } else {
3961- //return QString("@CMAKE_BINARY_DIR@/miral-qt/src/platforms/mirserver/"); //miral moving it out of here
3962- return QString("@CMAKE_BINARY_DIR@/lib/");
3963- }
3964-}
3965-
3966-#endif
3967
3968=== removed directory 'miral-qt/demos/qml-demo-client'
3969=== removed file 'miral-qt/demos/qml-demo-client/CMakeLists.txt'
3970--- miral-qt/demos/qml-demo-client/CMakeLists.txt 2016-06-01 22:06:51 +0000
3971+++ miral-qt/demos/qml-demo-client/CMakeLists.txt 1970-01-01 00:00:00 +0000
3972@@ -1,41 +0,0 @@
3973-set(DEMO_CLIENT qtmir-demo-client)
3974-configure_file(${DEMO_CLIENT}.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/${DEMO_CLIENT}.desktop @ONLY)
3975-
3976-include_directories(
3977- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
3978-)
3979-
3980-add_executable(${DEMO_CLIENT}
3981- main.cpp
3982-)
3983-
3984-include_directories(
3985- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
3986- ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
3987- ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
3988-)
3989-
3990-target_link_libraries(
3991- ${DEMO_CLIENT}
3992- Qt5::Core
3993- Qt5::DBus
3994- Qt5::Qml
3995- Qt5::Quick
3996-)
3997-
3998-file(GLOB QML_JS_FILES *.qml *.js *.png)
3999-
4000-# install binaries
4001-install(TARGETS ${DEMO_CLIENT}
4002- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
4003- )
4004-
4005-install(FILES
4006- ${QML_JS_FILES}
4007- DESTINATION ${QTMIR_DATA_DIR}/${DEMO_CLIENT}
4008-)
4009-
4010-install(FILES
4011- ${CMAKE_CURRENT_BINARY_DIR}/${DEMO_CLIENT}.desktop
4012- DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications
4013-)
4014\ No newline at end of file
4015
4016=== removed file 'miral-qt/demos/qml-demo-client/MovingRect.qml'
4017--- miral-qt/demos/qml-demo-client/MovingRect.qml 2016-06-01 22:06:51 +0000
4018+++ miral-qt/demos/qml-demo-client/MovingRect.qml 1970-01-01 00:00:00 +0000
4019@@ -1,59 +0,0 @@
4020-import QtQuick 2.0
4021-
4022-Rectangle {
4023- id: movingRect
4024- width: 80
4025- height: 80
4026- color: "red"
4027-
4028- property real maxX: parent.width - width
4029- property real targetX: maxX
4030-
4031- function flipTargetX() {
4032- if (targetX == 0) {
4033- targetX = maxX
4034- } else {
4035- targetX = 0
4036- }
4037- }
4038-
4039- Timer {
4040- property real step: 4
4041- repeat: true
4042- running: true
4043- interval: 1000 / 60
4044- onTriggered: {
4045- if (x < targetX) {
4046- if (x + step > targetX) {
4047- x = targetX;
4048- } else {
4049- x += step;
4050- }
4051- } else {
4052- if (x - step < targetX) {
4053- x = targetX;
4054- } else {
4055- x -= step;
4056- }
4057- }
4058- }
4059- }
4060-
4061- onXChanged: {
4062- if (x == targetX) {
4063- flipTargetX();
4064- }
4065- }
4066- onWidthChanged: {
4067- if (targetX > 0) {
4068- targetX = maxX;
4069- }
4070- }
4071-
4072- MouseArea {
4073- anchors.fill: parent
4074- onPressed: {
4075- parent.flipTargetX();
4076- }
4077- }
4078-}
4079
4080=== removed file 'miral-qt/demos/qml-demo-client/main.cpp'
4081--- miral-qt/demos/qml-demo-client/main.cpp 2016-06-01 22:06:51 +0000
4082+++ miral-qt/demos/qml-demo-client/main.cpp 1970-01-01 00:00:00 +0000
4083@@ -1,73 +0,0 @@
4084-/*
4085- * Copyright (C) 2012-2015 Canonical, Ltd.
4086- *
4087- * This program is free software; you can redistribute it and/or modify
4088- * it under the terms of the GNU General Public License as published by
4089- * the Free Software Foundation; version 3.
4090- *
4091- * This program is distributed in the hope that it will be useful,
4092- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4093- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4094- * GNU General Public License for more details.
4095- *
4096- * You should have received a copy of the GNU General Public License
4097- * along with this program. If not, see <http://www.gnu.org/licenses/>.
4098- */
4099-
4100-// Qt
4101-#include <QtQuick/QQuickView>
4102-#include <QtGui/QGuiApplication>
4103-#include <QDebug>
4104-#include <csignal>
4105-#include <libintl.h>
4106-#include <getopt.h>
4107-#include "../paths.h"
4108-
4109-// REMOVEME - Should be able to use qmlscene, but in order to use the mir benchmarking we need
4110-// to parse command line switches. Wait until MIR_SOCKET supported by the benchmark framework.
4111-
4112-int main(int argc, char **argv)
4113-{
4114- int arg;
4115- opterr = 0;
4116- while ((arg = getopt (argc, argv, "hm:")) != -1)
4117- {
4118- switch (arg)
4119- {
4120- case 'm':
4121- setenv("MIR_SOCKET", optarg, 1);
4122- break;
4123-
4124- case '?':
4125- case 'h':
4126- default:
4127- puts(argv[0]);
4128- puts("Usage:");
4129- puts(" -m <Mir server socket>");
4130- puts(" -h: this help text");
4131- return -1;
4132- }
4133- }
4134-
4135- QGuiApplication::setApplicationName("qml-demo-client");
4136- QGuiApplication *application;
4137-
4138- application = new QGuiApplication(argc, (char**)argv);
4139- QQuickView* view = new QQuickView();
4140- view->setResizeMode(QQuickView::SizeRootObjectToView);
4141- view->setColor("black");
4142- view->setTitle("Demo Client");
4143-
4144- QUrl source(::qmlDirectory() + "qtmir-demo-client/qml-demo-client.qml");
4145-
4146- view->setSource(source);
4147- QObject::connect(view->engine(), SIGNAL(quit()), application, SLOT(quit()));
4148-
4149- view->showFullScreen();
4150- int result = application->exec();
4151-
4152- delete view;
4153- delete application;
4154-
4155- return result;
4156-}
4157
4158=== removed file 'miral-qt/demos/qml-demo-client/qml-demo-client.qml'
4159--- miral-qt/demos/qml-demo-client/qml-demo-client.qml 2016-06-01 22:06:51 +0000
4160+++ miral-qt/demos/qml-demo-client/qml-demo-client.qml 1970-01-01 00:00:00 +0000
4161@@ -1,35 +0,0 @@
4162-import QtQuick 2.0
4163-
4164-Rectangle {
4165- onWidthChanged: print("WIDTH", width)
4166- onHeightChanged: print("HEIGHT", height)
4167- width: 600
4168- height: 80*6
4169- color: "blue"
4170-
4171- Column {
4172- anchors.fill: parent
4173- MovingRect {}
4174- MovingRect {}
4175- MovingRect {}
4176- MovingRect {}
4177- MovingRect {}
4178- MovingRect {}
4179- }
4180-
4181- Rectangle {
4182- id: flasher
4183- width: 100
4184- height: 100
4185- anchors.bottom: parent.bottom
4186- anchors.right: parent.right
4187- color: (on) ? "yellow" : "green"
4188- property bool on: false
4189- Timer {
4190- interval: 1000
4191- repeat: true
4192- running: true
4193- onTriggered: flasher.on = !flasher.on
4194- }
4195- }
4196-}
4197
4198=== removed file 'miral-qt/demos/qml-demo-client/qtmir-demo-client.desktop.in'
4199--- miral-qt/demos/qml-demo-client/qtmir-demo-client.desktop.in 2016-06-01 22:06:51 +0000
4200+++ miral-qt/demos/qml-demo-client/qtmir-demo-client.desktop.in 1970-01-01 00:00:00 +0000
4201@@ -1,9 +0,0 @@
4202-[Desktop Entry]
4203-Type=Application
4204-Name=QtMir Demo Client
4205-Comment=QtMir demo client
4206-Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/qtmir-demo-client
4207-Terminal=false
4208-Icon=
4209-NoDisplay=false
4210-X-Ubuntu-Touch=true
4211
4212=== removed directory 'miral-qt/demos/qml-demo-shell'
4213=== removed file 'miral-qt/demos/qml-demo-shell/Button.qml'
4214--- miral-qt/demos/qml-demo-shell/Button.qml 2016-06-01 22:06:51 +0000
4215+++ miral-qt/demos/qml-demo-shell/Button.qml 1970-01-01 00:00:00 +0000
4216@@ -1,26 +0,0 @@
4217-import QtQuick 2.0
4218-
4219-Rectangle {
4220- id: root
4221-
4222- signal clicked
4223-
4224- property alias text: text.text
4225-
4226- implicitHeight: 40
4227- implicitWidth: 150
4228-
4229- color: (mouseArea.pressed) ? "red" : "lightblue"
4230-
4231- MouseArea {
4232- id: mouseArea
4233- anchors.fill: parent
4234- onClicked: { root.clicked(); }
4235- }
4236-
4237- Text {
4238- id: text
4239- anchors.verticalCenter: parent.verticalCenter
4240- anchors.horizontalCenter: parent.horizontalCenter
4241- }
4242-}
4243
4244=== removed file 'miral-qt/demos/qml-demo-shell/CMakeLists.txt'
4245--- miral-qt/demos/qml-demo-shell/CMakeLists.txt 2016-07-25 15:32:21 +0000
4246+++ miral-qt/demos/qml-demo-shell/CMakeLists.txt 1970-01-01 00:00:00 +0000
4247@@ -1,35 +0,0 @@
4248-set(DEMO_SHELL qml-demo-shell)
4249-
4250-include_directories(
4251- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
4252-)
4253-
4254-add_executable(${DEMO_SHELL}
4255- main.cpp
4256-)
4257-
4258-include_directories(
4259- ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
4260- ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
4261- ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
4262-)
4263-
4264-target_link_libraries(
4265- ${DEMO_SHELL}
4266- Qt5::Core
4267- Qt5::DBus
4268- Qt5::Qml
4269- Qt5::Quick
4270-)
4271-
4272-file(GLOB QML_JS_FILES *.qml *.js *.png)
4273-
4274-# install binaries
4275-install(TARGETS ${DEMO_SHELL}
4276- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
4277- )
4278-
4279-install(FILES
4280- ${QML_JS_FILES}
4281- DESTINATION ${QTMIR_DATA_DIR}/${DEMO_SHELL}
4282-)
4283
4284=== removed file 'miral-qt/demos/qml-demo-shell/ResizeArea.qml'
4285--- miral-qt/demos/qml-demo-shell/ResizeArea.qml 2016-06-01 22:06:51 +0000
4286+++ miral-qt/demos/qml-demo-shell/ResizeArea.qml 1970-01-01 00:00:00 +0000
4287@@ -1,128 +0,0 @@
4288-import QtQuick 2.4
4289-import Unity.Application 0.1
4290-
4291-MouseArea {
4292- id: root
4293-
4294- // to be set from outside
4295- property Item target
4296- property real borderThickness
4297-
4298- property bool leftBorder: false
4299- property bool rightBorder: false
4300- property bool topBorder: false
4301- property bool bottomBorder: false
4302-
4303- property bool dragging: false
4304- property real startX
4305- property real startY
4306- property real startWidth
4307- property real startHeight
4308-
4309- hoverEnabled: true
4310-
4311- property string cursorName: {
4312- if (containsMouse || pressed) {
4313- if (leftBorder && !topBorder && !bottomBorder) {
4314- return "left_side";
4315- } else if (rightBorder && !topBorder && !bottomBorder) {
4316- return "right_side";
4317- } else if (topBorder && !leftBorder && !rightBorder) {
4318- return "top_side";
4319- } else if (bottomBorder && !leftBorder && !rightBorder) {
4320- return "bottom_side";
4321- } else if (leftBorder && topBorder) {
4322- return "top_left_corner";
4323- } else if (leftBorder && bottomBorder) {
4324- return "bottom_left_corner";
4325- } else if (rightBorder && topBorder) {
4326- return "top_right_corner";
4327- } else if (rightBorder && bottomBorder) {
4328- return "bottom_right_corner";
4329- } else {
4330- return "";
4331- }
4332- } else {
4333- return "";
4334- }
4335- }
4336- onCursorNameChanged: {
4337- Mir.cursorName = cursorName;
4338- }
4339-
4340- function updateBorders() {
4341- leftBorder = mouseX <= borderThickness;
4342- rightBorder = mouseX >= width - borderThickness;
4343- topBorder = mouseY <= borderThickness;
4344- bottomBorder = mouseY >= height - borderThickness;
4345- }
4346-
4347- onPressedChanged: {
4348- if (pressed) {
4349- var pos = mapToItem(target.parent, mouseX, mouseY);
4350- startX = pos.x;
4351- startY = pos.y;
4352- startWidth = target.width;
4353- startHeight = target.height;
4354- dragging = true;
4355- } else {
4356- dragging = false;
4357- if (containsMouse) {
4358- updateBorders();
4359- }
4360- }
4361- }
4362-
4363- onEntered: {
4364- if (!pressed) {
4365- updateBorders();
4366- }
4367- }
4368-
4369- onPositionChanged: {
4370- if (!pressed) {
4371- updateBorders();
4372- }
4373-
4374- if (!dragging) {
4375- return;
4376- }
4377-
4378- var pos = mapToItem(target.parent, mouse.x, mouse.y);
4379-
4380- if (leftBorder) {
4381- if (startX + startWidth - pos.x > target.minWidth) {
4382- target.x = pos.x;
4383- target.width = startX + startWidth - target.x;
4384- startX = target.x;
4385- startWidth = target.width;
4386- }
4387-
4388- } else if (rightBorder) {
4389- var deltaX = pos.x - startX;
4390- if (startWidth + deltaX >= target.minWidth) {
4391- target.width = startWidth + deltaX;
4392- } else {
4393- target.width = target.minWidth;
4394- }
4395- }
4396-
4397- if (topBorder) {
4398- if (startY + startHeight - pos.y > target.minHeight) {
4399- target.y = pos.y;
4400- target.height = startY + startHeight - target.y;
4401- startY = target.y;
4402- startHeight = target.height;
4403- }
4404-
4405- } else if (bottomBorder) {
4406- var deltaY = pos.y - startY;
4407- if (startHeight + deltaY >= target.minHeight) {
4408- target.height = startHeight + deltaY;
4409- } else {
4410- target.height = target.minHeight;
4411- }
4412- }
4413- }
4414-}
4415-
4416
4417=== removed file 'miral-qt/demos/qml-demo-shell/Shell.qml'
4418--- miral-qt/demos/qml-demo-shell/Shell.qml 2016-06-01 22:06:51 +0000
4419+++ miral-qt/demos/qml-demo-shell/Shell.qml 1970-01-01 00:00:00 +0000
4420@@ -1,182 +0,0 @@
4421-import QtQuick 2.4
4422-import Unity.Application 0.1
4423-
4424-Rectangle {
4425- id: root
4426-
4427- focus: true
4428- Keys.onVolumeUpPressed: {
4429- console.log("\"Volume Up\" pressed");
4430- }
4431- Keys.onVolumeDownPressed: {
4432- console.log("\"Volume Down\" pressed");
4433- }
4434-
4435- property bool resizeModeStretch: true
4436-
4437- gradient: Gradient {
4438- GradientStop { position: 0.0; color: "lightsteelblue" }
4439- GradientStop { position: 1.0; color: "pink" }
4440- }
4441-
4442- property bool thumbFriendlyBorders: false
4443-
4444- MultiPointTouchArea {
4445- anchors.fill: parent
4446- mouseEnabled: false
4447- onPressed: {
4448- root.thumbFriendlyBorders = true;
4449- }
4450- onReleased: {
4451- root.thumbFriendlyBorders = false;
4452- }
4453- }
4454-
4455- Image {
4456- id: unityLogo
4457- source: "UnityLogo.png"
4458- fillMode: Image.PreserveAspectFit
4459- anchors.centerIn: parent
4460- width: 600
4461- height: 600
4462-
4463- RotationAnimation {
4464- id: logoAnimation
4465- target: unityLogo
4466- from: 0
4467- to: 359
4468- duration: 3000
4469- easing.type: Easing.Linear
4470- loops: Animation.Infinite
4471- }
4472-
4473- MultiPointTouchArea {
4474- anchors.fill: parent
4475- minimumTouchPoints:1
4476- maximumTouchPoints:1
4477- onPressed: {
4478- if (logoAnimation.paused) {
4479- logoAnimation.resume();
4480- } else if (logoAnimation.running) {
4481- logoAnimation.pause();
4482- } else {
4483- logoAnimation.start();
4484- }
4485- }
4486- }
4487- }
4488-
4489- Item {
4490- id: windowContainer
4491- anchors.fill: root
4492- }
4493-
4494- Rectangle {
4495- id: quitButton
4496- width: 60
4497- height: 40
4498- color: "red"
4499- anchors { right: parent.right; bottom: parent.bottom }
4500- Text {
4501- anchors.centerIn: parent
4502- text: "Quit"
4503- }
4504- MouseArea {
4505- anchors.fill: parent
4506- onClicked: Qt.quit()
4507- }
4508- }
4509-
4510- Rectangle {
4511- id: resizeButton
4512- width: 90
4513- height: 40
4514- color: "blue"
4515- anchors { right: quitButton.left; bottom: parent.bottom }
4516- Text {
4517- anchors.centerIn: parent
4518- text: root.resizeModeStretch ? "Stretch" : "Wait Resize"
4519- color: "white"
4520- }
4521- MouseArea {
4522- anchors.fill: parent
4523- onClicked: { root.resizeModeStretch = !root.resizeModeStretch; }
4524- }
4525- }
4526-
4527- Rectangle {
4528- width: 40
4529- height: 40
4530- color: "green"
4531- anchors { right: resizeButton.left; bottom: parent.bottom }
4532- Text {
4533- anchors.centerIn: parent
4534- text: "⟳"
4535- color: "white"
4536- font.pixelSize: 35
4537- }
4538- MouseArea {
4539- anchors.fill: parent
4540- onClicked: { root.rotation += 180; }
4541- }
4542- }
4543-
4544- Component {
4545- id: windowStretchComponent
4546- Window {
4547- x: 50
4548- y: 50
4549- //width: 200
4550- //height: 200
4551- touchMode: root.thumbFriendlyBorders
4552-
4553- onCloneRequested: {
4554- var window = windowStretchComponent.createObject(windowContainer);
4555- window.cloned = true;
4556- window.surface = surface;
4557- }
4558- }
4559- }
4560-
4561- Component {
4562- id: windowWaitResizeComponent
4563- WindowBufferSized {
4564- x: 50
4565- y: 50
4566- touchMode: root.thumbFriendlyBorders
4567-
4568- onCloneRequested: {
4569- var window = windowStretchComponent.createObject(windowContainer);
4570- window.cloned = true;
4571- window.surface = surface;
4572- }
4573- }
4574- }
4575-
4576- property var windowComponent: resizeModeStretch ? windowStretchComponent : windowWaitResizeComponent
4577-
4578- Connections {
4579- target: SurfaceManager
4580- onSurfaceCreated: {
4581- print("new surface", surface.name)
4582-
4583- var window = windowComponent.createObject(windowContainer);
4584- if (!window) {
4585- console.warn(windowComponent.errorString());
4586- return;
4587- }
4588-
4589- window.surface = surface;
4590-
4591- openAnimation.target = window;
4592- openAnimation.start();
4593- }
4594- }
4595-
4596- NumberAnimation {
4597- id: openAnimation
4598- property: "x";
4599- from: root.width; to: 10;
4600- duration: 1200; easing.type: Easing.InOutQuad
4601- }
4602-}
4603
4604=== removed file 'miral-qt/demos/qml-demo-shell/TitleBar.qml'
4605--- miral-qt/demos/qml-demo-shell/TitleBar.qml 2016-06-01 22:06:51 +0000
4606+++ miral-qt/demos/qml-demo-shell/TitleBar.qml 1970-01-01 00:00:00 +0000
4607@@ -1,72 +0,0 @@
4608-import QtQuick 2.4
4609-import Unity.Application 0.1
4610-
4611-Rectangle {
4612- id: root
4613- color: "brown"
4614- height: 25
4615-
4616- property Item target
4617- property bool cloned: false
4618- property bool closeRequested: false
4619- signal cloneRequested()
4620-
4621- MouseArea {
4622- anchors.fill: parent
4623- property real distanceX
4624- property real distanceY
4625- property bool dragging
4626- onPressedChanged: {
4627- if (pressed) {
4628- var pos = mapToItem(root.target, mouseX, mouseY);
4629- distanceX = pos.x;
4630- distanceY = pos.y;
4631- dragging = true;
4632- Mir.cursorName = "grabbing";
4633- } else {
4634- dragging = false;
4635- Mir.cursorName = "";
4636- }
4637- }
4638- onMouseXChanged: {
4639- if (dragging) {
4640- var pos = mapToItem(root.target.parent, mouseX, mouseY);
4641- root.target.x = pos.x - distanceX;
4642- root.target.y = pos.y - distanceY;
4643- }
4644- }
4645- }
4646-
4647- Text {
4648- visible: !root.cloned
4649- anchors.top: parent.top
4650- anchors.bottom: parent.bottom
4651- text: "CLONE"
4652- MouseArea {
4653- anchors.fill: parent
4654- onClicked: {
4655- root.cloneRequested();
4656- }
4657- }
4658- }
4659-
4660- Text {
4661- anchors.top: parent.top
4662- anchors.bottom: parent.bottom
4663- anchors.right: parent.right
4664- width: contentWidth
4665- text: "X"
4666- fontSizeMode: Text.VerticalFit
4667- minimumPixelSize: 10; font.pixelSize: 72
4668- font.weight: Font.Bold
4669- horizontalAlignment: Text.AlignRight
4670- verticalAlignment: Text.AlignVCenter
4671- MouseArea {
4672- anchors.fill: parent
4673- onClicked: {
4674- root.closeRequested = true;
4675- }
4676- }
4677- }
4678-}
4679-
4680
4681=== removed file 'miral-qt/demos/qml-demo-shell/UnityLogo.png'
4682Binary files miral-qt/demos/qml-demo-shell/UnityLogo.png 2016-06-01 22:06:51 +0000 and miral-qt/demos/qml-demo-shell/UnityLogo.png 1970-01-01 00:00:00 +0000 differ
4683=== removed file 'miral-qt/demos/qml-demo-shell/Window.qml'
4684--- miral-qt/demos/qml-demo-shell/Window.qml 2016-06-01 22:06:51 +0000
4685+++ miral-qt/demos/qml-demo-shell/Window.qml 1970-01-01 00:00:00 +0000
4686@@ -1,96 +0,0 @@
4687-import QtQuick 2.0
4688-import Unity.Application 0.1
4689-
4690-Rectangle {
4691- id: root
4692- color: "red"
4693-
4694- property alias surface: surfaceItem.surface
4695- property bool touchMode: false
4696-
4697- width: surfaceItem.implicitWidth + 2*borderThickness
4698- height: surfaceItem.implicitHeight + 2*borderThickness + titleBar.height
4699-
4700- signal cloneRequested()
4701- property bool cloned: false
4702-
4703- onTouchModeChanged: {
4704- if (touchMode) {
4705- x -= borderThicknessTouch - borderThicknessMouse;
4706- width += 2*(borderThicknessTouch - borderThicknessMouse);
4707- y -= borderThicknessTouch - borderThicknessMouse;
4708- height += 2*(borderThicknessTouch - borderThicknessMouse);
4709- } else {
4710- x += borderThicknessTouch - borderThicknessMouse;
4711- width -= 2*(borderThicknessTouch - borderThicknessMouse);
4712- y += borderThicknessTouch - borderThicknessMouse;
4713- height -= 2*(borderThicknessTouch - borderThicknessMouse);
4714- }
4715- }
4716-
4717- readonly property real minWidth: 100
4718- readonly property real minHeight: 100
4719-
4720- property real borderThickness: touchMode ? borderThicknessTouch : borderThicknessMouse
4721- readonly property real borderThicknessMouse: 10
4722- readonly property real borderThicknessTouch: 40
4723-
4724- states: [
4725- State {
4726- name: "closed"
4727- when: (surface && !surface.live) || titleBar.closeRequested
4728- }
4729- ]
4730- transitions: [
4731- Transition {
4732- from: ""; to: "closed"
4733- SequentialAnimation {
4734- PropertyAnimation {
4735- target: root
4736- property: "scale"
4737- easing.type: Easing.InBack
4738- duration: 400
4739- from: 1.0
4740- to: 0.0
4741- }
4742- ScriptAction { script: { root.destroy(); } }
4743- }
4744- }
4745- ]
4746-
4747- ResizeArea {
4748- anchors.fill: root
4749- borderThickness: root.borderThickness
4750- target: root
4751- }
4752-
4753- TitleBar {
4754- id: titleBar
4755- anchors.left: parent.left
4756- anchors.leftMargin: root.borderThickness
4757- anchors.right: parent.right
4758- anchors.rightMargin: root.borderThickness
4759- anchors.top: parent.top
4760- anchors.topMargin: root.borderThickness
4761-
4762- target: root
4763- cloned: root.cloned
4764- onCloneRequested: { root.cloneRequested(); }
4765- }
4766-
4767- MirSurfaceItem {
4768- id: surfaceItem
4769-
4770- anchors.top: titleBar.bottom
4771- anchors.left: parent.left
4772- anchors.leftMargin: root.borderThickness
4773- anchors.right: parent.right
4774- anchors.rightMargin: root.borderThickness
4775- anchors.bottom: parent.bottom
4776- anchors.bottomMargin: root.borderThickness
4777-
4778- consumesInput: !root.cloned
4779- surfaceWidth: root.cloned ? -1 : width
4780- surfaceHeight: root.cloned ? -1 : height
4781- }
4782-}
4783
4784=== removed file 'miral-qt/demos/qml-demo-shell/WindowBufferSized.qml'
4785--- miral-qt/demos/qml-demo-shell/WindowBufferSized.qml 2016-06-01 22:06:51 +0000
4786+++ miral-qt/demos/qml-demo-shell/WindowBufferSized.qml 1970-01-01 00:00:00 +0000
4787@@ -1,178 +0,0 @@
4788-import QtQuick 2.0
4789-import Unity.Application 0.1
4790-
4791-Rectangle {
4792- id: root
4793- color: "red"
4794-
4795- property alias surface: surfaceItem.surface
4796- property bool touchMode: false
4797-
4798- width: surfaceItem.width + (borderThickness*2)
4799- height: surfaceItem.height + titleBar.height + (borderThickness*2)
4800-
4801- signal cloneRequested()
4802-
4803- onTouchModeChanged: {
4804- if (touchMode) {
4805- x -= borderThicknessTouch - borderThicknessMouse;
4806- width += 2*(borderThicknessTouch - borderThicknessMouse);
4807- y -= borderThicknessTouch - borderThicknessMouse;
4808- height += 2*(borderThicknessTouch - borderThicknessMouse);
4809- } else {
4810- x += borderThicknessTouch - borderThicknessMouse;
4811- width -= 2*(borderThicknessTouch - borderThicknessMouse);
4812- y += borderThicknessTouch - borderThicknessMouse;
4813- height -= 2*(borderThicknessTouch - borderThicknessMouse);
4814- }
4815- }
4816-
4817- readonly property real minWidth: 100
4818- readonly property real minHeight: 100
4819-
4820- property real borderThickness: touchMode ? borderThicknessTouch : borderThicknessMouse
4821- readonly property real borderThicknessMouse: 10
4822- readonly property real borderThicknessTouch: 40
4823-
4824- states: [
4825- State {
4826- name: "closed"
4827- when: (surface && !surface.live) || titleBar.closeRequested
4828- }
4829- ]
4830- transitions: [
4831- Transition {
4832- from: ""; to: "closed"
4833- SequentialAnimation {
4834- PropertyAnimation {
4835- target: root
4836- property: "scale"
4837- easing.type: Easing.InBack
4838- duration: 400
4839- from: 1.0
4840- to: 0.0
4841- }
4842- ScriptAction { script: { root.destroy(); } }
4843- }
4844- }
4845- ]
4846-
4847-
4848- MouseArea {
4849- id: resizeArea
4850-
4851- anchors.fill: parent
4852-
4853- property real startX
4854- property real startY
4855- property real startWidth
4856- property real startHeight
4857- property bool leftBorder
4858- property bool rightBorder
4859- property bool topBorder
4860- property bool bottomBorder
4861- property bool dragging
4862- onPressedChanged: {
4863- if (pressed) {
4864- var pos = mapToItem(root.parent, mouseX, mouseY);
4865- startX = pos.x;
4866- startY = pos.y;
4867- startWidth = surfaceItem.width;
4868- startHeight = surfaceItem.height;
4869- leftBorder = mouseX > 0 && mouseX < root.borderThickness;
4870- rightBorder = mouseX > (root.width - root.borderThickness) && mouseX < root.width;
4871- topBorder = mouseY > 0 && mouseY < root.borderThickness;
4872- bottomBorder = mouseY > (root.height - root.borderThickness) && mouseY < root.height;
4873- dragging = true;
4874- } else {
4875- dragging = false;
4876- }
4877- }
4878-
4879- onMouseXChanged: {
4880- if (!pressed || !dragging) {
4881- return;
4882- }
4883-
4884- var pos = mapToItem(root.parent, mouseX, mouseY);
4885-
4886- var deltaX = pos.x - startX;
4887- if (leftBorder) {
4888- if (startWidth - deltaX >= root.minWidth) {
4889- surfaceItem.surfaceWidth = startWidth - deltaX;
4890- } else {
4891- surfaceItem.surfaceWidth = root.minWidth;
4892- }
4893- } else if (rightBorder) {
4894- if (startWidth + deltaX >= root.minWidth) {
4895- surfaceItem.surfaceWidth = startWidth + deltaX;
4896- } else {
4897- surfaceItem.surfaceWidth = root.minWidth;
4898- }
4899- }
4900- }
4901-
4902- onMouseYChanged: {
4903- if (!pressed || !dragging) {
4904- return;
4905- }
4906-
4907- var pos = mapToItem(root.parent, mouseX, mouseY);
4908-
4909- var deltaY = pos.y - startY;
4910- if (topBorder) {
4911- if (startHeight - deltaY >= root.minHeight) {
4912- surfaceItem.surfaceHeight = startHeight - deltaY;
4913- } else {
4914- surfaceItem.surfaceHeight = root.minHeight;
4915- }
4916- } else if (bottomBorder) {
4917- if (startHeight + deltaY >= root.minHeight) {
4918- surfaceItem.surfaceHeight = startHeight + deltaY;
4919- } else {
4920- surfaceItem.surfaceHeight = root.minHeight;
4921- }
4922- }
4923- }
4924- }
4925-
4926- TitleBar {
4927- id: titleBar
4928- anchors.left: parent.left
4929- anchors.leftMargin: root.borderThickness
4930- anchors.right: parent.right
4931- anchors.rightMargin: root.borderThickness
4932- anchors.top: parent.top
4933- anchors.topMargin: root.borderThickness
4934-
4935- target: root
4936- cloned: root.cloned
4937- onCloneRequested: { root.cloneRequested(); }
4938- }
4939-
4940- MirSurfaceItem {
4941- id: surfaceItem
4942-
4943- width: surface ? surface.size.width : 50
4944- height: surface ? surface.size.height : 50
4945-
4946- onWidthChanged: {
4947- if (resizeArea.dragging && resizeArea.leftBorder) {
4948- root.x = resizeArea.startX + resizeArea.startWidth - surfaceItem.width;
4949- }
4950- }
4951-
4952- onHeightChanged: {
4953- if (resizeArea.dragging && resizeArea.topBorder) {
4954- root.y = resizeArea.startY + resizeArea.startHeight - surfaceItem.height;
4955- }
4956- }
4957-
4958- anchors.top: titleBar.bottom
4959- anchors.left: parent.left
4960- anchors.leftMargin: root.borderThickness
4961-
4962- consumesInput: true
4963- }
4964-}
4965-
4966
4967=== removed file 'miral-qt/demos/qml-demo-shell/main.cpp'
4968--- miral-qt/demos/qml-demo-shell/main.cpp 2016-07-25 15:32:21 +0000
4969+++ miral-qt/demos/qml-demo-shell/main.cpp 1970-01-01 00:00:00 +0000
4970@@ -1,61 +0,0 @@
4971-/*
4972- * Copyright (C) 2012-2015 Canonical, Ltd.
4973- *
4974- * This program is free software; you can redistribute it and/or modify
4975- * it under the terms of the GNU General Public License as published by
4976- * the Free Software Foundation; version 3.
4977- *
4978- * This program is distributed in the hope that it will be useful,
4979- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4980- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4981- * GNU General Public License for more details.
4982- *
4983- * You should have received a copy of the GNU General Public License
4984- * along with this program. If not, see <http://www.gnu.org/licenses/>.
4985- */
4986-
4987-// Qt
4988-#include <QCommandLineParser>
4989-#include <QtQuick/QQuickView>
4990-#include <QtGui/QGuiApplication>
4991-#include <QtQml/QQmlEngine>
4992-#include <QtQml/QQmlContext>
4993-#include <QLibrary>
4994-#include <QDebug>
4995-#include <csignal>
4996-#include <libintl.h>
4997-#include "../paths.h"
4998-
4999-#include <private/qobject_p.h>
5000-
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches