commit:     79b31dccce6f4644f158cfbe9c8694cca807426d
Author:     Eli Schwartz <eschwartz93 <AT> gmail <DOT> com>
AuthorDate: Tue Mar 19 05:15:36 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 19 05:48:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79b31dcc

dev-build/meson: install the meson-reference(3) manpage

It requires additional dependencies to build, but meson uploads the
built version as a release asset. It will need to be built in the live
ebuild but users of a live ebuild can bear the ignominious burden of one
small python package. :D

Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-build/meson/Manifest                           |  1 +
 .../{meson-9999.ebuild => meson-1.4.0-r1.ebuild}   | 54 ++++++++++++++++++++--
 dev-build/meson/meson-9999.ebuild                  | 54 ++++++++++++++++++++--
 3 files changed, 103 insertions(+), 6 deletions(-)

diff --git a/dev-build/meson/Manifest b/dev-build/meson/Manifest
index 9f68e5541aa6..c57d99aefd52 100644
--- a/dev-build/meson/Manifest
+++ b/dev-build/meson/Manifest
@@ -10,3 +10,4 @@ DIST meson-1.3.2.tar.gz 2223798 BLAKE2B 
72b061598a0cb22517460de4df25394a9dfbddb5
 DIST meson-1.3.2.tar.gz.asc 833 BLAKE2B 
b11ae2be4e9cb0278be9cafd304146432e606a5fd23379d08116943676286f240fb8cc1d5f897cbd4c2bacfe298802afb1a847e447d71250f58cee5dec38083b
 SHA512 
0cb9575fb599cba4ae77c1954599a24b1f079c46cf255bb8d581ef434598503db6e08af6a95b7c00bc54c165ec8fd9834310e2d4874afe01c5d44e72cef496b3
 DIST meson-1.4.0.tar.gz 2224663 BLAKE2B 
7f742ef870c182e552c1ff3508d65f251009d610def6a08e01fddb6c6a4ed6d608ead0d52cf8ca7d66b5bd7a4732dccd7ab5d98f141a4a61e275398885f79486
 SHA512 
2787941fbc77d5ad95011753df52fe39812929a06d84dbce8bdc965c9c1e62fd6bfa819712eb1f5934c2ebe6919a65f7874ecac2caf40d111ea024343108cfbd
 DIST meson-1.4.0.tar.gz.asc 833 BLAKE2B 
6e4002303da16bcaa3d1d3c76a3485b23174074de2d29bd34347a4671d7fb0f1c0767559ed9267e0f0b52c02638b85a11a5980f4ee188e7e4d35c733b0821c62
 SHA512 
ea73e72d929bf30d28c033f103fd1d26bac7cef175aabbf9b3a24c7b336682c28f5aae184e04d2189731cf80dd7571939cb02de642bb5b412cea996ca30dfdad
+DIST meson-reference-1.4.0.3 339324 BLAKE2B 
8ad24592c1a9100832dead97a55d4cb358892fc1cd6aee641f9610cb6a5df211831e6cfc42e047d5e835ed53de1bb9c7d711dd1a0a8cfe18a0f85e92a1a3f925
 SHA512 
8df06f63db6db01a6c8c0a5b4a8b26c868bb027f26580d290288b1067429a526fb654fae01a45085c1f20ee8dab1b5325e8b2fd285faf175d2fcfc2c704b4768

diff --git a/dev-build/meson/meson-9999.ebuild 
b/dev-build/meson/meson-1.4.0-r1.ebuild
similarity index 74%
copy from dev-build/meson/meson-9999.ebuild
copy to dev-build/meson/meson-1.4.0-r1.ebuild
index f089b6a869b1..ec92df368f4f 100644
--- a/dev-build/meson/meson-9999.ebuild
+++ b/dev-build/meson/meson-1.4.0-r1.ebuild
@@ -6,9 +6,17 @@ EAPI=8
 PYTHON_COMPAT=( python3_{10..12} pypy3 )
 DISTUTILS_USE_PEP517=setuptools
 
+inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs
+
 if [[ ${PV} = *9999* ]]; then
        EGIT_REPO_URI="https://github.com/mesonbuild/meson";
-       inherit git-r3
+       inherit ninja-utils git-r3
+
+       BDEPEND="
+               ${NINJA_DEPEND}
+               $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+       "
+
 else
        inherit verify-sig
 
@@ -19,6 +27,7 @@ else
        SRC_URI="
                
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
                verify-sig? ( 
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc
 )
+               
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3
 -> meson-reference-${MY_PV}.3
        "
        BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )"
        VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
@@ -28,8 +37,6 @@ else
        fi
 fi
 
-inherit bash-completion-r1 flag-o-matic distutils-r1 toolchain-funcs
-
 DESCRIPTION="Open source build system"
 HOMEPAGE="https://mesonbuild.com/";
 
