lemonldap-ng.spec 28.1 KB
Newer Older
1
2
3
4
#==============================================================================
# Specification file for LemonLDAP::NG
#
# Install LemonLDAP::NG modules, htdocs and scripts
5
6
# Authority: dries
# Upstream: Xavier Guimard <x,guimard$free,fr>
7
8
9
10
11
#==============================================================================

#==============================================================================
# Variables
#==============================================================================
12
%global lm_prefix %{_prefix}
13
14
15
16
17
%global lm_sharedir %{_datadir}/lemonldap-ng
%global lm_examplesdir %{lm_sharedir}/examples
%global lm_vardir %{_localstatedir}/lib/lemonldap-ng
%global lm_confdir %{_sysconfdir}/lemonldap-ng
%global lm_storagefile %{lm_confdir}/lemonldap-ng.ini
18

19
# Apache configuration directory
20
%if 0%{?rhel}%{?fedora}
21
%global apache_confdir %{_sysconfdir}/httpd/conf.d
22
%else
23
%global apache_confdir %{_sysconfdir}/apache2/conf.d
24
%endif
25
26

# Apache User and Group
27
%if 0%{?rhel}%{?fedora}
28
29
%global lm_apacheuser apache
%global lm_apachegroup apache
30
%else
31
32
%global lm_apacheuser wwwrun
%global lm_apachegroup www
33
%endif
34

Clément OUDOT's avatar
Clément OUDOT committed
35
# Apache version
36
%if 0%{?fedora} || 0%{?rhel} >= 7
37
%global apache_version 2.4
Clément OUDOT's avatar
Clément OUDOT committed
38
%else
39
%global apache_version 2
Clément OUDOT's avatar
Clément OUDOT committed
40
41
%endif

42
%global lm_dnsdomain example.com
43

44
45
#global pre_release beta1

46
47
48
#==============================================================================
# Main package
#==============================================================================
Xavier Bachelot's avatar
Xavier Bachelot committed
49
Name:           lemonldap-ng
50
51
Version:        2.0.0
Release:        %{?pre_release:0.}1%{?pre_release:.%{pre_release}}%{?dist}
52
Summary:        LemonLDAP-NG WebSSO
Xavier Bachelot's avatar
Xavier Bachelot committed
53
License:        GPLv2+
Clément OUDOT's avatar
Clément OUDOT committed
54
URL:            http://lemonldap-ng.org
55
Source0:        https://release.ow2.org/lemonldap/%{name}-%{version}%{?pre_release:~%{pre_release}}.tar.gz
56
BuildArch:      noarch
57

