X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=lms.spec;h=38b4a045ade3375f7f1d2a3dce06c68113c765c9;hb=183a276d55fe94427ccb7525a5dc16bf15d70dea;hp=e423502e86174a4fac6fccfc78cfb596a7f2f065;hpb=9ba640f0bc25ec33391f579e3c1cf16dfe95a8d7;p=packages%2Flms.git diff --git a/lms.spec b/lms.spec index e423502..38b4a04 100644 --- a/lms.spec +++ b/lms.spec @@ -1,13 +1,14 @@ -# TODO -# - test build on amd64 and check /usr/lib64 patch +# TODO: +# - package documents/templates/default # - cosmetics (sort in %%files and %%install) -# - contrib split +# - consider contrib and samples (re)packaging # # Conditional build: %bcond_without lmsd # without lmsd daemon -# -%define lmsver 1.10 -%define lmssubver 0 +%bcond_with lmsd_debug # with lmsd debugging + +%define lmsver 1.11 +%define lmssubver 13 Summary: LAN Managment System Summary(pl.UTF-8): System Zarządzania Siecią Lokalną Name: lms @@ -16,7 +17,7 @@ Release: 4 License: GPL v2 Group: Networking/Utilities Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz -# Source0-md5: 01d76c3b82ccc5219aa15b65d67d787d +# Source0-md5: 294899358ae2585a4030580d79a06ee8 Source1: %{name}.conf Source2: %{name}.init Source3: %{name}.sysconfig @@ -28,39 +29,45 @@ BuildRequires: bison BuildRequires: flex %{?with_lmsd:BuildRequires: libgadu-devel} %{?with_lmsd:BuildRequires: mysql-devel} -%{?with_lmsd:BuildRequires: postgresql-devel} +BuildRequires: net-snmp-devel +%{?with_lmsd:BuildRequires: postgresql-devel >= 8.2} BuildRequires: rpm-pythonprov -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpmbuild(macros) >= 1.461 +BuildRequires: yacc %{?with_lmsd:Requires(post,preun): /sbin/chkconfig} 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 /usr/share/php/Smarty/plugins %define _webapps /etc/webapps %define _webapp %{name} +%define _smartyplugindir %{php_data_dir}/Smarty/plugins +%define _lmsdir %{_datadir}/%{name} +%define _lmsvar /var/lib/%{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, telephone number, - commentary); -- database of computers (IP, MAC); -- easy-ridden financial system and funds of network; -- different subscriptions; -- sending warnings to users; -- many levels of access for LMS administrators; + commentary), +- database of computers (IP, MAC), +- easy-ridden financial system and funds of network, +- different subscriptions, +- sending warnings to users, +- many levels of access for LMS administrators, - autogenerating ipchains, iptables, dhcpd, ethers file, oidentd, - openbsd packet filter configuration files/scripts; + openbsd packet filter configuration files/scripts, - autogenerating almost any kind of config file using templates. %description -l pl.UTF-8 @@ -72,16 +79,16 @@ 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, - uwagi); -- baza danych komputerów (adres IP, adres MAC); + uwagi), +- 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; + 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 + 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. @@ -149,6 +156,28 @@ 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} %patch0 -p1 @@ -158,80 +187,88 @@ wybranych usług. %patch2 -p1 mkdir smarty-plugins -mv \ -lib/Smarty/plugins/block.t.php \ -lib/Smarty/plugins/function.{bankaccount,gentime,handle,number,size,sum,tip}.php \ -lib/Smarty/plugins/modifier.{money_format,striphtml,to_words}.php \ +%{__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 +%{__rm} -r lib/Smarty + +# cleanup backups after patching +find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 %{__rm} %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../..' 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../..' mv lmsd lmsd-pgsql +CFLAGS="%{rpmcflags}" %{__make} -j1 -C modules/parser \ + CC='%{__cc}' + cd .. %endif %install 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,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/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 +install -d $RPM_BUILD_ROOT{%{_sbindir},%{_libdir}/%{name},%{_webapps}/%{_webapp}} \ + $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,lms/modules} \ + $RPM_BUILD_ROOT%{_smartyplugindir} \ + $RPM_BUILD_ROOT%{_lmsdir}/{lms,userpanel,www/{doc,user,userpanel/modules}} \ + $RPM_BUILD_ROOT%{_lmsvar}/{backups,documents,templates_c,userpanel/templates_c} + +cp -a *.php img $RPM_BUILD_ROOT%{_lmsdir}/www 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 contrib lib modules sample templates $RPM_BUILD_ROOT%{_lmsdir} cp -a smarty-plugins/* $RPM_BUILD_ROOT%{_smartyplugindir} +cp -a bin/* $RPM_BUILD_ROOT%{_sbindir} -install sample/%{name}.ini $RPM_BUILD_ROOT%{_sysconfdir} +%{__mv} $RPM_BUILD_ROOT{%{_lmsdir}/sample/%{name}.ini,%{_sysconfdir}} -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 +%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/sql*.php,modules} +%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/sqlpanel/*.html,templates} # user -cp -r contrib/customer/* $RPM_BUILD_ROOT%{_lmsdir}/www/user +%{__mv} $RPM_BUILD_ROOT%{_lmsdir}/{contrib/customer/*,www/user} # daemon %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 +install daemon/lmsd-*sql $RPM_BUILD_ROOT%{_sbindir} +install daemon/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/%{name} +for module in dns ggnotify notify; do + cp -a daemon/modules/$module/sample $RPM_BUILD_ROOT%{_sysconfdir}/modules/$module +done install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/lmsd install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name} %endif +#userpanel +cp -a userpanel/{lib,modules,templates} $RPM_BUILD_ROOT%{_lmsdir}/userpanel +cp -a userpanel/{index.php,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 @@ -257,34 +294,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*} @@ -293,46 +302,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}/* +%{_smartyplugindir}/*.php # %dir %{_lmsvar} %attr(770,root,http) %{_lmsvar}/backups -%attr(770,root,http) %{_lmsvar}/templates_c %attr(770,root,http) %{_lmsvar}/documents +%attr(770,root,http) %{_lmsvar}/templates_c # %dir %{_lmsdir} -%{_lmsdir}/www -%exclude %{_lmsdir}/www/user %{_lmsdir}/lib %{_lmsdir}/modules %exclude %{_lmsdir}/modules/sql.php +%exclude %{_lmsdir}/modules/sqllang.php +%{_lmsdir}/templates +%exclude %{_lmsdir}/templates/sql.html +%exclude %{_lmsdir}/templates/sqlprint.html +%{_lmsdir}/www +%exclude %{_lmsdir}/www/user +%exclude %{_lmsdir}/www/userpanel %{_lmsdir}/contrib %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/lms-mgc*.ini +%{_lmsdir}/sample/*.conf +%{_lmsdir}/sample/*.txt %{_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) -%attr(755,root,root) %{_sbindir}/* +%attr(755,root,root) %{_sbindir}/lms-* +%attr(755,root,root) %{_sbindir}/lmsd-*sql %files sqlpanel %defattr(644,root,root,755) %{_lmsdir}/modules/sql.php +%{_lmsdir}/modules/sqllang.php %{_lmsdir}/templates/sql.html %{_lmsdir}/templates/sqlprint.html @@ -353,3 +359,17 @@ rm -f /etc/httpd/httpd.conf/99_%{name}.conf %{_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