@@ -56,6 +63,16 @@ PATCHES=(
        "${FILESDIR}"/${PN}-1.2.1-python-path.patch
 )
 
+
+src_unpack() {
+       if [[ ${PV} = *9999* ]]; then
+               git-r3_src_unpack
+       else
+               default
+               verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+       fi
+}
+
 python_prepare_all() {
        local disable_unittests=(
                # ASAN and sandbox both want control over LD_PRELOAD
@@ -75,6 +92,31 @@ python_prepare_all() {
        distutils-r1_python_prepare_all
 }
 
+python_check_deps() {
+       if [[ ${PV} = *9999* ]]; then
+               python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+       fi
+}
+
+python_configure_all() {
+       if [[ ${PV} = *9999* ]]; then
+               # We use the unsafe_yaml loader because strictyaml is not 
packaged. In
+               # theory they produce the same results, but pyyaml is faster and
+               # without safety checks.
+               edo ./meson.py setup \
+                       --prefix "${EPREFIX}/usr" \
+                       -Dhtml=false \
+                       -Dunsafe_yaml=true \
+                       docs/ docs/builddir
+       fi
+}
+
+python_compile_all() {
+       if [[ ${PV} = *9999* ]]; then
+               eninja -C docs/builddir
+       fi
+}
+
 src_test() {
        tc-export PKG_CONFIG
        if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; 
then
@@ -129,4 +171,10 @@ python_install_all() {
        doins data/shell-completions/zsh/_meson
 
        dobashcomp data/shell-completions/bash/meson
+
+       if [[ ${PV} = *9999* ]]; then
+               DESTDIR="${ED}" eninja -C docs/builddir install
+       else
+               newman "${DISTDIR}"/meson-reference-${PV}.3 meson-reference.3
+       fi
 }

diff --git a/dev-build/meson/meson-9999.ebuild 
b/dev-build/meson/meson-9999.ebuild
index f089b6a869b1..ec92df368f4f 100644
--- a/dev-build/meson/meson-9999.ebuild
+++ b/dev-build/meson/meson-9999.ebuild
@@ -6,9 +6,17 @@ EAPI=8
 PYTHON_COMPAT=( python3_{10..12} pypy3 )
 DISTUTILS_USE_PEP517=setuptools
 
+inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs
+
 if [[ ${PV} = *9999* ]]; then
        EGIT_REPO_URI="https://github.com/mesonbuild/meson";
-       inherit git-r3
+       inherit ninja-utils git-r3
+
+       BDEPEND="
+               ${NINJA_DEPEND}
+               $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+       "
+
 else
        inherit verify-sig
 
@@ -19,6 +27,7 @@ else
        SRC_URI="
                
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
                verify-sig? ( 
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc
 )
+               
https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3
 -> meson-reference-${MY_PV}.3
        "
        BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )"
        VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
@@ -28,8 +37,6 @@ else
        fi
 fi
 
-inherit bash-completion-r1 flag-o-matic distutils-r1 toolchain-funcs
-
 DESCRIPTION="Open source build system"
 HOMEPAGE="https://mesonbuild.com/";
 
@@ -56,6 +63,16 @@ PATCHES=(
        "${FILESDIR}"/${PN}-1.2.1-python-path.patch
 )
 
+
+src_unpack() {
+       if [[ ${PV} = *9999* ]]; then
+               git-r3_src_unpack
+       else
+               default
+               verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+       fi
+}
+
 python_prepare_all() {
        local disable_unittests=(
                # ASAN and sandbox both want control over LD_PRELOAD
@@ -75,6 +92,31 @@ python_prepare_all() {
        distutils-r1_python_prepare_all
 }
 
+python_check_deps() {
+       if [[ ${PV} = *9999* ]]; then
+               python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+       fi
+}
+
+python_configure_all() {
+       if [[ ${PV} = *9999* ]]; then
+               # We use the unsafe_yaml loader because strictyaml is not 
packaged. In
+               # theory they produce the same results, but pyyaml is faster and
+               # without safety checks.
+               edo ./meson.py setup \
+                       --prefix "${EPREFIX}/usr" \
+                       -Dhtml=false \
+                       -Dunsafe_yaml=true \
+                       docs/ docs/builddir
+       fi
+}
+
+python_compile_all() {
+       if [[ ${PV} = *9999* ]]; then
+               eninja -C docs/builddir
+       fi
+}
+
 src_test() {
        tc-export PKG_CONFIG
        if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; 
then
@@ -129,4 +171,10 @@ python_install_all() {
        doins data/shell-completions/zsh/_meson
 
        dobashcomp data/shell-completions/bash/meson
+
+       if [[ ${PV} = *9999* ]]; then
+               DESTDIR="${ED}" eninja -C docs/builddir install
+       else
+               newman "${DISTDIR}"/meson-reference-${PV}.3 meson-reference.3
+       fi
 }

Reply via email to