X-Git-Url: http://git.pld-linux.org/?p=packages%2FZope.git;a=blobdiff_plain;f=Zope.spec;h=c3b69e1a41b31ef2cf9f4ef675dac6a5d0afce30;hp=3f5f437af79b2de30f93161983c6a18c04a81410;hb=02653f510d563043d3e3cd30760ed970442e1797;hpb=569d782b229a4dc43a24b7a2e41e3952fbdd4c04 diff --git a/Zope.spec b/Zope.spec index 3f5f437..c3b69e1 100644 --- a/Zope.spec +++ b/Zope.spec @@ -1,46 +1,61 @@ + +# 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? + 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 Name: Zope -Version: 2.6.1 -Release: 1 +Version: 2.7.2 +# %%define sub_ver b2 +Release: 3 License: Zope Public License (ZPL) Group: Networking/Daemons -Source0: http://www.zope.org/Products/%{name}/%{version}/%{name}-%{version}-src.tgz +Source0: http://www.zope.org/Products/%{name}/%{version}/%{name}-%{version}-0.tgz +# Source0-md5: 08b3c4a119aa1ded2e7b1b3d5bc45425 Source1: %{name}.init -Source2: %{name}.logrotate -Source3: %{name}-zserver.sh -Source4: http://www.zope.org/Documentation/Guides/ZCMG/ZCMG.html.tgz -Source5: http://www.zope.org/Documentation/Guides/DTML/DTML.html.tgz -Source6: http://www.zope.org/Documentation/Guides/ZSQL/ZSQL.html.tgz -Source7: http://www.zope.org/Documentation/Guides/%{name}-ProductTutorial.tar.gz -Source8: http://www.zope.org/Documentation/Guides/ZDG/ZDG.html.tgz -Source9: http://www.zope.org/Documentation/Guides/ZAG/ZAG.html.tgz -Source10: http://www.zope.org/Documentation/Books/ZopeBook/current/ZopeBook.tgz +Source2: %{name}.sysconfig +Source3: %{name}.logrotate +Source4: %{name}-mkzopeinstance +Source5: %{name}-mkzeoinstance +Source6: %{name}-runzope +Source7: %{name}-zopectl +Source8: %{name}-installzopeproduct +Patch0: %{name}-default_config.patch +Patch1: %{name}-instance_paths.patch +Patch2: %{name}-pld_makefile_fix.patch +Patch3: %{name}-no_initgroups.patch URL: http://www.zope.org/ -BuildRequires: python-devel >= 2.2 +BuildRequires: python-devel >= 2.3.3 +BuildRequires: perl-base +BuildRequires: rpmbuild(macros) >= 1.159 PreReq: rc-scripts -Requires(pre): /usr/bin/getgid -Requires(pre): /bin/id -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/sbin/useradd -Requires(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel Requires(post,preun): /sbin/chkconfig Requires: logrotate -Requires: python-modules >= 2.2 +Requires: python >= 2.3.3 +Requires: python-modules >= 2.3.3 +Requires: python-libs >= 2.3.3 +Requires: expat >= 1.95.7 +Requires: python-PyXML >= 0.8.3 +%pyrequires_eq python +Provides: group(zope) +Provides: user(zope) +Obsoletes: Zope-Hotfix = 040713 +Obsoletes: Zope-Hotfix = 040714 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 @@ -74,67 +89,117 @@ do Zope, outros sub-pacotes est eles ao invés desse RPM. %prep -%setup -q -n %{name}-%{version}-src -a4 -mkdir ZopeContentManagersGuide GuideToDTML GuideToZSQL ZopeDevelopersGuide ZopeAdminGuide -mkdir ZopeBook -tar xzf %{SOURCE4} -C ZopeContentManagersGuide -tar xzf %{SOURCE5} -C GuideToDTML -tar xzf %{SOURCE6} -C GuideToZSQL -tar xzf %{SOURCE7} -C ZopeDevelopersGuide -tar xzf %{SOURCE8} -C ZopeAdminGuide -tar xzf %{SOURCE9} -C ZopeBook + +%setup -q -n %{name}-%{version}-0 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%ifarch amd64 alpha +%patch3 -p1 +%endif %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 -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 +./configure \ + --prefix=%{zope_dir} \ + --optimize +# --with-python=/usr/bin/python + +%{__make} + +perl -pi -e "s|data_dir\s+=\s+.*?join\(INSTANCE_HOME, 'var'\)|data_dir=INSTANCE_HOME|" lib/python/Globals.py %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/zope} \ - $RPM_BUILD_ROOT{/etc/{rc.d/init.d,logrotate},/var/log,/var/lib/zope} -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/zope -install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate/zope -install %{SOURCE3} $RPM_BUILD_ROOT%{_sbindir}/zope-zserver +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 -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/ +ln -sfn /usr/bin/python $RPM_BUILD_ROOT%{zope_dir}/bin/python -install zpasswd.py $RPM_BUILD_ROOT%{_bindir}/zpasswd -install z2.py $RPM_BUILD_ROOT%{_libdir}/zope -install var/Data.fs $RPM_BUILD_ROOT/var/lib/zope/Data.fs +%{__make} install \ + INSTALL_FLAGS="--root $RPM_BUILD_ROOT" -python $RPM_BUILD_ROOT%{_bindir}/zpasswd -u zope -p zope -d localhost \ - $RPM_BUILD_ROOT/var/lib/zope/access +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 +mv $RPM_BUILD_ROOT{%{zope_dir}/import/*,%{_sysconfdir}/zope/skel/import} -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 + +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 +if [ -n "`/usr/bin/getgid zope`" ]; then + if [ "`/usr/bin/getgid zope`" != "112" ]; then + echo "Error: group zope doesn't have gid=112. Correct this before installing zope." 1>&2 + exit 1 + fi +else + echo "Making group zope" + /usr/sbin/groupadd -g 112 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 +if [ -n "`/bin/id -u zope 2>/dev/null`" ]; then + if [ "`/bin/id -u zope`" != "112" ]; then + echo "Error: user zope doesn't have uid=112. Correct this before installing zope." 1>&2 + exit 1 + fi +else + echo "Making user zope" + /usr/sbin/useradd -u 112 -d /var/lib/zope/main -s /bin/false -c "Zope User" -g zope zope fi %post /sbin/chkconfig --add zope +if [ ! -f /etc/zope/main/zope.conf ] ; then + echo "Creating initial 'main' instance..." + /usr/sbin/mkzopeinstance main zope:zope + echo "Instance created. Listening on 127.0.0.1:8080, initial user: 'zope' with password: 'zope'" +else + echo "old /etc/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 + /etc/rc.d/init.d/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 + /etc/rc.d/init.d/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 + /etc/rc.d/init.d/zope restart >&2 + fi else - echo "Create inituser using \"zpasswd inituser\" in directory \"/var/lib/zope\"" >&2 + echo "look at /etc/zope/main/zope.conf" >&2 echo "Run then \"/etc/rc.d/init.d/zope start\" to start Zope." >&2 + echo "you may create new Zope instances with mkzopeinstance" >&2 fi %preun @@ -147,19 +212,26 @@ 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) -%doc doc/*.txt *.txt ZopeContentManagersGuide GuideToZSQL ZopeDevelopersGuide ZopeAdminGuide ZopeBook -%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/* -%ghost /var/log/zope +%{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 /etc/zope +%attr(640,root,root) %dir /etc/zope/skel +%attr(640,root,root) %dir /etc/zope/main +%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/zope/skel/* +%attr(640,root,root) /etc/logrotate.d/zope +%attr(640,root,root) /etc/sysconfig/zope +%ghost /var/log/zope/main/event.log +%ghost /var/log/zope/main/Z2.log