Skip to content

Commit

Permalink
dev-php/PEAR-PEAR: Version bump for 1.10.13
Browse files Browse the repository at this point in the history
Signed-off-by: Brian Evans <[email protected]>
  • Loading branch information
Brian Evans committed Aug 11, 2021
1 parent da60551 commit 8ec674e
Show file tree
Hide file tree
Showing 2 changed files with 178 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-php/PEAR-PEAR/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST PEAR-1.10.12.tgz 293220 BLAKE2B fb25123852a60e4bd2c041d1fb58174b3053b24ff8ec19b44efe02aee041bbed102b14b270dc1c9764150eea7c85862ad78adefdc1d789540da18ec0f3aeae68 SHA512 1ce478800a150d7906f8aa4fa4371d3d190fa2af44691c9aa193babfe76f1b031b493f48df15b93e93dd5518a6d62ba6a7d5b1799b62d5a968f7a84f3677b971
DIST PEAR-1.10.13.tgz 293384 BLAKE2B 0adbf707d71cfd584b1338e906fbd38de038292a91153547ed87bdea4c0a7c9ee2ca01c25c91cf8246b8fba88b71126fa8b76ed7059b4338d5bbc65c3d53ce78 SHA512 2a08134365b7bd92840880a23149ef457b0a3a04b78dc71f5db475911b49def58d8cb825332151df8d3eb5941b54157ae80879f36fc8de59037f301fc0565740
177 changes: 177 additions & 0 deletions dev-php/PEAR-PEAR/PEAR-PEAR-1.10.13.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

MY_PN="${PN/PEAR-/}"
MY_P="${MY_PN}-${PV}"

DESCRIPTION="PEAR Base System"
HOMEPAGE="https://pear.php.net/package/PEAR"
SRC_URI="https://pear.php.net/get/${MY_P}.tgz"
LICENSE="MIT"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86"
SLOT="0"
IUSE=""

DEPEND=""
RDEPEND="dev-lang/php:*[cli(-),xml(-),zlib(-)]
>=dev-php/PEAR-Archive_Tar-1.4.9
>=dev-php/PEAR-Console_Getopt-1.4.1
dev-php/PEAR-Exception
>=dev-php/PEAR-Structures_Graph-1.1.0
>=dev-php/PEAR-XML_Util-1.4.0"

S="${WORKDIR}/${MY_P}"

PATCHES=( "${FILESDIR}/gentoo-libtool-mismatch-fix-v2.patch" )

pkg_setup() {
[[ -z "${PEAR_CACHEDIR}" ]] && PEAR_CACHEDIR="${EPREFIX}/var/cache/pear"
[[ -z "${PEAR_DOWNLOADDIR}" ]] && PEAR_DOWNLOADDIR="${EPREFIX}/var/tmp/pear"
[[ -z "${PEAR_TEMPDIR}" ]] && PEAR_TEMPDIR="${EPREFIX}/tmp"

elog
elog "cache_dir is set to: ${PEAR_CACHEDIR}"
elog "download_dir is set to: ${PEAR_DOWNLOADDIR}"
elog "temp_dir is set to: ${PEAR_TEMPDIR}"
elog
elog "If you want to change the above values, you need to set"
elog "PEAR_CACHEDIR, PEAR_DOWNLOADDIR and PEAR_TEMPDIR variable(s)"
elog "accordingly in /etc/portage/make.conf and re-emerge ${PN}."
elog
}

src_prepare() {
default
# Exception.php is part of dev-php/PEAR-Exception.
rm PEAR/Exception.php || die "failed to remove PEAR/Exception.php"
}

