diff --git a/net-misc/xrdp/Manifest b/net-misc/xrdp/Manifest new file mode 100644 index 0000000..2b77ceb --- /dev/null +++ b/net-misc/xrdp/Manifest @@ -0,0 +1,17 @@ +AUX startwm.sh 203 RMD160 6258cb60cb90913a77268657e8427348034b885b SHA1 4bdd9f00fc3c3fb32068b4b50e3e372366801285 SHA256 436cef06a851176e18011dc67549c232d1edf865e1380e31f65ad62f2ae95b5d +AUX xrdp-0.3.1-curdir.patch 1802 RMD160 b1726e31b289897635d6272c03f67ca66ef7d686 SHA1 5ea79e39c55228f3375952e1c1af3da28f61adf2 SHA256 01daf21be042c10a1df9ba88d6b54c5b9de4755f0cb876be887c0a804e70edfa +AUX xrdp-0.3.1-respect-cflags.patch 2727 RMD160 fd9ac0b99d619c01eb3f311dd5e3dcd2f9b7c350 SHA1 c314dadbe7e92ba13e4c770bab83d40732400e8b SHA256 205f491018875666f7b44bce241d9a37308a947c2336bb73102a50fb4c44f2f7 +AUX xrdp-0.4.1-curdir.patch 1871 RMD160 5621d4a59d0956e1435ae0ad9037a5d6f2885ff9 SHA1 0bc5273020d8d44e2dd962d0045790ad61d1c72a SHA256 1f8c2b573969493137649c8f40a0777f7af3017ddeeca93c1290a16cd5e72c48 +AUX xrdp-9999-001-sandbox-violation.patch 527 RMD160 578e53d53b7bebdbaa1771a049acb93155e8c98c SHA1 77e4a32ba69b96a5d440aaa36dd160b34c74d6b2 SHA256 fb9a6c3b86d4cc4d4953fe1f553a6cd4c040aae4b9676916dd4207804de07a32 +AUX xrdp-9999-001-sandbox-violation.patch.old 610 RMD160 b52a294eb6c081bde0a55fcd40e1642600fd4f01 SHA1 1b8b1c90b09e17d81f91b000a892a37afcbc978b SHA256 562c10213d5907cdb9060b0a38b1b9d17e05e1bdc59d195189bff212e1da5c24 +AUX xrdp-9999-002-sesrun-config.patch 283 RMD160 c9255630d9e406932fc806f57de4ebeacdb8d4cb SHA1 50f9c783507e230954c148db9521f1b0f64f093e SHA256 c8f47f3c1bc542a240663f9966876240c029a7ef54f017ea60a2cb7e53f4dd48 +AUX xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch 2994 RMD160 0d3c80421df5c48eda6e30259ea720a4d311f0ef SHA1 5e3247c7ab8c7bc60acc4b87b8d9b57bf8d3fe2a SHA256 e6c45d5c23ea56023c2a994d3d8559ca81db3df60b519e2e7d071a8221af0c7c +AUX xrdp-9999-004-ignore-client-auth-on-preset.patch 1638 RMD160 2bd74ce780102f40b9b04245dd6ab9bee644aaca SHA1 d7ee4f195d015a6f41c93e70b4783df9081ffacf SHA256 e7f59b3f0ad1b4cdac588adbe856a7a120d9654db595297998b6efeb8b17edbb +AUX xrdp-confd 140 RMD160 c04cd60eff7d3f5de1427ce87bc1f34b4befefe3 SHA1 e0c4a8b089f1e556c3fcd42c5c42327c24bc3634 SHA256 f25c9c409096f71ab2d66d8ee2de47702456367d7a25efeb8ec3b3a84ff7cf4f +AUX xrdp-confd-cvs 140 RMD160 c04cd60eff7d3f5de1427ce87bc1f34b4befefe3 SHA1 e0c4a8b089f1e556c3fcd42c5c42327c24bc3634 SHA256 f25c9c409096f71ab2d66d8ee2de47702456367d7a25efeb8ec3b3a84ff7cf4f +AUX xrdp-initd 979 RMD160 1040d4145236de910892d479b564e6157d584c13 SHA1 b147ccd38c6d9cfd1b26d4c6f8851836678dadb2 SHA256 a5e36c24c93ab813d0fe91d1edcb0199d159a09a0b76b3f11026991dd1201c41 +AUX xrdp-initd-cvs 980 RMD160 f2a8f51cc61b43508a33b225caba08f9514eba05 SHA1 190a08c8caeafe7f8438be6ee1ad16843b304278 SHA256 0bde93136b99dca72ecdb6f90fa99191d09b61bf27589df2ba9dac130b5175e0 +AUX xrdp.ini 653 RMD160 56c6b292e5040027dd1b471384a1f2cfe890dd47 SHA1 1c4ece0db4a8c82cbab09ba4edb336a2e9426c5e SHA256 83900d328d01994da3c8aab1d4d0f01c77c60cbf2f56576330daa02d65007633 +DIST xrdp-0.4.1.tar.gz 238850 RMD160 67e3bbeeed13e491bf626efd80bf25c4b59f87f9 SHA1 bbe320c049c47c28d3250627ad72481215a8763e SHA256 275cb009cb837c5d59a0d1a2d062d137c8d8ed781cfc699d59ff5452891c18f0 +EBUILD xrdp-0.4.1.ebuild 1738 RMD160 35a60641c3555a4e200224649bb19038906b75ac SHA1 897b42f0a7bcc1f4b0101d6b3ab666e74427c614 SHA256 a964db7161ea0f0bd3a69a577009dda06b0dd6053533136a01f4187100e5e15a +EBUILD xrdp-9999.ebuild 2669 RMD160 93eb277cc1d369e2553e6d33b41e4637e4dcbb95 SHA1 73a1ef4c57bf1156ece03603462dcf73ddc1f088 SHA256 a48755e5912cf0ab4961be8d50d5a43966e6c9ab64a2ca790f8d7eb566602c49 diff --git a/net-misc/xrdp/files/startwm.sh b/net-misc/xrdp/files/startwm.sh new file mode 100644 index 0000000..21d0a08 --- /dev/null +++ b/net-misc/xrdp/files/startwm.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# use the gentoo startDM to start the default WM +# +# see /usr/share/doc/xrdp-version/startwm.sh for the factory version of this +# script. +source /etc/rc.conf + +/etc/X11/Sessions/"${XSESSION}" diff --git a/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch b/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch new file mode 100644 index 0000000..23879b9 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch @@ -0,0 +1,50 @@ +diff -ur xrdp-0.3.1.orig/sesman/Makefile xrdp-0.3.1/sesman/Makefile +--- xrdp-0.3.1.orig/sesman/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/Makefile 2006-08-01 20:48:52.000000000 -0400 +@@ -13,7 +13,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ +- -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" ++ -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" \ ++ -DSESMAN_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common $(DEFINES) + LDFLAGS = -L /usr/gnu/lib $(DEFINES) +diff -ur xrdp-0.3.1.orig/sesman/sesman.c xrdp-0.3.1/sesman/sesman.c +--- xrdp-0.3.1.orig/sesman/sesman.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/sesman.c 2006-08-01 20:48:15.000000000 -0400 +@@ -137,6 +137,8 @@ + int pid; + char pid_s[8]; + ++ chdir(SESMAN_DESTDIR); ++ + if (1 == argc) + { + /* no options on command line. normal startup */ +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 19:56:15.000000000 -0400 +@@ -12,7 +12,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ +- -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" ++ -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" \ ++ -DXRDP_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG +diff -ur xrdp-0.3.1.orig/xrdp/xrdp.c xrdp-0.3.1/xrdp/xrdp.c +--- xrdp-0.3.1.orig/xrdp/xrdp.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/xrdp.c 2006-08-01 19:55:45.000000000 -0400 +@@ -291,6 +291,8 @@ + char text[32]; + #endif + ++ chdir(XRDP_DESTDIR); ++ + /* check compiled endian with actual endian */ + test = 1; + host_be = !((int)(*(unsigned char*)(&test))); diff --git a/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch b/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch new file mode 100644 index 0000000..4ed1271 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch @@ -0,0 +1,72 @@ +diff -ur xrdp-0.3.1.orig/libxrdp/Makefile xrdp-0.3.1/libxrdp/Makefile +--- xrdp-0.3.1.orig/libxrdp/Makefile 2006-03-12 19:58:12.000000000 -0500 ++++ xrdp-0.3.1/libxrdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -13,7 +13,7 @@ + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ + -DXRDP_KEY_FILE=\"$(CFGDIR)/rsakeys.ini\" + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared +diff -ur xrdp-0.3.1.orig/rdp/Makefile xrdp-0.3.1/rdp/Makefile +--- xrdp-0.3.1.orig/rdp/Makefile 2006-03-03 20:02:04.000000000 -0500 ++++ xrdp-0.3.1/rdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -10,7 +10,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared +diff -ur xrdp-0.3.1.orig/sesman/Makefile xrdp-0.3.1/sesman/Makefile +--- xrdp-0.3.1.orig/sesman/Makefile 2006-05-26 09:10:14.000000000 -0400 ++++ xrdp-0.3.1/sesman/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -15,7 +15,7 @@ + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ + -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" + +-CFLAGS = -Wall -O2 -I../common $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common $(DEFINES) + LDFLAGS = -L /usr/gnu/lib $(DEFINES) + C_OS_FLAGS = $(CFLAGS) -c + CC = gcc +diff -ur xrdp-0.3.1.orig/vnc/Makefile xrdp-0.3.1/vnc/Makefile +--- xrdp-0.3.1.orig/vnc/Makefile 2006-03-03 20:02:06.000000000 -0500 ++++ xrdp-0.3.1/vnc/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -9,7 +9,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared + LIBS = -ldl +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-03-03 20:02:08.000000000 -0500 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -14,7 +14,7 @@ + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ + -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" + +-CFLAGS = -Wall -O2 -I../common -I../libxrdp $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -L/usr/gnu/lib -L../libxrdp -Wl,-rpath,. +diff -ur xrdp-0.3.1.orig/xup/Makefile xrdp-0.3.1/xup/Makefile +--- xrdp-0.3.1.orig/xup/Makefile 2006-03-03 20:02:09.000000000 -0500 ++++ xrdp-0.3.1/xup/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -9,7 +9,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared diff --git a/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch b/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch new file mode 100644 index 0000000..538c9a0 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch @@ -0,0 +1,50 @@ +diff -ur xrdp-0.4.0.orig/sesman/Makefile xrdp-0.4.0/sesman/Makefile +--- xrdp-0.4.0.orig/sesman/Makefile 2008-04-02 15:43:01.000000000 +0200 ++++ xrdp-0.4.0/sesman/Makefile 2008-04-02 16:08:34.000000000 +0200 +@@ -14,7 +14,8 @@ + + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ + -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" \ +- -DSESMAN_SESSVC_FILE=\"sessvc\" ++ -DSESMAN_SESSVC_FILE=\"sessvc\" \ ++ -DSESMAN_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I/usr/include/nptl -I./libscp $(DEFINES) + LDFLAGS = -L/usr/gnu/lib -L/usr/lib/nptl -L./libscp -Wl,-rpath,. -lpthread -ldl -lscp +diff -ur xrdp-0.3.1.orig/sesman/sesman.c xrdp-0.3.1/sesman/sesman.c +--- xrdp-0.3.1.orig/sesman/sesman.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/sesman.c 2006-08-01 20:48:15.000000000 -0400 +@@ -137,6 +137,8 @@ + int pid; + char pid_s[8]; + ++ chdir(SESMAN_DESTDIR); ++ + if (1 == argc) + { + /* no options on command line. normal startup */ +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 19:56:15.000000000 -0400 +@@ -12,7 +12,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ +- -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" ++ -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" \ ++ -DXRDP_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG +diff -ur xrdp-0.3.1.orig/xrdp/xrdp.c xrdp-0.3.1/xrdp/xrdp.c +--- xrdp-0.3.1.orig/xrdp/xrdp.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/xrdp.c 2006-08-01 19:55:45.000000000 -0400 +@@ -291,6 +291,8 @@ + char text[32]; + #endif + ++ chdir(XRDP_DESTDIR); ++ + /* check compiled endian with actual endian */ + test = 1; + host_be = !((int)(*(unsigned char*)(&test))); diff --git a/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch new file mode 100644 index 0000000..7bedefe --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch @@ -0,0 +1,8 @@ +--- xrdp/instfiles/Makefile.am.orig 2009-09-22 18:01:52.000000000 +0400 ++++ xrdp/instfiles/Makefile.am 2009-09-22 18:02:14.000000000 +0400 +@@ -17,3 +17,5 @@ + # if [ -w /etc/init.d ]; then rm -f /etc/init.d/xrdp.sh; fi + # if [ -w /etc/init.d ]; then $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh /etc/init.d/xrdp.sh; fi + # $(DESTDIR)$(bindir)/xrdp-keygen xrdp $(DESTDIR)$(sysconfdir)/xrdp/rsakeys.ini ++ mkdir -p $(DESTDIR)$(sysconfdir)/init.d ++ $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh $(DESTDIR)$(sysconfdir)/init.d/xrdp.sh diff --git a/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old new file mode 100644 index 0000000..20ad586 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old @@ -0,0 +1,11 @@ +--- xrdp/instfiles/Makefile.am~ 2009-05-13 01:28:31.000000000 +0930 ++++ xrdp/instfiles/Makefile.am 2009-05-13 01:29:57.033945790 +0930 +@@ -10,6 +10,5 @@ + # must be tab below + install-data-hook: + chmod 755 $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh +- if [ -w /etc/init.d ]; then rm -f /etc/init.d/xrdp.sh; fi +- if [ -w /etc/init.d ]; then $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh /etc/init.d/xrdp.sh; fi +- $(DESTDIR)$(bindir)/xrdp-keygen xrdp $(DESTDIR)$(sysconfdir)/xrdp/rsakeys.ini ++ mkdir -p $(DESTDIR)$(sysconfdir)/init.d ++ $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh $(DESTDIR)$(sysconfdir)/init.d/xrdp.sh diff --git a/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch b/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch new file mode 100644 index 0000000..b738ac9 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch @@ -0,0 +1,12 @@ +--- xrdp/sesman/tools/Makefile.am.orig 2009-05-13 02:56:04.393945494 +0930 ++++ xrdp/sesman/tools/Makefile.am 2009-05-13 02:56:14.697945849 +0930 +@@ -10,8 +10,8 @@ + + xrdp_sesrun_SOURCES = \ + sesrun.c \ + tcp.c \ +- config.c ++ ../config.c + + xrdp_sestest_SOURCES = \ + sestest.c diff --git a/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch b/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch new file mode 100644 index 0000000..4df55a1 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch @@ -0,0 +1,85 @@ +--- xrdp/xrdp/xrdp_login_wnd.c.orig 2009-05-28 19:26:05.000000000 +0930 ++++ xrdp/xrdp/xrdp_login_wnd.c 2009-05-28 19:30:37.000000000 +0930 +@@ -386,6 +386,8 @@ + int fd; + int i; + int j; ++ int k = 0; // real number of the items in the list ++ int h = 0; // is the current item hidden? + char* p; + char* q; + char* r; +@@ -411,26 +413,58 @@ + } + else + { +- g_strncpy(name, p, 255); +- mod_data = (struct xrdp_mod_data*) +- g_malloc(sizeof(struct xrdp_mod_data), 1); +- mod_data->names = list_create(); +- mod_data->names->auto_free = 1; +- mod_data->values = list_create(); +- mod_data->values->auto_free = 1; +- for (j = 0; j < section_names->count; j++) +- { ++ // check to see if this is a hidden item ++ // do this early so we don't need to mess around freeing memory ++ for (j = 0; j < section_names->count; j++) { + q = (char*)list_get_item(section_names, j); + r = (char*)list_get_item(section_values, j); +- if (g_strncmp("name", q, 255) == 0) ++ if (g_strncmp("hidden", q, 255) == 0) + { +- g_strncpy(name, r, 255); ++ if (g_strncmp("yes", r, 255) == 0) { ++ h = 1; ++ break; ++ } + } +- list_add_item(mod_data->names, (long)g_strdup(q)); +- list_add_item(mod_data->values, (long)g_strdup(r)); + } +- list_add_item(b->string_list, (long)g_strdup(name)); +- list_add_item(b->data_list, (long)mod_data); ++ ++ if (h == 1) { ++ // yup, hidden, reset state ++ h = 0; ++ } else { ++ // not hidden ++ g_strncpy(name, p, 255); ++ mod_data = (struct xrdp_mod_data*) ++ g_malloc(sizeof(struct xrdp_mod_data), 1); ++ mod_data->names = list_create(); ++ mod_data->names->auto_free = 1; ++ mod_data->values = list_create(); ++ mod_data->values->auto_free = 1; ++ for (j = 0; j < section_names->count; j++) ++ { ++ q = (char*)list_get_item(section_names, j); ++ r = (char*)list_get_item(section_values, j); ++ if (g_strncmp("name", q, 255) == 0) ++ { ++ g_strncpy(name, r, 255); ++ } ++ list_add_item(mod_data->names, (long)g_strdup(q)); ++ list_add_item(mod_data->values, (long)g_strdup(r)); ++ } ++ ++ list_add_item(b->string_list, (long)g_strdup(name)); ++ list_add_item(b->data_list, (long)mod_data); ++ ++ if (g_strncmp(self->session->client_info->domain, p, 255) == 0) { ++ // "domain" matches this module's name. change the default selected item to this. ++ // normally this only applies to autologin. now this applies it in non-auto mode ++ // ++ // we can't use (i) here as that is the index of the section in the ini, not the index of ++ // the current item in the combobox. ++ b->item_index = k; ++ } ++ ++ k++; ++ } + } + } + g_file_close(fd); diff --git a/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch b/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch new file mode 100644 index 0000000..b6688c2 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch @@ -0,0 +1,35 @@ +--- xrdp/xrdp/xrdp_wm.c.orig 2009-05-28 18:41:18.000000000 +0930 ++++ xrdp/xrdp/xrdp_wm.c 2009-05-28 18:44:55.000000000 +0930 +@@ -412,14 +412,30 @@ + if (g_strncmp("password", q, 255) == 0) + { + list_add_item(self->mm->login_names, (long)g_strdup("password")); +- list_add_item(self->mm->login_values, ++ if (g_strncmp("ask", r, 255) != 0) { ++ // the password has been manually set in the config, use that ++ // instead of what the client says. ++ list_add_item(self->mm->login_values, (long)g_strdup(r)); ++ } else { ++ // the password has been asked for by the module, use what the ++ // client says. ++ list_add_item(self->mm->login_values, + (long)g_strdup(self->session->client_info->password)); ++ } + } + else if (g_strncmp("username", q, 255) == 0) + { + list_add_item(self->mm->login_names, (long)g_strdup("username")); +- list_add_item(self->mm->login_values, ++ if (g_strncmp("ask", r, 255) != 0) { ++ // the username has been manually set in the config, user that ++ // instead of what the client says. ++ list_add_item(self->mm->login_values, (long)g_strdup(r)); ++ } else { ++ // the username has been asked for by the module, use what the ++ // client says. ++ list_add_item(self->mm->login_values, + (long)g_strdup(self->session->client_info->username)); ++ } + } + else + { diff --git a/net-misc/xrdp/files/xrdp-confd b/net-misc/xrdp/files/xrdp-confd new file mode 100644 index 0000000..a1b7f14 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-confd @@ -0,0 +1,5 @@ +# /etc/conf.d/xrdp + +# logfile locations for xrdp and sesman +XRDP_LOGFILE="/var/log/xrdp/xrdp.log" +SESMAN_LOGFILE="/var/log/xrdp/sesman.log" diff --git a/net-misc/xrdp/files/xrdp-confd-cvs b/net-misc/xrdp/files/xrdp-confd-cvs new file mode 100644 index 0000000..a1b7f14 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-confd-cvs @@ -0,0 +1,5 @@ +# /etc/conf.d/xrdp + +# logfile locations for xrdp and sesman +XRDP_LOGFILE="/var/log/xrdp/xrdp.log" +SESMAN_LOGFILE="/var/log/xrdp/sesman.log" diff --git a/net-misc/xrdp/files/xrdp-initd b/net-misc/xrdp/files/xrdp-initd new file mode 100644 index 0000000..20b2535 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-initd @@ -0,0 +1,36 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/files/xrdp-initd,v 1.1 2006/08/02 00:58:36 chutzpah Exp $ + +depend() { + use net logger +} + +start() { + cd /usr/LIBDIR/xrdp + ebegin "Starting X remote desktop daemon" + start-stop-daemon --start --pidfile /var/run/xrdp.pid --exec /usr/LIBDIR/xrdp/xrdp -- >> ${XRDP_LOGFILE} + ret=${?} + eend ${ret} + [[ ${ret} != 0 ]] && return ${ret} + + ebegin "Starting remote desktop session manager" + start-stop-daemon --start --pidfile /var/run/sesman.pid --exec /usr/LIBDIR/xrdp/sesman >> ${SESMAN_LOGFILE} + ret=${?} + eend ${ret} + return ${ret} +} + +stop() { + ebegin "Stopping X remote desktop daemon" + start-stop-daemon --stop --pidfile /var/run/xrdp.pid + ret=${?} + eend ${ret} + + ebegin "Stopping remote desktop session manager" + start-stop-daemon --stop --pidfile /var/run/sesman.pid + ret=${?} + eend ${ret} + return ${ret} +} diff --git a/net-misc/xrdp/files/xrdp-initd-cvs b/net-misc/xrdp/files/xrdp-initd-cvs new file mode 100644 index 0000000..def52a5 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-initd-cvs @@ -0,0 +1,36 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/files/xrdp-initd,v 1.1 2006/08/02 00:58:36 chutzpah Exp $ + +depend() { + use net logger +} + +start() { + cd /usr/LIBDIR/xrdp + ebegin "Starting X remote desktop daemon" + start-stop-daemon --start --pidfile /var/run/xrdp.pid --exec /usr/sbin/xrdp -- >> ${XRDP_LOGFILE} + ret=${?} + eend ${ret} + [[ ${ret} != 0 ]] && return ${ret} + + ebegin "Starting remote desktop session manager" + start-stop-daemon --start --pidfile /var/run/xrdp-sesman.pid --exec /usr/sbin/xrdp-sesman >> ${SESMAN_LOGFILE} + ret=${?} + eend ${ret} + return ${ret} +} + +stop() { + ebegin "Stopping X remote desktop daemon" + start-stop-daemon --stop --pidfile /var/run/xrdp.pid + ret=${?} + eend ${ret} + + ebegin "Stopping remote desktop session manager" + start-stop-daemon --stop --pidfile /var/run/xrdp-sesman.pid + ret=${?} + eend ${ret} + return ${ret} +} diff --git a/net-misc/xrdp/files/xrdp.ini b/net-misc/xrdp/files/xrdp.ini new file mode 100644 index 0000000..4b35044 --- /dev/null +++ b/net-misc/xrdp/files/xrdp.ini @@ -0,0 +1,53 @@ + +[globals] +bitmap_cache=yes +bitmap_compression=yes +port=3389 +crypt_level=low +channel_code=1 + +[xrdp1] +name=sesman-Xvnc +lib=/usr/lib/xrdp/libvnc.so +username=ask +password=ask +ip=127.0.0.1 +port=-1 + +[xrdp2] +name=console +lib=/usr/lib/xrdp/libvnc.so +ip=127.0.0.1 +port=5900 +username=na +password=ask + +[xrdp3] +name=vnc-any +lib=/usr/lib/xrdp/libvnc.so +ip=ask +port=ask5900 +username=na +password=ask + +[xrdp4] +name=sesman-any +lib=/usr/lib/xrdp/libvnc.so +ip=ask +port=-1 +username=ask +password=ask + +[xrdp5] +name=rdp-any +lib=/usr/lib/xrdp/librdp.so +ip=ask +port=ask3389 + +[xrdp6] +name=sesman-X11rdp +lib=/usr/lib/xrdp/libxup.so +username=ask +password=ask +ip=127.0.0.1 +port=-1 diff --git a/net-misc/xrdp/xrdp-0.4.1.ebuild b/net-misc/xrdp/xrdp-0.4.1.ebuild new file mode 100644 index 0000000..5f491ae --- /dev/null +++ b/net-misc/xrdp/xrdp-0.4.1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/xrdp-0.4.1.ebuild,v 1.1 2009/03/01 15:09:11 patrick Exp $ + +EAPI="2" + +inherit eutils multilib + +DESCRIPTION="An open source remote desktop protocol(rdp) server." +HOMEPAGE="http://xrdp.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="" + +DEPEND="sys-libs/pam" +RDEPEND="${DEPEND} + || ( net-misc/vnc[server] net-misc/tightvnc x11-misc/x11vnc )" + +DESTDIR="/usr/$(get_libdir)/${PN}" + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/${P}-curdir.patch" + + # fix cflags, broken paths, multilib, and insecure rpath in all makefiles + for MAKE in $(find . -name Makefile) ; do + sed -i "s:CFLAGS = -Wall -O. :CFLAGS += : + s:/usr/xrdp:${DESTDIR}:g + s:/usr/lib/:/usr/$(get_libdir)/:g + s:rpath,\.:rpath,${DESTDIR}:g" ${MAKE} + done + + sed -i '/instfiles\/xrdp_control1.sh/ d' Makefile +} + +src_compile() { + emake -j1 DESTDIR="${DESTDIR}" || die "emake failed" +} + +src_install() { + emake -j1 DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + emake -j1 -C sesman/tools DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + emake -j1 -C sesman/libscp DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + dodoc design.txt readme.txt sesman/startwm.sh + doman "${D}/usr/man/"*/* + keepdir /var/log/${PN} + rm -rf "${D}${DESTDIR}/startwm.sh" "${D}/usr/man" + exeinto "${DESTDIR}" + doexe "${FILESDIR}/startwm.sh" + doexe "sesman/sessvc" + newinitd "${FILESDIR}/${PN}-initd" ${PN} + newconfd "${FILESDIR}/${PN}-confd" ${PN} + sed -i "s:LIBDIR:$(get_libdir):" "${D}/etc/init.d/${PN}" +} diff --git a/net-misc/xrdp/xrdp-9999.ebuild b/net-misc/xrdp/xrdp-9999.ebuild new file mode 100644 index 0000000..553359f --- /dev/null +++ b/net-misc/xrdp/xrdp-9999.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id $ + +EAPI="2" + +inherit eutils multilib cvs + +DESCRIPTION="An open source remote desktop protocol(rdp) server." +HOMEPAGE="http://xrdp.sourceforge.net/" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="" + +DEPEND="sys-libs/pam" +RDEPEND="${DEPEND} + || ( x11-misc/x11vnc net-misc/vnc[server] net-misc/tightvnc )" + +DESTDIR="/usr/$(get_libdir)/${PN}" + +src_unpack() { + ECVS_SERVER="xrdp.cvs.sourceforge.net:/cvsroot/xrdp" + ECVS_USER="anonymous" + ECVS_PASS="" + ECVS_AUTH="pserver" + ECVS_MODULE="xrdp" + ECVS_LOCALNAME="xrdp" + + S="${WORKDIR}/${ECVS_LOCALNAME}" + + cvs_src_unpack + cd "${S}" + + # fix makefile problem in sesrun + epatch "${FILESDIR}/xrdp-9999-002-sesrun-config.patch" + + # fix sandbox security violation issues + epatch "${FILESDIR}/xrdp-9999-001-sandbox-violation.patch" + + # domain as module name non-auto fix, and hidden modules patch + epatch "${FILESDIR}/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch" + + # ignore client auth when module has preset + # No longer required as it has been merged into CVS HEAD + # xrdp/xrdp/xrdp_wm.c r1.63, Thu May 28 21:01:01 2009 UTC + #epatch "${FILESDIR}/xrdp-9999-004-ignore-client-auth-on-preset.patch" + + autoreconf -fvi + + # fix cflags, broken paths, multilib, and insecure rpath in all makefiles + for MAKE in $(find . -name Makefile) ; do + sed -i "s:CFLAGS = -Wall -O. :CFLAGS += : + s:/usr/xrdp:${DESTDIR}:g + s:/usr/lib/:/usr/$(get_libdir)/:g + s:rpath,\.:rpath,${DESTDIR}:g" ${MAKE} + done + + #sed -i '/instfiles\/xrdp_control1.sh/ d' Makefile +} + +src_configure() { + econf --localstatedir=/var || die "econf failed" +} + +src_compile() { + emake -j1 DESTDIR="${DESTDIR}" || die "emake failed" +} + +src_install() { + emake -j1 DESTDIR="${D}" install || die "emake install failed" + emake -j1 -C sesman/tools DESTDIR="${D}" install || die "emake install failed" + emake -j1 -C sesman/libscp DESTDIR="${D}" install || die "emake install failed" + dodoc design.txt readme.txt sesman/startwm.sh + doman "${D}/usr/share/man/"*/* + keepdir /var/log/${PN} + rm -f "${D}/etc/xrdp/xrdp.sh" "${D}/etc/init.d/xrdp.sh" + cp "${FILESDIR}/startwm.sh" "${D}/etc/xrdp/" + cp -f "${FILESDIR}/xrdp.ini" "${D}/etc/xrdp/" + chmod 755 "${D}/etc/xrdp/startwm.sh" + newinitd "${FILESDIR}/${PN}-initd-cvs" ${PN} + newconfd "${FILESDIR}/${PN}-confd-cvs" ${PN} + sed -i "s:LIBDIR:$(get_libdir):" "${D}/etc/init.d/${PN}" +} + +pkg_postinst() { + # generate a new rsa key if needed + if [ ! -e "/etc/xrdp/rsakeys.ini" ] ; then + elog "Generating xrdp keys..." + xrdp-keygen xrdp /etc/xrdp/rsakeys.ini + fi +}