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:$

Attachment: 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

Odpowiedź listem elektroniczym