From: Alexander Bokovoy <ab@avilink.net>
To: sisyphus@altlinux.ru
Subject: Re: [sisyphus] php --with-dom
Date: Sat, 26 May 2001 17:53:49 +0300
Message-ID: <20010526175348.A5423@boids.avilink.net> (raw)
In-Reply-To: <3B0FBFF1.8040206@rtcom.tver.ru>; from dv@rtcom.tver.ru on Sat, May 26, 2001 at 06:38:41PM +0400
[-- Attachment #1: Type: text/plain, Size: 2703 bytes --]
On Sat, May 26, 2001 at 06:38:41PM +0400, Dmitry V. Popkov wrote:
> Alexander Bokovoy wrote:
>
> >>
> >>../../shared/libphp_common.so: undefined reference to `xmlNewNode'
> >>collect2: ld returned 1 exit status
> >>Неверный код возврата из /var/tmp/rpm-tmp.10273 (%build)
> >>
> >>Возможно, для кого-то это прозрачно, но я зашел в тупик...
> >>
> >Поскольку мы собираем разделяемую библиотеку libphp_common.so вручную
> >(сборочный механизм PHP этого пока не обеспечивает, но движение в этом
> >направлении наблюдается), то нужно вручную добавлять недостающие
> >библиотеки.
> >
> >Вы действительно хотели модуль dom вкомпилировать, а не загружать
> >динамически?
> >
> С этим разобрался, спасибо (добавил -lxml2) .
Я бы посоветовал Вам все-таки собирать модули динамическими.
Концепция сборки PHP и модулей к нему у нас такова:
- php.spec содержит основной код и вкомпилированные модули (как правило, то,
что не вызывает дополнительных зависимостей)
- все остальные модули при сборке опираются на установленный php-devel и
берут свой исходный текст из /usr/src/php-devel/extensions/%name
Таким образом отпадает необходимость усложнять основной spec-файл, который
и без того немаленький.
Версия в Spring2001 использует слегка иной способ (nosrc.rpm вместо
src.rpm для модулей + зависимость при сборке от php-%version.tar.bz2
вместо установленного php-devel в /usr/src/php-devel), новая версия,
которая будет в Сизифе в начале недели, собирается так, как указано
абзацем выше. Шаблонный SPEC-файл для модулей из нее (пример для модуля
Curl) прикладываю.
> Но мне нужна еще поддержка qtdom :
> сборка с опцией --with-qtdom выдает следующее
> /bin/sh /usr/src/RPM/BUILD/php4/libtool --silent --mode=compile c++ -I.
> -I/usr/src/RPM/BUILD/php4/ext/qtdom -I/usr/src/RPM/BUILD/php4/main
> -I/usr/src/RPM/BUILD/php4 -I/usr/include/apache
> -I/usr/src/RPM/BUILD/php4/Zend -I/include
> -I/usr/src/RPM/BUILD/php4/TSRM -DLINUX=22 -DRUSSIAN_APACHE
> -DDEV_RANDOM=/dev/random -DEAPI -DEAPI_MM
> -DEAPI_MM_CORE_PATH="/var/run/mm" -DUSE_EXPAT -DSUPPORT_UTF8 -pipe -g
> -Wall -O2 -fexpensive-optimizations -march=i686 -c qtdom_qt.cpp
> qtdom_qt.cpp:20:18: qdom.h: No such file or directory
> qtdom_qt.cpp:21:21: qstring.h: No such file or directory
> qtdom_qt.cpp:22:21: qglobal.h: No such file or directory
> qtdom_qt.cpp:24: `QDomNode' was not declared in this scope
> и т.д.
>
> А здесь что можно сделать?
export QTDIR=/usr/lib/qt2
в SPEC-файле перед сборкой.
--
Sincerely yours, Alexander Bokovoy
The Midgard Project | ALT Linux Team | Minsk Linux Users Group
www.midgard-project.org | www.altlinux.ru | www.minsk-lug.net
-- You won't skid if you stay in a rut.
-- Frank Hubbard
[-- Attachment #2: php-curl.spec --]
[-- Type: text/plain, Size: 6187 bytes --]
###############################################################
# This SPEC file is a configurable skeleton for PHP modules
# which are distributed with PHP4 tarball.
# Copyright (c) 2001 Alexander Bokovoy <ab@avilink.net>
# This SPEC file is available under terms of GNU GPL license
# versions 2 or greater
###############################################################
# <Configuration>
#_/---------------\____________________________________________
# Package should be added into mod_php and/or console php?
# Some modules can be used under both, others (like php_gtk
# or midgard) are not.
%define use_mod_php 1
%define use_con_php 1
#
# Package name without php prefix
%define package_name curl
###############################################################
%define php_version %(rpm -q --queryformat '%{VERSION}' php)
%define php_release %(rpm -q --queryformat '%{RELEASE}' php)
Name: php-%package_name
Version: %php_version
Release: alt0.1RC1
Group: System/Servers
Requires: libcurl >= 7.7.3-alt2
License: PHP Licence
Prereq: php = %php_version-%php_release, perl
# Automatically added by buildreq on Thu Mar 08 2001
BuildRequires: libbfd, libpam, php-devel = %php_version, libcurl-devel >= 7.7.3-alt2
Summary: cURL module for PHP4
%add_serial php-devel
%description
The php-%package_name includes a dynamic shared object (DSO) that adds
cURL support to PHP4. cURL is a library that enables you to send and
receive files through various protocols, including HTTP, FTP, TELNET,
LDAP, DICT, and GOPHER. PHP4 is an HTML-embedded scripting language. If
you need cURL support for PHP4 applications, you will need to install
this package in addition to the php package.
%prep
%setup -T -c
cp -pr /usr/src/php-devel/extensions/%package_name/* .
%build
# Fix includes so that local config header file will always supercede global options
for j in `ls *.c` ; do
perl -pi -e "s/#include \"php.h\"/#include \"php.h\"\n#include \"config.h\"/" $j
done
phpize
BUILD_HAVE=`echo %package_name | tr '[:lower:]-' '[:upper:]_'`
CFLAGS="$RPM_OPT_FLAGS -fPIC -L%{_libdir} -DHAVE_${BUILD_HAVE}=1 -DCOMPILE_DL_${BUILD_HAVE}=1"; export CFLAGS
%configure --with-%package_name=/usr
BUILD_ENV_VARS="top_srcdir=$RPM_BUILD_DIR/%name-%version \
bindir=$RPM_BUILD_ROOT/usr/bin \
sbindir=$RPM_BUILD_ROOT/usr/sbin \
includedir=$RPM_BUILD_ROOT/usr/include \
exec_prefix=$RPM_BUILD_ROOT/usr \
libdir=$RPM_BUILD_ROOT/usr/lib \
prefix=$RPM_BUILD_ROOT/usr \
localstatedir=$RPM_BUILD_ROOT/var/lib \
PEAR_INSTALLDIR=$RPM_BUILD_ROOT/usr/lib/php \
EXTENSION_DIR=$RPM_BUILD_ROOT/usr/lib/php/extensions"
make $BUILD_ENV_VARS
%install
# Set them again because this is _different_ script
BUILD_ENV_VARS="top_srcdir=$RPM_BUILD_DIR/%name-%version \
bindir=$RPM_BUILD_ROOT/usr/bin \
sbindir=$RPM_BUILD_ROOT/usr/sbin \
includedir=$RPM_BUILD_ROOT/usr/include \
exec_prefix=$RPM_BUILD_ROOT/usr \
libdir=$RPM_BUILD_ROOT/usr/lib \
prefix=$RPM_BUILD_ROOT/usr \
localstatedir=$RPM_BUILD_ROOT/var/lib \
PEAR_INSTALLDIR=$RPM_BUILD_ROOT/usr/lib/php \
EXTENSION_DIR=$RPM_BUILD_ROOT/usr/lib/php/extensions"
make $BUILD_ENV_VARS install
%clean
%files
%{_libdir}/php/extensions/*
%doc CREDITS
%post
# Common part: all modules need to
if [ `uname` = "Linux" ]; then perl="%{_bindir}/perl"; fi
if [ `uname` = "SunOS" ]; then perl="%{_prefix}/local/bin/perl"; fi
%if %use_con_php
if [ -f %{_sysconfdir}/php.ini ] ; then
unset LC_ALL
$perl -pi -e 's|^;extension=%{package_name}.so|extension=%{package_name}.so|g' %{_sysconfdir}/php.ini
fi
%endif
%if %use_mod_php
if [ -f %{_sysconfdir}/httpd/conf/php.ini ] ; then
unset LC_ALL
$perl -pi -e 's|^;extension=%{package_name}.so|extension=%{package_name}.so|g' %{_sysconfdir}/httpd/conf/php.ini
fi
%endif
%if %use_mod_php
%{_sbindir}/apachectl update
%endif
# Local script, specific to package
%preun
if [ `uname` = "Linux" ]; then perl="%{_bindir}/perl"; fi
if [ `uname` = "SunOS" ]; then perl="%{_prefix}/local/bin/perl"; fi
if [ $1 = "0" ]; then
%if %use_con_php
if [ -f %{_sysconfdir}/php.ini ] ; then
unset LC_ALL
$perl -pi -e 's|^extension=%{package_name}.so|;extension=%{package_name}.so|g' %{_sysconfdir}/php.ini
fi
%endif
%if %use_mod_php
if [ -f %{_sysconfdir}/httpd/conf/php.ini ] ; then
unset LC_ALL
$perl -pi -e 's|^extension=%{package_name}.so|;extension=%{package_name}.so|g' %{_sysconfdir}/httpd/conf/php.ini
fi
%endif
fi
%postun
%if %use_mod_php
%{_sbindir}/apachectl update
%endif
%changelog
* Tue May 22 2001 Alexander Bokovoy <ab@altlinux.ru> 4.0.6-alt0.1RC1
- PHP 4.0.6 Release Candidate 1
- Dependencies fixed because curl >= 7.7.3-alt2 is required now
* Tue May 08 2001 Alexander Bokovoy <ab@altlinux.ru> 4.0.5-alt1
- PHP 4.0.5 release
* Thu Apr 05 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5.RC6-alt1
- ALTification
- Last release candidate for 4.0.5
- SPEC file changes:
+ Reference to PHP source removed, php-devel is used to acquire sources of module
+ locale-specific info unset during installation
+ nosrc -> src because NoSource tag cannot be used without corresponding Source one
* Sat Mar 17 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5-ipl1
- First stable build
* Thu Mar 15 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5-ipl0.4
- Rebuild with fixed version of PHP4
* Sun Mar 11 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5-ipl0.3
- Fixed:
+ Build process for self-contained shared modules in PHP is generally broken,
fixed by automatically adding -DHAVE_{MODULE}=1 -DCOMPILE_DL_{MODULE}=1 to
configure
* Sat Mar 10 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5-ipl0.2
- More enhancements in SPEC file:
+ Automatically gather PHP version, so no need to synchronize
spec file's Version: field when new version of PHP is installed
* Thu Mar 08 2001 Alexander Bokovoy <ab@avilink.net> 4.0.5-ipl0.1
- Created new generalized spec file for nosrc.rpm for PHP modules
- Added ability to tune module installation for Console/Apache-based PHP
Some modules cannot work in Web-server environment (php_gtk), some --
in Console mode (midgard), some will be happy in both environments
prev parent reply other threads:[~2001-05-26 14:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-26 13:39 Dmitry V. Popkov
2001-05-26 14:14 ` Alexander Bokovoy
2001-05-26 14:38 ` Dmitry V. Popkov
2001-05-26 11:41 ` Aleksey Novodvorsky
2001-05-26 14:53 ` Alexander Bokovoy [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010526175348.A5423@boids.avilink.net \
--to=ab@avilink.net \
--cc=sisyphus@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git