X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=lms.spec;h=6e3ed1de897fbff280222a10544e97aa668b8768;hb=d09bbc923a218ec42f98cfce96818518114d0b31;hp=45151cb9761bc96a0c201bb17a87c5f542d9590f;hpb=f77e5c657a51ad17455bda0663dd6e8e3be9abaf;p=packages%2Flms.git diff --git a/lms.spec b/lms.spec index 45151cb..6e3ed1d 100644 --- a/lms.spec +++ b/lms.spec @@ -1,51 +1,58 @@ +# 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: -# - almsd description -# - cosmetics (sort in %%files and %%install) -# - contrib split -%define lmsver 1.4 -%define lmssubver 0 +%define lmsver 1.10 +%define lmssubver 5 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: 1 -License: GPL -Vendor: LMS Developers +License: GPL v2 Group: Networking/Utilities -Source0: http://lms.rulez.pl/download/%{lmsver}/%{name}-%{version}.tar.gz -# Source0-md5: e43e0aa0dacaed71987839c7da3dd7d8 +Source0: http://www.lms.org.pl/download/%{lmsver}/%{name}-%{version}.tar.gz +# Source0-md5: 512b0ef7540758e65a7439cc7ab7ac52 Source1: %{name}.conf Source2: %{name}.init Source3: %{name}.sysconfig Patch0: %{name}-PLD.patch Patch1: %{name}-amd64.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} -Requires: php -Requires: php-gd -Requires: php-posix -Requires: php-pcre -Requires: webserver -Requires: Smarty >= 2.5.0 +Patch2: %{name}-smarty.patch +URL: http://www.lms.org.pl/ +BuildRequires: bison +BuildRequires: flex +%{?with_lmsd:BuildRequires: libgadu-devel} +%{?with_lmsd:BuildRequires: mysql-devel} +%{?with_lmsd:BuildRequires: postgresql-devel} +BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.461 +%{?with_lmsd:Requires(post,preun): /sbin/chkconfig} +Requires: Smarty >= 2.6.18-2 +Requires: php(gd) +Requires: php(iconv) +Requires: php(pcre) +Requires: php(posix) +Requires: webapps +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} %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,53 +61,53 @@ 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 -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-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 +%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} @@ -108,62 +115,72 @@ 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 almsd +%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 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 -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. %prep %setup -q -n %{name} %patch0 -p1 -%ifarch amd64 +%if "%{_lib}" == "lib64" %patch1 -p1 %endif +%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 \ + smarty-plugins +rm -rf lib/Smarty %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 @@ -171,31 +188,43 @@ 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} + $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} -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 @@ -206,67 +235,42 @@ 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." -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 +%service lmsd restart "lmsd daemon" -%preun almsd +%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 -%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" -echo +%triggerin -- apache1 < 1.3.37-3, apache1-base +%webapp_register apache %{_webapp} + +%triggerun -- apache1 < 1.3.37-3, apache1-base +%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} %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 +%{_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 @@ -275,15 +279,27 @@ echo %{_lmsdir}/modules %exclude %{_lmsdir}/modules/sql.php %{_lmsdir}/contrib -%{_lmsdir}/sample -%attr(755,root,root) %{_lmsdir}/sample/traffic_ipt.sh +%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/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 @@ -296,13 +312,16 @@ 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-* +%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