Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cinnamon 4.0 #29

Merged
merged 25 commits into from
Apr 7, 2019
Merged

Cinnamon 4.0 #29

merged 25 commits into from
Apr 7, 2019

Conversation

vishwin
Copy link

@vishwin vishwin commented Dec 30, 2018

Consumers need both python versions, so split the pygobject3 bits to a slave port.

Adhere to our hier(7) by moving directories without touching meson.

Add DOCS option

Consumers need both python versions, so split the pygobject3 bits to a slave port.

Adhere to our hier(7) by moving directories without touching meson.

Add DOCS option
@vishwin vishwin changed the title x11/xapps: pass testport and other items Cinnamon 4.0 Dec 31, 2018
GTK+3 text editor originally forked from gedit. Port name clashes with existing editors/xed so using this for now.
Use the more correct PYTHONPREFIX_SITELIBDIR.
Further clarify the purpose of the python slave port.
gnome-autogen.sh is actually needed for the autogen.sh script to work
Also add a technically optional xtrans by default, to disable ICE Transports
https://bugzilla.gnome.org/show_bug.cgi?id=725100
- Add LICENSE_FILES
- Add required dependencies
  * Enable the not-optional-as-written wacom support
- Fix icons location to the proper location to fix a filesystem violation
- Properly PLIST_SUB options
@kwm81
Copy link
Contributor

kwm81 commented Feb 11, 2019

Hi, did you get around to updating cinnamon itself?

@vishwin
Copy link
Author

vishwin commented Feb 12, 2019

Still working, but got a new dependency committed to the tree, security/py-python-pam

@vishwin
Copy link
Author

vishwin commented Feb 23, 2019

First run:
Cinnamon first run
Things seem okay, except that sound support seems a bit dodgy at the moment. Attempting to adjust the volume in Rhythmbox causes all of cinnamon-session to crash. There is a core dump to look at.

Some minor cleanups of Makefiles to follow. And continue porting over the rest of X-Apps.

@vishwin
Copy link
Author

vishwin commented Feb 26, 2019

After some crashing, triggered on purpose, I've determined that the (screen saver/power) inhibitor is the cause. (There are other crash scenarios, but the inhibitor is the main one.) Cinnamon uses the inhibitor functionality quite liberally, from when multimedia plays, to when certain dialogs (like delete confirmation) spawn, even when momentarily activating the inhibitor whilst pasting text(!).

Additionally, Cinnamon has trouble communicating with D-Bus properly on several occasions, which may play a major part here. cinnamon-looking-glass doesn't even work as a direct result of this. On Linux, D-Bus user session buses are usually started by systemd (probably the logind part) and pam_systemd ensures that the correct DBUS_SESSION_BUS_ADDRESS is set. We don't have anything that implements even part of systemd's API, but we do have ConsoleKit2, which is presumed abandonware at this point. Cinnamon is thus limping on our ConsoleKit2 port; it is plainly obvious looking at the tty scrollback (and Cinnamon's build "documentation") that it really wants something resembling logind. Thus I will start porting elogind in an attempt to ensure a stable D-Bus environment for Cinnamon.

Example backtrace from cinnamon-session crashing:

(lldb) bt
* thread #1, name = 'cinnamon-session', stop reason = signal SIGSEGV
  * frame #0: 0x000000000023dcb7 cinnamon-session`csm_system_add_inhibitor(system=0x0000000000000000, id="/org/gnome/SessionManager/Inhibitor1", flag=CSM_INHIBITOR_FLAG_LOGOUT) at csm-system.c:145
    frame #1: 0x00000000002364dc cinnamon-session`on_store_inhibitor_added(store=0x0000000804269a40, id="/org/gnome/SessionManager/Inhibitor1", manager=0x000000080422d2a0) at csm-manager.c:2583
    frame #2: 0x000000080033ceb3 libgobject-2.0.so.0`g_cclosure_marshal_VOID__STRING(closure=0x00000008042324d0, return_value=0x0000000000000000, n_param_values=2, param_values=0x00007fffffffdac0, invocation_hint=0x00007fffffffda60, marshal_data=0x0000000000000000) at gmarshal.c:1754
    frame #3: 0x0000000800337511 libgobject-2.0.so.0`g_closure_invoke(closure=0x00000008042324d0, return_value=0x0000000000000000, n_param_values=2, param_values=0x00007fffffffdac0, invocation_hint=0x00007fffffffda60) at gclosure.c:810
    frame #4: 0x0000000800358ae3 libgobject-2.0.so.0`signal_emit_unlocked_R(node=0x000000080424bf80, detail=0, instance=0x0000000804269a40, emission_return=0x0000000000000000, instance_and_params=0x00007fffffffdac0) at gsignal.c:3635
    frame #5: 0x000000080035a492 libgobject-2.0.so.0`g_signal_emit_valist(instance=0x0000000804269a40, signal_id=169, detail=0, var_args=0x00007fffffffe1f0) at gsignal.c:3391
    frame #6: 0x000000080035acd7 libgobject-2.0.so.0`g_signal_emit(instance=0x0000000804269a40, signal_id=169, detail=0) at gsignal.c:3447
    frame #7: 0x000000000023cdf5 cinnamon-session`csm_store_add(store=0x0000000804269a40, id="/org/gnome/SessionManager/Inhibitor1", object=0x00000008049ce7a0) at csm-store.c:248
    frame #8: 0x00000000002315be cinnamon-session`csm_manager_inhibit(manager=0x000000080422d2a0, app_id="org.x.editor", toplevel_xid=109052149, reason="There are unsaved documents", flags=1, context=0x0000000804736be0) at csm-manager.c:3704
    frame #9: 0x000000000022ee41 cinnamon-session`dbus_glib_marshal_csm_manager_VOID__STRING_UINT_STRING_UINT_POINTER(closure=0x00007fffffffe540, return_value=0x0000000000000000, n_param_values=6, param_values=0x0000000804875580, invocation_hint=0x0000000000000000, marshal_data=0x0000000000231230) at csm-manager-glue.h:399
    frame #10: 0x00000008002a8214 libdbus-glib-1.so.2`object_registration_message + 3620
    frame #11: 0x00000008002f6564 libdbus-1.so.3`_dbus_object_tree_dispatch_and_unlock + 276
    frame #12: 0x00000008002e641f libdbus-1.so.3`dbus_connection_dispatch + 975
    frame #13: 0x00000008002b7b3a libdbus-glib-1.so.2`message_queue_dispatch + 26
    frame #14: 0x000000080045b5d3 libglib-2.0.so.0`g_main_dispatch(context=0x00000008024b1180) at gmain.c:3182
    frame #15: 0x000000080045b420 libglib-2.0.so.0`g_main_context_dispatch(context=0x00000008024b1180) at gmain.c:3847
    frame #16: 0x000000080045b96e libglib-2.0.so.0`g_main_context_iterate(context=0x00000008024b1180, block=1, dispatch=1, self=0x00000008042694a0) at gmain.c:3920
    frame #17: 0x000000080045be2e libglib-2.0.so.0`g_main_loop_run(loop=0x00000008024aa6d0) at gmain.c:4116
    frame #18: 0x0000000800d13e1b libgtk-3.so.0`gtk_main + 75
    frame #19: 0x0000000000244cfa cinnamon-session`main(argc=1, argv=0x00007fffffffeab8) at main.c:381
    frame #20: 0x000000000021b114 cinnamon-session`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1.c:76

