[arch-commits] Commit in lxdm/trunk (PKGBUILD git-fixes.patch)

Balló György bgyorgy at archlinux.org
Sun Nov 8 06:50:21 UTC 2015


    Date: Sunday, November 8, 2015 @ 07:50:21
  Author: bgyorgy
Revision: 146392

upgpkg: lxdm 0.5.2-1

Update to version 0.5.2

Modified:
  lxdm/trunk/PKGBUILD
Deleted:
  lxdm/trunk/git-fixes.patch

-----------------+
 PKGBUILD        |   11 -
 git-fixes.patch |  429 ------------------------------------------------------
 2 files changed, 3 insertions(+), 437 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2015-11-08 06:49:01 UTC (rev 146391)
+++ PKGBUILD	2015-11-08 06:50:21 UTC (rev 146392)
@@ -5,8 +5,8 @@
 # Contributor: kiefer <jorgelmadrid at gmail.com>
 
 pkgname=lxdm
-pkgver=0.5.1
-pkgrel=4
+pkgver=0.5.2
+pkgrel=1
 pkgdesc='Lightweight X11 Display Manager'
 arch=('i686' 'x86_64')
 url="https://sourceforge.net/projects/lxdm/"
@@ -22,12 +22,10 @@
         'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
         'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
 source=(http://downloads.sourceforge.net/lxdm/$pkgname-$pkgver.tar.xz
-        git-fixes.patch
         default-config.patch
         lxdm.pam
         Xsession)
