]> git.pld-linux.org Git - packages/lms.git/blobdiff - lms.spec
- up to 1.8.0
[packages/lms.git] / lms.spec
index 4bb12d81a3e416ad8bd70388e247a85d1e7202c6..353412efab149aaa7d7dcf0e53acd69079a439a2 100644 (file)
--- a/lms.spec
+++ b/lms.spec
@@ -1,51 +1,54 @@
+# TODO
+# - test build on amd64 and check /usr/lib64 patch
+# - cosmetics (sort in %%files and %%install)
+# - contrib split
 #
 # Conditional build:
-%bcond_without almsd           # without almsd daemon
+%bcond_without lmsd            # without lmsd daemon
 #
-# TODO:
-# - cosmetics (sort in %%files and %%install)
-# - contrib split
-%define                lmsver          1.4
-%define                lmssubver       3
+%define                lmsver          1.8
+%define                lmssubver       0
 Summary:       LAN Managment System
 Summary(pl):   System Zarz±dzania Sieci± Lokaln±
 Name:          lms
 Version:       %{lmsver}.%{lmssubver}
-Release:       0.9
-License:       GPL
+Release:       0.1
+License:       GPL v2
 Vendor:                LMS Developers
 Group:         Networking/Utilities
 Source0:       http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
-# Source0-md5: 3f94f69e5b9b8c14ca883cbe5d1c7b68
+# Source0-md5: afa0680e112dc14c4fbb41d9ec2eedee
 Source1:       %{name}.conf
 Source2:       %{name}.init
 Source3:       %{name}.sysconfig
 Patch0:                %{name}-PLD.patch
 Patch1:                %{name}-amd64.patch
-Patch2:                %{name}-calendar.patch
 URL:           http://lms.rulez.pl/
-%{?with_almsd:BuildRequires:   libgadu-devel}
-%{?with_almsd:BuildRequires:   mysql-devel}
-%{?with_almsd:BuildRequires:   postgresql-devel}
-%{?with_almsd:PreReq:          rc-scripts}
-%{?with_almsd:Requires(post,preun):    /sbin/chkconfig}
+%{?with_lmsd:BuildRequires:    libgadu-devel}
+%{?with_lmsd:BuildRequires:    mysql-devel}
+%{?with_lmsd:BuildRequires:    postgresql-devel}
+%{?with_lmsd:Requires(post,preun):     /sbin/chkconfig}
+Requires:      Smarty >= 2.6.10-4
 Requires:      php
 Requires:      php-gd
-Requires:      php-posix
+Requires:      php-iconv
 Requires:      php-pcre
-Requires:      webserver
-Requires:      Smarty >= 2.5.0
+Requires:      php-posix
+%{?with_lmsd:Requires: rc-scripts}
+Requires:      webapps
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
 %define                _lmsdir         %{_datadir}/%{name}
 %define                _lmsvar         /var/lib/%{name}
+%define                _webapps        /etc/webapps
+%define                _webapp         %{name}
 
 %description
 This is a package of applications in PHP and Perl for managing LANs.
 It's using MySQL or PostgreSQL. The main goal is to get the best
 service of users at provider's level. The main features in LMS are:
-- database of users (name, surname, address, telefon number,
+- database of users (name, surname, address, telephone number,
   commentary);
 - database of computers (IP, MAC);
 - easy-ridden financial system and funds of network;
@@ -54,7 +57,7 @@ service of users at provider's level. The main features in LMS are:
 - many levels of access for LMS administrators;
 - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd,
   openbsd packet filter configuration files/scripts;
-- autogenerating almost any kind of config file using templates;
+- autogenerating almost any kind of config file using templates.
 
 %description -l pl
 "LMS" jest skrótem od "LAN Management System". Jest to zestaw
@@ -76,27 +79,27 @@ to:
 - generowanie regu³ i plików konfiguracyjnych dla ipchains, iptables,
   dhcpd, oidentd, packet filtra openbsd, wpisów /etc/ethers
 - generowanie praktycznie ka¿dego pliku konfiguracyjnego na podstawie
-  danych w bazie przy u¿yciu prostych szablonów;
+  danych w bazie przy u¿yciu prostych szablonów.
 
 %package scripts
 Summary:       LAN Managment System - scripts
 Summary(pl):   LAN Managment System - skrypty
 Group:         Networking/Utilities
-Requires:      perl-Net-SMTP-Server
 Requires:      perl-Config-IniFiles
 Requires:      perl-DBI
+Requires:      perl-Net-SMTP-Server
 
 %description scripts
 This package contains scripts to integrate LMS with your system,
 monthly billing, notify users about their debts and cutting off
-customers. Also you can build propably any kind of config file using
+customers. Also you can build probably any kind of config file using
 lms-mgc.
 
 %description scripts -l pl
 Ten pakiet zawiera skrypty do zintegrowania LMS z systemem, naliczania
 comiesiêcznych op³at, powiadamiania u¿ytkowników o ich zad³u¿eniu oraz
 ich automagicznego od³±czania. Mo¿esz tak¿e zbudowaæ prawdopodobnie
-ka¿dy typ pliku konfiguracyjnego przy u¿yciu lms-mgc;
+ka¿dy typ pliku konfiguracyjnego przy u¿yciu lms-mgc.
 
 %package sqlpanel
 Summary:       LAN Managment System - sqlpanel module
@@ -125,17 +128,18 @@ Simple user interface.
 %description user -l pl
 Prosty interfejs u¿ytkownika.
 
-%package almsd
+%package lmsd
 Summary:       LAN Managment System - LMS system backend
 Summary(pl):   LAN Managment System - backend systemu LMS
 Group:         Networking/Utilities
 Requires:      %{name} = %{version}-%{release}
+Obsoletes:     lms-almsd
 
-%description almsd
+%description lmsd
 A program to manage the server by creating configuration files based
 upon LMS database and restarting selected services.
 
-%description almsd -l pl
+%description lmsd -l pl
 Program zarz±dzaj±cy serwerem poprzez tworzenie plików
 konfiguracyjnych na podstawie bazy danych LMS'a i restartowanie
 wybranych us³ug.
@@ -143,28 +147,25 @@ wybranych us
 %prep
 %setup -q -n %{name}
 %patch0 -p1
-%ifarch amd64
+%if "%{_lib}" == "lib64"
 %patch1 -p1
 %endif
-%patch2 -p1
 
 %build
-%if %{with almsd}
+%if %{with lmsd}
 
 cd daemon
 
 ./configure --with-mysql
 %{__make} \
-       CC='%{__cc}' CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -I../..'
-mv almsd almsd-mysql
-
-rm db.o
+       CC='%{__cc}' CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
+mv lmsd lmsd-mysql
 
 ./configure --with-pgsql
-%{__make} almsd \
+%{__make} lmsd \
        CC='%{__cc}' \
-       CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -I../..'
-mv almsd almsd-pgsql
+       CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
+mv lmsd lmsd-pgsql
 
 cd ..
 %endif
@@ -172,32 +173,34 @@ cd ..
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_sbindir} \
-          $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,httpd} \
+          $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \
           $RPM_BUILD_ROOT/etc/lms/modules/{dns,ggnofity,nofity} \
-          $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c},/usr/lib/lms} \
-          $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user,calendar}
+          $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c},%{_libdir}/lms} \
+          $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user}
 
 install *.php $RPM_BUILD_ROOT%{_lmsdir}/www
 install img/* $RPM_BUILD_ROOT%{_lmsdir}/www/img
 cp -r doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
 cp -r lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
-mv $RPM_BUILD_ROOT%{_lmsdir}/templates/calendar.html $RPM_BUILD_ROOT%{_lmsdir}/www/calendar
 install bin/* $RPM_BUILD_ROOT%{_sbindir}
 
 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/%{name}.conf
+
+install -d $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
+install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+install %{SOURCE1} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
 
 # sqlpanel
 install contrib/sqlpanel/sql.php $RPM_BUILD_ROOT%{_lmsdir}/modules
 install contrib/sqlpanel/*.html $RPM_BUILD_ROOT%{_lmsdir}/templates
 
 # user
-install contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
+cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user
 
 # daemon
-%if %{with almsd}
-install daemon/almsd-* $RPM_BUILD_ROOT%{_sbindir}
-install daemon/modules/*/*.so $RPM_BUILD_ROOT/usr/lib/lms
+%if %{with lmsd}
+install daemon/lmsd-* $RPM_BUILD_ROOT%{_sbindir}
+install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/lms
 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/dns
 cp -r daemon/modules/ggnotify/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/ggnotify
 cp -r daemon/modules/dns/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/nofity
@@ -208,43 +211,15 @@ install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post
-if [ -f /etc/httpd/httpd.conf ] && ! grep -q "^Include.*%{name}.conf" /etc/httpd/httpd.conf; then
-       echo "Include /etc/httpd/%{name}.conf" >> /etc/httpd/httpd.conf
-       if [ -f /var/lock/subsys/httpd ]; then
-               /usr/sbin/apachectl restart 1>&2
-       fi
-elif [ -d /etc/httpd/httpd.conf ]; then
-       ln -sf /etc/httpd/%{name}.conf /etc/httpd/httpd.conf/99_%{name}.conf
-       if [ -f /var/lock/subsys/httpd ]; then
-               /usr/sbin/apachectl restart 1>&2
-       fi
-fi
-
-%post almsd
+%post lmsd
 /sbin/chkconfig --add lmsd
 if [ -f /var/lock/subsys/lmsd ]; then
        /etc/rc.d/init.d/lmsd restart >&2
 else
-       echo "Run \"/etc/rc.d/init.d/lmsd start\" to start almsd daemon."
+       echo "Run \"/etc/rc.d/init.d/lmsd start\" to start lmsd daemon."
 fi
 
-%preun
-if [ "$1" = "0" ]; then
-       umask 027
-       if [ -d /etc/httpd/httpd.conf ]; then
-               rm -f /etc/httpd/httpd.conf/99_%{name}.conf
-       else
-               grep -v "^Include.*%{name}.conf" /etc/httpd/httpd.conf > \
-                       /etc/httpd/httpd.conf.tmp
-               mv -f /etc/httpd/httpd.conf.tmp /etc/httpd/httpd.conf
-       fi
-       if [ -f /var/lock/subsys/httpd ]; then
-               /usr/sbin/apachectl restart 1>&2
-       fi
-fi
-
-%preun almsd
+%preun lmsd
 if [ "$1" = "0" ]; then
        if [ -f /var/lock/subsys/lmsd ]; then
                /etc/rc.d/init.d/lmsd stop >&2
@@ -252,19 +227,54 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del lmsd
 fi
 
+%triggerin -- apache1
+%webapp_register apache %{_webapp}
+
+%triggerun -- apache1
+%webapp_unregister apache %{_webapp}
+
+%triggerin -- apache < 2.2.0, apache-base
+%webapp_register httpd %{_webapp}
+
+%triggerun -- apache < 2.2.0, apache-base
+%webapp_unregister httpd %{_webapp}
+
 %triggerpostun -- %{name} <= 1.0.4
 echo "WARNING!!!"
 echo "_READ_ and upgrade LMS database:"
 echo "MySQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.mysql.gz"
 echo "PostgreSQL: /usr/share/doc/%{name}-%{version}/UPGRADE-1.0-1.5.pgsql.gz"
+
+%triggerpostun -- %{name} <= 1.2.0
+echo "BEWARE:"
+echo "Automatic upgrade from LMS<= 1.2.0 is NO LONGER SUPPORTED by lms team"
+echo "You are advised to upgrade it manually"
 echo
 
+%triggerpostun -- %{name} < 1.6.6-1.4
+# nuke very-old config location (this mostly for Ra)
+if [ -f /etc/httpd/httpd.conf ]; then
+       sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
+fi
+
+# migrate from httpd (apache2) config dir
+if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
+       cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
+       mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
+fi
+
+rm -f /etc/httpd/httpd.conf/99_%{name}.conf
+/usr/sbin/webapp register httpd %{_webapp}
+%service -q httpd reload
+
 %files
 %defattr(644,root,root,755)
-%doc doc/{AUTHORS,ChangeLog*,README,TODO,UPGRADE*,lms*}
+%doc doc/{AUTHORS,ChangeLog,INSTALL,README*,lms*}
 %dir %{_sysconfdir}
-%attr(640,root,http) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/*.ini
-%config(noreplace) %verify(not size mtime md5) /etc/httpd/%{name}.conf
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.ini
+%dir %attr(750,root,http) %{_webapps}/%{_webapp}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
 #
 %dir %{_lmsvar}
 %attr(770,root,http) %{_lmsvar}/backups
@@ -278,7 +288,7 @@ echo
 %exclude %{_lmsdir}/modules/sql.php
 %{_lmsdir}/contrib
 %{_lmsdir}/sample
-%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.sh
+%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
 %{_lmsdir}/templates
 %exclude %{_lmsdir}/templates/sql.html
 %exclude %{_lmsdir}/templates/sqlprint.html
@@ -298,12 +308,11 @@ echo
 %defattr(644,root,root,755)
 %{_lmsdir}/www/user
 
-%if %{with almsd}
-%files almsd
+%if %{with lmsd}
+%files lmsd
 %defattr(644,root,root,755)
-%doc daemon/{lms.ini.sample,TODO}
-%attr(755,root,root) %{_sbindir}/almsd-*
-%attr(755,root,root) /usr/lib/lms/*.so
+%attr(755,root,root) %{_sbindir}/lmsd-*
+%attr(755,root,root) %{_libdir}/lms/*.so
 %attr(754,root,root) /etc/rc.d/init.d/lmsd
 /etc/lms/modules/*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
This page took 0.302454 seconds and 4 git commands to generate.