File xrdp.spec of Package xrdp

# spec file for package xrdp
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via

%define _fwdefdir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
Name:           xrdp
Version:        0.9.0~git.1456906198.f422461
Release:        0
Summary:        Open Source remote desktop protocol (RDP) server
License:        Apache-2.0 and GPL-2.0+
Group:          System/X11/Utilities
Source0:        xrdp-%{version}.tar.gz
Source1:        xrdp.fw
Source2:        sysconfig.xrdp
Source3:        force_stop
Source4:        openSUSE.bmp
Source100:      %{name}-rpmlintrc
# PATCH-FIX-OPENSUSE xrdp-pam.patch bnc#441750 -
Patch1:         xrdp-pam.patch
# PATCH-FIX-UPSTREAM xrdp-fix-buildtime-warnings.patch - -- fix warnings in build time, backported from upstream devel branch
Patch2:         xrdp-fix-buildtime-warnings.patch
# PATCH-FIX-OPENSUSE xrdp-default-config.patch - -- Adjust default settings to openSUSE standards
Patch3:         xrdp-default-config.patch
# PATCH-FIX-OPENSUSE xrdp-disable-8-bpp-vnc-support.patch bsc#991059 - -- disable 8 bpp support for vnc connections
Patch4:         xrdp-disable-8-bpp-vnc-support.patch
# PATCH-FEATURE-SLE xrdp-avahi.diff bnc#586785 - -- Add Avahi support
Patch11:        xrdp-avahi.diff
# PATCH-FIX-SLE xrdp-filter-tab-from-mstsc-on-focus-change.patch bnc#601996 bnc#623534 - -- filter the fake tab key which is used to notify the session
Patch12:        xrdp-filter-tab-from-mstsc-on-focus-change.patch
# PATCH-FIX-SLE xrdp-bsc965647-allow-admin-choose-desktop.patch bsc#965647 - -- Allow administrator choose the desktop displayed
Patch13:        xrdp-bsc965647-allow-admin-choose-desktop.patch
# PATCH-FEATURE-SLE xrdp-fate318398-change-expired-password.patch fate#318398 - -- enable user to update expired password via PAM
Patch14:        xrdp-fate318398-change-expired-password.patch
# PATCH-FIX-OPENSUSE xrdp-openSUSE-logo.patch - -- use openSUSE logo in login dialog
Patch21:        xrdp-openSUSE-logo.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  fdupes
BuildRequires:  libX11-devel
BuildRequires:  libXfixes-devel
BuildRequires:  libXrandr-devel
BuildRequires:  libavahi-devel
BuildRequires:  libtool
BuildRequires:  openssl-devel
BuildRequires:  pam-devel
BuildRequires:  pkg-config
BuildRequires:  pkgconfig(systemd)
Requires:       xorg-x11-Xvnc
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

A full functionnal Linux terminal server, capable of accepting
connection from rdesktop and Microsoft's own terminal server / remote
desktop clients.

%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%if ! 0%{?is_opensuse}
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch21 -p1

sh ./bootstrap
%configure \
make %{?_smp_mflags}

make %{?_smp_mflags} DESTDIR=%{buildroot} install
find %{buildroot} -name '*.a' -exec rm {} \;
find %{buildroot} -type f -name "*.la" -delete -print
mkdir -p %{buildroot}/%{_fwdefdir}
install -m 644 %{SOURCE1} %{buildroot}/%{_fwdefdir}/xrdp
mkdir -p %{buildroot}/%{_localstatedir}/adm/fillup-templates
install -m 644 %{SOURCE2} %{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.xrdp
mkdir -p %{buildroot}/%{_prefix}/lib/initscripts/legacy-actions/xrdp
install -m 755 %{SOURCE3} %{buildroot}/%{_prefix}/lib/initscripts/legacy-actions/xrdp/force_stop
%if 0%{?is_opensuse}
install %{SOURCE4} %{buildroot}%{_datadir}/%{name}/

ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcxrdp
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcxrdp-sesman

# remove init script that conflicts with systemd service
rm -rf %{buildroot}/%{_initddir}

%fdupes -s %{buildroot}

%service_add_pre xrdp-sesman.service
%service_add_pre xrdp.service

%service_add_post xrdp-sesman.service
%service_add_post xrdp.service
%{fillup_only -n xrdp}
if [ ! -e %{_sysconfdir}/xrdp/rsakeys.ini ]; then
    xrdp-keygen xrdp %{_sysconfdir}/xrdp/rsakeys.ini
    if [ $? -ne 0 ] || [ ! -e %{_sysconfdir}/xrdp/rsakeys.ini ]; then
        echo "Could not generate rsakeys.ini, please check manually!"
exit 0

%service_del_preun xrdp.service
%service_del_preun xrdp-sesman.service

%service_del_postun xrdp.service
%service_del_postun xrdp-sesman.service


%dir %{_datadir}/xrdp
%dir %{_libdir}/xrdp
%dir %{_sysconfdir}/xrdp
%dir %{_sysconfdir}/xrdp/pulse
%config %{_fwdefdir}/xrdp
%config(noreplace) %{_sysconfdir}/default/xrdp
%config(noreplace) %{_sysconfdir}/pam.d/xrdp-sesman
%config(noreplace) %{_sysconfdir}/xrdp/sesman.ini
%config(noreplace) %{_sysconfdir}/xrdp/xrdp.ini
%doc COPYING *.txt

%ghost %{_localstatedir}/log/xrdp-sesman.log

%config(noreplace) %{_sysconfdir}/xrdp/
%ghost %config(noreplace) %{_sysconfdir}/xrdp/rsakeys.ini
%config %{_localstatedir}/adm/fillup-templates/sysconfig.xrdp

openSUSE Build Service is sponsored by