58
BuildRequires:  perl-generators
59
BuildRequires:  perl-interpreter
Xavier Bachelot's avatar
Xavier Bachelot committed
60
61
62
63
64
65
66
67
68
BuildRequires:  perl(Apache2::Connection)
BuildRequires:  perl(Apache2::Const)
BuildRequires:  perl(Apache2::Filter)
BuildRequires:  perl(Apache2::Log)
BuildRequires:  perl(Apache2::RequestIO)
BuildRequires:  perl(Apache2::RequestRec)
BuildRequires:  perl(Apache2::RequestUtil)
BuildRequires:  perl(Apache2::ServerRec)
BuildRequires:  perl(Apache2::ServerUtil)
Clément OUDOT's avatar
Clément OUDOT committed
69
BuildRequires:  perl(Apache::Session)
Xavier Bachelot's avatar
Xavier Bachelot committed
70
71
72
BuildRequires:  perl(Apache::Session::Generate::MD5)
BuildRequires:  perl(APR::Table)
BuildRequires:  perl(AuthCAS)
73
BuildRequires:  perl(Authen::Captcha)
Xavier Bachelot's avatar
Xavier Bachelot committed
74
75
76
77
78
BuildRequires:  perl(Authen::PAM)
BuildRequires:  perl(Authen::Radius)
BuildRequires:  perl(AutoLoader)
BuildRequires:  perl(base)
BuildRequires:  perl(bytes)
Clément OUDOT's avatar
Clément OUDOT committed
79
BuildRequires:  perl(Cache::Cache)
Xavier Bachelot's avatar
Xavier Bachelot committed
80
81
82
BuildRequires:  perl(Cache::FileCache)
BuildRequires:  perl(Cache::Memcached)
BuildRequires:  perl(CGI)
Clément OUDOT's avatar
Clément OUDOT committed
83
84
BuildRequires:  perl(Class::Inspector)
BuildRequires:  perl(Clone)
Clément OUDOT's avatar
Clément OUDOT committed
85
BuildRequires:  perl(Config::IniFiles)
Xavier Bachelot's avatar
Xavier Bachelot committed
86
BuildRequires:  perl(constant)
Xavier Bachelot's avatar
Xavier Bachelot committed
87
BuildRequires:  perl(Convert::Base32)
88
BuildRequires:  perl(Convert::PEM)
Yadd's avatar
Yadd committed
89
BuildRequires:  perl(Crypt::OpenSSL::Bignum)
Clément OUDOT's avatar
Clément OUDOT committed
90
91
BuildRequires:  perl(Crypt::OpenSSL::RSA)
BuildRequires:  perl(Crypt::OpenSSL::X509)
Clément OUDOT's avatar
Clément OUDOT committed
92
BuildRequires:  perl(Crypt::Rijndael)
Xavier Bachelot's avatar
Xavier Bachelot committed
93
94
95
96
BuildRequires:  perl(Data::Dumper)
BuildRequires:  perl(DBI)
BuildRequires:  perl(Digest::HMAC_SHA1)
BuildRequires:  perl(Digest::MD5)
Clément OUDOT's avatar
Clément OUDOT committed
97
BuildRequires:  perl(Digest::SHA)
Clément OUDOT's avatar
Clément OUDOT committed
98
BuildRequires:  perl(Email::Date::Format)
99
# Not available for EL6
Xavier Bachelot's avatar
Xavier Bachelot committed
100
101
102
103
104
105
106
%if ! 0%{?el6}
BuildRequires:  perl(Email::Sender)
BuildRequires:  perl(Email::Sender::Simple)
BuildRequires:  perl(Email::Sender::Transport::SMTP)
%endif
BuildRequires:  perl(Encode)
BuildRequires:  perl(English)
Clément OUDOT's avatar
Clément OUDOT committed
107
BuildRequires:  perl(Env)
Xavier Bachelot's avatar
Xavier Bachelot committed
108
BuildRequires:  perl(Exporter)
Clément OUDOT's avatar
Clément OUDOT committed
109
BuildRequires:  perl(ExtUtils::MakeMaker)
Xavier Bachelot's avatar
Xavier Bachelot committed
110
111
112
113
114
115
116
117
118
BuildRequires:  perl(FCGI::Client)
BuildRequires:  perl(FCGI::ProcManager)
BuildRequires:  perl(feature)
BuildRequires:  perl(fields)
BuildRequires:  perl(File::Temp)
BuildRequires:  perl(GD::SecurityImage)
BuildRequires:  perl(Getopt::Long)
BuildRequires:  perl(Getopt::Std)
BuildRequires:  perl(GSSAPI)
Clément OUDOT's avatar
Clément OUDOT committed
119
BuildRequires:  perl(HTML::Template)
Xavier Bachelot's avatar
Xavier Bachelot committed
120
121
122
123
BuildRequires:  perl(HTTP::Headers)
BuildRequires:  perl(HTTP::Request)
BuildRequires:  perl(IO::Select)
BuildRequires:  perl(IO::Socket::INET)
Clément OUDOT's avatar
Clément OUDOT committed
124
125
BuildRequires:  perl(IO::String)
BuildRequires:  perl(JSON)
Xavier Bachelot's avatar
Xavier Bachelot committed
126
127
128
129
BuildRequires:  perl(Log::Log4perl)
BuildRequires:  perl(LWP::Protocol::https)
BuildRequires:  perl(LWP::UserAgent)
BuildRequires:  perl(MIME::Base64)
Clément OUDOT's avatar
Clément OUDOT committed
130
BuildRequires:  perl(MIME::Entity)
Xavier Bachelot's avatar
Xavier Bachelot committed
131
BuildRequires:  perl(mod_perl2)
Clément OUDOT's avatar
Clément OUDOT committed
132
133
BuildRequires:  perl(Mouse)
BuildRequires:  perl(Net::LDAP)
Xavier Bachelot's avatar
Xavier Bachelot committed
134
135
BuildRequires:  perl(Net::LDAP::Extension::SetPassword)
BuildRequires:  perl(Net::LDAP::Util)
136
BuildRequires:  perl(Plack)
Xavier Bachelot's avatar
Xavier Bachelot committed
137
138
139
140
141
142
143
144
BuildRequires:  perl(Plack::Handler::CGI)
BuildRequires:  perl(Plack::Handler::FCGI)
BuildRequires:  perl(Plack::Middleware)
BuildRequires:  perl(Plack::Request)
BuildRequires:  perl(Plack::Runner)
BuildRequires:  perl(Plack::Util)
BuildRequires:  perl(Plack::Util::Accessor)
BuildRequires:  perl(POSIX)
Clément OUDOT's avatar
Clément OUDOT committed
145
146
BuildRequires:  perl(Regexp::Assemble)
BuildRequires:  perl(Regexp::Common)
Xavier Bachelot's avatar
Xavier Bachelot committed
147
148
BuildRequires:  perl(Safe)
BuildRequires:  perl(Scalar::Util)
149
150
# https://bugzilla.redhat.com/show_bug.cgi?id=1644266
#BuildRequires:  perl(Sentry::Raven)
Clément OUDOT's avatar
Clément OUDOT committed
151
BuildRequires:  perl(SOAP::Lite)
Xavier Bachelot's avatar
Xavier Bachelot committed
152
153
BuildRequires:  perl(SOAP::Transport::HTTP)
BuildRequires:  perl(strict)
Clément OUDOT's avatar
Clément OUDOT committed
154
BuildRequires:  perl(String::Random)
Xavier Bachelot's avatar
Xavier Bachelot committed
155
BuildRequires:  perl(Sys::Syslog)
Clément OUDOT's avatar
Clément OUDOT committed
156
157
BuildRequires:  perl(Test::MockObject)
BuildRequires:  perl(Test::Pod) >= 1.00
Xavier Bachelot's avatar
Xavier Bachelot committed
158
BuildRequires:  perl(Time::Local)
Clément OUDOT's avatar
Clément OUDOT committed
159
BuildRequires:  perl(Unicode::String)
Xavier Bachelot's avatar
Xavier Bachelot committed
160
161
162
163
164
BuildRequires:  perl(URI)
BuildRequires:  perl(URI::Escape)
BuildRequires:  perl(URI::URL)
BuildRequires:  perl(utf8)
BuildRequires:  perl(warnings)
Clément OUDOT's avatar
Clément OUDOT committed
165
166
BuildRequires:  perl(XML::LibXSLT)
BuildRequires:  perl(XML::Simple)
Xavier Bachelot's avatar
Xavier Bachelot committed
167
BuildRequires:  perl(YAML)
Xavier Bachelot's avatar
Xavier Bachelot committed
168
%if 0%{?fedora} || 0%{?rhel} >= 7
169
BuildRequires:  systemd
Xavier Bachelot's avatar
Xavier Bachelot committed
170
%endif
171

172
173
174
175
176
177
Requires: lemonldap-ng-conf = %{version}-%{release}
Requires: lemonldap-ng-doc = %{version}-%{release}
Requires: lemonldap-ng-handler = %{version}-%{release}
Requires: lemonldap-ng-manager = %{version}-%{release}
Requires: lemonldap-ng-portal = %{version}-%{release}
Requires: lemonldap-ng-test = %{version}-%{release}
178