-md5sums=('9e03ce5f6d303bc9b689732401934dc6'
-         '1290d9f6e1863fc69407a07be89d9f7e'
+md5sums=('7806aeb11d4565c88dca2b05c9f7c44b'
          'f0ae6c072f151104c53a030fd7757821'
          'c941ef896248bc7c03901b513490425c'
          '6ff73570368501a06ee7badc8e415d0a')
@@ -35,9 +33,6 @@
 prepare(){
   cd "$srcdir/$pkgname-$pkgver"
 
-  # Apply fixes from git
-  patch -Np1 -i ../git-fixes.patch
-
   # Adjust Arch-specific settings
   patch -Np1 -i ../default-config.patch
 

Deleted: git-fixes.patch
===================================================================
--- git-fixes.patch	2015-11-08 06:49:01 UTC (rev 146391)
+++ git-fixes.patch	2015-11-08 06:50:21 UTC (rev 146392)
@@ -1,429 +0,0 @@
-diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
-index 7621345..179f0d6 100644
---- a/data/themes/Industrial/gtk.css
-+++ b/data/themes/Industrial/gtk.css
-@@ -1,6 +1,6 @@
- #lxdm {
- 	background-image: url("wave.svg");
--	background-size: 100%;
-+	background-repeat: round;
- }
- 
- #bottom_pane {
-@@ -12,10 +12,12 @@
- 	color: #ffffff;
- }
- 
--#user_list, #login_entry {
--	background-image: none;
-+#prompt {
-+	font: Sans 14;
-+	color: #000000;
- }
- 
--#prompt, #bottom_pane GtkLabel {
--	color: #ffffff;
-+#bottom_pane GtkLabel {
-+	font: Sans 12;
-+	color: #9E9D9B;
- }
-diff --git a/src/lxdm.c b/src/lxdm.c
-index 507189d..43a98c7 100644
---- a/src/lxdm.c
-+++ b/src/lxdm.c
-@@ -886,26 +886,57 @@ static void put_lock(void)
-     g_free(lockfile);
- }
- 
-+static int get_run_level(void)
-+{
-+#if defined(HAVE_UTMPX_H) && defined(RUN_LVL)
-+	int res;
-+	struct utmpx *ut,tmp;
-+
-+	setutxent();
-+	tmp.ut_type=RUN_LVL;
-+	ut=getutxid(&tmp);
-+	if(!ut)
-+	{
-+		endutxent();
-+		return '5';
-+	}
-+	res=ut->ut_pid & 0xff;
-+	endutxent();
-+	//g_message("runlevel %c\n",res);
-+	return res;
-+#else
-+	return '5';
-+#endif
-+}
-+
- static void on_xserver_stop(void *data,int pid, int status)
- {
- 	LXSession *s=data;
- 	LXSession *greeter;
--
--	g_message("xserver stop, restart. return status %x\n",status);
-+	int level;
- 
- 	stop_pid(pid);
- 	s->server = -1;
- 	lxsession_stop(s);
-+	
-+	level=get_run_level();
-+	if(level=='6' || level=='0')
-+	{
-+		return;
-+	}
-+	
-+	g_message("xserver stop, restart. return status %x\n",status);
-+
- 	greeter=lxsession_find_greeter();
- 	if(s->greeter || !greeter)
- 	{
- 		s->greeter=TRUE;
- 		xconn_close(s->dpy);
- 		s->dpy=NULL;
--		lxdm_startx(s);
- 		ui_drop();
-+		lxdm_startx(s);
- 		ui_prepare();
--		lxsession_set_active(greeter);
-+		lxsession_set_active(s);
- 	}
- 	else
- 	{
-@@ -914,7 +945,7 @@ static void on_xserver_stop(void *data,int pid, int status)
- 	}
- }
- 
--void lxdm_startx(LXSession *s)
-+static void lxdm_startx(LXSession *s)
- {
- 	char *arg;
- 	char **args;
-@@ -997,27 +1028,32 @@ static void exit_cb(void)
- 	g_key_file_free(config);
- }
- 
--static int get_run_level(void)
-+static gboolean delayed_restart_greeter(LXSession *s)
- {
--#if defined(HAVE_UTMPX_H) && defined(RUN_LVL)
--	int res=0;
--	struct utmpx *ut,tmp;
--
--	setutxent();
--	tmp.ut_type=RUN_LVL;
--	ut=getutxid(&tmp);
--	if(!ut)
-+	int level;
-+	
-+	level=get_run_level();
-+	if(level=='0' || level=='6')
- 	{
--		endutxent();
--		return 5;
-+		if(level=='0')
-+			g_spawn_command_line_sync("/etc/lxdm/PreShutdown",0,0,0,0);
-+		else
-+			g_spawn_command_line_sync("/etc/lxdm/PreReboot",0,0,0,0);
-+		g_message("run level %c\n",level);
-+		lxdm_quit_self(0);
-+		return FALSE;
- 	}
--	res=ut->ut_pid & 0xff;
--	endutxent();
--	//g_message("runlevel %c\n",res);
--	return res;
--#else
--	return 5;
--#endif
-+	
-+	if(s && s!=lxsession_greeter())
-+	{
-+		lxsession_free(s);
-+	}
-+	else if(!s)
-+	{
-+		lxsession_greeter();
-+	}
-+	
-+	return FALSE;
- }
- 
- static void on_session_stop(void *data,int pid, int status)
-@@ -1047,15 +1083,9 @@ static void on_session_stop(void *data,int pid, int status)
- 			g_spawn_command_line_sync("/etc/lxdm/PreReboot",0,0,0,0);
- 		g_message("run level %c\n",level);
- 		lxdm_quit_self(0);
-+		return;
- 	}
--	if(s && s!=lxsession_greeter())
--	{
--		lxsession_free(s);
--	}
--	else if(!s)
--	{
--		lxsession_greeter();
--	}
-+	g_timeout_add(300,(GSourceFunc)delayed_restart_greeter,s);
- }
- 
- gboolean lxdm_get_session_info(const char *session,char **pname,char **pexec,char **pdesktop_names)
-@@ -1269,6 +1299,9 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
- 	{
- 		if(s) lxsession_free(s);
- 		lxsession_set_active(prev);
-+		g_free(session_name);
-+		g_free(session_exec);
-+		g_free(session_desktop_names);
- 		return;
- 	}
- 	if(!s) s=lxsession_find_idle();
-@@ -1514,7 +1547,7 @@ static void lxdm_signal_handler(void *data,int sig)
- 	switch(sig){
- 	case SIGTERM:
- 	case SIGINT:
--		g_critical("QUIT BY SIGNAL\n");
-+		g_critical("QUIT BY SIGNAL %d\n",sig);
- 		lxdm_quit_self(0);
- 		break;
- 	default:
-@@ -1650,6 +1683,7 @@ static GString *lxdm_user_cmd(void *data,int user,int arc,char **arg)
- 		if(p)
- 		{
- 			res=g_string_new_len(p,len);
-+			g_free(p);
- 		}
- 		g_key_file_free(kf);
- 	}
-diff --git a/src/pam.c b/src/pam.c
-index 43bd687..a377157 100644
---- a/src/pam.c
-+++ b/src/pam.c
-@@ -42,6 +42,7 @@
- #include <errno.h>
- #include <poll.h>
- #include <sys/stat.h>
-+#include <sys/wait.h>
- 
- #include <pwd.h>
- #include <grp.h>
-@@ -300,12 +301,72 @@ int lxdm_auth_session_begin(LXDM_AUTH *a,const char *name,int tty,int display,ch
- 	}
- 	err = pam_open_session(a->handle, 0); /* FIXME pam session failed */
- 	if( err != PAM_SUCCESS )
-+	{
- 		g_warning( "pam open session error \"%s\"\n", pam_strerror(a->handle, err));
-+	}
- 	else
-+	{
- 		a->in_session=1;
-+	}
- 	return 0;
- }
- 
-+static int proc_filter(const struct dirent *d)
-+{
-+    int c=d->d_name[0];
-+    return c>='1' && c<='9';
-+}
-+
-+static int check_process_sid(int pid,const char *sid)
-+{
-+	char path[128];
-+	FILE *fp;
-+	gchar *env_data,*p;
-+	gsize env_len;
-+	int res=0;
-+
-+	sprintf(path,"/proc/%d/environ",pid);
-+	if(!g_file_get_contents(path,&env_data,&env_len,NULL))
-+	{
-+		return 0;
-+	}
-+	for(p=env_data;p!=NULL && p-env_data<env_len;)
-+	{
-+		if(!strncmp(p,"XDG_SESSION_ID=",15))
-+		{
-+			if(!strcmp(sid,p+15))
-+				res=1;
-+			break;
-+		}
-+		p=strchr(p,'\0');
-+		if(!p) break;p++;
-+	}
-+	g_free(env_data);
-+
-+	return res;
-+}
-+
-+static void kill_left_process(const char *sid)
-+{
-+	int self=getpid();
-+	struct dirent **list;
-+	int i,n;
-+
-+	n=scandir("/proc",&list,proc_filter,0);
-+	if(n<0) return;
-+	for(i=0;i<n;i++)
-+	{
-+		int pid=atoi(list[i]->d_name);
-+		if(pid==self || pid<=1)
-+			continue;
-+		if(check_process_sid(pid,sid))
-+		{
-+			kill(pid,SIGKILL);
-+		}
-+	}
-+	free(list);
-+}
-+
- int lxdm_auth_session_end(LXDM_AUTH *a)
- {
- 	int err;
-@@ -313,8 +374,20 @@ int lxdm_auth_session_end(LXDM_AUTH *a)
- 		return 0;
- 	if(a->in_session)
- 	{
-+		char xdg_session_id[32]={0};
-+		const char *p=pam_getenv(a->handle,"XDG_SESSION_ID");
-+		if(p!=NULL) snprintf(xdg_session_id,32,"%s",p);
- 		err = pam_close_session(a->handle, 0);
-+		if( err != PAM_SUCCESS )
-+		{
-+			g_warning( "pam close session error \"%s\"\n", pam_strerror(a->handle, err));
-+		}
- 		a->in_session=0;
-+		if(p!=NULL)
-+		{
-+			usleep(100*1000);
-+			kill_left_process(xdg_session_id);
-+		}
- 	}
- 	pam_end(a->handle, err);
- 	a->handle = NULL;	
-@@ -400,8 +473,10 @@ void switch_user(struct passwd *pw, const char *run, char **env)
- 	g_spawn_command_line_sync ("/etc/lxdm/PreLogin",NULL,NULL,NULL,NULL);
- 
- 	if( !pw || initgroups(pw->pw_name, pw->pw_gid) ||
--			setgid(pw->pw_gid) || setuid(pw->pw_uid)/* || setsid() == -1 */)
-+			setgid(pw->pw_gid) || setuid(pw->pw_uid) || setsid()==-1)
-+	{
- 		exit(EXIT_FAILURE);
-+	}
- 	chdir(pw->pw_dir);
- 	fd=open(".xsession-errors",O_WRONLY|O_CREAT|O_TRUNC,S_IRUSR|S_IWUSR);
- 	if(fd!=-1)
-@@ -426,7 +501,6 @@ void switch_user(struct passwd *pw, const char *run, char **env)
- 
- void run_session(LXDM_AUTH *a,const char *run)
- {
--	setsid();
- 	a->child=fork();
- 	if(a->child==0)
- 	{
-@@ -505,7 +579,7 @@ int main(int arc,char *arg[])
- 
- 	setvbuf(stdout, NULL, _IOLBF, 0 );
- 	signal(SIGCHLD,sig_handler);
--	
-+
- 	lxdm_auth_init(&a);
- 	while(file_get_line(cmd,sizeof(cmd),stdin)>=0)
- 	{
-diff --git a/src/xconn.c b/src/xconn.c
-index 5c62d4b..7e040b7 100644
---- a/src/xconn.c
-+++ b/src/xconn.c
-@@ -172,7 +172,7 @@ void xconn_close(xconn_t c)
- 	free(c);
- }
- 
--#if 0
-+#if 1
- static xcb_window_t xconn_get_root(xconn_t c)
- {
- 	const xcb_setup_t *setup;
-@@ -181,11 +181,71 @@ static xcb_window_t xconn_get_root(xconn_t c)
- 	xcb_screen_t *screen = iter.data;
- 	return screen->root;
- }
-+
-+static char *xconn_atom_name(xcb_connection_t *c,xcb_atom_t atom)
-+{
-+	xcb_get_atom_name_cookie_t cookie;
-+	xcb_get_atom_name_reply_t *reply;
-+	char *buf;
-+	int len;
-+	char *res=NULL;
-+	cookie=xcb_get_atom_name(c,atom);
-+	reply=xcb_get_atom_name_reply(c,cookie,NULL);
-+	if(!reply)
-+		return NULL;
-+	buf=xcb_get_atom_name_name(reply);
-+	len=xcb_get_atom_name_name_length(reply);
-+	if(buf && len>0)
-+	{
-+		res=malloc(len+1);
-+		memcpy(res,buf,len);
-+		res[len]=0;
-+	}
-+	free(reply);
-+	return res;
-+}
-+
-+static void xconn_clear_props(xcb_connection_t *c,xcb_window_t w)
-+{
-+	xcb_list_properties_cookie_t cookie;
-+	xcb_list_properties_reply_t *reply;
-+	xcb_atom_t *atoms;
-+	int i,len;
-+	xcb_atom_t temp[16];
-+	int temp_len=0;
-+	cookie=xcb_list_properties(c,w);
-+	reply=xcb_list_properties_reply(c,cookie,NULL);
-+	if(!reply)
-+		return;
-+	len=xcb_list_properties_atoms_length(reply);
-+	atoms=xcb_list_properties_atoms(reply);
-+	for(i=0;i<len;i++)
-+	{
-+		int prop=atoms[i];
-+		//if(prop<=68)
-+		//	continue;
-+		char *name=xconn_atom_name(c,prop);
-+		if(!name)
-+			break;
-+		if(!strcmp(name,"PULSE_SERVER") ||
-+			!strcmp(name,"PULSE_COOKIE"))
-+		{
-+			temp[temp_len++]=prop;
-+		}
-+		free(name);
-+	}
-+	free(reply);
-+	for(i=0;i<temp_len;i++)
-+	{
-+		xcb_delete_property_checked(c,w,temp[i]);
-+	}
-+}
-+
- #endif
- 
- void xconn_clean(xconn_t c)
- {
--#if 0
-+#if 1
- 	xcb_query_tree_cookie_t wintree;
- 	xcb_query_tree_reply_t *rep;
- 	xcb_window_t *children;
-@@ -201,6 +261,7 @@ void xconn_clean(xconn_t c)
- 	for(i=0;i<len;i++)
- 		xcb_kill_client(c->c,children[i]);
- 	free(rep);
-+	xconn_clear_props(c->c,root);
- 	xcb_flush(c->c);
- #endif
- }



More information about the arch-commits mailing list