[packages/xrdp] - up to 0.6.1 - fix format string errors - fix build with heimdal krb5 - other small fixes - updated
baggins
baggins at pld-linux.org
Sat Dec 7 21:10:44 CET 2013
commit f36b3e916c91491683e301080d9dd8b8ec07f853
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Dec 7 21:09:24 2013 +0100
- up to 0.6.1
- fix format string errors
- fix build with heimdal krb5
- other small fixes
- updated configs and init script
build.patch | 11 +++++
format-security.patch | 11 +++++
heimdal.patch | 42 ++++++++++++++++++
link.patch | 9 ++++
xrdp-make.patch | 12 -----
xrdp-paths.patch | 50 ---------------------
xrdp-signals.patch | 12 -----
xrdp.init | 18 ++++----
xrdp.sesman.ini | 8 ++++
xrdp.spec | 121 +++++++++++++++++++++++++++++---------------------
xrdp.xrdp.ini | 19 ++++++++
11 files changed, 180 insertions(+), 133 deletions(-)
---
diff --git a/xrdp.spec b/xrdp.spec
index dcfde57..aa654d7 100644
--- a/xrdp.spec
+++ b/xrdp.spec
@@ -1,32 +1,34 @@
-# NOTE:
-# - xrdp-signals.patch has been applied upstream in CVS, so it should be
-# removed for xrdp > 0.4.1
-#
Summary: Remote desktop server
Summary(pl.UTF-8): Serwer remote desktop
Name: xrdp
-Version: 0.4.2
+Version: 0.6.1
Release: 1
License: GPL
Group: X11/Applications/Networking
-Source0: http://dl.sourceforge.net/xrdp/%{name}-%{version}.tar.gz
-# Source0-md5: e2eecc2a383e77e6cb087e837c4d4c10
+Source0: http://download.sourceforge.net/xrdp/%{name}-v%{version}.tar.gz
+# Source0-md5: 26099c6588943262023607c1b4e774d8
Source1: %{name}.init
Source2: %{name}.pamd
Source3: %{name}.xrdp.ini
Source4: %{name}.sesman.ini
Source5: %{name}.README.PLD
Source6: %{name}.README.PLD.pl
-Patch0: %{name}-paths.patch
-Patch1: %{name}-make.patch
-Patch2: %{name}-signals.patch
+Patch0: format-security.patch
+Patch1: build.patch
+Patch2: heimdal.patch
+Patch3: link.patch
URL: http://xrdp.sourceforge.net/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: freerdp-devel
+BuildRequires: heimdal-devel >= 1.5.3-4
+BuildRequires: libtool
BuildRequires: openssl-devel
BuildRequires: pam-devel
BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
+Requires: /usr/bin/Xvnc
Requires: rc-scripts
-Requires: tightvnc-server
Requires: xinitrc-ng
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -48,51 +50,40 @@ klientami protokołu rdp Microsoftu.
xrdp używa jako backendu Xvnc lub X11rdp.
%prep
-%setup -q
+%setup -q -n %{name}-v%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
install %{SOURCE5} README.PLD
install %{SOURCE6} README.PLD.pl
awk '{gsub("LIBDIR","%{_libdir}"); print}' < %{SOURCE3} > xrdp.ini
%build
-%{__make} \
- CC="%{__cc}"
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+export CFLAGS="%{rpmcflags} -DHEIMDAL"
+%configure \
+ --enable-kerberos \
+ --enable-freerdp1
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_libdir}/xrdp,%{_sbindir},%{_docdir},%{_localstatedir}/run,%{_datadir}/%{name}} \
- $RPM_BUILD_ROOT%{_mandir}/man{5,8} \
- $RPM_BUILD_ROOT%{_sysconfdir}/{%{name},pam.d,rc.d/init.d} \
- $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{%{name},pam.d,rc.d/init.d}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/xrdp
install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/sesman
install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/sesman.ini
-install xrdp.ini $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/xrdp.ini
-install libxrdp/libxrdp.so $RPM_BUILD_ROOT%{_libdir}/libxrdp.so
-install rdp/librdp.so $RPM_BUILD_ROOT%{_libdir}/xrdp/librdp.so
-install sesman/sessvc $RPM_BUILD_ROOT%{_sbindir}/sessvc
-install sesman/sesman $RPM_BUILD_ROOT%{_sbindir}/sesman
-install sesman/startwm.sh $RPM_BUILD_ROOT%{_sbindir}/startwm.sh
-install sesman/libscp/libscp.so $RPM_BUILD_ROOT%{_libdir}/libscp.so
-install sesman/tools/sesrun $RPM_BUILD_ROOT%{_sbindir}/sesrun
-install sesman/tools/sestest $RPM_BUILD_ROOT%{_sbindir}/sestest
-install vnc/libvnc.so $RPM_BUILD_ROOT%{_libdir}/xrdp/libvnc.so
-install xrdp/xrdp $RPM_BUILD_ROOT%{_sbindir}/xrdp
-install xrdp/ad256.bmp $RPM_BUILD_ROOT%{_datadir}/%{name}/ad256.bmp
-install xrdp/xrdp256.bmp $RPM_BUILD_ROOT%{_datadir}/%{name}/xrdp256.bmp
-install xrdp/cursor0.cur $RPM_BUILD_ROOT%{_datadir}/%{name}/cursor0.cur
-install xrdp/cursor1.cur $RPM_BUILD_ROOT%{_datadir}/%{name}/cursor1.cur
-install xrdp/Tahoma-10.fv1 $RPM_BUILD_ROOT%{_datadir}/%{name}/Tahoma-10.fv1
-install xrdp/rsakeys.ini $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/rsakeys.ini
-install xup/libxup.so $RPM_BUILD_ROOT%{_libdir}/xrdp/libxup.so
-install docs/man/sesman.8 $RPM_BUILD_ROOT%{_mandir}/man8/sesman.8
-install docs/man/sesrun.8 $RPM_BUILD_ROOT%{_mandir}/man8/sesrun.8
-install docs/man/xrdp.8 $RPM_BUILD_ROOT%{_mandir}/man8/xrdp.8
-install docs/man/sesman.ini.5 $RPM_BUILD_ROOT%{_mandir}/man5/sesman.ini.5
-install docs/man/xrdp.ini.5 $RPM_BUILD_ROOT%{_mandir}/man5/xrdp.ini.5
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/lib*.{a,la,so}
%post
/sbin/ldconfig
@@ -116,17 +107,47 @@ rm -rf $RPM_BUILD_ROOT
%doc *.txt
%doc README.PLD
%doc README.PLD.pl
-%dir %{_sysconfdir}/%{name}
-%dir %{_localstatedir}/run
-%{_libdir}/libscp.so
-%{_libdir}/libxrdp.so
-%{_libdir}/xrdp
-%{_datadir}/xrdp
-%attr(755,root,root) %{_sbindir}/*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/sesman
%attr(754,root,root) /etc/rc.d/init.d/xrdp
+%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/xrdp.ini
%config(noreplace) %{_sysconfdir}/%{name}/rsakeys.ini
%config(noreplace) %{_sysconfdir}/%{name}/sesman.ini
-%{_mandir}/man8/*
-%{_mandir}/man5/*
+%{_sysconfdir}/%{name}/km-0407.ini
+%{_sysconfdir}/%{name}/km-0409.ini
+%{_sysconfdir}/%{name}/km-040c.ini
+%{_sysconfdir}/%{name}/km-0410.ini
+%{_sysconfdir}/%{name}/km-0419.ini
+%{_sysconfdir}/%{name}/km-041d.ini
+%attr(755,root,root) %{_bindir}/xrdp-dis
+%attr(755,root,root) %{_bindir}/xrdp-genkeymap
+%attr(755,root,root) %{_bindir}/xrdp-keygen
+%attr(755,root,root) %{_bindir}/xrdp-sesadmin
+%attr(755,root,root) %{_bindir}/xrdp-sesrun
+%attr(755,root,root) %{_bindir}/xrdp-sestest
+%attr(755,root,root) %{_sbindir}/xrdp
+%attr(755,root,root) %{_sbindir}/xrdp-chansrv
+%attr(755,root,root) %{_sbindir}/xrdp-sesman
+%attr(755,root,root) %{_sbindir}/xrdp-sessvc
+%dir %{_libdir}/xrdp
+%attr(755,root,root) %{_libdir}/xrdp/libcommon.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libmc.so.*
+%attr(755,root,root) %{_libdir}/xrdp/librdp.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libscp.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libvnc.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libxrdp.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libxrdpfreerdp1.so.*
+%attr(755,root,root) %{_libdir}/xrdp/libxup.so.*
+%dir %{_datadir}/xrdp
+%{_datadir}/xrdp/ad24b.bmp
+%{_datadir}/xrdp/ad256.bmp
+%{_datadir}/xrdp/cursor0.cur
+%{_datadir}/xrdp/cursor1.cur
+%{_datadir}/xrdp/sans-10.fv1
+%{_datadir}/xrdp/xrdp24b.bmp
+%{_datadir}/xrdp/xrdp256.bmp
+%{_mandir}/man5/sesman.ini.5*
+%{_mandir}/man5/xrdp.ini.5*
+%{_mandir}/man8/xrdp-sesman.8*
+%{_mandir}/man8/xrdp-sesrun.8*
+%{_mandir}/man8/xrdp.8*
diff --git a/build.patch b/build.patch
new file mode 100644
index 0000000..78662ea
--- /dev/null
+++ b/build.patch
@@ -0,0 +1,11 @@
+--- xrdp-v0.6.1/sesman/tools/Makefile.am~ 2013-11-09 21:11:15.000000000 +0100
++++ xrdp-v0.6.1/sesman/tools/Makefile.am 2013-12-07 18:41:21.172980720 +0100
+@@ -20,7 +20,7 @@
+ xrdp_sesrun_SOURCES = \
+ sesrun.c \
+ tcp.c \
+- config.c
++ ../config.c
+
+ xrdp_sestest_SOURCES = \
+ sestest.c
diff --git a/format-security.patch b/format-security.patch
new file mode 100644
index 0000000..f8a1d66
--- /dev/null
+++ b/format-security.patch
@@ -0,0 +1,11 @@
+--- xrdp-v0.6.1/common/log.c~ 2013-11-09 21:11:15.000000000 +0100
++++ xrdp-v0.6.1/common/log.c 2013-12-07 18:38:21.836315352 +0100
+@@ -160,7 +160,7 @@
+ if (l_cfg->enable_syslog && (lvl <= l_cfg->log_level))
+ {
+ /* log to syslog */
+- syslog(log_xrdp2syslog(lvl), buff + 20);
++ syslog(log_xrdp2syslog(lvl), "%s", buff + 20);
+ }
+
+ if (lvl <= l_cfg->log_level)
diff --git a/heimdal.patch b/heimdal.patch
new file mode 100644
index 0000000..80f3750
--- /dev/null
+++ b/heimdal.patch
@@ -0,0 +1,42 @@
+--- xrdp-v0.6.1/sesman/verify_user_kerberos.c~ 2013-11-09 21:11:15.000000000 +0100
++++ xrdp-v0.6.1/sesman/verify_user_kerberos.c 2013-12-07 19:01:56.670626777 +0100
+@@ -187,11 +187,15 @@
+
+ u_info = (struct user_info*)data;
+ rc = 0;
++#ifndef HEIMDAL
+ types = krb5_get_prompt_types(ctx);
++#endif
+ for (i = 0; i < num_prompts; i++)
+ {
++#ifndef HEIMDAL
+ if (types[i] == KRB5_PROMPT_TYPE_PASSWORD ||
+ types[i] == KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN)
++#endif
+ {
+ g_strncpy(prompts[i].reply->data, u_info->pass, 255);
+ }
+@@ -214,7 +214,11 @@
+ krb5_creds my_creds;
+ krb5_error_code code = 0;
+ krb5_get_init_creds_opt options;
++#ifdef HEIMDAL
++ krb5_addresses* addresses;
++#else
+ krb5_address** addresses;
++#endif
+
+ krb5_get_init_creds_opt_init(&options);
+ g_memset(&my_creds, 0, sizeof(my_creds));
+@@ -245,7 +249,11 @@
+ if (opts->addresses)
+ {
+ addresses = NULL;
++#ifdef HEIMDAL
++ code = krb5_get_all_client_addrs(k5->ctx, addresses);
++#else
+ code = krb5_os_localaddr(k5->ctx, &addresses);
++#endif
+ if (code != 0)
+ {
+ g_printf("krb5_os_localaddr failed in k5_kinit\n");
diff --git a/link.patch b/link.patch
new file mode 100644
index 0000000..44a9c5f
--- /dev/null
+++ b/link.patch
@@ -0,0 +1,9 @@
+--- xrdp-v0.6.1/common/Makefile.am~ 2013-11-09 21:11:15.000000000 +0100
++++ xrdp-v0.6.1/common/Makefile.am 2013-12-07 20:09:12.855037515 +0100
+@@ -23,4 +23,5 @@
+ libcommon_la_LIBADD = \
+ -lcrypto \
+ -lssl \
+- -lpthread
++ -lpthread \
++ -ldl
diff --git a/xrdp-make.patch b/xrdp-make.patch
deleted file mode 100644
index a0b3a79..0000000
--- a/xrdp-make.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur xrdp-0.4.0/xrdp/Makefile xrdp-0.4.0.new/xrdp/Makefile
---- xrdp-0.4.0/xrdp/Makefile 2007-04-13 05:50:59.000000000 +0200
-+++ xrdp-0.4.0.new/xrdp/Makefile 2008-04-24 17:16:43.000000000 +0200
-@@ -18,7 +18,7 @@
- CFLAGS = -Wall -O2 -I../common -I../libxrdp $(DEFINES)
- #CFLAGS += -DXRDP_DEBUG
- C_OS_FLAGS = $(CFLAGS) -c
--LDFLAGS = -L/usr/gnu/lib -L../libxrdp -Wl,-rpath,.
-+LDFLAGS += -L/usr/gnu/lib -L../libxrdp -Wl,-rpath,.
- LIBS = -ldl -lpthread -lxrdp
- CC = gcc
-
diff --git a/xrdp-paths.patch b/xrdp-paths.patch
deleted file mode 100644
index 42c1d5c..0000000
--- a/xrdp-paths.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -Naur xrdp-0.4.0/xrdp/xrdp_font.c xrdp-0.4.0.new/xrdp/xrdp_font.c
---- xrdp-0.4.0/xrdp/xrdp_font.c 2007-01-12 05:47:18.000000000 +0100
-+++ xrdp-0.4.0.new/xrdp/xrdp_font.c 2008-04-20 03:14:52.000000000 +0200
-@@ -79,7 +79,7 @@
- self->wm = wm;
- make_stream(s);
- init_stream(s, 8192 * 2);
-- fd = g_file_open("Tahoma-10.fv1");
-+ fd = g_file_open("/usr/share/xrdp/Tahoma-10.fv1");
- if (fd != -1)
- {
- b = g_file_read(fd, s->data, 8192 * 2);
-diff -Naur xrdp-0.4.0/xrdp/xrdp_login_wnd.c xrdp-0.4.0.new/xrdp/xrdp_login_wnd.c
---- xrdp-0.4.0/xrdp/xrdp_login_wnd.c 2007-05-06 08:50:45.000000000 +0200
-+++ xrdp-0.4.0.new/xrdp/xrdp_login_wnd.c 2008-04-20 03:14:06.000000000 +0200
-@@ -461,7 +461,7 @@
-
- /* image */
- but = xrdp_bitmap_create(4, 4, self->screen->bpp, WND_TYPE_IMAGE, self);
-- xrdp_bitmap_load(but, "xrdp256.bmp", self->palette);
-+ xrdp_bitmap_load(but, "/usr/share/xrdp/xrdp256.bmp", self->palette);
- but->parent = self->screen;
- but->owner = self->screen;
- but->left = self->screen->width - but->width;
-@@ -470,7 +470,7 @@
-
- /* image */
- but = xrdp_bitmap_create(4, 4, self->screen->bpp, WND_TYPE_IMAGE, self);
-- xrdp_bitmap_load(but, "ad256.bmp", self->palette);
-+ xrdp_bitmap_load(but, "/usr/share/xrdp/ad256.bmp", self->palette);
- but->parent = self->login_window;
- but->owner = self->login_window;
- but->left = 10;
-diff -Naur xrdp-0.4.0/xrdp/xrdp_wm.c xrdp-0.4.0.new/xrdp/xrdp_wm.c
---- xrdp-0.4.0/xrdp/xrdp_wm.c 2007-05-18 05:49:21.000000000 +0200
-+++ xrdp-0.4.0.new/xrdp/xrdp_wm.c 2008-04-20 03:14:06.000000000 +0200
-@@ -328,11 +328,11 @@
- struct xrdp_pointer_item pointer_item;
-
- DEBUG(("sending cursor"));
-- xrdp_wm_load_pointer(self, "cursor1.cur", pointer_item.data,
-+ xrdp_wm_load_pointer(self, "/usr/share/xrdp/cursor1.cur", pointer_item.data,
- pointer_item.mask, &pointer_item.x, &pointer_item.y);
- xrdp_cache_add_pointer_static(self->cache, &pointer_item, 1);
- DEBUG(("sending cursor"));
-- xrdp_wm_load_pointer(self, "cursor0.cur", pointer_item.data,
-+ xrdp_wm_load_pointer(self, "/usr/share/xrdp/cursor0.cur", pointer_item.data,
- pointer_item.mask, &pointer_item.x, &pointer_item.y);
- xrdp_cache_add_pointer_static(self->cache, &pointer_item, 0);
- return 0;
diff --git a/xrdp-signals.patch b/xrdp-signals.patch
deleted file mode 100644
index 4dfa40b..0000000
--- a/xrdp-signals.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur xrdp-0.4.1.orig/sesman/session.c xrdp-0.4.1/sesman/session.c
---- xrdp-0.4.1.orig/sesman/session.c 2007-05-28 01:30:34.000000000 +0200
-+++ xrdp-0.4.1/sesman/session.c 2008-09-10 15:01:42.000000000 +0200
-@@ -237,7 +237,7 @@
- }
- else if (pid == 0) /* child sesman */
- {
-- g_unset_signals();
-+ /* g_unset_signals(); */
- auth_start_session(data, display);
- g_sprintf(geometry, "%dx%d", width, height);
- g_sprintf(depth, "%d", bpp);
diff --git a/xrdp.init b/xrdp.init
index 5994fad..eccea19 100644
--- a/xrdp.init
+++ b/xrdp.init
@@ -23,8 +23,8 @@ start() {
RETVAL_XRDP=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/xrdp
- msg_starting "sesman"
- daemon sesman </dev/null
+ msg_starting "xrdp-sesman"
+ daemon xrdp-sesman </dev/null
RETVAL_SESMAN=$?
RETVAL=$RETVAL_XRDP$RETVAL_SESMAN
if [ "$RETVAL" == "00" ]; then
@@ -32,8 +32,8 @@ start() {
else
msg_stopping "xrdp"
killproc xrdp
- msg_stopping "sesman"
- killproc sesman
+ msg_stopping "xrdp-sesman"
+ killproc xrdp-sesman
fi
else
msg_already_running "xrdp"
@@ -44,8 +44,8 @@ stop() {
if [ -f /var/lock/subsys/xrdp ]; then
msg_stopping "xrdp"
killproc xrdp
- msg_stopping "sesman"
- killproc sesman
+ msg_stopping "xrdp-sesman"
+ killproc xrdp-sesman
rm -f /var/lock/subsys/xrdp
else
msg_not_running "xrdp"
@@ -56,7 +56,7 @@ reload() {
if [ -f /var/lock/subsys/xrdp ]; then
msg_reloading "xrdp"
killproc xrdp -HUP
- killproc sesman -HUP
+ killproc xrdp-sesman -HUP
RETVAL=$?
else
msg_not_running "xrdp"
@@ -78,10 +78,10 @@ RETVAL=0
# See how we were called.
case "$1" in
start)
- start
+ start
;;
stop)
- stop
+ stop
;;
restart)
stop
diff --git a/xrdp.sesman.ini b/xrdp.sesman.ini
index 2c47586..e11b161 100644
--- a/xrdp.sesman.ini
+++ b/xrdp.sesman.ini
@@ -12,6 +12,7 @@ TerminalServerUsers=users
TerminalServerAdmins=root
[Sessions]
+X11DisplayOffset=10
MaxSessions=10
KillDisconnected=0
IdleTimeLimit=0
@@ -26,7 +27,14 @@ SyslogLevel=CORE
[X11rdp]
param1=-bs
param2=-ac
+#param3=-nolisten
+#param4=tcp
[Xvnc]
param1=-bs
param2=-ac
+#param3=-nolisten
+#param4=tcp
+#param5=-localhost
+#param6=-dpi
+#param7=96
diff --git a/xrdp.xrdp.ini b/xrdp.xrdp.ini
index 1769b3d..8217a8c 100644
--- a/xrdp.xrdp.ini
+++ b/xrdp.xrdp.ini
@@ -5,6 +5,16 @@ bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
+max_bpp=24
+#black=000000
+#grey=d6d3ce
+#dark_grey=808080
+#blue=08246b
+#dark_blue=08246b
+#white=ffffff
+#red=ff0000
+#green=00ff00
+#background=626c72
[xrdp1]
name=sesman-Xvnc
@@ -45,9 +55,18 @@ ip=ask
port=ask3389
[xrdp6]
+name=freerdp-any
+lib=LIBDIR/xrdp/libxrdpfreerdp1.so
+ip=ask
+port=ask3389
+username=ask
+password=ask
+
+[xrdp7]
name=sesman-X11rdp
lib=LIBDIR/xrdp/libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
+xserverbpp=24
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xrdp.git/commitdiff/f36b3e916c91491683e301080d9dd8b8ec07f853
More information about the pld-cvs-commit
mailing list