Witam, przygotowałem speca z xrdp. Jest to linuksowy serwer remote desktop. W oparciu o xrdp można łatwo zbudować terminal serwer do którego będzie się można łączyć z Windowsów bez żadnego dodatkowego oprogramowania. Działa również z linuksowym rdesktopem.
Testowałem na Th/i686 oraz Ti/i686. Mogę prosić o komentarz czy wszystko w specu jest prawidłowo zrobione? (-: PS.: dzięki za wskazówki odnośnie wstawiania dokumentacji spoza paczki ze źródłami. -- Pozdrawiam, Paweł Zuzelski
# $Revision: 1.2 $, $Date: 2007-10-15 22:23:24 $ # Summary: Remote desktop server Summary(pl.UTF-8): Serwer remote desktop Name: xrdp Version: 0.4.0 Release: 1 License: GPL Group: X11/Applications/Networking Source0: http://dl.sourceforge.net/xrdp/%{name}-%{version}.tar.gz # Source0-md5: dc83d149e385c4cd402d990695691f55 Source1: %{name}-init Source2: %{name}-pam Source3: %{name}-xrdp.ini Source4: %{name}-sesman.ini Source5: %{name}-README.PLD Patch0: %{name}-paths.patch Patch1: %{name}-make.patch URL: http://xrdp.sourceforge.net/ BuildRequires: pam-devel Requires(post,preun): /sbin/chkconfig Requires: tightvnc-server BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description xrdp is an open source Remote Desktop Protocol (rdp) server for UNIX-like systems. It is capable of accepting connections from rdesktop and Microsoft's own terminal server / remote desktop clients. Unlike Windows NT/2000/2003 server, xrdp will not display a Windows desktop but an X window desktop to the user. Xrdp uses Xvnc or X11rdp backends to manage the X session. %description -l pl.UTF-8 xrdp jest serwerem protokołu Remote Desktop (rdp) dlo systemów UNIXowych. Program ten jest rozpowszechniany jako oprogramowanie open source. Do xrdp można się łączyć zarówno programem rdesktop, jak i klientami protokołu rdp Microsoftu. %prep %setup -q %patch0 -p1 %patch1 -p1 install %{SOURCE5} README.PLD %build %{__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 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/xrdp install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/sesman install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/xrdp.ini install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/sesman.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 %post /sbin/ldconfig %service xrdp stop /sbin/chkconfig --add xrdp %postun -p /sbin/ldconfig %preun if [ "$1" = "0" ]; then %service xrdp stop /sbin/chkconfig --del xrdp fi %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) %doc *.txt %doc README.PLD %dir %{_sysconfdir}/%{name} %dir %{_localstatedir}/run %{_libdir}/libscp.so %{_libdir}/libxrdp.so %dir %{_libdir}/xrdp %{_libdir}/xrdp/* %dir %{_datadir}/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 %config(noreplace) %{_sysconfdir}/%{name}/xrdp.ini %config(noreplace) %{_sysconfdir}/%{name}/rsakeys.ini %config(noreplace) %{_sysconfdir}/%{name}/sesman.ini %{_mandir}/man8/* %{_mandir}/man5/* %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) %changelog * %{date} PLD Team <[EMAIL PROTECTED]> All persons listed below can be reached at <cvs_login>@pld-linux.org $Log:$
xrdp-init
Description: application/shellscript
=== Sesja: === Sesman, uruchamiając sesję użytkownika, korzysta ze skryptu /etc/X11/xinit/Xclients. Dlatego, aby zmienić manager okien, najprościej wpisać odpowiedni program w pliku ~/.desktop Mozna również wskazać inny skrypt uruchamiający sesję Xów w konfiguracji sesmana: /etc/xrdp/sesman.ini. === Uprawnieni użytkownicy: === Aby ograniczyć prawo do korzystania z xrdp do określonej grupy uzytkowników, można wpisać tą grupę w pliku /etc/xrdp/sesman.ini w polu TerminalServerUsers. === Znane błędy: === Sesman nie potrafi uruchomić Xvnc, jeżeli pam korzysta z LDAPa.
[Globals] ListenAddress=127.0.0.1 ListenPort=3350 EnableUserWindowManager=1 UserWindowManager=/etc/X11/xinit/Xclients DefaultWindowManager=/etc/X11/xinit/Xclients [Security] AllowRootLogin=1 MaxLoginRetry=4 TerminalServerUsers=users TerminalServerAdmins=root [Sessions] MaxSessions=10 KillDisconnected=0 IdleTimeLimit=0 DisconnectedTimeLimit=0 [Logging] LogFile=/dev/null LogLevel=CORE EnableSyslog=1 SyslogLevel=CORE [X11rdp] param1=-bs param2=-ac [Xvnc] param1=-bs param2=-ac
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 -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-22 12:03:54.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/lib/xrdp -L/usr/gnu/lib -L../libxrdp -Wl,-rpath,. LIBS = -ldl -lpthread -lxrdp CC = gcc
[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
#%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/security/blacklist.sesman onerr=succeed auth include system-auth account include system-auth password include system-auth session include system-auth
_______________________________________________ pld-devel-pl mailing list pld-devel-pl@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl