mirror of
https://gitlab.gnome.org/GNOME/gparted
synced 2024-10-29 23:08:41 +00:00
f38ccd0284
GParted fails to display when run under Wayland [1][2][3]. This is because by intentional design Wayland doesn't allow applications with root privileges access to the display [4]. As an interim workaround make the gparted shell wrapper use xhost to grant root access to the X11 server if root doesn't already have access, but only when configured. Granting root access must be explicitly enabled when building GParted like this: ./configure --enable-xhost-root It defaults to disabled. When gpartedbin binary ends the shell wrapper revokes root access only if it granted such access. [1] GNOME Bug 776437 - GParted fails to run as root under Wayland https://bugzilla.gnome.org/show_bug.cgi?id=776437 [2] Ubuntu Bug 1652282 - GParted does not work in GNOME on Wayland https://bugs.launchpad.net/ubuntu/+source/gparted/+bug/1652282 [3] Fedora Bug 1397103 - gparted not working under Wayland https://bugzilla.redhat.com/show_bug.cgi?id=1397103 [4] Common Fedora 25 bugs Running graphical apps with root privileges (e.g. gparted) does not work on Wayland https://fedoraproject.org/wiki/Common_F25_bugs#wayland-root-apps Bug 776437 - GParted fails to run as root under Wayland
95 lines
2.8 KiB
Makefile
95 lines
2.8 KiB
Makefile
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
SUBDIRS = compose data doc include lib po src tests
|
|
# Only build GParted help documentation when enabled. (Can be disabled
|
|
# with './configure --disable-doc').
|
|
if BUILD_HELP_DOC
|
|
SUBDIRS += help
|
|
endif
|
|
|
|
@INTLTOOL_DESKTOP_RULE@
|
|
DESKTOP_IN_IN_FILES = gparted.desktop.in.in
|
|
DESKTOP_IN_FILES = gparted.desktop.in
|
|
DESKTOP_FILES =$(DESKTOP_IN_FILES:.desktop.in=.desktop)
|
|
desktopdir = $(datadir)/applications
|
|
desktop_DATA = $(DESKTOP_FILES)
|
|
|
|
@INTLTOOL_XML_RULE@
|
|
APPDATA_IN_FILES = gparted.appdata.xml.in
|
|
APPDATA_FILES =$(APPDATA_IN_FILES:.xml.in=.xml)
|
|
appdatadir = $(datadir)/appdata
|
|
appdata_DATA = $(APPDATA_FILES)
|
|
|
|
@INTLTOOL_POLICY_RULE@
|
|
polkit_action_in_in_FILES = org.gnome.gparted.policy.in.in
|
|
polkit_action_in_FILES = org.gnome.gparted.policy.in
|
|
polkit_action_FILES = $(polkit_action_in_FILES:.policy.in=.policy)
|
|
polkit_actiondir = $(datadir)/polkit-1/actions
|
|
if INSTALL_POLKIT_ACTIONS
|
|
polkit_action_DATA = $(polkit_action_FILES)
|
|
endif
|
|
|
|
bin_SCRIPTS = gparted
|
|
CLEANFILES = $(bin_SCRIPTS) $(DESKTOP_IN_FILES) $(polkit_action_in_FILES)
|
|
|
|
do_subst = sed -e 's,[@]sbindir[@],$(sbindir),g' \
|
|
-e 's,[@]bindir[@],$(bindir),g' \
|
|
-e 's,[@]gksuprog[@],$(GKSUPROG),g' \
|
|
-e 's,[@]enable_xhost_root[@],$(ENABLE_XHOST_ROOT),g'
|
|
|
|
gparted.desktop.in: gparted.desktop.in.in Makefile
|
|
$(do_subst) < $(srcdir)/gparted.desktop.in.in > gparted.desktop.in
|
|
|
|
gparted: gparted.in Makefile
|
|
$(do_subst) < $(srcdir)/gparted.in > gparted
|
|
chmod +x gparted
|
|
|
|
org.gnome.gparted.policy.in: org.gnome.gparted.policy.in.in Makefile
|
|
$(do_subst) < $(srcdir)/org.gnome.gparted.policy.in.in > org.gnome.gparted.policy.in
|
|
|
|
dist-hook:
|
|
@if test -d "$(srcdir)/.git"; \
|
|
then \
|
|
echo Creating ChangeLog && \
|
|
( cd "$(top_srcdir)" && \
|
|
echo '# Generated by Makefile. Do not edit.'; echo; \
|
|
$(top_srcdir)/missing --run \
|
|
git log GPARTED_0_4_4.. --date-order --date=short | \
|
|
sed -e '/^commit.*$$/d' | \
|
|
awk '/^Author/ {sub(/\\$$/,""); getline t; print $$0 t; next}; 1' | \
|
|
sed -e 's/^Author: //g' | \
|
|
sed -e 's/>Date: \([0-9]*-[0-9]*-[0-9]*\)/>\t\1/g' | \
|
|
sed -e 's/^\([^\t<]*[<][^\t>]*>\)\t\([^\t]*\)/\2 \1/g'; \
|
|
echo; \
|
|
) > ChangeLog.tmp \
|
|
&& cat $(top_srcdir)/ChangeLog >> ChangeLog.tmp \
|
|
&& mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
|
|
|| ( rm -f ChangeLog.tmp ; \
|
|
echo Failed to generate ChangeLog >&2 ); \
|
|
else \
|
|
echo A git clone is required to generate a ChangeLog >&2; \
|
|
fi
|
|
|
|
EXTRA_DIST = \
|
|
$(APPDATA_IN_FILES) \
|
|
$(APPDATA_FILES) \
|
|
$(DESKTOP_IN_IN_FILES) \
|
|
$(DESKTOP_FILES) \
|
|
$(polkit_action_in_in_FILES) \
|
|
intltool-extract.in \
|
|
intltool-merge.in \
|
|
intltool-update.in \
|
|
gparted.in \
|
|
gnome-doc-utils.make
|
|
|
|
DISTCLEANFILES = \
|
|
$(appdata_DATA) \
|
|
$(desktop_DATA) \
|
|
$(polkit_action_DATA) \
|
|
intltool-extract \
|
|
intltool-merge \
|
|
intltool-update \
|
|
gnome-doc-utils.make
|
|
|
|
DISTCHECK_CONFIGURE_FLAGS = \
|
|
--disable-scrollkeeper
|