src_install() {
insinto /usr/share/php
doins -r PEAR/
doins -r OS/
doins PEAR.php System.php
doins scripts/pearcmd.php
doins scripts/peclcmd.php

newbin scripts/pear.sh pear
newbin scripts/peardev.sh peardev
newbin scripts/pecl.sh pecl

# adjust some scripts for current version
[[ -z "${PEAR}" ]] && PEAR="${PV}"
for i in pearcmd.php peclcmd.php ; do
sed "s:@pear_version@:${PEAR}:g" -i "${D}/usr/share/php/${i}" \
|| die "failed to sed pear_version"
done

for i in pear peardev pecl ; do
sed "s:@bin_dir@:${EPREFIX}/usr/bin:g" -i "${D}/usr/bin/${i}" \
|| die "failed to sed @bin_dir@ in ${i}"
sed "s:@php_dir@:${EPREFIX}/usr/share/php:g" -i "${D}/usr/bin/${i}" \
|| die "failed to sed @php_dir@ in ${i}"
done

sed "s:-d output_buffering=1:-d output_buffering=1 -d memory_limit=32M:g" \
-i "${D}/usr/bin/pear" \
|| die "failed to set PHP ini values in pear executable"

sed "s:@package_version@:${PEAR}:g" \
-i "${D}/usr/share/php/PEAR/Command/Package.php" \
|| die "failed to sed @package_version@"

sed "s:@PEAR-VER@:${PEAR}:g" \
-i "${D}/usr/share/php/PEAR/Dependency2.php" \
|| die "failed to sed @PEAR-VER@ in Dependency2.php"

sed "s:@PEAR-VER@:${PEAR}:g" \
-i "${D}/usr/share/php/PEAR/PackageFile/Parser/v1.php" \
|| die "failed to sed @PEAR-VER@ in v1.php"

sed "s:@PEAR-VER@:${PEAR}:g" \
-i "${D}/usr/share/php/PEAR/PackageFile/Parser/v2.php" \
|| die "failed to sed @PEAR-VER@ in v2.php"

# finalize install
insinto /etc
newins "${FILESDIR}"/pear.conf-r2 pear.conf

sed "s|s:PHPCLILEN:\"PHPCLI\"|s:${#PHPCLI}:\"${PHPCLI}\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed PHPCLILEN in pear.conf"

sed "s|s:CACHEDIRLEN:\"CACHEDIR\"|s:${#PEAR_CACHEDIR}:\"${PEAR_CACHEDIR}\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed CACHEDIRLEN in pear.conf"

sed "s|s:DOWNLOADDIRLEN:\"DOWNLOADDIR\"|s:${#PEAR_DOWNLOADDIR}:\"${PEAR_DOWNLOADDIR}\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed DOWNLOADDIRLEN in pear.conf"

sed "s|s:TEMPDIRLEN:\"TEMPDIR\"|s:${#PEAR_TEMPDIR}:\"${PEAR_TEMPDIR}\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed TEMPDIRLEN in pear.conf"

# Change the paths for eprefix!
sed "s|s:19:\"/usr/share/php/docs\"|s:$(( ${#EPREFIX}+19 )):\"${EPREFIX}/usr/share/php/docs\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed the docs path (prefix) in pear.conf"

sed "s|s:19:\"/usr/share/php/data\"|s:$(( ${#EPREFIX}+19 )):\"${EPREFIX}/usr/share/php/data\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed the data path (prefix) in pear.conf"

sed "s|s:20:\"/usr/share/php/tests\"|s:$(( ${#EPREFIX}+20 )):\"${EPREFIX}/usr/share/php/tests\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed the tests path (prefix) in pear.conf"

sed "s|s:14:\"/usr/share/php\"|s:$(( ${#EPREFIX}+14 )):\"${EPREFIX}/usr/share/php\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed the PHP include path (prefix) in pear.conf"

sed "s|s:8:\"/usr/bin\"|s:$(( ${#EPREFIX}+8 )):\"${EPREFIX}/usr/bin\"|g" \
-i "${D}/etc/pear.conf" \
|| die "failed to sed the bin path (prefix) in pear.conf"

[[ "${PEAR_TEMPDIR}" != "/tmp" ]] && keepdir "${PEAR_TEMPDIR#${EPREFIX}}"
keepdir "${PEAR_CACHEDIR#${EPREFIX}}"
diropts -m1777
keepdir "${PEAR_DOWNLOADDIR#${EPREFIX}}"

insinto /usr/share/php/.packagexml
newins "${WORKDIR}/package.xml" "${MY_P}.xml"
}

pkg_config() {
# Update PEAR/PECL channels as needed, add new ones to the list if needed
elog "Updating PEAR/PECL channels"
local pearchans="pear.php.net pecl.php.net pear.symfony-project.com"

for chan in ${pearchans} ; do
# The first command may fail if, for example, the channels have
# already been initialized.
pear channel-discover ${chan}
pear channel-update ${chan} || die "failed to update channels: ${chan}"
done
}

pkg_postinst() {
pear clear-cache || die "failed to clear PEAR cache"

elog "Run 'emerge --config =${PF}' to automatically update the PEAR/PECL channels while online."

# Register the package from the package.xml file
# It is not critical to complete so only warn on failure
if [[ -f "${EROOT}/usr/share/php/.packagexml/${MY_P}.xml" ]] ; then
"${EROOT}/usr/bin/peardev" install -nrO --force \
"${EROOT}/usr/share/php/.packagexml/${MY_P}.xml" 2> /dev/null \
|| ewarn "Failed to insert package into local PEAR database"
fi
}

pkg_prerm() {
# Uninstall known dependency
"${EROOT}/usr/bin/peardev" uninstall -nrO "pear.php.net/PEAR"
}

0 comments on commit 8ec674e

Please sign in to comment.