Blob Blame History Raw
%{!?_initddir: %global _initddir %{_sysconfdir}/rc.d/init.d}

%define cvs 20090811cvs
Summary:   Open source remote desktop protocol (RDP) server
Name:      xrdp
Version:   0.5.0
Release:   0.5.%{cvs}%{?dist}
License:   GPLv2+ with exceptions
Group:     Applications/Internet
URL:       http://xrdp.sourceforge.net/
#Source0:   http://dl.sf.net/xrdp/xrdp-%{version}.tar.gz

# The source for this package was pulled from upstream's vcs.  Use the
# following commands to generate the tarball:
#
# visit http://sourceforge.net/projects/xrdp/develop
#
# cvs -d:pserver:anonymous@xrdp.cvs.sourceforge.net:/cvsroot/xrdp login
# cvs -z3 -d:pserver:anonymous@xrdp.cvs.sourceforge.net:/cvsroot/xrdp co -D 11-09-2009 -P xrdp
# mv xrdp xrdp-0.5.0.20090811cvs
# tar -czvf xrdp-0.5.0.20090811cvs.tar.gz xrdp-0.5.0.20090811cvs


Source0: %{name}-%{version}.%{cvs}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

Patch0: xrdp-pam-auth.patch

Source1: xrdp.init
Source2: xrdp.sysconfig
Source3: xrdp.logrotate

BuildRequires:  pam-devel
BuildRequires:  openssl-devel
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool


#vnc-server provides Xvnc (tigervnc-server in fedora)
Requires: vnc-server

#initscripts requires
Requires(post): chkconfig
Requires(preun): chkconfig
# This is for /sbin/service
Requires(preun): initscripts
# This is for /sbin/service
Requires(postun): initscripts


%description
The goal of this project is to provide a fully functional Linux terminal
server, capable of accepting connections from rdesktop and Microsoft's own
terminal server / remote desktop clients.

%prep
%setup -q -n %{name}-%{version}.%{cvs}
%patch0 -p2

# remove unused modules from xrdp login combobox
%{__sed} -i -e '/\[xrdp2\]/,$d' xrdp/xrdp.ini

#Low is 40 bit key and everything from client to server is encrypted.
#Medium is 40 bit key, everything both ways is encrypted.
#High is 128 bit key everything both ways is encrypted.

# increase encryption to 128 bit's
%{__sed} -i 's/crypt_level=low/crypt_level=high/g' xrdp/xrdp.ini

#fix wrong permission
%{__chmod} 644 keygen/keygen.c

%build
./bootstrap

%configure
%{__make} %{?_smp_mflags}

%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR=%{buildroot}

#remove .la and .a files
find %{buildroot} -name '*.a' -exec rm {} \;
find %{buildroot} -name '*.la' -exec rm {} \;

#install sesman pam config /etc/pam.d/xrdp-sesman
%{__install} -Dp -m 644 instfiles/pam.d/xrdp-sesman %{buildroot}%{_sysconfdir}/pam.d/xrdp-sesman

#installx xrdp initscript /etc/rc.d/init.d/xrdp
%{__install} -Dp -m 755 %{SOURCE1} %{buildroot}%{_initddir}/xrdp

#install xrdp sysconfig /etc/sysconfig/xrdp
%{__install} -Dp -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/xrdp

#install logrotate /etc/logrotate.d/xrdp
%{__install} -Dp -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/xrdp

#install log file /var/log/xrdp-sesman.log
%{__mkdir} -p %{buildroot}%{_localstatedir}/log/
touch %{buildroot}%{_localstatedir}/log/xrdp-sesman.log

# rsakeys.ini
touch %{buildroot}%{_sysconfdir}/xrdp/rsakeys.ini
%{__chmod} 0600 %{buildroot}%{_sysconfdir}/xrdp/rsakeys.ini


%preun
if [ $1 = 0 ] ; then
    /sbin/service %{name} stop >/dev/null 2>&1
    /sbin/chkconfig --del %{name}
fi


%post
# This adds the proper /etc/rc*.d links for the script
/sbin/chkconfig --add %{name}

xrdp-keygen xrdp %{_sysconfdir}/xrdp/rsakeys.ini > /dev/null
%{__chmod} 0600 %{_sysconfdir}/xrdp/rsakeys.ini

%postun
if [ "$1" -ge "1" ] ; then
    /sbin/service %{name} condrestart >/dev/null 2>&1 || :
fi

%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
%doc COPYING *.txt
%dir %{_libdir}/xrdp
%dir %{_sysconfdir}/xrdp
%dir %{_datadir}/xrdp
%config(noreplace) %{_sysconfdir}/xrdp/sesman.ini
%config(noreplace) %{_sysconfdir}/xrdp/xrdp.ini
%config(noreplace) %{_sysconfdir}/pam.d/xrdp-sesman
%config(noreplace) %{_sysconfdir}/logrotate.d/xrdp
%config(noreplace) %{_sysconfdir}/sysconfig/xrdp
%{_initddir}/xrdp
%{_sysconfdir}/xrdp/*.sh
%{_bindir}/xrdp-sesadmin
%{_bindir}/xrdp-keygen
%{_bindir}/xrdp-sesrun
%{_bindir}/xrdp-sestest
%{_sbindir}/xrdp-chansrv
%{_sbindir}/xrdp
%{_sbindir}/xrdp-sesman
%{_sbindir}/xrdp-sessvc
%{_datadir}/xrdp/ad256.bmp
%{_datadir}/xrdp/cursor0.cur
%{_datadir}/xrdp/cursor1.cur
%{_datadir}/xrdp/xrdp256.bmp
%{_datadir}/xrdp/sans-10.fv1
%{_mandir}/man5/*
%{_mandir}/man8/*
%{_libdir}/xrdp/lib*.so.*
%{_libdir}/xrdp/libcommon.so
%{_libdir}/xrdp/libmc.so
%{_libdir}/xrdp/librdp.so
%{_libdir}/xrdp/libscp.so
%{_libdir}/xrdp/libvnc.so
%{_libdir}/xrdp/libxrdp.so
%{_libdir}/xrdp/libxup.so
%ghost %{_localstatedir}/log/xrdp-sesman.log
%attr(0600,root,root) %verify(not size md5 mtime) %{_sysconfdir}/xrdp/rsakeys.ini

%changelog
* Tue Sep 08 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> - 0.5.0-0.5.20090811cvs
- fix xrdp-sesman pam.d to uses system-auth

* Fri Sep 04 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> - 0.5.0-0.4.20090811cvs
- increase encryption to 128 bit's
- include system-auth into /etc/pam.d/xrdp-sesman

* Wed Aug 26 2009 Tomas Mraz <tmraz@redhat.com> - 0.5.0-0.3.20090811cvs
- rebuild with new openssl

* Thu Aug 13 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> - 0.5.0-0.2.20090811cvs
- more changes to spec file https://bugzilla.redhat.com/show_bug.cgi?id=516364#c10

* Wed Aug 12 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> - 0.5.0-0.1.20090811cvs
- change versioning schema
- improve initscript
- fix some macros


* Tue Aug 11 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> - 0.5.0-2.20090811cvs
- changes from BZ#516364 comment 2 from Mamoru Tasaka
- changed license to "GPLv2+ with exceptions"
- dropped -libs subpackage
- use cvs version
- remove a patch and use sed instead
- remove attr's

* Thu Apr 02 2009 Itamar Reis Peixoto <itamar@ispbrasil.com.br> 0.5.0-1
- Initial RPM release