X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=Zope.spec;h=139139efb68b5a42e2681b294398fdc26036d6c0;hb=b5b1646bd48b701effe2e560a0279242f779a721;hp=82f7c4f63460d496c3d953e5a4dd5b76eaf643e4;hpb=2375d9d2c54de6c0a88a529a0653a3ff574efda8;p=packages%2FZope.git diff --git a/Zope.spec b/Zope.spec index 82f7c4f..139139e 100644 --- a/Zope.spec +++ b/Zope.spec @@ -1,41 +1,72 @@ +# TODO: +# - check why initgroups() crashes on AMD64 and something, better than +# disabling initgroups() completely, with that +# - no/more secure initial user/password settings (currently: zope/zope) +# - ZEO support (mkzeoinstance is not tested and probably doesn't work) +# - perl support? +# - update to 2.9.x? rename to Zope27? +# - how to apply the hotfix? + Summary: An application server and portal toolkit for building Web sites -Summary(es): Un servidor de aplicaciones y un conjunto de herramientas para la construcción de sitios Web -Summary(pl): Serwer aplikacji i toolkit portalowy do tworzenia serwisów WWW -Summary(pt_BR): Um servidor de aplicações e um conjunto de ferramentas para construção de sites Web +Summary(es.UTF-8): Un servidor de aplicaciones y un conjunto de herramientas para la construcción de sitios Web +Summary(pl.UTF-8): Serwer aplikacji i toolkit portalowy do tworzenia serwisów WWW +Summary(pt_BR.UTF-8): Um servidor de aplicações e um conjunto de ferramentas para construção de sites Web Name: Zope -Version: 2.6.0 -Release: 3 +Version: 2.11.3 +# %%define sub_ver b2 +Release: 4 License: Zope Public License (ZPL) Group: Networking/Daemons -Source0: http://www.zope.org/Products/%{name}/%{version}/%{name}-%{version}-src.tgz -Source1: http://www.zope.org/Documentation/Guides/ZCMG/ZCMG.html.tgz -Source2: http://www.zope.org/Documentation/Guides/DTML/DTML.html.tgz -Source3: http://www.zope.org/Documentation/Guides/ZSQL/ZSQL.html.tgz -Source4: http://www.zope.org/Documentation/Guides/%{name}-ProductTutorial.tar.gz -Source5: http://www.zope.org/Documentation/Guides/ZDG/ZDG.html.tgz -Source6: http://www.zope.org/Documentation/Guides/ZAG/ZAG.html.tgz -# note: above documentation is deprecated, zope.org suggests using ZopeBook: -#Source1: http://www.zope.org/Members/michel/ZB/ZopeBook.tgz -Source7: %{name}.init -Source8: %{name}-zserver.sh +Source0: http://www.zope.org/Products/Zope/%{version}/%{name}-%{version}-final.tgz +# Source0-md5: 208e235087d707ec0ff07a47cb43c786 +Source1: %{name}.init +Source2: %{name}.sysconfig +Source3: %{name}.logrotate +Source4: %{name}-mkzopeinstance +Source5: %{name}-mkzeoinstance +Source6: %{name}-runzope +Source7: %{name}-zopectl +Source8: %{name}-installzopeproduct +Source9: http://www.zope.org/Products/Zope/Hotfix-2006-07-05/Hotfix-20060705/Hotfix_20060705.tar.gz +# Source9-md5: 6dec58130117fd860adc7fd58f8062e7 +Patch0: %{name}-default_config.patch +Patch1: %{name}-instance_paths.patch +Patch2: %{name}-pld_makefile_fix.patch URL: http://www.zope.org/ -Prereq: rc-scripts -Prereq: /sbin/chkconfig -Prereq: /usr/sbin/useradd -Requires: python >= 2.2 -Requires: python-modules >= 2.2 -BuildRequires: python-devel >= 2.2 +BuildRequires: python-devel >= 1:2.3.3 +BuildRequires: python-modules +BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.268 +Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires: expat >= 1.95.7 +Requires: logrotate +Requires: python >= 2.3.3 +Requires: python-PyXML >= 0.8.3 +Requires: python-libs >= 2.3.3 +Requires: python-modules >= 2.3.3 +Requires: rc-scripts +%pyrequires_eq python +Provides: group(zope) +Provides: user(zope) +Obsoletes: Zope-Hotfix = 040713 +Obsoletes: Zope-Hotfix = 040714 +Obsoletes: Zope-Hotfix = 050405 +# extracted from lib/python/App/Hotfixes.py +Obsoletes: Zope-Hotfix = 2001-09-28 +Obsoletes: Zope-Hotfix = 2002-03-01 +Obsoletes: Zope-Hotfix = 2002-04-15 +Obsoletes: Zope-Hotfix = 2002-06-14 +# See Source9 +Obsoletes: Zope-Hotfix = 20060704 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define python_prefix %(echo `python -c "import sys; print sys.prefix"`) -%define python_version %(echo `python -c "import sys; print sys.version[:3]"`) -%define python_libdir %{python_prefix}/lib/python%{python_version} -%define python_includedir %{python_prefix}/include/python%{python_version} -%define python_sitedir %{python_libdir}/site-packages -%define python_configdir %{python_libdir}/config - -%define python_compile python -c "import compileall; compileall.compile_dir('.')" -%define python_compile_opt python -O -c "import compileall; compileall.compile_dir('.')" +%define zope_dir /usr/lib/zope %description The Z Object Programming Environment (Zope) is a free, Open Source @@ -43,112 +74,151 @@ Python-based application server for building high-performance, dynamic web sites, using a powerful and simple scripting object model and high-performance, integrated object database. -%description -l es -Zope es una aplicación basada en Python, Open Source[tm], para la -construcción de sitios dinámicos, usa un modelo de escritura de -guiones poderoso y sencillo. Para instalar la aplicación Zope, instale -ese paquete y después, Zope-server, para un servidor HTTP integrado +%description -l es.UTF-8 +Zope es una aplicación basada en Python, Open Source[tm], para la +construcción de sitios dinámicos, usa un modelo de escritura de +guiones poderoso y sencillo. Para instalar la aplicación Zope, instale +ese paquete y después, Zope-server, para un servidor HTTP integrado simple, Zope-pcgi, para uso con el servidor Apache. Si desea instalar -solamente algunas partes de la aplicación Zope, están diponibles otros -subpaquetes, usted debe instalar éstos en vez de ese RPM. +solamente algunas partes de la aplicación Zope, están diponibles otros +subpaquetes, usted debe instalar éstos en vez de ese RPM. -%description -l pl -Zope (Z Object Programming Environment - Obiektowe ¦rodowisko +%description -l pl.UTF-8 +Zope (Z Object Programming Environment - Obiektowe Środowisko Programistyczne Z) jest opartym o Pythona serwerem aplikacji do -tworzenia wysoko wydajnych, dynamicznych serwisów WWW, przy u¿yciu -u¿ytecznego i prostego modelu obiektowego skryptów oraz wysoko +tworzenia wysoko wydajnych, dynamicznych serwisów WWW, przy użyciu +użytecznego i prostego modelu obiektowego skryptów oraz wysoko wydajnej zintegrowanej obiektowej bazy danych. -%description -l pt_BR -Zope é uma aplicação baseada em Python, Open Source[tm], para -construção de sites dinâmicos, usando um modelo de scripting poderoso +%description -l pt_BR.UTF-8 +Zope é uma aplicação baseada em Python, Open Source[tm], para +construção de sites dinâmicos, usando um modelo de scripting poderoso e simples Para instalar o Zope, instale esse pacote e depois, ou o Zope-server, para um servidor HTTP integrado simples, ou Zope-pcgi, -para uso com o Apache. Se você quiser instalar apenas algumas partes -do Zope, outros sub-pacotes estão disponíveis, e você deveria instalar -eles ao invés desse RPM. +para uso com o Apache. Se você quiser instalar apenas algumas partes +do Zope, outros sub-pacotes estão disponíveis, e você deveria instalar +eles ao invés desse RPM. %prep -%setup -q -n %{name}-%{version}-src -a4 -mkdir ZopeContentManagersGuide GuideToDTML GuideToZSQL ZopeDevelopersGuide ZopeAdminGuide -tar xzf %{SOURCE1} -C ZopeContentManagersGuide -tar xzf %{SOURCE2} -C GuideToDTML -tar xzf %{SOURCE3} -C GuideToZSQL -tar xzf %{SOURCE5} -C ZopeDevelopersGuide -tar xzf %{SOURCE6} -C ZopeAdminGuide +%setup -q -a9 -n %{name}-%{version}-final +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +# how to apply the hotfix? +#mv Hotfix_20060705 lib/python/Products %build -perl -pi -e "s|data_dir\s+=\s+.*?join\(INSTANCE_HOME, 'var'\)|data_dir=INSTANCE_HOME|" lib/python/Globals.py -python wo_pcgi.py +./configure \ + --prefix=%{zope_dir} \ + --with-python=%{__python} \ + --optimize -find lib/python -type f -and \( -name 'Setup' -or -name '.cvsignore' \) -exec rm -f \{\} \; -find -type f -and \( -name '*.c' -or -name '*.h' -or -name 'Makefile*' \) -exec rm -f \{\} \; -rm -f ZServer/medusa/monitor_client_win32.py +%{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/zope} \ - $RPM_BUILD_ROOT{/etc/rc.d/init.d,/var/log,/var/lib/zope} -cp -a lib/python/* $RPM_BUILD_ROOT%{_libdir}/zope -cp -a ZServer/ utilities/ import/ $RPM_BUILD_ROOT%{_libdir}/zope -find $RPM_BUILD_ROOT%{_libdir}/zope -type f -name '*.py' -or -name '*.txt' | xargs -r rm -f -cp -a ZServer/medusa/test/* $RPM_BUILD_ROOT%{_libdir}/zope/ZServer/medusa/test/ +install -d $RPM_BUILD_ROOT{/var/lib/zope/main,/var/run/zope,/var/log/zope/main} \ + $RPM_BUILD_ROOT{/etc/logrotate.d,/etc/sysconfig,/etc/rc.d/init.d} \ + $RPM_BUILD_ROOT{%{_sysconfdir}/zope/main,%{_sbindir}} \ + $RPM_BUILD_ROOT%{zope_dir}/bin + +ln -sfn %{__python} $RPM_BUILD_ROOT%{zope_dir}/bin/python + +%{__make} install \ + INSTALL_FLAGS="--root $RPM_BUILD_ROOT" -install zpasswd.py $RPM_BUILD_ROOT%{_bindir}/zpasswd -install z2.py $RPM_BUILD_ROOT%{_libdir}/zope -install %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir}/zope-zserver -install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/zope -install var/Data.fs $RPM_BUILD_ROOT/var/lib/zope/Data.fs +mv $RPM_BUILD_ROOT%{zope_dir}/bin/zpasswd.py $RPM_BUILD_ROOT%{_sbindir}/zpasswd +mv $RPM_BUILD_ROOT%{zope_dir}/skel $RPM_BUILD_ROOT%{_sysconfdir}/zope -touch $RPM_BUILD_ROOT/var/log/zope +rm -rf $RPM_BUILD_ROOT%{zope_dir}/doc +rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/zope/skel/log +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/zope/skel/bin/{runzope.bat,zopeservice.py}.in -python $RPM_BUILD_ROOT%{_bindir}/zpasswd -u zope -p zope -d localhost $RPM_BUILD_ROOT/var/lib/zope/access +install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/zope +install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/zope +install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/zope +install %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}/mkzopeinstance +install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}/mkzeoinstance +install %{SOURCE6} $RPM_BUILD_ROOT%{_sbindir}/runzope +install %{SOURCE7} $RPM_BUILD_ROOT%{_sbindir}/zopectl +install %{SOURCE8} $RPM_BUILD_ROOT%{_sbindir}/installzopeproduct + +touch $RPM_BUILD_ROOT/var/log/zope/main/event.log +touch $RPM_BUILD_ROOT/var/log/zope/main/Z2.log %clean rm -rf $RPM_BUILD_ROOT %pre -if [ -z "`getgid zope`" ]; then - echo "Making group zope" - /usr/sbin/groupadd -r -f zope -fi - -if [ -z "`id -u zope 2>/dev/null`" ]; then - echo "Making user zope" - /usr/sbin/useradd -r -d /var/lib/zope -s /bin/false -c "Zope User" -g zope zope -fi +%groupadd -g 112 zope +%useradd -u 112 -d /var/lib/zope/main -s /bin/false -c "Zope User" -g zope zope %post /sbin/chkconfig --add zope +# TODO: move this migration to trigger +if [ ! -f %{_sysconfdir}/zope/main/zope.conf ] ; then + echo "Creating initial 'main' instance..." + %{_sbindir}/mkzopeinstance main zope:zope + echo "Instance created. Listening on 127.0.0.1:8080, initial user: 'zope' with password: 'zope'" +else + echo "Old %{_sysconfdir}/zope/zope.conf detected - look at changes about upgrade!" >&2 +fi +was_stopped=0 +for dir in /var/lib/zope/main /var/lib/zope ; do + if [ -f $dir/Data.fs ]; then + echo "Found the database in old location. Migrating..." + if [ -f /var/lock/subsys/zope ]; then + /sbin/service zope stop >&2 + was_stopped=1 + fi + umask 022 + [ -d /var/lib/zope/main ] && cd $dir && mv -f Data* /var/lib/zope/main/var 2>/dev/null + if [ "x$was_stopped" = "x1" ]; then + /sbin/service zope start >&2 + fi + echo "Migration completed (new db location is /var/lib/zope/main/var)" + break + fi +done if [ -f /var/lock/subsys/zope ]; then - /etc/rc.d/init.d/zope restart >&2 + if [ "x$was_stopped" != "x1" ]; then + /sbin/service zope restart >&2 + fi else - echo "Run \"/etc/rc.d/init.d/zope start\" to start Zope." >&2 + echo "look at %{_sysconfdir}/zope/main/zope.conf" >&2 + echo "Run then \"/sbin/service zope start\" to start Zope." >&2 + echo "You may create new Zope instances with mkzopeinstance" >&2 fi %preun if [ "$1" = "0" ]; then - if [ -f /var/lock/subsys/zope ]; then - /etc/rc.d/init.d/zope stop - fi + %service zope stop /sbin/chkconfig --del zope fi %postun if [ "$1" = "0" ] ; then - echo "Removing user zope" - /usr/sbin/userdel zope >/dev/null 2>&1 || : - echo "Removing group zope" - /usr/sbin/groupdel zope >/dev/null 2>&1 || : + %userremove zope + %groupremove zope fi %files %defattr(644,root,root,755) -%attr(755,root,root) /etc/rc.d/init.d/zope -%attr(755,root,root) %{_bindir}/* +%doc doc/* +%attr(754,root,root) /etc/rc.d/init.d/zope %attr(755,root,root) %{_sbindir}/* -%{_libdir}/zope -%attr(1771,root,zope) %dir /var/lib/zope -%attr(660,root,zope) %config(noreplace) %verify(not md5 size mtime) /var/lib/zope/* -%doc *.txt doc/*.txt ZopeContentManagersGuide GuideToZSQL Tutorial ZopeDevelopersGuide ZopeAdminGuide +%{zope_dir} +%attr(775,zope,zope) %dir /var/run/zope +%attr(775,zope,zope) %dir /var/lib/zope +%attr(775,zope,zope) %dir /var/lib/zope/main +%attr(775,zope,zope) %dir /var/log/zope +%attr(775,zope,zope) %dir /var/log/zope/main +%attr(640,root,root) %dir %{_sysconfdir}/zope +%attr(640,root,root) %dir %{_sysconfdir}/zope/skel +%attr(640,root,root) %dir %{_sysconfdir}/zope/main +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zope/skel/* +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/zope +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/zope +%ghost /var/log/zope/main/event.log +%ghost /var/log/zope/main/Z2.log