# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CHROMIUM_LANGS=" am ar bg bn ca cs da de el en-GB en-US es-419 es et fa fil fi fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk vi zh-CN zh-TW " PYTHON_COMPAT=( python3_{8,9} ) PYTHON_REQ_USE="sqlite" inherit desktop unpacker python-single-r1 xdg chromium-2 DESCRIPTION="GUI administration and development platform for PostgreSQL" HOMEPAGE="https://www.pgadmin.org/" SRC_URI=" https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal/dists/pgadmin4/main/binary-amd64/${PN}-server_${PV}_amd64.deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal/dists/pgadmin4/main/binary-amd64/${PN}-desktop_${PV}_amd64.deb " LICENSE="POSTGRESQL" SLOT="0" KEYWORDS="amd64 ~x86" IUSE="doc" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="test" QA_PREBUILT=" /opt/${PN}/bin/${PN} /opt/${PN}/bin/chrome_crashpad_handler /opt/${PN}/bin/lib/*.so* /opt/${PN}/bin/swiftshader/*.so " RDEPEND=" $(python_gen_cond_dep ' =dev-python/bcrypt-3*[${PYTHON_USEDEP}] =dev-python/cryptography-3*[${PYTHON_USEDEP}] =dev-python/gssapi-1.7*[${PYTHON_USEDEP}] =dev-python/pillow-9*[${PYTHON_USEDEP}] =dev-python/psutil-5*[${PYTHON_USEDEP}] =dev-python/psycopg-2.9*[${PYTHON_USEDEP}] =dev-python/simplejson-3*[${PYTHON_USEDEP}] =dev-python/sqlalchemy-1.4*[${PYTHON_USEDEP}] >=dev-python/markupsafe-2.0.0[${PYTHON_USEDEP}] >=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}] >=dev-python/greenlet-1.0.0[${PYTHON_USEDEP}] ') " S="${WORKDIR}" src_prepare() { default sed -i -e '/Exec/s|/usr/pgadmin4/bin/pgadmin4|/opt/pgadmin4/bin/pgadmin4|' \ -e '/Categories/s|Application;Development;|Development;|' \ usr/share/applications/pgadmin4.desktop \ || die "sed failed in Icon for slack.desktop" # Unbundle some libraries. #rm -r usr/pgadmin4/bin/lib/lib{EGL.so,ffmpeg.so,GLESv2.so,vulkan.so.1} usr/pgadmin4/bin/swiftshader/ || die # Remove system-packages rm -rf usr/pgadmin4/venv/lib/python3.8/site-packages/{bcrypt,cryptography,cffi,gssapi,PIL,psutil,psycopg2,simplejson,sqlalchemy,markupsafe,nacl} || die # Remove unneeded packages rm -rf usr/pgadmin4/venv/lib/python3.8/site-packages/{Pillow.libs,greenlet*,cffi.libs,_brotli.*,_cffi_backend.*} || die cd usr/pgadmin4/bin/locales || die rm {ar-XB,en-XA}.pak* || die # No flags for pseudo locales. chromium_remove_language_paks python_setup } src_install() { insinto /opt/${PN} doins -r usr/${PN}/web doins -r usr/${PN}/bin doins -r usr/${PN}/share insinto /opt/${PN}/venv doins usr/${PN}/venv/pyvenv.cfg insinto /opt/${PN}/venv/lib/${EPYTHON} doins -r usr/${PN}/venv/lib/python3.8/site-packages mkdir ${ED}/opt/${PN}/venv/bin dosym ${PYTHON} opt/${PN}/venv/bin/python3 dosym python3 opt/${PN}/venv/bin/python for FULLPATH in ${EPREFIX}/usr/lib/${EPYTHON}/*.py; do FILE=${FULLPATH##*/} if [ ! -e ${ED}/opt/${PN}/venv/lib/${EPYTHON}/${FILE} ]; then dosym ${FULLPATH} opt/${PN}/venv/lib/${EPYTHON}/${FILE} fi done for FULLPATH in ${EPREFIX}/usr/lib/${EPYTHON}/*/; do FULLPATH=${FULLPATH%*/} FILE=${FULLPATH##*/} if [ ! -e ${ED}/opt/${PN}/venv/lib/${EPYTHON}/${FILE} ]; then dosym ${FULLPATH} opt/${PN}/venv/lib/${EPYTHON}/${FILE} fi done local module for module in bcrypt cffi cryptography gssapi markupsafe PIL psutil psycopg2 simplejson sqlalchemy nacl greenlet; do dosym ${EPREFIX}/usr/lib/${EPYTHON}/site-packages/${module} opt/${PN}/venv/lib/${EPYTHON}/site-packages/${module} done for module in ${EPREFIX}/usr/lib/${EPYTHON}/site-packages/_brotli*.so ${EPREFIX}/usr/lib/${EPYTHON}/site-packages/_cffi_backend*.so; do FILE=${module##*/} dosym ${module} opt/${PN}/venv/lib/${EPYTHON}/site-packages/${FILE} done dosym ${EPYTHON} opt/${PN}/venv/lib/python for file in ${ED}/opt/${PN}/bin/lib/*.so*; do FILE=${file##*/} fperms 0755 /opt/${PN}/bin/lib/${FILE} done for file in ${ED}/opt/${PN}/bin/swiftshader/*.so*; do FILE=${file##*/} fperms 0755 /opt/${PN}/bin/swiftshader/${FILE} done fperms 0755 /opt/${PN}/bin/chrome_crashpad_handler fperms 0755 /opt/${PN}/bin/pgadmin4 if use doc; then insinto /opt/${PN}/docs/en_US doins -r usr/pgadmin4/docs/en_US/html fi local s for s in 16 32 48 64 128; do doicon -s ${s} usr/share/icons/hicolor/${s}x${s}/apps/${PN}.png done domenu usr/share/applications/${PN}.desktop dosym ${ED}/opt/${PN}/bin/pgadmin4 ${EPREFIX}/usr/bin/${PN} }