From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 0DB7F138334 for ; Sun, 24 Mar 2019 18:41:35 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D1526E0999; Sun, 24 Mar 2019 18:41:30 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 63FD1E0968 for ; Sun, 24 Mar 2019 18:41:30 +0000 (UTC) Received: from pomiot (d202-252.icpnet.pl [109.173.202.252]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 73504335D03; Sun, 24 Mar 2019 18:41:28 +0000 (UTC) Message-ID: <5ccc85650ff65a817046f5d81dd3ba20b3968158.camel@gentoo.org> Subject: Re: [gentoo-dev] [PATCH] font.eclass: Port to EAPI-7 From: =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?= To: gentoo-dev@lists.gentoo.org Date: Sun, 24 Mar 2019 19:41:24 +0100 In-Reply-To: <9898161.uzqcMZjEFU@tuxk10> References: <9898161.uzqcMZjEFU@tuxk10> Organization: Gentoo Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-kA2yHr+yHnG80KmJ53jR" User-Agent: Evolution 3.30.5 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 X-Archives-Salt: 5d7faab4-37bc-469e-af2b-29ccd6aaa258 X-Archives-Hash: 5ae1af324827abde7e616adb0ad2d0ed --=-kA2yHr+yHnG80KmJ53jR Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2019-03-24 at 18:17 +0100, Andreas Sturmlechner wrote: > --- > eclass/font.eclass | 57 +++++++++++++++++++++++----------------------- > 1 file changed, 28 insertions(+), 29 deletions(-) -U9999, please. This is a huge eclass and probably requires more work than you're showing us ;-). >=20 > diff --git a/eclass/font.eclass b/eclass/font.eclass > index 58ec9e3..622f143 100644 > --- a/eclass/font.eclass > +++ b/eclass/font.eclass > @@ -1,4 +1,4 @@ > -# Copyright 1999-2015 Gentoo Foundation > +# Copyright 1999-2019 Gentoo Foundation > # Distributed under the terms of the GNU General Public License v2 > =20 > # @ECLASS: font.eclass > @@ -7,12 +7,11 @@ > # @BLURB: Eclass to make font installation uniform > =20 > case ${EAPI:-0} in > - 0|1|2|3|4|5|6) ;; > - *) die "EAPI ${EAPI} is not supported by font.eclass." ;; > + 0|1|2|3|4|5|6) inherit eutils ;; > + 7) ;; > + *) die "EAPI ${EAPI} is not supported by font.eclass." ;; > esac > =20 > -inherit eutils > - > EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm > =20 > # @ECLASS-VARIABLE: FONT_SUFFIX > @@ -68,12 +67,12 @@ font_xfont_config() { > if has X ${IUSE//+} && use X ; then > dir_name=3D"${1:-${FONT_PN}}" > ebegin "Creating fonts.scale & fonts.dir in ${dir_name##*/}" > - rm -f "${ED}${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir} > - mkfontscale "${ED}${FONTDIR}/${1//${S}/}" > + rm -f "${ED%/}/${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.di= r} > + mkfontscale "${ED%/}/${FONTDIR}/${1//${S}/}" > mkfontdir \ > -e ${EPREFIX}/usr/share/fonts/encodings \ > -e ${EPREFIX}/usr/share/fonts/encodings/large \ > - "${ED}${FONTDIR}/${1//${S}/}" > + "${ED%/}/${FONTDIR}/${1//${S}/}" > eend $? > if [[ -e fonts.alias ]] ; then > doins fonts.alias Would it make sense to add some error handling? It seems silly to try to do a few things, then report one $? for the last of them, independently of whether previous actions succeeded or failed. > @@ -103,7 +102,7 @@ font_cleanup_dirs() { > local d f g generated candidate otherfile > =20 > ebegin "Cleaning up font directories" > - find -L "${EROOT}"usr/share/fonts/ -type d -print0 | while read -d $'\0= ' d; do > + find -L "${EROOT%/}"/usr/share/fonts/ -type d -print0 | while read -d $= '\0' d; do Move while to primary shell, and use < <(find ...). > candidate=3Dfalse > otherfile=3Dfalse > for f in "${d}"/*; do > @@ -160,7 +159,7 @@ font_pkg_setup() { > =20 > # make sure we get no collisions > # setup is not the nicest place, but preinst doesn't cut it > - [[ -e "${EROOT}/${FONTDIR}/fonts.cache-1" ]] && rm -f "${EROOT}/${FONTD= IR}/fonts.cache-1" > + [[ -e "${EROOT%/}/${FONTDIR}/fonts.cache-1" ]] && rm -f "${EROOT%/}/${F= ONTDIR}/fonts.cache-1" What's the point of checking the existence, if you pass '-f' to rm anyway? > } > =20 > # @FUNCTION: font_src_install > @@ -202,36 +201,42 @@ font_src_install() { > done > } > =20 > +# @FUNCTION: _update_fontcache > +# @DESCRIPTION: > +# Updates fontcache if !prefix and media-libs/fontconfig installed > +_update_fontcache() { > + # TODO: cleanup after + if has_version media-libs/fontconfig && { [[ -z ${ROOT} ]] || [[ ${ROOT= } =3D=3D / ]] ; } then [[ -z ${ROOT} || ${ROOT} =3D=3D / ]] is valid in bash. [[ -z ${ROOT%/} ]] is shorter. > + ebegin "Updating global fontcache" > + fc-cache -fs > + eend $? > + else > + einfo "Skipping fontcache update (media-libs/fontconfig is not install= ed or ROOT !=3D /)" > + fi > +} > + > # @FUNCTION: font_pkg_postinst > # @DESCRIPTION: > # The font pkg_postinst function. > font_pkg_postinst() { > # unreadable font files =3D fontconfig segfaults > - find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0 \ > + find "${EROOT%/}"/usr/share/fonts/ -type f '!' -perm 0644 -print0 \ > | xargs -0 chmod -v 0644 2>/dev/null find ... -exec chmod ... {} + > =20 > if [[ -n ${FONT_CONF[@]} ]]; then > local conffile > - echo > elog "The following fontconfig configuration files have been installed= :" > elog > for conffile in "${FONT_CONF[@]}"; do > - if [[ -e ${EROOT}etc/fonts/conf.avail/$(basename ${conffile}) ]]; the= n > + if [[ -e ${EROOT%/}/etc/fonts/conf.avail/$(basename ${conffile}) ]]; = then Don't call basename if you can do the same via ${conffile##*/}. > elog " $(basename ${conffile})" > fi > done > elog > elog "Use \`eselect fontconfig\` to enable/disable them." > - echo > fi > =20 > - if has_version media-libs/fontconfig && [[ ${ROOT} =3D=3D / ]]; then > - ebegin "Updating global fontcache" > - fc-cache -fs > - eend $? > - else > - einfo "Skipping fontcache update (media-libs/fontconfig is not install= ed or ROOT !=3D /)" > - fi > + _update_fontcache > } > =20 > # @FUNCTION: font_pkg_postrm > @@ -241,14 +246,8 @@ font_pkg_postrm() { > font_cleanup_dirs > =20 > # unreadable font files =3D fontconfig segfaults > - find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0 \ > + find "${EROOT%/}"/usr/share/fonts/ -type f '!' -perm 0644 -print0 \ > | xargs -0 chmod -v 0644 2>/dev/null Likewise. Also, wouldn't it make sense to put it inside _update_fontcache()? It seems identical here and in postinst. > =20 > - if has_version media-libs/fontconfig && [[ ${ROOT} =3D=3D / ]]; then > - ebegin "Updating global fontcache" > - fc-cache -fs > - eend $? > - else > - einfo "Skipping fontcache update (media-libs/fontconfig is not install= ed or ROOT !=3D /)" > - fi > + _update_fontcache > } --=20 Best regards, Micha=C5=82 G=C3=B3rny --=-kA2yHr+yHnG80KmJ53jR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQKTBAABCgB9FiEEXr8g+Zb7PCLMb8pAur8dX/jIEQoFAlyXz1RfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDVF QkYyMEY5OTZGQjNDMjJDQzZGQ0E0MEJBQkYxRDVGRjhDODExMEEACgkQur8dX/jI EQopERAAnxu9ZelwF4808/fa462410+2koAKVUGYLIbZBal5Lmqa9/3Iwd6jggok 1fDLh1yT096AWsEjF0ONNqBiR2mLsyh2e4tQm7paxJCMxu41YtxG4If9/hjUA+5U SsErP3jc5vv2aKHkp9Cy7owOvZALig8ksD3b8mS34fScvF/WxQtskQ3sBh4GM6B3 8ZpsGPrrK1QoseFEK14OCQ7uIq1iw7kjVgB9W5rXimEMpmGqz5ImX244+2kVOvoj jd1+PEYxTSmlhLfBX/BRrqYlPGoIn45HJcjf8M7T9VZFrfuwteSPOQAvoCXPuBqS resnFTwzMuy6Kwxt8WEZVz1VnTRlSRdRj3+LqNG87JRZnKk8NFd79YierlEpZ+aC kyxTXMnjTqMSpATucmZL93SJA2nGenWJ1jn2lcygCDOZi6YZHL16KxPJn4eWAmpV yBgBI8J6PpuOzMbxNo+JvO3d3IP3BMm7ld/jLSYW0OYvbBtRK0CAFgvuUWAMBH30 4LEcV+pwnNeB65pjES84Qr8E2dH+qdlNLiAKX5sGm4Pec6vbGRB3IWF/aJfeRP/X zqzRA085UfWb0Hpx+kv8veMrZlaBQH0qmuODpQi70EST96PPFjw5o0zocuFG+lS2 s4lj4JtPxmYB/8ziBrVnPjs02Ki7E+aFctR2C72mxSGmRpVBZWM= =MBij -----END PGP SIGNATURE----- --=-kA2yHr+yHnG80KmJ53jR--