179
180
181
182
183
184
185
186
187
188
189
190
# Setup requires filtering
%if 0%{?rhel} == 6
%filter_from_requires /perl(lasso/d; /perl(Net::OpenID/d; /perl(Web::ID/d; /perl(XML::LibXML/d; /perl(XML::LibXSLT/d; /perl(Convert::Base32/d; /perl(Sentry::Raven/d;
%filter_setup
%endif

%if 0%{?fedora} || 0%{?rhel} >= 7
%{?perl_default_filter}
%global __requires_exclude perl\\(lasso|perl\\(Net::OpenID|perl\\(Web::ID|perl\\(XML::LibXML|perl\\(XML::LibXSLT|perl\\(Convert::Base32|perl\\(Sentry::Raven
%endif


191
%description
192
LemonLdap::NG is a modular Web-SSO based on Apache::Session modules. It
Clément OUDOT's avatar
Clément OUDOT committed
193
194
195
196
simplifies the build of a protected area with a few changes in the
application. It manages both authentication and authorization and provides
headers for accounting. 
So you can have a full AAA protection for your web space as described below.
197

198
199
200
#==============================================================================
# Conf
#==============================================================================
201
%package conf
202
Summary:        LemonLDAP-NG configuration
203
204
Requires:       perl(Apache::Session)
Requires:       perl(IO::String)
205
Requires:       perl(Lemonldap::NG::Common) = %{version}-%{release}
206
Requires:       perl(mod_perl2)
207
%if 0%{?rhel}%{?fedora}
208
209
210
211
Requires(post):  httpd
%else
Requires(post):  apache2
%endif
212

213
%description conf
214
215
This package contains the main storage configuration.

216
217
218
#==============================================================================
# Documentation
#==============================================================================
219
%package doc
220
Summary:        LemonLDAP-NG documentation
221
Requires:       lemonldap-ng-conf = %{version}-%{release}
222

223
%description doc
224
225
226
This package contains html documentation.

#==============================================================================
227
228
# Handler
#==============================================================================
229
%package handler
230
Summary:        LemonLDAP-NG handler
231
%if 0%{?rhel}%{?fedora}
232
233
Requires:       crontabs
%endif
234
235
Requires:       lemonldap-ng-conf = %{version}-%{release}
Requires:       perl(Lemonldap::NG::Handler) = %{version}-%{release}
236

237
%description handler
238
239
240
241
242
This package deploys the Apache Handler.

#==============================================================================
# Manager
#==============================================================================
243
%package manager
244
Summary:        LemonLDAP-NG administration interface
245
246
Requires:       lemonldap-ng-conf = %{version}-%{release}
Requires:       perl(Lemonldap::NG::Manager) = %{version}-%{release}
247

248
%description manager
249
This package deploys the administration interface and sessions explorer.
250
251
252
253

#==============================================================================
# Portal
#==============================================================================
254
%package portal
255
Summary:        LemonLDAP-NG authentication portal
256
%if 0%{?rhel}%{?fedora}
257
258
Requires:       crontabs
%endif
259
260
Requires:       lemonldap-ng-conf = %{version}-%{release}
Requires:       perl(Lemonldap::NG::Portal) = %{version}-%{release}
261

262
%description portal
263
264
265
266
This package deploys the authentication portal.

#==============================================================================
# Test
267
#==============================================================================
268
%package test
269
Summary:        LemonLDAP-NG test applications
270
Requires:       lemonldap-ng-conf = %{version}-%{release}
271

272
%description test
273
274
This package deploys small test applications.

275
276
277
#==============================================================================
# FastCGI Server
#==============================================================================
278
%package fastcgi-server
279
Summary:        LemonLDAP-NG FastCGI Server
280
Requires:       lemonldap-ng-conf = %{version}-%{release}
281
%if 0%{?rhel}%{?fedora}
282
283
284
285
286
Requires:       mod_fcgid
%else
Requires:       apache2-mod_fcgid
%endif
Requires:       perl(FCGI::ProcManager)
287

288
%description fastcgi-server
289
290
This package deploys files needed to start a FastCGI server.

Clément OUDOT's avatar
Clément OUDOT committed
291
292
293
#==============================================================================
# UWSGI Application
#==============================================================================
294
%package uwsgi-app
Clément OUDOT's avatar
Clément OUDOT committed
295
Summary:        LemonLDAP-NG UWSGI Application
Xavier Bachelot's avatar
Xavier Bachelot committed
296
Requires:       uwsgi-plugin-psgi
Clément OUDOT's avatar
Clément OUDOT committed
297

298
%description uwsgi-app
Clément OUDOT's avatar
Clément OUDOT committed
299
300
301
LemonLDAP::NG uWSGI server provides a replacement to LemonLDAP::NG FastCGI
server, using uWSGI instead of Plack FCGI.

Xavier Bachelot's avatar
Xavier Bachelot committed
302
303
304
305
306
307
308
309
310
311
#==============================================================================
# Nginx server
#==============================================================================
%package nginx
Summary:        LemonLDAP-NG Nginx support
Requires:       nginx

%description nginx
Nginx support for LemonLDAP::NG.

312
313
314
315
#==============================================================================
# CPAN modules - Common
#==============================================================================
%package -n perl-Lemonldap-NG-Common
316
317
Summary:        LemonLDAP-NG Common Modules

318
%description -n perl-Lemonldap-NG-Common
Xavier Bachelot's avatar
Xavier Bachelot committed
319
320
This package installs the configuration libraries used by other LemonLDAP::NG
modules.
321
322

#==============================================================================
323
# CPAN modules - Handler
324
325
326
327
328
#==============================================================================
%package -n perl-Lemonldap-NG-Handler
Summary:        LemonLDAP-NG Handler Modules

%description -n perl-Lemonldap-NG-Handler
Xavier Bachelot's avatar
Xavier Bachelot committed
329
330
This package installs the Apache module part (handler) used to protect web
areas.
331
332

#==============================================================================
333
# CPAN modules -  Manager
334
335
336
337
338
339
340
341
#==============================================================================
%package -n perl-Lemonldap-NG-Manager
Summary:        LemonLDAP-NG Manager Modules

%description -n perl-Lemonldap-NG-Manager
This package installs the administration interface (manager).

#==============================================================================
342
# CPAN modules - Portal
343
344
345
346
347
348
349
#==============================================================================
%package -n perl-Lemonldap-NG-Portal
Summary:        LemonLDAP-NG Portal Modules

%description -n perl-Lemonldap-NG-Portal
This package installs the authentication portal.

350
#==============================================================================
351
# Source preparation
352
#==============================================================================
353
%prep
354
%setup -q -n %{name}-%{version}%{?pre_release:~%{pre_release}}
355

Clément OUDOT's avatar
Clément OUDOT committed
356

357
#==============================================================================
358
# Building
359
#==============================================================================
360
%build
Xavier Bachelot's avatar
Xavier Bachelot committed
361
362
363
%{__make} %{?_smp_mflags} configure \
    STORAGECONFFILE=%{lm_storagefile} \
    PERLOPTIONS="INSTALLDIRS=vendor"
364
%{__make} %{?_smp_mflags}
365

366
#==============================================================================
367
# Installation
368
#============================================================================
369
%install
370
%{__make} %{?_smp_mflags} install \
Xavier Bachelot's avatar
Xavier Bachelot committed
371
372
373
374
    DESTDIR=%{buildroot} \
    PREFIX=%{lm_prefix} \
    BINDIR=%{lm_sharedir}/bin \
    SBINDIR=%{lm_sharedir}/sbin \
375
    FASTCGISOCKDIR=%{_rundir}/llng-fastcgi-server \
Xavier Bachelot's avatar
Xavier Bachelot committed
376
377
378
379
380
381
382
383
384
    DOCUMENTROOT=%{lm_vardir} \
    EXAMPLESDIR=%{lm_examplesdir} \
    HANDLERDIR=%{lm_vardir}/handler \
    MANAGERDIR=%{lm_sharedir}/manager \
    STORAGECONFFILE=%{lm_storagefile} \
    TOOLSDIR=%{lm_sharedir}/ressources \
    CONFDIR=%{lm_confdir} \
    CRONDIR=%{_sysconfdir}/cron.d \
    DATADIR=%{lm_vardir} \
385
386
    INITDIR=%{_sysconfdir}/init.d \
    ETCDEFAULTDIR=%{_sysconfdir}/default \
Xavier Bachelot's avatar
Xavier Bachelot committed
387
388
    DNSDOMAIN=%{lm_dnsdomain} \
    APACHEVERSION=%{apache_version} \
389
    UWSGIYAMLDIR=%{_sysconfdir}/uwsgi/apps-available \
Xavier Bachelot's avatar
Xavier Bachelot committed
390
391
    LLNGAPPDIR=%{lm_sharedir}/llng-server \
    PROD=yes
392

393
# Remove some unwanted files
394
395
396
find %{buildroot} -name .packlist -exec rm -f {} \;
find %{buildroot} -name perllocal.pod -exec rm -f {} \;
find %{buildroot} -name *.bak -exec rm -f {} \;
397

398
399
# Install files for FastCGI Server
mkdir -p %{buildroot}%{_unitdir}
Xavier Bachelot's avatar
Xavier Bachelot committed
400
401
install -m644 fastcgi-server/systemd/llng-fastcgi-server.service \
    %{buildroot}%{_unitdir}
402
403
404
sed -i \
    -e 's:__FASTCGISOCKDIR__:%{_rundir}/llng-fastcgi-server:' \
    -e 's:__SBINDIR__:%{lm_sharedir}/sbin:' \
Xavier Bachelot's avatar
Xavier Bachelot committed
405
    %{buildroot}%{_unitdir}/llng-fastcgi-server.service
406
rm -f %{buildroot}%{_sysconfdir}/init.d/llng-fastcgi-server
407
408

mkdir -p %{buildroot}%{_tmpfilesdir}
Xavier Bachelot's avatar
Xavier Bachelot committed
409
410
install -m644 fastcgi-server/systemd/llng-fastcgi-server.tmpfile \
    %{buildroot}%{_tmpfilesdir}/llng-fastcgi-server.conf
411
412
413
414
sed -i \
    -e 's:__FASTCGISOCKDIR__:%{_rundir}/llng-fastcgi-server:' \
    -e 's:__USER__:%{lm_apacheuser}:' \
    -e 's:__GROUP__:%{lm_apachegroup}:' \
Xavier Bachelot's avatar
Xavier Bachelot committed
415
    %{buildroot}%{_tmpfilesdir}/llng-fastcgi-server.conf
416

Clément OUDOT's avatar
Clément OUDOT committed
417
# UWSGI Application
418
mkdir -p %{buildroot}%{_sysconfdir}/uwsgi/apps-available
Clément OUDOT's avatar
Clément OUDOT committed
419
420
mkdir -p %{buildroot}%{lm_sharedir}/llng-server

Clément OUDOT's avatar
Clément OUDOT committed
421
# Set apache user in some files (see Makefile)
Clément OUDOT's avatar
Clément OUDOT committed
422
423
424
# Note: we do not use the APACHEUSER and APACHEGROUP in make install
# because it launches a 'chown', which is not permitted if RPM is not
# built as root
Clément OUDOT's avatar
Clément OUDOT committed
425
sed -i 's/nobody/%{lm_apacheuser}/' %{buildroot}%{_sysconfdir}/cron.d/*
Xavier Bachelot's avatar
Xavier Bachelot committed
426
427
428
429
430
431
sed -i 's/nobody/%{lm_apacheuser}/' \
    %{buildroot}%{lm_sharedir}/bin/lmConfigEditor
sed -i 's/nobody/%{lm_apacheuser}/g' \
    %{buildroot}%{lm_sharedir}/bin/lemonldap-ng-cli
sed -i 's/nobody/%{lm_apacheuser}/g' \
    %{buildroot}%{_sysconfdir}/default/llng-fastcgi-server
432

433
# Set UNIX rights
Clément OUDOT's avatar
Clément OUDOT committed
434
mkdir -p %{buildroot}%{lm_vardir}/sessions/lock
435
mkdir -p %{buildroot}%{lm_vardir}/psessions/lock
436
437
438
439
440
chmod 750 %{buildroot}%{lm_vardir}/conf
chmod 640 %{buildroot}%{lm_vardir}/conf/*
chmod 640 %{buildroot}%{lm_storagefile}
chmod 770 %{buildroot}%{lm_vardir}/sessions
chmod 770 %{buildroot}%{lm_vardir}/sessions/lock
441
442
chmod 770 %{buildroot}%{lm_vardir}/psessions
chmod 770 %{buildroot}%{lm_vardir}/psessions/lock
443
chmod 770 %{buildroot}%{lm_vardir}/notifications
444
chmod 770 %{buildroot}%{lm_vardir}/captcha
445
chmod 775 %{buildroot}%{lm_sharedir}/sbin/llng-fastcgi-server
Clément OUDOT's avatar
Clément OUDOT committed
446

447
448
449
450
451
452
453
# Install httpd conf files
# We use "z-lemonldap-ng-*" so that httpd read the files after "perl.conf"
mkdir -p %{buildroot}%{apache_confdir}
for i in handler manager portal test; do {
    mv %{buildroot}%{lm_confdir}/$i-apache%{apache_version}.conf \
        %{buildroot}%{apache_confdir}/z-lemonldap-ng-$i.conf
}; done
454

Xavier Bachelot's avatar
Xavier Bachelot committed
455
456
457
458
459
# Install nginx conf files
mkdir -p %{buildroot}%{_sysconfdir}/nginx/conf.d/
mv %{buildroot}%{lm_confdir}/*nginx*.conf \
    %{buildroot}%{_sysconfdir}/nginx/conf.d/

460
461
462
# Remove for_etc_hosts from %%{_sysconfdir}
mv %{buildroot}%{lm_confdir}/for_etc_hosts .

463
464
465
466
#==============================================================================
# Run test
#==============================================================================
%check
Xavier Bachelot's avatar
Xavier Bachelot committed
467
468
469
470
471
472
sed -i 's:^dirName.*:dirName = %{buildroot}%{lm_vardir}/conf:' \
    %{buildroot}%{lm_storagefile}
%{__make} %{?_smp_mflags} test \
    LLNG_DEFAULTCONFFILE=%{buildroot}%{lm_storagefile}
sed -i 's:^dirName.*:dirName = %{lm_vardir}/conf:' \
    %{buildroot}%{lm_storagefile}
473

474
#==============================================================================
475
# Post Installation
476
#==============================================================================
477
%post conf
Clément OUDOT's avatar
Clément OUDOT committed
478
479
480
# Upgrade from previous version
# See http://lemonldap-ng.org/documentation/1.0/upgrade
if [ $1 -gt 1 ] ; then
Xavier Bachelot's avatar
Xavier Bachelot committed
481
482
483
    if [ -e %{lm_confdir}/storage.conf \
         -o -e %{lm_confdir}/apply.conf \
         -o -e %{lm_confdir}/apps-list.xml ] ; then
Xavier Bachelot's avatar
Xavier Bachelot committed
484
485
486
487
488
        # Run migration script
        %{lm_sharedir}/bin/lmMigrateConfFiles2ini 2>&1 > /dev/null || :
        # Fix ownership
        chgrp %{lm_apachegroup} %{lm_storagefile} || :
    fi
489
fi
490
491
492
493
494
# Set editor alternatives if it does not exist
update-alternatives --display editor > /dev/null 2>&1
if [ $? -ne 0 ] ; then
        update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1
fi
495

496
#==============================================================================
497
# Pre uninstallation
498
#==============================================================================
499
%preun conf
Clément OUDOT's avatar
Clément OUDOT committed
500
501
# Upgrade from previous version
if [ $1 -eq 1 ] ; then
502
503
    # Remove old symlinks in Apache configuration
    rm -f %{apache_confdir}/z-lemonldap-ng*.conf 2>&1 > /dev/null || :
504
fi
505

506
507
508
509
510
511
512
513
%post fastcgi-server
%systemd_post llng-fastcgi-server.service

%preun fastcgi-server
%systemd_preun llng-fastcgi-server.service

%postun fastcgi-server
%systemd_postun_with_restart llng-fastcgi-server.service
Clément OUDOT's avatar
Clément OUDOT committed
514

515
%files
516

517
%files conf
518
%doc changelog INSTALL README.md AUTHORS CONTRIBUTING.md
519
%doc for_etc_hosts
520
%license COPYING GPL
Clément OUDOT's avatar
Clément OUDOT committed
521
%dir %{lm_confdir}
522
%config(noreplace) %attr(-,root,%{lm_apachegroup}) %{lm_storagefile}
523
524
525
526
%config(noreplace) %{apache_confdir}/z-lemonldap-ng-handler.conf
%config(noreplace) %{apache_confdir}/z-lemonldap-ng-manager.conf
%config(noreplace) %{apache_confdir}/z-lemonldap-ng-portal.conf
%config(noreplace) %{apache_confdir}/z-lemonldap-ng-test.conf
527
528
529
%dir %{lm_vardir}
%dir %{lm_sharedir}
%dir %{lm_sharedir}/bin
Clément OUDOT's avatar
Clément OUDOT committed
530
%{lm_sharedir}/bin/convertConfig
531
%{_mandir}/man1/convertConfig*
532
%{lm_sharedir}/bin/importMetadata
Clément OUDOT's avatar
Clément OUDOT committed
533
%{lm_sharedir}/bin/lmMigrateConfFiles2ini
534
%{lm_sharedir}/bin/rotateOidcKeys
535
%dir %{lm_examplesdir}
Clément OUDOT's avatar
Clément OUDOT committed
536
537
538
539
540
541
%dir %{lm_sharedir}/ressources
%{lm_sharedir}/ressources/*
%defattr(750,%{lm_apacheuser},%{lm_apachegroup},-)
%dir %{lm_vardir}/conf
%dir %{lm_vardir}/sessions
%dir %{lm_vardir}/sessions/lock
542
543
%dir %{lm_vardir}/psessions
%dir %{lm_vardir}/psessions/lock
544
%dir %{lm_vardir}/notifications
Clément OUDOT's avatar
Clément OUDOT committed
545
%defattr(640,%{lm_apacheuser},%{lm_apachegroup},-)
Clément OUDOT's avatar
Clément OUDOT committed
546
%config(noreplace) %{lm_vardir}/conf/lmConf-1.json
547

548
%files doc
549
%doc %{lm_vardir}/doc
550
551
%doc changelog INSTALL README.md AUTHORS CONTRIBUTING.md
%license COPYING GPL
552

553
%files handler
Clément OUDOT's avatar
Clément OUDOT committed
554
%{lm_sharedir}/bin/purgeLocalCache
555
%config(noreplace) %{_sysconfdir}/cron.d/lemonldap-ng-handler
556
%{lm_vardir}/handler
557
%{lm_examplesdir}/handler
558
%{lm_sharedir}/llng-server/llng-server.psgi
559

560
%files manager
Clément OUDOT's avatar
Clément OUDOT committed
561
562
%{lm_sharedir}/manager
%{lm_examplesdir}/manager
563
%{lm_sharedir}/bin/lmConfigEditor
564
%{lm_sharedir}/bin/lemonldap-ng-cli
565
%{_mandir}/man1/lemonldap-ng-cli*
566

567
%files portal
568
%{lm_vardir}/portal
Clément OUDOT's avatar
Clément OUDOT committed
569
%{lm_sharedir}/bin/purgeCentralCache
570
%config(noreplace) %{_sysconfdir}/cron.d/lemonldap-ng-portal
571
%{lm_examplesdir}/portal
572
573
%defattr(750,%{lm_apacheuser},%{lm_apachegroup},-)
%dir %{lm_vardir}/captcha
574

575
%files test
576
%{lm_vardir}/test
577

578
%files fastcgi-server
579
%{lm_sharedir}/sbin/llng-fastcgi-server
580
%config(noreplace) %{_sysconfdir}/default/llng-fastcgi-server
581
%{_unitdir}/llng-fastcgi-server.service
582
%{_tmpfilesdir}/llng-fastcgi-server.conf
583
%defattr(755,%{lm_apacheuser},%{lm_apachegroup},-)
584
%dir %{_rundir}/llng-fastcgi-server
Clément OUDOT's avatar
Clément OUDOT committed
585
586
%{lm_sharedir}/examples/llngapp.psgi

587
%files uwsgi-app
588
%{_sysconfdir}/uwsgi/apps-available/llng-server.yaml
589

Xavier Bachelot's avatar
Xavier Bachelot committed
590
591
592
593
594
595
596
597
%files nginx
%config(noreplace) %{_sysconfdir}/nginx/conf.d/handler-nginx.conf
%config(noreplace) %{_sysconfdir}/nginx/conf.d/manager-nginx.conf
%config(noreplace) %{_sysconfdir}/nginx/conf.d/nginx-lmlog.conf
%config(noreplace) %{_sysconfdir}/nginx/conf.d/nginx-lua-headers.conf
%config(noreplace) %{_sysconfdir}/nginx/conf.d/portal-nginx.conf
%config(noreplace) %{_sysconfdir}/nginx/conf.d/test-nginx.conf

598
%files -n perl-Lemonldap-NG-Common
599
%{_mandir}/man3/Lemonldap::NG::Common*.3pm.*
600
601
%{perl_vendorlib}/Lemonldap/NG/Common.pm
%{perl_vendorlib}/Lemonldap/NG/Common/
Clément OUDOT's avatar
Clément OUDOT committed
602
%{perl_vendorlib}/auto/Lemonldap/NG/Common/
603
604

%files -n perl-Lemonldap-NG-Handler
605
606
%{_mandir}/man3/Lemonldap::NG::Handler*.3pm.*
%{_mandir}/man3/Plack::Middleware::Auth::LemonldapNG.3pm.*
607
608
%{perl_vendorlib}/Lemonldap/NG/Handler.pm
%{perl_vendorlib}/Lemonldap/NG/Handler/
609
%{perl_vendorlib}/auto/Lemonldap/NG/Handler/
610
%{perl_vendorlib}/Plack/Middleware/Auth/LemonldapNG.pm
611
612

%files -n perl-Lemonldap-NG-Manager
613
%{_mandir}/man3/Lemonldap::NG::Manager*.3pm.*
614
615
616
617
%{perl_vendorlib}/Lemonldap/NG/Manager.pm
%{perl_vendorlib}/Lemonldap/NG/Manager/

%files -n perl-Lemonldap-NG-Portal
618
%{_mandir}/man3/Lemonldap::NG::Portal*.3pm.*
619
620
%{perl_vendorlib}/Lemonldap/NG/Portal.pm
%{perl_vendorlib}/Lemonldap/NG/Portal/
621

622
#==============================================================================
623
# Changelog
624
#==============================================================================
625
%changelog
Clément OUDOT's avatar
Clément OUDOT committed
626
627
* Fri Nov 30 2018 Clement Oudot <clem.oudot@gmail.com> - 2.0.0-1
- Update to 2.0.0
628

Clément OUDOT's avatar
Clément OUDOT committed
629
* Fri Jul 20 2018 Clement Oudot <clem.oudot@gmail.com> - 2.0.0~beta1-1
Clément OUDOT's avatar
Clément OUDOT committed
630
- First beta version for 2.0.0
631

Clément OUDOT's avatar
Clément OUDOT committed
632
633
* Fri Jan 26 2018 Clement Oudot <clem.oudot@gmail.com> - 2.0.0~alpha3-1
- Third alpha version for 2.0.0
634

Clément OUDOT's avatar
Clément OUDOT committed
635
636
* Tue Jan 23 2018 Clement Oudot <clem.oudot@gmail.com> - 1.9.15-1
- Update to 1.9.15
637

Clément OUDOT's avatar
Clément OUDOT committed
638
639
* Fri Nov 24 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.14-1
- Update to 1.9.14
640

641
642
* Fri Sep 29 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.13-1
- Update to 1.9.13
643

Clément OUDOT's avatar
Clément OUDOT committed
644
645
* Thu Sep 14 2017 Clement Oudot <clem.oudot@gmail.com> - 2.0.0~alpha2-1
- Second alpha version for 2.0.0
646

647
648
* Tue Sep 12 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.12-1
- Update to 1.9.12
649

Clément OUDOT's avatar
Clément OUDOT committed
650
651
* Fri Sep 01 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.11-1
- Update to 1.9.11
652

653
654
* Mon Jul 10 2017 Clement Oudot <clem.oudot@gmail.com> - 2.0.0~alpha1-1
- First alpha version for 2.0.0
655

Clément OUDOT's avatar
Clément OUDOT committed
656
657
* Fri May 19 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.10-1
- Update to 1.9.10
658

Clément OUDOT's avatar
Clément OUDOT committed
659
660
* Thu Mar 16 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.9-1
- Update to 1.9.9
661

662
663
* Thu Mar 02 2017 Clement Oudot <clem.oudot@gmail.com> - 1.9.8-1
- Update to 1.9.8
664

665
666
* Mon Dec 12 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.7-1
- Update to 1.9.7
667

Clément OUDOT's avatar
Clément OUDOT committed
668
669
* Fri Oct 14 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.6-1
- Update to 1.9.6
670

Clément OUDOT's avatar
Clément OUDOT committed
671
* Mon Oct 10 2016 Clement Oudot <clem.oudot@gmail.com> - 1.4.11-1
672
- Update to 1.4.11
673

674
675
* Wed Jul 13 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.5-1
- Update to 1.9.5
676

677
678
* Wed Jul 13 2016 Clement Oudot <clem.oudot@gmail.com> - 1.4.10-1
- Update to 1.4.10
679

Clément OUDOT's avatar
Clément OUDOT committed
680
681
* Tue Jun 14 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.4-1
- Update to 1.9.4
682

Clément OUDOT's avatar
Clément OUDOT committed
683
684
* Tue Jun 07 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.3-1
- Update to 1.9.3
685

686
687
* Fri Jun 03 2016 Clement Oudot <clem.oudot@gmail.com> - 1.4.9-1
- Update to 1.4.9
688

689
690
* Sun May 01 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.2-1
- Update to 1.9.2
691

692
693
* Wed Apr 27 2016 Clement Oudot <clem.oudot@gmail.com> - 1.4.8-1
- Update to 1.4.8
694

695
696
* Thu Mar 31 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.1-1
- Update to 1.9.1
697

698
699
* Thu Mar 17 2016 Clement Oudot <clem.oudot@gmail.com> - 1.4.7-1
- Update to 1.4.7
700

701
* Wed Mar 02 2016 Clement Oudot <clem.oudot@gmail.com> - 1.9.0-1
Clément OUDOT's avatar
Clément OUDOT committed
702
- Update to 1.9.0
703

704
705
* Mon Sep 28 2015 Clement Oudot <clem.oudot@gmail.com> - 1.4.6-1
- Update to 1.4.6
706

707
708
* Mon May 11 2015 Clement Oudot <clem.oudot@gmail.com> - 1.4.5-1
- Update to 1.4.5
709

Clément OUDOT's avatar
Clément OUDOT committed
710
* Wed Apr 15 2015 Clement Oudot <clem.oudot@gmail.com> - 1.4.4-1
Clément OUDOT's avatar
Clément OUDOT committed
711
- Update to 1.4.4
712

Clément OUDOT's avatar
Clément OUDOT committed
713
714
715
* Thu Dec 18 2014 Clement Oudot <clem.oudot@gmail.com> - 1.4.3-1
- Update to 1.4.3
- Support for CentOS 7
716

Clément OUDOT's avatar
Clément OUDOT committed
717
718
* Fri Oct 31 2014 Clement Oudot <clem.oudot@gmail.com> - 1.4.2-1
- Update to 1.4.2
719

Clément OUDOT's avatar
Clément OUDOT committed
720
721
* Fri Jul 25 2014 Clement Oudot <clem.oudot@gmail.com> - 1.4.1-1
- Update to 1.4.1
722

Clément OUDOT's avatar
Clément OUDOT committed
723
724
* Fri Apr 18 2014 Clement Oudot <clem.oudot@gmail.com> - 1.4.0-1
- Update to 1.4.0
725

Clément OUDOT's avatar
Clément OUDOT committed
726
727
* Fri Mar 07 2014 Clement Oudot <clem.oudot@gmail.com> - 1.3.3-1
- Update to 1.3.3
728

Clément OUDOT's avatar
Clément OUDOT committed
729
730
* Thu Jan 23 2014 Clement Oudot <clem.oudot@gmail.com> - 1.3.2-1
- Update to 1.3.2
731

Clément OUDOT's avatar
Clément OUDOT committed
732
733
* Mon Nov 11 2013 Clement Oudot <clem.oudot@gmail.com> - 1.3.1-1
- Update to 1.3.1
734

Clément OUDOT's avatar
Clément OUDOT committed
735
736
* Sat Nov 2 2013 Clement Oudot <clem.oudot@gmail.com> - 1.3.0-1
- Update to 1.3.0
737

Clément OUDOT's avatar
Clément OUDOT committed
738
739
* Mon Aug 26 2013 Clement Oudot <clem.oudot@gmail.com> - 1.2.5-1
- Update to 1.2.5
740

Clément OUDOT's avatar
Clément OUDOT committed
741
742
* Tue Apr 23 2013 Clement Oudot <clem.oudot@gmail.com> - 1.2.4-1
- Update to 1.2.4
743

Clément OUDOT's avatar
Clément OUDOT committed
744
745
* Fri Feb 08 2013 Clement Oudot <clem.oudot@gmail.com> - 1.2.3-1
- Update to 1.2.3
746

747
748
* Mon Sep 17 2012 Clement Oudot <clem.oudot@gmail.com> - 1.2.2-1
- Update to 1.2.2
749

750
* Thu Jul 05 2012 Clement Oudot <clem.oudot@gmail.com> - 1.2.1-1
751
- Update to 1.2.1
752

753
* Sun Jun 17 2012 Clement Oudot <clem.oudot@gmail.com> - 1.2.0-1
754
- Update to 1.2.0
755

756
757
* Fri Oct 07 2011 Clement Oudot <clem.oudot@gmail.com> - 1.1.2-1
- Update to 1.1.2
758

759
760
* Fri Jul 29 2011 Clement Oudot <clem.oudot@gmail.com> - 1.1.1-1
- Update to 1.1.1
761

Clément OUDOT's avatar
Clément OUDOT committed
762
763
* Fri Jul 08 2011 Clement Oudot <clem.oudot@gmail.com> - 1.1.0-1
- Update to 1.1.0
764

765
* Thu Jun 30 2011 Clement Oudot <clem.oudot@gmail.com> - 1.0.6-1
Clément OUDOT's avatar
Clément OUDOT committed
766
- Update to 1.0.6
767

Clément OUDOT's avatar
Clément OUDOT committed
768
769
* Fri Apr 15 2011 Clement Oudot <clem.oudot@gmail.com> - 1.0.5-1
- Update to 1.0.5
770

Clément OUDOT's avatar
Clément OUDOT committed
771
772
* Tue Mar 22 2011 Clement Oudot <clem.oudot@gmail.com> - 1.0.4-1
- Update to 1.0.4
773

774
775
* Mon Mar 07 2011 Clement Oudot <clem.oudot@gmail.com> - 1.0.3-1
- Update to 1.0.3
776

777
778
* Mon Feb 28 2011 Clement Oudot <clem.oudot@gmail.com> - 1.0.2-1
- Update to 1.0.2
779

780
781
* Thu Dec 16 2010 Clement Oudot <clem.oudot@gmail.com> - 1.0.1-1
- Update to 1.0.1
782

Clément OUDOT's avatar
Clément OUDOT committed
783
784
* Fri Nov 26 2010 Clement Oudot <clem.oudot@gmail.com> - 1.0-1
- Update to 1.0
785

Clément OUDOT's avatar
Clément OUDOT committed
786
787
788
* Wed Jul 21 2010 Nicolas Chauvet <kwizart@gmail.com> - 0.9.4.1-3
- Fix compatibility with perl-LDAP 0.40
- Add BR perl(Auth::CAS)
789

Clément OUDOT's avatar
Clément OUDOT committed
790
791
* Mon Jul 12 2010 Nicolas Chauvet <nchauvet@linagora.com> - 0.9.4.1-2
- Protect lemonldap directories against word readability
792

Clément OUDOT's avatar
Clément OUDOT committed
793
794
* Mon Oct 12 2009 Nicolas Chauvet <nchauvet@linagora.com> - 0.9.4.1-1
- Update to 0.9.4.1
795

Clément OUDOT's avatar
Clément OUDOT committed
796
797
798
799
* Thu Sep 24 2009 Nicolas Chauvet <nchauvet@linagora.com> - 0.9.4-2
- Add Missing BuildRequires
- Remove filter for dependencies available in EPEL.
- use %%defattr to define ownership.
800

801
* Mon Jul 6 2009 Clement Oudot <coudot@linagora.com> - 0.9.4-1
Clément OUDOT's avatar
Clément OUDOT committed
802
803
804
- Upgrade to release 0.9.4
- Remove cronjob patch (included in 0.9.4)
- Split scriplets into subpackages
805
- Use conditions to build for other RPM distributions like OpenSuSE (thanks to clauded1)
806

807
808
809
810
* Mon Jan 12 2009 Clement Oudot <coudot@linagora.com> - 0.9.3.2-2
- Include cronjob patch
- Delete unwanted files (perllocal.pod, .packlist)
- Follow rpmfusion guidelines
811

812
* Fri Jan 9 2009 Clement Oudot <coudot@linagora.com> - 0.9.3.2-1
813
- Updated to release 0.9.3.2.
814
- Use internal version number for perl modules (compatibility with RPMforge packages)
815
816
- Merge with existing .spec file from RPMforge.
- Use the same directories as the Debian package.
817
- Create a symlink in Apache confguration.
Yadd's avatar
Yadd committed
818
- Create specific portal/manager/handler/conf packages independent from CPAN packages
819

820
821
822
* Thu Nov 20 2008 Jean-Christophe Toussaint <jean-christophe.toussaint@ac-nancy-metz.fr> - 0.9.2-1DSI
- Updated to release 0.9.2.
- Using official tar.gz from forge.
823

824
* Tue Oct 7 2008 David Hannequin <david.hannequin@linagora.com> 
825
- New spec file
826

827
828
* Sun Mar 02 2008 Dag Wieers <dag@wieers.com> - 0.85-1
- Updated to release 0.85.
829

830
831
* Tue Nov 13 2007 Dag Wieers <dag@wieers.com> - 0.84-1
- Updated to release 0.84.
832

833
834
* Wed May 02 2007 Dries Verachtert <dries@ulyssis.org> - 0.81-1
- Updated to release 0.81.
835

836
837
* Sun Apr 29 2007 Dries Verachtert <dries@ulyssis.org> - 0.75-1
- Initial package.