The important parts to note are the lines pertaining to the inhibitor. It is a D-Bus object.

@vishwin
Copy link
Author

vishwin commented Mar 12, 2019

Turns out all this crashing is due to pilot error.

Cinnamon ships the dconf keys org.cinnamon.desktop.session.session-manager-uses-logind and org.cinnamon.desktop.session.settings-daemon-uses-logind set to true by default. Unfortunately, the function that sets up the system object (referring to the login manager) does not gracefully branch to ConsoleKit when logind doesn't exist (unlike gnome-session, which uses the first login manager found in order), so we will need to patch those two keys to default false for our port.

This fixes cinnamon-session crashes when the null system pointer
is dereferenced, because logind doesn't exist.
@vishwin
Copy link
Author

vishwin commented Mar 14, 2019

New WIP: cinnamon-screensaver can't unlock itself properly. The password checking either never finishes or eventually returns invalid even if the input is correct. Under investigation.

@ltning
Copy link

ltning commented Apr 5, 2019

Any progress on this one? Resurrected my X270 for this.. :)

@vishwin
Copy link
Author

vishwin commented Apr 6, 2019

Still being worked on, as time allows. You can run Cinnamon from this patchset as is; feedback appreciated.

@kwm81 kwm81 merged commit 210830b into freebsd:cinnamon Apr 7, 2019
@kwm81
Copy link
Contributor

kwm81 commented Apr 7, 2019

The cinnamon branch is updated with cinnamon 4.0 and the latest portstree. Please report issues (I enabled issues on github) but please only for "in development ports".

freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this pull request Jul 4, 2022
Changes: linuxmint/xapp@2.2.8...2.2.12

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: fluffy (mentor)
Differential Revision: https://reviews.freebsd.org/D35705
freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this pull request Jul 5, 2022
Changes: linuxmint/xed@3.2.2...3.2.4

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: arrowd (mentor)
Differential Revision: https://reviews.freebsd.org/D35706
freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this pull request Jul 5, 2022
Changes: linuxmint/xapp@2.2.8...2.2.12

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: fluffy (mentor)
Differential Revision: https://reviews.freebsd.org/D35705

(cherry picked from commit 0121e8f)
freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this pull request Jul 5, 2022
Changes: linuxmint/xed@3.2.2...3.2.4

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: arrowd (mentor)
Differential Revision: https://reviews.freebsd.org/D35706

(cherry picked from commit d128a40)
ocochard pushed a commit to ocochard/freebsd-ports that referenced this pull request Jul 6, 2022
Changes: linuxmint/xapp@2.2.8...2.2.12

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: fluffy (mentor)
Differential Revision: https://reviews.freebsd.org/D35705
ocochard pushed a commit to ocochard/freebsd-ports that referenced this pull request Jul 6, 2022
Changes: linuxmint/xed@3.2.2...3.2.4

Note: port lineage comes from the freebsd-ports-gnome repo since
2018, not what was committed since 2020:
* freebsd/freebsd-ports-gnome#29
* freebsd/freebsd-ports-gnome#33
* freebsd/freebsd-ports-gnome#38
* freebsd/freebsd-ports-gnome#39

Approved by: arrowd (mentor)
Differential Revision: https://reviews.freebsd.org/D35706
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants