]> git.pld-linux.org Git - packages/lms.git/blobdiff - lms.spec
- removed outdated patches
[packages/lms.git] / lms.spec
index 353412efab149aaa7d7dcf0e53acd69079a439a2..d2d65559200080e70e06be39a6633082583b999d 100644 (file)
--- a/lms.spec
+++ b/lms.spec
@@ -1,46 +1,57 @@
 # TODO
-# - test build on amd64 and check /usr/lib64 patch
 # - cosmetics (sort in %%files and %%install)
 # - contrib split
 #
 # Conditional build:
 %bcond_without lmsd            # without lmsd daemon
-#
-%define                lmsver          1.8
-%define                lmssubver       0
+%bcond_with    lmsd_debug      # with lmsd debugging
+
+%define                lmsver          1.11
+%define                lmssubver       12
 Summary:       LAN Managment System
-Summary(pl):   System Zarz±dzania Sieci± Lokaln±
+Summary(pl.UTF-8):     System Zarządzania Siecią Lokalną
 Name:          lms
 Version:       %{lmsver}.%{lmssubver}
-Release:       0.1
+Release:       1
 License:       GPL v2
-Vendor:                LMS Developers
 Group:         Networking/Utilities
-Source0:       http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
-# Source0-md5: afa0680e112dc14c4fbb41d9ec2eedee
+Source0:       http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz
+# Source0-md5: 484a02ea6e8d493b7906ea8246492b64
 Source1:       %{name}.conf
 Source2:       %{name}.init
 Source3:       %{name}.sysconfig
 Patch0:                %{name}-PLD.patch
 Patch1:                %{name}-amd64.patch
-URL:           http://lms.rulez.pl/
+Patch2:                %{name}-smarty.patch
+Patch3:                %{name}-quicksearch.php.patch
+URL:           http://www.lms.org.pl/
+BuildRequires: bison
+BuildRequires: flex
 %{?with_lmsd:BuildRequires:    libgadu-devel}
 %{?with_lmsd:BuildRequires:    mysql-devel}
+BuildRequires: net-snmp-devel
 %{?with_lmsd:BuildRequires:    postgresql-devel}
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.461
+BuildRequires: yacc
 %{?with_lmsd:Requires(post,preun):     /sbin/chkconfig}
-Requires:      Smarty >= 2.6.10-4
-Requires:      php
-Requires:      php-gd
-Requires:      php-iconv
-Requires:      php-pcre
-Requires:      php-posix
-%{?with_lmsd:Requires: rc-scripts}
+Requires:      Smarty >= 2.6.18-2
+Requires:      php(gd)
+Requires:      php(iconv)
+Requires:      php(mbstring)
+Requires:      php(mysql)
+Requires:      php(pcre)
+Requires:      php(posix)
 Requires:      webapps
+Requires:      webserver(access)
+Requires:      webserver(alias)
+Requires:      webserver(php)
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sysconfdir     /etc/%{name}
 %define                _lmsdir         %{_datadir}/%{name}
 %define                _lmsvar         /var/lib/%{name}
+%define                _smartyplugindir        %{php_data_dir}/Smarty/plugins
 %define                _webapps        /etc/webapps
 %define                _webapp         %{name}
 
@@ -59,31 +70,31 @@ service of users at provider's level. The main features in LMS are:
   openbsd packet filter configuration files/scripts;
 - autogenerating almost any kind of config file using templates.
 
-%description -l pl
-"LMS" jest skrótem od "LAN Management System". Jest to zestaw
-aplikacji w PHP i Perlu, u³atwiaj±cych zarz±dzanie sieciami
+%description -l pl.UTF-8
+"LMS" jest skrótem od "LAN Management System". Jest to zestaw
+aplikacji w PHP i Perlu, ułatwiających zarządzanie sieciami
 osiedlowymi (popularnie zwanymi Amatorskimi Sieciami Komputerowymi),
-opartych o bazê danych MySQL lub PostgreSQL. G³ówne za³o¿enia to
-uzyskanie jako¶ci us³ug oraz obs³ugi u¿ytkowników na poziomie
+opartych o bazę danych MySQL lub PostgreSQL. Główne założenia to
+uzyskanie jakości usług oraz obsługi użytkowników na poziomie
 providera z prawdziwego zdarzenia. Najbardziej podstawowe cechy LMS
 to:
-- baza danych u¿ytkowników (imiê, nazwisko, adres, numer telefonu,
+- baza danych użytkowników (imię, nazwisko, adres, numer telefonu,
   uwagi);
-- baza danych komputerów (adres IP, adres MAC);
+- baza danych komputerów (adres IP, adres MAC);
 - prowadzenie prostego rachunku operacji finansowych oraz stanu
-  funduszów sieci;
-- ró¿ne taryfy abonamentowe;
-- wysy³anie poczt± elektroniczn± upomnieñ do u¿ytkowników;
-- automatyczne naliczanie op³at miesiêcznych;
-- ró¿ne poziomy dostêpu do funkcji LMS dla administratorów;
-- 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.
+  funduszów sieci;
+- różne taryfy abonamentowe;
+- wysyłanie pocztą elektroniczną upomnień do użytkowników;
+- automatyczne naliczanie opłat miesięcznych;
+- różne poziomy dostępu do funkcji LMS dla administratorów;
+- 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.
 
 %package scripts
 Summary:       LAN Managment System - scripts
-Summary(pl):   LAN Managment System - skrypty
+Summary(pl.UTF-8):     LAN Managment System - skrypty
 Group:         Networking/Utilities
 Requires:      perl-Config-IniFiles
 Requires:      perl-DBI
@@ -95,15 +106,15 @@ monthly billing, notify users about their debts and cutting off
 customers. Also you can build probably any kind of config file using
 lms-mgc.
 
-%description scripts -l pl
+%description scripts -l pl.UTF-8
 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.
+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.
 
 %package sqlpanel
 Summary:       LAN Managment System - sqlpanel module
-Summary(pl):   LAN Managment System - modu³ sqlpanel
+Summary(pl.UTF-8):     LAN Managment System - moduł sqlpanel
 Group:         Networking/Utilities
 Requires:      %{name} = %{version}-%{release}
 
@@ -111,38 +122,61 @@ Requires: %{name} = %{version}-%{release}
 SQL-panel module allows you to execute SQL queries and directly modify
 data.
 
-%description sqlpanel -l pl
-Modu³ 'SQL - panel' daje mo¿liwo¶æ bezpo¶redniego dostêpu do bazy
-danych poprzez zadawanie zapytañ SQL. Wyniki wy¶wietlane s± w formie
+%description sqlpanel -l pl.UTF-8
+Moduł 'SQL - panel' daje możliwość bezpośredniego dostępu do bazy
+danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie
 tabeli. Ponadto podawany jest czas wykonania zapytania.
 
 %package user
 Summary:       LAN Managment System - simple user interface
-Summary(pl):   LAN Managment System - prosty interfejs u¿ytkownika
+Summary(pl.UTF-8):     LAN Managment System - prosty interfejs użytkownika
 Group:         Networking/Utilities
 Requires:      %{name} = %{version}-%{release}
 
 %description user
 Simple user interface.
 
-%description user -l pl
-Prosty interfejs u¿ytkownika.
+%description user -l pl.UTF-8
+Prosty interfejs użytkownika.
 
 %package lmsd
 Summary:       LAN Managment System - LMS system backend
-Summary(pl):   LAN Managment System - backend systemu LMS
+Summary(pl.UTF-8):     LAN Managment System - backend systemu LMS
 Group:         Networking/Utilities
-Requires:      %{name} = %{version}-%{release}
+Requires(post,preun):  /sbin/chkconfig
+Requires:      rc-scripts
 Obsoletes:     lms-almsd
 
 %description lmsd
 A program to manage the server by creating configuration files based
 upon LMS database and restarting selected services.
 
-%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.
+%description lmsd -l pl.UTF-8
+Program zarządzający serwerem poprzez tworzenie plików
+konfiguracyjnych na podstawie bazy danych LMS-a i restartowanie
+wybranych usług.
+
+%package userpanel
+Summary:        LAN Managment System - Userpanel
+Summary(pl.UTF-8):      System Zarządzania Siecią Lokalną - Panel Użytkownika
+Group:          Networking/Utilities
+Requires:       %{name} = %{version}-%{release}
+
+%description userpanel
+Userpanel is automated virtual customer service, based on LMS and
+using its core features. It enables customers (or it's intended to) to
+do review their payments, change their personal details or computer
+properties, modify subscriptions, submit problems, track their
+requests on Helpdesk and print invoices. It means, it makes a closer
+contact with their ISP.
+
+%description userpanel -l pl.UTF-8
+Userpanel jest opartą na szkielecie LMS (i ściśle z LMS
+współpracującą) implementacją tzw. e-boku. Umożliwia (albo będzie
+umożliwiał) klientom przeglądanie stanu swoich wpłat, zmianę swoich
+danych osobowych, edycję właściwości swoich komputerów, zmianę taryf,
+zgłaszanie błędów oraz awarii do Helpdesku, wydruk faktur oraz
+formularza przelewu.
 
 %prep
 %setup -q -n %{name}
@@ -150,18 +184,32 @@ wybranych us
 %if "%{_lib}" == "lib64"
 %patch1 -p1
 %endif
+%patch2 -p1
+%patch3 -p1
+
+mkdir smarty-plugins
+mv \
+lib/Smarty/plugins/block.t.php \
+lib/Smarty/plugins/function.{bankaccount,gentime,handle,memory,number,size,sum,tip}.php \
+lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \
+       smarty-plugins
+rm -rf lib/Smarty
+
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
 
 %build
 %if %{with lmsd}
 
 cd daemon
 
-./configure --with-mysql
+./configure --with-mysql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
 %{__make} \
-       CC='%{__cc}' CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
+       CC='%{__cc}' \
+       CFLAGS='%{rpmcflags} -fPIC -DUSE_MYSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
 mv lmsd lmsd-mysql
 
-./configure --with-pgsql
+./configure --with-pgsql %{?with_lmsd_debug:--enable-debug0 --enable-debug1}
 %{__make} lmsd \
        CC='%{__cc}' \
        CFLAGS='%{rpmcflags} -fPIC -DUSE_PGSQL -DLMS_LIB_DIR=\"%{_libdir}/lms/\" -I../..'
@@ -175,14 +223,23 @@ rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT%{_sbindir} \
           $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},%{_libdir}/lms} \
-          $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user}
+          $RPM_BUILD_ROOT{%{_lmsvar}/{backups,templates_c,documents},%{_libdir}/lms} \
+          $RPM_BUILD_ROOT%{_lmsdir}/www/{img,doc,user} \
+          $RPM_BUILD_ROOT%{_lmsdir}/www/img/core \
+          $RPM_BUILD_ROOT%{_smartyplugindir}
 
 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}
+install img/core/* $RPM_BUILD_ROOT%{_lmsdir}/www/img/core/*
+install img/*.gif $RPM_BUILD_ROOT%{_lmsdir}/www/img
+install img/*.jpg $RPM_BUILD_ROOT%{_lmsdir}/www/img
+install img/*.png $RPM_BUILD_ROOT%{_lmsdir}/www/img
+install img/*.css $RPM_BUILD_ROOT%{_lmsdir}/www/img
+install img/*.js $RPM_BUILD_ROOT%{_lmsdir}/www/img
+install img/*.fdb $RPM_BUILD_ROOT%{_lmsdir}/www/img
+cp -a doc/html $RPM_BUILD_ROOT%{_lmsdir}/www/doc
+cp -a lib contrib modules templates sample $RPM_BUILD_ROOT%{_lmsdir}
 install bin/* $RPM_BUILD_ROOT%{_sbindir}
+cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir}
 
 install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir}
 
@@ -208,29 +265,40 @@ install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd
 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
 %endif
 
+#userpanel
+install -d $RPM_BUILD_ROOT%{_lmsdir}/userpanel
+install -d $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules
+install -d $RPM_BUILD_ROOT%{_lmsvar}/userpanel/templates_c
+
+cp -R {userpanel/lib,userpanel/modules,userpanel/templates}           $RPM_BUILD_ROOT%{_lmsdir}/userpanel
+cp -R {userpanel/index.php,userpanel/style}                 $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel
+ln -s %{_lmsdir}/www/userpanel/style    $RPM_BUILD_ROOT%{_lmsdir}/userpanel
+ln -s %{_lmsvar}/userpanel/templates_c  $RPM_BUILD_ROOT%{_lmsdir}/userpanel
+
+for MODULE in $RPM_BUILD_ROOT%{_lmsdir}/userpanel/modules/*; do
+    MODULE=$(basename $MODULE)
+    mkdir $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
+    ln -s %{_lmsdir}/userpanel/modules/$MODULE/style    \
+        $RPM_BUILD_ROOT%{_lmsdir}/www/userpanel/modules/$MODULE
+done
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %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 lmsd daemon."
-fi
+%service lmsd restart "lmsd daemon"
 
 %preun lmsd
 if [ "$1" = "0" ]; then
-       if [ -f /var/lock/subsys/lmsd ]; then
-               /etc/rc.d/init.d/lmsd stop >&2
-       fi
+       %service lmsd stop
        /sbin/chkconfig --del lmsd
 fi
 
-%triggerin -- apache1
+%triggerin -- apache1 < 1.3.37-3, apache1-base
 %webapp_register apache %{_webapp}
 
-%triggerun -- apache1
+%triggerun -- apache1 < 1.3.37-3, apache1-base
 %webapp_unregister apache %{_webapp}
 
 %triggerin -- apache < 2.2.0, apache-base
@@ -239,34 +307,6 @@ fi
 %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,INSTALL,README*,lms*}
@@ -275,27 +315,43 @@ rm -f /etc/httpd/httpd.conf/99_%{name}.conf
 %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
+%{_smartyplugindir}/*
 #
 %dir %{_lmsvar}
 %attr(770,root,http) %{_lmsvar}/backups
 %attr(770,root,http) %{_lmsvar}/templates_c
+%attr(770,root,http) %{_lmsvar}/documents
 #
 %dir %{_lmsdir}
 %{_lmsdir}/www
 %exclude %{_lmsdir}/www/user
+%exclude %{_lmsdir}/www/userpanel
 %{_lmsdir}/lib
 %{_lmsdir}/modules
 %exclude %{_lmsdir}/modules/sql.php
 %{_lmsdir}/contrib
-%{_lmsdir}/sample
+%dir %{_lmsdir}/sample
+%{_lmsdir}/sample/crontab-entry
+%{_lmsdir}/sample/lms-mgc-netx-sample.ini
+%{_lmsdir}/sample/lms-mgc.ini
+%{_lmsdir}/sample/lms.apache.conf
+%{_lmsdir}/sample/lms.ini
+%{_lmsdir}/sample/mailtemplate.txt
+%{_lmsdir}/sample/mailtemplate_en.txt
+%{_lmsdir}/sample/radius-sql.conf
+%{_lmsdir}/sample/rc.lmsd
+%{_lmsdir}/sample/rc.reminder_1st
+%{_lmsdir}/sample/smstemplate.txt
+%{_lmsdir}/sample/tekst_1.txt
+%{_lmsdir}/sample/test.txt
 %attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.pl
+
 %{_lmsdir}/templates
 %exclude %{_lmsdir}/templates/sql.html
 %exclude %{_lmsdir}/templates/sqlprint.html
 
 %files scripts
 %defattr(644,root,root,755)
-%dir %{_sbindir}
 %attr(755,root,root) %{_sbindir}/*
 
 %files sqlpanel
@@ -312,8 +368,26 @@ rm -f /etc/httpd/httpd.conf/99_%{name}.conf
 %files lmsd
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_sbindir}/lmsd-*
+%dir %{_libdir}/lms
 %attr(755,root,root) %{_libdir}/lms/*.so
 %attr(754,root,root) /etc/rc.d/init.d/lmsd
-/etc/lms/modules/*
+# XXX: dir shared with base
+%dir %{_sysconfdir}
+%dir %{_sysconfdir}/modules
+%{_sysconfdir}/modules/*
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
 %endif
+
+%files userpanel
+%defattr(644,root,root,755)
+%dir %{_lmsdir}/userpanel
+%{_lmsdir}/userpanel/lib
+%{_lmsdir}/userpanel/modules
+%{_lmsdir}/userpanel/templates
+%{_lmsdir}/userpanel/templates_c
+%{_lmsdir}/userpanel/style
+%dir %{_lmsdir}/www/userpanel
+%{_lmsdir}/www/userpanel/style
+%{_lmsdir}/www/userpanel/index.php
+%dir %{_lmsvar}/userpanel
+%attr(770,root,http) %{_lmsvar}/userpanel/templates_c
This page took 0.248032 seconds and 4 git commands to generate.