LXDE: lxsession-0.5.5
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Licensed under the GNU General Public License, version 3.
|
||||||
|
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
|
|
||||||
|
from pisi.actionsapi import autotools, pisitools, get
|
||||||
|
|
||||||
|
def setup():
|
||||||
|
pisitools.cflags.add("-Wno-deprecated-declarations")
|
||||||
|
pisitools.unlink("*.stamp")
|
||||||
|
autotools.autoreconf("-fiv")
|
||||||
|
autotools.configure("--enable-gtk3 --enable-buildin-polkit --enable-buildin-clipboard")
|
||||||
|
|
||||||
|
def build():
|
||||||
|
autotools.make()
|
||||||
|
|
||||||
|
def install():
|
||||||
|
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||||
|
|
||||||
|
pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README")
|
||||||
|
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
From c398fd6db61bc084679759096bde5747e5616eca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jann Horn <jann@thejh.net>
|
||||||
|
Date: Sun, 18 Apr 2021 16:37:16 +0200
|
||||||
|
Subject: [PATCH] lxsession-logout: Avoid costly lsb_release invocation
|
||||||
|
|
||||||
|
Having the name of the distribution in the LXDE prompt looks kinda nice,
|
||||||
|
but `lsb_release -r -s` is fairly costly (or at least the version on
|
||||||
|
Debian is): It spins up a python interpreter, then runs `apt-cache policy`
|
||||||
|
(which in turn, among other things, runs
|
||||||
|
`/usr/bin/dpkg --print-foreign-architectures` twice).
|
||||||
|
|
||||||
|
On a desktop machine with a proper Haswell CPU, `lsb_release -r -s` takes
|
||||||
|
"only" around 105ms (around 79ms of that are for `apt-cache policy`);
|
||||||
|
but on an old Intel NUC with a 5-years-old mobile Intel Pentium with a TDP
|
||||||
|
of 6W, it takes roughly between 500ms and 1000ms.
|
||||||
|
|
||||||
|
As suggested by ZanderBrown, use glib's g_get_os_info() instead if
|
||||||
|
available. If that doesn't exist, it's probably better to omit the OS name
|
||||||
|
instead of potentially spending up to a second on figuring out what it is.
|
||||||
|
---
|
||||||
|
lxsession-logout/lxsession-logout.c | 33 ++++++-----------------------
|
||||||
|
1 file changed, 6 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lxsession-logout/lxsession-logout.c b/lxsession-logout/lxsession-logout.c
|
||||||
|
index 489e6e3..f06e61d 100644
|
||||||
|
--- a/lxsession-logout/lxsession-logout.c
|
||||||
|
+++ b/lxsession-logout/lxsession-logout.c
|
||||||
|
@@ -716,35 +716,14 @@ int main(int argc, char * argv[])
|
||||||
|
if (session_name == NULL)
|
||||||
|
session_name = "LXDE";
|
||||||
|
|
||||||
|
- gchar *output = NULL;
|
||||||
|
-
|
||||||
|
- if (g_find_program_in_path("lsb_release"))
|
||||||
|
- {
|
||||||
|
- const gchar *command_line = "lsb_release -r -s";
|
||||||
|
- GError *error;
|
||||||
|
- if (!g_spawn_command_line_sync( command_line,
|
||||||
|
- &output,
|
||||||
|
- NULL,
|
||||||
|
- NULL,
|
||||||
|
- &error))
|
||||||
|
- {
|
||||||
|
-
|
||||||
|
- fprintf (stderr, "Error: %s\n", error->message);
|
||||||
|
- g_error_free (error);
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ gchar *os_name = NULL;
|
||||||
|
+#if GLIB_CHECK_VERSION(2, 64, 0)
|
||||||
|
+ os_name = g_get_os_info(G_OS_INFO_KEY_PRETTY_NAME);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
- if (output == NULL)
|
||||||
|
- {
|
||||||
|
- output = "";
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- output[strlen ( output ) - 1] = '\0';
|
||||||
|
- }
|
||||||
|
+ prompt = g_strdup_printf(_("<b><big>Logout %s %s session ?</big></b>"), session_name, os_name ? os_name : "");
|
||||||
|
|
||||||
|
- prompt = g_strdup_printf(_("<b><big>Logout %s %s session ?</big></b>"), session_name, output);
|
||||||
|
+ g_free(os_name);
|
||||||
|
}
|
||||||
|
gtk_label_set_markup(GTK_LABEL(label), prompt);
|
||||||
|
gtk_box_pack_start(GTK_BOX(controls), label, FALSE, FALSE, 4);
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||||
|
<PISI>
|
||||||
|
<Source>
|
||||||
|
<Name>lxsession</Name>
|
||||||
|
<Homepage>https://www.lxde.org/</Homepage>
|
||||||
|
<Packager>
|
||||||
|
<Name>fury</Name>
|
||||||
|
<Email>uglyside@yandex.ru</Email>
|
||||||
|
</Packager>
|
||||||
|
<License>GPL-2</License>
|
||||||
|
<IsA>app</IsA>
|
||||||
|
<PartOf>desktop.lxde</PartOf>
|
||||||
|
<Summary>LXDE session manager.</Summary>
|
||||||
|
<Description>lxsession is the default X11 session manager of LXDE.</Description>
|
||||||
|
<Archive sha1sum="93f495f3afff0300de3c7b9aacce0ef29eb86bab" type="tarxz">
|
||||||
|
mirrors://sourceforge/lxde/lxsession-0.5.5.tar.xz
|
||||||
|
</Archive>
|
||||||
|
<BuildDependencies>
|
||||||
|
<Dependency>intltool</Dependency>
|
||||||
|
<Dependency>vala-devel</Dependency>
|
||||||
|
<Dependency>gtk3-devel</Dependency>
|
||||||
|
<Dependency>glib2-devel</Dependency>
|
||||||
|
<Dependency>polkit-devel</Dependency>
|
||||||
|
<Dependency>elogind-devel</Dependency>
|
||||||
|
<Dependency>gettext-devel</Dependency>
|
||||||
|
<Dependency>libnotify-devel</Dependency>
|
||||||
|
<Dependency>gdk-pixbuf-devel</Dependency>
|
||||||
|
</BuildDependencies>
|
||||||
|
<Patches>
|
||||||
|
<Patch level="1">Avoid_costly_lsb_release_invocation.patch</Patch>
|
||||||
|
</Patches>
|
||||||
|
</Source>
|
||||||
|
|
||||||
|
<Package>
|
||||||
|
<Name>lxsession</Name>
|
||||||
|
<RuntimeDependencies>
|
||||||
|
<Dependency>gtk3</Dependency>
|
||||||
|
<Dependency>glib2</Dependency>
|
||||||
|
<Dependency>cairo</Dependency>
|
||||||
|
<Dependency>polkit</Dependency>
|
||||||
|
<Dependency>libX11</Dependency>
|
||||||
|
<Dependency>gdk-pixbuf</Dependency>
|
||||||
|
</RuntimeDependencies>
|
||||||
|
<Files>
|
||||||
|
<Path fileType="config">/etc/xdg</Path>
|
||||||
|
<Path fileType="executable">/usr/bin</Path>
|
||||||
|
<Path fileType="executable">/usr/libexec</Path>
|
||||||
|
<Path fileType="data">/usr/share</Path>
|
||||||
|
<Path fileType="localedata">/usr/share/locale</Path>
|
||||||
|
<Path fileType="man">/usr/share/man</Path>
|
||||||
|
<Path fileType="doc">/usr/share/doc</Path>
|
||||||
|
</Files>
|
||||||
|
</Package>
|
||||||
|
|
||||||
|
<History>
|
||||||
|
<Update release="1">
|
||||||
|
<Date>2022-04-14</Date>
|
||||||
|
<Version>0.5.5</Version>
|
||||||
|
<Comment>First build.</Comment>
|
||||||
|
<Name>fury</Name>
|
||||||
|
<Email>uglyside@yandex.ru</Email>
|
||||||
|
</Update>
|
||||||
|
</History>
|
||||||
|
</PISI>
|
||||||
|
|
||||||
Reference in New Issue
Block a user