* [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script @ 2020-12-11 23:17 Mike Gilbert 2020-12-11 23:17 ` [gentoo-dev] [PATCH 2/3] meson.eclass: use " Mike Gilbert ` (2 more replies) 0 siblings, 3 replies; 14+ messages in thread From: Mike Gilbert @ 2020-12-11 23:17 UTC (permalink / raw To: gentoo-dev; +Cc: williamh, chewi, Mike Gilbert Bug: https://bugs.gentoo.org/759433 Signed-off-by: Mike Gilbert <floppym@gentoo.org> --- dev-util/meson/files/meson-array | 18 ++++++++++++++++++ ...on-0.55.3.ebuild => meson-0.55.3-r1.ebuild} | 5 +++++ dev-util/meson/meson-9999.ebuild | 5 +++++ 3 files changed, 28 insertions(+) create mode 100644 dev-util/meson/files/meson-array rename dev-util/meson/{meson-0.55.3.ebuild => meson-0.55.3-r1.ebuild} (96%) diff --git a/dev-util/meson/files/meson-array b/dev-util/meson/files/meson-array new file mode 100644 index 000000000000..0f4e8c7c6389 --- /dev/null +++ b/dev-util/meson/files/meson-array @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +import itertools +import shlex +import sys + +def quote(s): + return "'" + s.replace("\\", "\\\\").replace("'", "\\'") + "'" + +def main(): + args = sys.argv[1:] + args = (shlex.split(x) for x in args) + args = itertools.chain.from_iterable(args) + args = (quote(x) for x in args) + print("[" + ", ".join(args) + "]") + +if __name__ == "__main__": + main() diff --git a/dev-util/meson/meson-0.55.3.ebuild b/dev-util/meson/meson-0.55.3-r1.ebuild similarity index 96% rename from dev-util/meson/meson-0.55.3.ebuild rename to dev-util/meson/meson-0.55.3-r1.ebuild index ddf27ccdc725..4708a46b324f 100644 --- a/dev-util/meson/meson-0.55.3.ebuild +++ b/dev-util/meson/meson-0.55.3-r1.ebuild @@ -82,6 +82,11 @@ python_test() { ) || die "Testing failed with ${EPYTHON}" } +python_install() { + distutils-r1_python_install + python_doscript "${FILESDIR}/meson-array" +} + python_install_all() { distutils-r1_python_install_all diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-9999.ebuild index 38ccf9179e21..1cdd142a3f79 100644 --- a/dev-util/meson/meson-9999.ebuild +++ b/dev-util/meson/meson-9999.ebuild @@ -82,6 +82,11 @@ python_test() { ) || die "Testing failed with ${EPYTHON}" } +python_install() { + distutils-r1_python_install + python_doscript "${FILESDIR}/meson-array" +} + python_install_all() { distutils-r1_python_install_all -- 2.29.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-dev] [PATCH 2/3] meson.eclass: use meson-array script 2020-12-11 23:17 [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script Mike Gilbert @ 2020-12-11 23:17 ` Mike Gilbert 2020-12-11 23:24 ` [gentoo-dev] " James Le Cuirot 2020-12-11 23:17 ` [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array Mike Gilbert 2020-12-12 20:48 ` [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script William Hubbs 2 siblings, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-11 23:17 UTC (permalink / raw To: gentoo-dev; +Cc: williamh, chewi, Mike Gilbert This allows python-exec to pick a suitable interpreter when /usr/bin/python is missing. Closes: https://bugs.gentoo.org/759433 Signed-off-by: Mike Gilbert <floppym@gentoo.org> --- eclass/meson.eclass | 100 +++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 61 deletions(-) diff --git a/eclass/meson.eclass b/eclass/meson.eclass index 21338280df33..4cc321987dfb 100644 --- a/eclass/meson.eclass +++ b/eclass/meson.eclass @@ -54,7 +54,7 @@ EXPORT_FUNCTIONS src_configure src_compile src_test src_install if [[ -z ${_MESON_ECLASS} ]]; then _MESON_ECLASS=1 -MESON_DEPEND=">=dev-util/meson-0.54.0 +MESON_DEPEND=">=dev-util/meson-0.55.3-r1 >=dev-util/ninja-1.8.2" if [[ ${EAPI:-0} == [6] ]]; then @@ -107,28 +107,6 @@ print("[{}]".format( ", ".join([quote(x) for x in shlex.split(" ".join(sys.argv[1:]))]))) EOF -# @FUNCTION: _meson_env_array -# @INTERNAL -# @DESCRIPTION: -# Parses the command line flags and converts them into an array suitable for -# use in a cross file. -# -# Input: --single-quote=\' --double-quote=\" --dollar=\$ --backtick=\` -# --backslash=\\ --full-word-double="Hello World" -# --full-word-single='Hello World' -# --full-word-backslash=Hello\ World -# --simple --unicode-8=© --unicode-16=𐐷 --unicode-32=𐤅 -# -# Output: ['--single-quote=\'', '--double-quote="', '--dollar=$', -# '--backtick=`', '--backslash=\\', '--full-word-double=Hello World', -# '--full-word-single=Hello World', -# '--full-word-backslash=Hello World', '--simple', '--unicode-8=©', -# '--unicode-16=𐐷', '--unicode-32=𐤅'] -# -_meson_env_array() { - python -c "${__MESON_ARRAY_PARSER}" "$@" -} - # @FUNCTION: _meson_get_machine_info # @USAGE: <tuple> # @RETURN: system/cpu_family/cpu variables @@ -173,29 +151,29 @@ _meson_create_cross_file() { cat > "${fn}" <<-EOF [binaries] - ar = $(_meson_env_array "$(tc-getAR)") - c = $(_meson_env_array "$(tc-getCC)") - cpp = $(_meson_env_array "$(tc-getCXX)") - fortran = $(_meson_env_array "$(tc-getFC)") + ar = $(meson-array "$(tc-getAR)") + c = $(meson-array "$(tc-getCC)") + cpp = $(meson-array "$(tc-getCXX)") + fortran = $(meson-array "$(tc-getFC)") llvm-config = '$(tc-getPROG LLVM_CONFIG llvm-config)' - nm = $(_meson_env_array "$(tc-getNM)") - objc = $(_meson_env_array "$(tc-getPROG OBJC cc)") - objcpp = $(_meson_env_array "$(tc-getPROG OBJCXX c++)") + nm = $(meson-array "$(tc-getNM)") + objc = $(meson-array "$(tc-getPROG OBJC cc)") + objcpp = $(meson-array "$(tc-getPROG OBJCXX c++)") pkgconfig = '$(tc-getPKG_CONFIG)' - strip = $(_meson_env_array "$(tc-getSTRIP)") - windres = $(_meson_env_array "$(tc-getRC)") + strip = $(meson-array "$(tc-getSTRIP)") + windres = $(meson-array "$(tc-getRC)") [properties] - c_args = $(_meson_env_array "${CFLAGS} ${CPPFLAGS}") - c_link_args = $(_meson_env_array "${CFLAGS} ${LDFLAGS}") - cpp_args = $(_meson_env_array "${CXXFLAGS} ${CPPFLAGS}") - cpp_link_args = $(_meson_env_array "${CXXFLAGS} ${LDFLAGS}") - fortran_args = $(_meson_env_array "${FCFLAGS}") - fortran_link_args = $(_meson_env_array "${FCFLAGS} ${LDFLAGS}") - objc_args = $(_meson_env_array "${OBJCFLAGS} ${CPPFLAGS}") - objc_link_args = $(_meson_env_array "${OBJCFLAGS} ${LDFLAGS}") - objcpp_args = $(_meson_env_array "${OBJCXXFLAGS} ${CPPFLAGS}") - objcpp_link_args = $(_meson_env_array "${OBJCXXFLAGS} ${LDFLAGS}") + c_args = $(meson-array "${CFLAGS} ${CPPFLAGS}") + c_link_args = $(meson-array "${CFLAGS} ${LDFLAGS}") + cpp_args = $(meson-array "${CXXFLAGS} ${CPPFLAGS}") + cpp_link_args = $(meson-array "${CXXFLAGS} ${LDFLAGS}") + fortran_args = $(meson-array "${FCFLAGS}") + fortran_link_args = $(meson-array "${FCFLAGS} ${LDFLAGS}") + objc_args = $(meson-array "${OBJCFLAGS} ${CPPFLAGS}") + objc_link_args = $(meson-array "${OBJCFLAGS} ${LDFLAGS}") + objcpp_args = $(meson-array "${OBJCXXFLAGS} ${CPPFLAGS}") + objcpp_link_args = $(meson-array "${OBJCXXFLAGS} ${LDFLAGS}") needs_exe_wrapper = true sys_root = '${SYSROOT}' pkg_config_libdir = '${PKG_CONFIG_LIBDIR:-${EPREFIX}/usr/$(get_libdir)/pkgconfig}' @@ -224,29 +202,29 @@ _meson_create_native_file() { cat > "${fn}" <<-EOF [binaries] - ar = $(_meson_env_array "$(tc-getBUILD_AR)") - c = $(_meson_env_array "$(tc-getBUILD_CC)") - cpp = $(_meson_env_array "$(tc-getBUILD_CXX)") - fortran = $(_meson_env_array "$(tc-getBUILD_PROG FC gfortran)") + ar = $(meson-array "$(tc-getBUILD_AR)") + c = $(meson-array "$(tc-getBUILD_CC)") + cpp = $(meson-array "$(tc-getBUILD_CXX)") + fortran = $(meson-array "$(tc-getBUILD_PROG FC gfortran)") llvm-config = '$(tc-getBUILD_PROG LLVM_CONFIG llvm-config)' - nm = $(_meson_env_array "$(tc-getBUILD_NM)") - objc = $(_meson_env_array "$(tc-getBUILD_PROG OBJC cc)") - objcpp = $(_meson_env_array "$(tc-getBUILD_PROG OBJCXX c++)") + nm = $(meson-array "$(tc-getBUILD_NM)") + objc = $(meson-array "$(tc-getBUILD_PROG OBJC cc)") + objcpp = $(meson-array "$(tc-getBUILD_PROG OBJCXX c++)") pkgconfig = '$(tc-getBUILD_PKG_CONFIG)' - strip = $(_meson_env_array "$(tc-getBUILD_STRIP)") - windres = $(_meson_env_array "$(tc-getBUILD_PROG RC windres)") + strip = $(meson-array "$(tc-getBUILD_STRIP)") + windres = $(meson-array "$(tc-getBUILD_PROG RC windres)") [properties] - c_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}") - c_link_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}") - cpp_args = $(_meson_env_array "${BUILD_CXXFLAGS} ${BUILD_CPPFLAGS}") - cpp_link_args = $(_meson_env_array "${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}") - fortran_args = $(_meson_env_array "${BUILD_FCFLAGS}") - fortran_link_args = $(_meson_env_array "${BUILD_FCFLAGS} ${BUILD_LDFLAGS}") - objc_args = $(_meson_env_array "${BUILD_OBJCFLAGS} ${BUILD_CPPFLAGS}") - objc_link_args = $(_meson_env_array "${BUILD_OBJCFLAGS} ${BUILD_LDFLAGS}") - objcpp_args = $(_meson_env_array "${BUILD_OBJCXXFLAGS} ${BUILD_CPPFLAGS}") - objcpp_link_args = $(_meson_env_array "${BUILD_OBJCXXFLAGS} ${BUILD_LDFLAGS}") + c_args = $(meson-array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}") + c_link_args = $(meson-array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}") + cpp_args = $(meson-array "${BUILD_CXXFLAGS} ${BUILD_CPPFLAGS}") + cpp_link_args = $(meson-array "${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}") + fortran_args = $(meson-array "${BUILD_FCFLAGS}") + fortran_link_args = $(meson-array "${BUILD_FCFLAGS} ${BUILD_LDFLAGS}") + objc_args = $(meson-array "${BUILD_OBJCFLAGS} ${BUILD_CPPFLAGS}") + objc_link_args = $(meson-array "${BUILD_OBJCFLAGS} ${BUILD_LDFLAGS}") + objcpp_args = $(meson-array "${BUILD_OBJCXXFLAGS} ${BUILD_CPPFLAGS}") + objcpp_link_args = $(meson-array "${BUILD_OBJCXXFLAGS} ${BUILD_LDFLAGS}") needs_exe_wrapper = false pkg_config_libdir = '${BUILD_PKG_CONFIG_LIBDIR:-${EPREFIX}/usr/$(get_libdir)/pkgconfig}' -- 2.29.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [gentoo-dev] Re: [PATCH 2/3] meson.eclass: use meson-array script 2020-12-11 23:17 ` [gentoo-dev] [PATCH 2/3] meson.eclass: use " Mike Gilbert @ 2020-12-11 23:24 ` James Le Cuirot 0 siblings, 0 replies; 14+ messages in thread From: James Le Cuirot @ 2020-12-11 23:24 UTC (permalink / raw To: Mike Gilbert; +Cc: gentoo-dev, williamh [-- Attachment #1: Type: text/plain, Size: 490 bytes --] On Fri, 11 Dec 2020 18:17:43 -0500 Mike Gilbert <floppym@gentoo.org> wrote: > This allows python-exec to pick a suitable interpreter when > /usr/bin/python is missing. > > Closes: https://bugs.gentoo.org/759433 > Signed-off-by: Mike Gilbert <floppym@gentoo.org> > --- > eclass/meson.eclass | 100 +++++++++++++++++--------------------------- > 1 file changed, 39 insertions(+), 61 deletions(-) That's cool. You forgot to remove the __MESON_ARRAY_PARSER definition though. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array 2020-12-11 23:17 [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script Mike Gilbert 2020-12-11 23:17 ` [gentoo-dev] [PATCH 2/3] meson.eclass: use " Mike Gilbert @ 2020-12-11 23:17 ` Mike Gilbert 2020-12-12 21:07 ` William Hubbs 2020-12-12 20:48 ` [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script William Hubbs 2 siblings, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-11 23:17 UTC (permalink / raw To: gentoo-dev; +Cc: williamh, chewi, Mike Gilbert Bug: https://bugs.gentoo.org/759433 Signed-off-by: Mike Gilbert <floppym@gentoo.org> --- .../gallium-nine-standalone-0.7.ebuild | 4 ++-- .../gallium-nine-standalone-9999.ebuild | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild index 3e96326a2fc8..9e075e1f5edb 100644 --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild @@ -65,8 +65,8 @@ src_prepare() { sed \ -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ - -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ - -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ + -e "s!@CFLAGS@!$(meson-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ + -e "s!@LDFLAGS@!$(meson-array "${LDFLAGS}")!" \ -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ ${file}.in > ${file} || die } diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild index 3e96326a2fc8..9e075e1f5edb 100644 --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild @@ -65,8 +65,8 @@ src_prepare() { sed \ -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ - -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ - -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ + -e "s!@CFLAGS@!$(meson-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ + -e "s!@LDFLAGS@!$(meson-array "${LDFLAGS}")!" \ -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ ${file}.in > ${file} || die } -- 2.29.2 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array 2020-12-11 23:17 ` [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array Mike Gilbert @ 2020-12-12 21:07 ` William Hubbs 0 siblings, 0 replies; 14+ messages in thread From: William Hubbs @ 2020-12-12 21:07 UTC (permalink / raw To: gentoo-dev; +Cc: floppym, chewi [-- Attachment #1: Type: text/plain, Size: 2579 bytes --] On Fri, Dec 11, 2020 at 06:17:44PM -0500, Mike Gilbert wrote: > Bug: https://bugs.gentoo.org/759433 > Signed-off-by: Mike Gilbert <floppym@gentoo.org> > --- > .../gallium-nine-standalone-0.7.ebuild | 4 ++-- > .../gallium-nine-standalone-9999.ebuild | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild > index 3e96326a2fc8..9e075e1f5edb 100644 > --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild > +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild > @@ -65,8 +65,8 @@ src_prepare() { > > sed \ > -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ > - -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ > - -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ > + -e "s!@CFLAGS@!$(meson-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ > + -e "s!@LDFLAGS@!$(meson-array "${LDFLAGS}")!" \ > -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ > ${file}.in > ${file} || die > } > diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild > index 3e96326a2fc8..9e075e1f5edb 100644 > --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild > +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild > @@ -65,8 +65,8 @@ src_prepare() { > > sed \ > -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ > - -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ > - -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ > + -e "s!@CFLAGS@!$(meson-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ > + -e "s!@LDFLAGS@!$(meson-array "${LDFLAGS}")!" \ > -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ > ${file}.in > ${file} || die > } > -- > 2.29.2 # @FUNCTION: _meson_env_array # @INTERNAL # @DESCRIPTION: # Parses the command line flags and converts them into an array suitable for # use in a cross file. The _meson_env_array function is not part of the API for the meson eclass. Can you tell me more about gallium-nine-standalone and what it needs from the meson eclass? We can probably provide functions that return the info it needs. Thanks, William [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-11 23:17 [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script Mike Gilbert 2020-12-11 23:17 ` [gentoo-dev] [PATCH 2/3] meson.eclass: use " Mike Gilbert 2020-12-11 23:17 ` [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array Mike Gilbert @ 2020-12-12 20:48 ` William Hubbs 2020-12-12 21:25 ` Mike Gilbert 2 siblings, 1 reply; 14+ messages in thread From: William Hubbs @ 2020-12-12 20:48 UTC (permalink / raw To: gentoo-dev; +Cc: floppym, chewi [-- Attachment #1: Type: text/plain, Size: 3527 bytes --] On Fri, Dec 11, 2020 at 06:17:42PM -0500, Mike Gilbert wrote: > Bug: https://bugs.gentoo.org/759433 > Signed-off-by: Mike Gilbert <floppym@gentoo.org> > --- > dev-util/meson/files/meson-array | 18 ++++++++++++++++++ > ...on-0.55.3.ebuild => meson-0.55.3-r1.ebuild} | 5 +++++ > dev-util/meson/meson-9999.ebuild | 5 +++++ > 3 files changed, 28 insertions(+) > create mode 100644 dev-util/meson/files/meson-array > rename dev-util/meson/{meson-0.55.3.ebuild => meson-0.55.3-r1.ebuild} (96%) > > diff --git a/dev-util/meson/files/meson-array b/dev-util/meson/files/meson-array > new file mode 100644 > index 000000000000..0f4e8c7c6389 > --- /dev/null > +++ b/dev-util/meson/files/meson-array > @@ -0,0 +1,18 @@ > +#!/usr/bin/env python > + > +import itertools > +import shlex > +import sys > + > +def quote(s): > + return "'" + s.replace("\\", "\\\\").replace("'", "\\'") + "'" > + > +def main(): > + args = sys.argv[1:] > + args = (shlex.split(x) for x in args) > + args = itertools.chain.from_iterable(args) > + args = (quote(x) for x in args) > + print("[" + ", ".join(args) + "]") > + > +if __name__ == "__main__": > + main() > diff --git a/dev-util/meson/meson-0.55.3.ebuild b/dev-util/meson/meson-0.55.3-r1.ebuild > similarity index 96% > rename from dev-util/meson/meson-0.55.3.ebuild > rename to dev-util/meson/meson-0.55.3-r1.ebuild > index ddf27ccdc725..4708a46b324f 100644 > --- a/dev-util/meson/meson-0.55.3.ebuild > +++ b/dev-util/meson/meson-0.55.3-r1.ebuild > @@ -82,6 +82,11 @@ python_test() { > ) || die "Testing failed with ${EPYTHON}" > } > > +python_install() { > + distutils-r1_python_install > + python_doscript "${FILESDIR}/meson-array" > +} > + > python_install_all() { > distutils-r1_python_install_all > > diff --git a/dev-util/meson/meson-9999.ebuild b/dev-util/meson/meson-9999.ebuild > index 38ccf9179e21..1cdd142a3f79 100644 > --- a/dev-util/meson/meson-9999.ebuild > +++ b/dev-util/meson/meson-9999.ebuild > @@ -82,6 +82,11 @@ python_test() { > ) || die "Testing failed with ${EPYTHON}" > } > > +python_install() { > + distutils-r1_python_install > + python_doscript "${FILESDIR}/meson-array" > +} > + > python_install_all() { > distutils-r1_python_install_all > > -- > 2.29.2 I am fully aware I don't have full context for this, so fill me in if I am missing something. Reading this patch series and the bug linked in this message, it looks like we are trying to make meson.eclass work if /usr/bin/python is missing. My question is why? as far as I know /usr/bin/python is standard like /bin/sh; when a version of python is installed this link is always available. If /usr/bin/python is going away, it is going to break not only this but every python script that has "#!/usr/bin/python" or "#!/usr/bin/env python" as a shebang line. If /usr/bin/python is going away, what about /usr/bin/python3? If that isn't going away, the easier thing to do is to tweak the eclass to call it instead. If both /usr/bin/python and /usr/bin/python3 are going away, the best choice would be to add functionality to python-exec or eselect python to tell us the path to the default python interpretor. Once we know that we call it directly. Please do not apply this patch to meson; I think we can figure something out that is better. Also, see my comments on the third patch in the series for more context. Thanks, William [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-12 20:48 ` [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script William Hubbs @ 2020-12-12 21:25 ` Mike Gilbert 2020-12-13 2:09 ` William Hubbs 0 siblings, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-12 21:25 UTC (permalink / raw To: Gentoo Dev, William Hubbs On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > If both /usr/bin/python and /usr/bin/python3 are going away, the best > choice would be to add functionality to python-exec or eselect python to tell us > the path to the default python interpretor. Once we know that we call it > directly. I don't think they are "going away". There is a USE flag on dev-lang/python-exec that makes them optional, and I think it will be forcibly enabled for the foreseeable future. > Please do not apply this patch to meson; I think we can figure something > out that is better. I think installing a small script to help translate arguments from one format to another is a reasonable solution. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-12 21:25 ` Mike Gilbert @ 2020-12-13 2:09 ` William Hubbs 2020-12-13 2:22 ` Mike Gilbert 0 siblings, 1 reply; 14+ messages in thread From: William Hubbs @ 2020-12-13 2:09 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1233 bytes --] On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > > If both /usr/bin/python and /usr/bin/python3 are going away, the best > > choice would be to add functionality to python-exec or eselect python to tell us > > the path to the default python interpretor. Once we know that we call it > > directly. > > I don't think they are "going away". There is a USE flag on > dev-lang/python-exec that makes them optional, and I think it will be > forcibly enabled for the foreseeable future. > > > Please do not apply this patch to meson; I think we can figure something > > out that is better. > > I think installing a small script to help translate arguments from one > format to another is a reasonable solution. I think we should look at the eclass to see if we can provide functions that can be used by consumers to handle this. Also, I don't think your script will run if native-symlinks is disabled since in that setting /usr/bin/python would not exist. I question the value of the native-symlinks use flag on python-exec unless there is a way to query the path of the default python interpretor. William [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-13 2:09 ` William Hubbs @ 2020-12-13 2:22 ` Mike Gilbert 2020-12-17 20:38 ` William Hubbs 0 siblings, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-13 2:22 UTC (permalink / raw To: Gentoo Dev, William Hubbs On Sat, Dec 12, 2020 at 9:09 PM William Hubbs <williamh@gentoo.org> wrote: > > On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > > > If both /usr/bin/python and /usr/bin/python3 are going away, the best > > > choice would be to add functionality to python-exec or eselect python to tell us > > > the path to the default python interpretor. Once we know that we call it > > > directly. > > > > I don't think they are "going away". There is a USE flag on > > dev-lang/python-exec that makes them optional, and I think it will be > > forcibly enabled for the foreseeable future. > > > > > Please do not apply this patch to meson; I think we can figure something > > > out that is better. > > > > I think installing a small script to help translate arguments from one > > format to another is a reasonable solution. > > I think we should look at the eclass to see if we can provide functions > that can be used by consumers to handle this. I don't really understand what you mean by this. I am converting one internal bash function into an external script so that its python dependencies can be better defined and managed. > Also, I don't think your script will run if native-symlinks is disabled since in > that setting /usr/bin/python would not exist. python_doscript updates the shebang before installing the script. > I question the value of the native-symlinks use flag on python-exec > unless there is a way to query the path of the default python > interpretor. Regardless, I don't see how that makes my solution a bad thing. It ensures that the code will be executed by a known/support/tested version of python. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-13 2:22 ` Mike Gilbert @ 2020-12-17 20:38 ` William Hubbs 2020-12-17 20:50 ` Mike Gilbert 2020-12-17 21:08 ` James Le Cuirot 0 siblings, 2 replies; 14+ messages in thread From: William Hubbs @ 2020-12-17 20:38 UTC (permalink / raw To: gentoo-dev; +Cc: floppym, chewi [-- Attachment #1: Type: text/plain, Size: 2641 bytes --] On Sat, Dec 12, 2020 at 09:22:06PM -0500, Mike Gilbert wrote: > On Sat, Dec 12, 2020 at 9:09 PM William Hubbs <williamh@gentoo.org> wrote: > > > > On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > > > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > > > > If both /usr/bin/python and /usr/bin/python3 are going away, the best > > > > choice would be to add functionality to python-exec or eselect python to tell us > > > > the path to the default python interpretor. Once we know that we call it > > > > directly. > > > > > > I don't think they are "going away". There is a USE flag on > > > dev-lang/python-exec that makes them optional, and I think it will be > > > forcibly enabled for the foreseeable future. > > > > > > > Please do not apply this patch to meson; I think we can figure something > > > > out that is better. > > > > > > I think installing a small script to help translate arguments from one > > > format to another is a reasonable solution. > > > > I think we should look at the eclass to see if we can provide functions > > that can be used by consumers to handle this. > > I don't really understand what you mean by this. I am converting one > internal bash function into an external script so that its python > dependencies can be better defined and managed. What I mean is, ebuilds should not be calling _meson_env_array at all since it is defined and documented as an eclass internal function. I would like to know more about what the gallium-nine-standalone ebuild is doing and why it needs to call a meson.eclass internal function. On the other hand, if _meson_env_array is meant to be called by ebuilds, we need to rename it and improve the documentation for it in the eclass. > > Also, I don't think your script will run if native-symlinks is disabled since in > > that setting /usr/bin/python would not exist. > > python_doscript updates the shebang before installing the script. Ok, I didn't know python_doscript does this, but couldn't we just change line 129 in the eclass to "python3 -c ..."? > > I question the value of the native-symlinks use flag on python-exec > > unless there is a way to query the path of the default python > > interpretor. > > Regardless, I don't see how that makes my solution a bad thing. It > ensures that the code will be executed by a known/support/tested > version of python. > I'm not sure how useful the script is as a command, so I don't think it should be installed that way, but I do want to hear more about this, both from you and chewi. :-) William [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-17 20:38 ` William Hubbs @ 2020-12-17 20:50 ` Mike Gilbert 2020-12-17 21:08 ` Mike Gilbert 2020-12-17 21:08 ` James Le Cuirot 1 sibling, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-17 20:50 UTC (permalink / raw To: Gentoo Dev, Mike Gilbert, James Le Cuirot On Thu, Dec 17, 2020 at 3:38 PM William Hubbs <williamh@gentoo.org> wrote: > > On Sat, Dec 12, 2020 at 09:22:06PM -0500, Mike Gilbert wrote: > > On Sat, Dec 12, 2020 at 9:09 PM William Hubbs <williamh@gentoo.org> wrote: > > > > > > On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > > > > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > > > > > If both /usr/bin/python and /usr/bin/python3 are going away, the best > > > > > choice would be to add functionality to python-exec or eselect python to tell us > > > > > the path to the default python interpretor. Once we know that we call it > > > > > directly. > > > > > > > > I don't think they are "going away". There is a USE flag on > > > > dev-lang/python-exec that makes them optional, and I think it will be > > > > forcibly enabled for the foreseeable future. > > > > > > > > > Please do not apply this patch to meson; I think we can figure something > > > > > out that is better. > > > > > > > > I think installing a small script to help translate arguments from one > > > > format to another is a reasonable solution. > > > > > > I think we should look at the eclass to see if we can provide functions > > > that can be used by consumers to handle this. > > > > I don't really understand what you mean by this. I am converting one > > internal bash function into an external script so that its python > > dependencies can be better defined and managed. > > What I mean is, ebuilds should not be calling _meson_env_array at all > since it is defined and documented as an eclass internal function. > > I would like to know more about what the gallium-nine-standalone ebuild > is doing and why it needs to call a meson.eclass internal function. > > On the other hand, if _meson_env_array is meant to be called by ebuilds, > we need to rename it and improve the documentation for it in the eclass. I do not really care about gallium-nine-standalone and its abuse of the private _meson_env_array function. That's an issue that should be separate from the change I am proposing. I am only touching the ebuild because my patch removes the _meson_env_array function and I want to avoid breaking the ebuild. > > > Also, I don't think your script will run if native-symlinks is disabled since in > > > that setting /usr/bin/python would not exist. > > > > python_doscript updates the shebang before installing the script. > > Ok, I didn't know python_doscript does this, but couldn't we just > change line 129 in the eclass to "python3 -c ..."? No, that will not help in any way. > > > I question the value of the native-symlinks use flag on python-exec > > > unless there is a way to query the path of the default python > > > interpretor. > > > > Regardless, I don't see how that makes my solution a bad thing. It > > ensures that the code will be executed by a known/support/tested > > version of python. > > > > I'm not sure how useful the script is as a command, so I don't think it > should be installed that way, but I do want to hear more about this, > both from you and chewi. :-) I don't see any reasonable way to make it work otherwise. If you have no better suggestion, please refrain from further comments. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-17 20:50 ` Mike Gilbert @ 2020-12-17 21:08 ` Mike Gilbert 2020-12-17 21:14 ` Michał Górny 0 siblings, 1 reply; 14+ messages in thread From: Mike Gilbert @ 2020-12-17 21:08 UTC (permalink / raw To: Gentoo Dev On Thu, Dec 17, 2020 at 3:50 PM Mike Gilbert <floppym@gentoo.org> wrote: > > On Thu, Dec 17, 2020 at 3:38 PM William Hubbs <williamh@gentoo.org> wrote: > > > > On Sat, Dec 12, 2020 at 09:22:06PM -0500, Mike Gilbert wrote: > > > On Sat, Dec 12, 2020 at 9:09 PM William Hubbs <williamh@gentoo.org> wrote: > > > > > > > > On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > > > > > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs <williamh@gentoo.org> wrote: > > > > > > If both /usr/bin/python and /usr/bin/python3 are going away, the best > > > > > > choice would be to add functionality to python-exec or eselect python to tell us > > > > > > the path to the default python interpretor. Once we know that we call it > > > > > > directly. > > > > > > > > > > I don't think they are "going away". There is a USE flag on > > > > > dev-lang/python-exec that makes them optional, and I think it will be > > > > > forcibly enabled for the foreseeable future. > > > > > > > > > > > Please do not apply this patch to meson; I think we can figure something > > > > > > out that is better. > > > > > > > > > > I think installing a small script to help translate arguments from one > > > > > format to another is a reasonable solution. > > > > > > > > I think we should look at the eclass to see if we can provide functions > > > > that can be used by consumers to handle this. > > > > > > I don't really understand what you mean by this. I am converting one > > > internal bash function into an external script so that its python > > > dependencies can be better defined and managed. > > > > What I mean is, ebuilds should not be calling _meson_env_array at all > > since it is defined and documented as an eclass internal function. > > > > I would like to know more about what the gallium-nine-standalone ebuild > > is doing and why it needs to call a meson.eclass internal function. > > > > On the other hand, if _meson_env_array is meant to be called by ebuilds, > > we need to rename it and improve the documentation for it in the eclass. > > I do not really care about gallium-nine-standalone and its abuse of > the private _meson_env_array function. That's an issue that should be > separate from the change I am proposing. I am only touching the ebuild > because my patch removes the _meson_env_array function and I want to > avoid breaking the ebuild. > > > > > Also, I don't think your script will run if native-symlinks is disabled since in > > > > that setting /usr/bin/python would not exist. > > > > > > python_doscript updates the shebang before installing the script. > > > > Ok, I didn't know python_doscript does this, but couldn't we just > > change line 129 in the eclass to "python3 -c ..."? > > No, that will not help in any way. > > > > > I question the value of the native-symlinks use flag on python-exec > > > > unless there is a way to query the path of the default python > > > > interpretor. > > > > > > Regardless, I don't see how that makes my solution a bad thing. It > > > ensures that the code will be executed by a known/support/tested > > > version of python. > > > > > > > I'm not sure how useful the script is as a command, so I don't think it > > should be installed that way, but I do want to hear more about this, > > both from you and chewi. :-) > > I don't see any reasonable way to make it work otherwise. If you have > no better suggestion, please refrain from further comments. I gave it a little more thought, and I suppose we could use "eselect python show" to get a valid python interpreter. I'll put together a patch for that. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-17 21:08 ` Mike Gilbert @ 2020-12-17 21:14 ` Michał Górny 0 siblings, 0 replies; 14+ messages in thread From: Michał Górny @ 2020-12-17 21:14 UTC (permalink / raw To: gentoo-dev On Thu, 2020-12-17 at 16:08 -0500, Mike Gilbert wrote: > On Thu, Dec 17, 2020 at 3:50 PM Mike Gilbert <floppym@gentoo.org> > wrote: > > > > On Thu, Dec 17, 2020 at 3:38 PM William Hubbs <williamh@gentoo.org> > > wrote: > > > > > > On Sat, Dec 12, 2020 at 09:22:06PM -0500, Mike Gilbert wrote: > > > > On Sat, Dec 12, 2020 at 9:09 PM William Hubbs > > > > <williamh@gentoo.org> wrote: > > > > > > > > > > On Sat, Dec 12, 2020 at 04:25:48PM -0500, Mike Gilbert wrote: > > > > > > On Sat, Dec 12, 2020 at 3:48 PM William Hubbs > > > > > > <williamh@gentoo.org> wrote: > > > > > > > If both /usr/bin/python and /usr/bin/python3 are going > > > > > > > away, the best > > > > > > > choice would be to add functionality to python-exec or > > > > > > > eselect python to tell us > > > > > > > the path to the default python interpretor. Once we know > > > > > > > that we call it > > > > > > > directly. > > > > > > > > > > > > I don't think they are "going away". There is a USE flag on > > > > > > dev-lang/python-exec that makes them optional, and I think > > > > > > it will be > > > > > > forcibly enabled for the foreseeable future. > > > > > > > > > > > > > Please do not apply this patch to meson; I think we can > > > > > > > figure something > > > > > > > out that is better. > > > > > > > > > > > > I think installing a small script to help translate > > > > > > arguments from one > > > > > > format to another is a reasonable solution. > > > > > > > > > > I think we should look at the eclass to see if we can > > > > > provide functions > > > > > that can be used by consumers to handle this. > > > > > > > > I don't really understand what you mean by this. I am > > > > converting one > > > > internal bash function into an external script so that its > > > > python > > > > dependencies can be better defined and managed. > > > > > > What I mean is, ebuilds should not be calling _meson_env_array at > > > all > > > since it is defined and documented as an eclass internal > > > function. > > > > > > I would like to know more about what the gallium-nine-standalone > > > ebuild > > > is doing and why it needs to call a meson.eclass internal > > > function. > > > > > > On the other hand, if _meson_env_array is meant to be called by > > > ebuilds, > > > we need to rename it and improve the documentation for it in the > > > eclass. > > > > I do not really care about gallium-nine-standalone and its abuse of > > the private _meson_env_array function. That's an issue that should > > be > > separate from the change I am proposing. I am only touching the > > ebuild > > because my patch removes the _meson_env_array function and I want > > to > > avoid breaking the ebuild. > > > > > > > Also, I don't think your script will run if native-symlinks > > > > > is disabled since in > > > > > that setting /usr/bin/python would not exist. > > > > > > > > python_doscript updates the shebang before installing the > > > > script. > > > > > > Ok, I didn't know python_doscript does this, but couldn't we > > > just > > > change line 129 in the eclass to "python3 -c ..."? > > > > No, that will not help in any way. > > > > > > > I question the value of the native-symlinks use flag on > > > > > python-exec > > > > > unless there is a way to query the path of the default python > > > > > interpretor. > > > > > > > > Regardless, I don't see how that makes my solution a bad thing. > > > > It > > > > ensures that the code will be executed by a > > > > known/support/tested > > > > version of python. > > > > > > > > > > I'm not sure how useful the script is as a command, so I don't > > > think it > > > should be installed that way, but I do want to hear more about > > > this, > > > both from you and chewi. :-) > > > > I don't see any reasonable way to make it work otherwise. If you > > have > > no better suggestion, please refrain from further comments. > > I gave it a little more thought, and I suppose we could use "eselect > python show" to get a valid python interpreter. I'll put together a > patch for that. > Do you want all meson packages to depend on eselect-python? -- Best regards, Michał Górny ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script 2020-12-17 20:38 ` William Hubbs 2020-12-17 20:50 ` Mike Gilbert @ 2020-12-17 21:08 ` James Le Cuirot 1 sibling, 0 replies; 14+ messages in thread From: James Le Cuirot @ 2020-12-17 21:08 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1396 bytes --] On Thu, 17 Dec 2020 14:38:43 -0600 William Hubbs <williamh@gentoo.org> wrote: > On Sat, Dec 12, 2020 at 09:22:06PM -0500, Mike Gilbert wrote: > > I don't really understand what you mean by this. I am converting one > > internal bash function into an external script so that its python > > dependencies can be better defined and managed. > > What I mean is, ebuilds should not be calling _meson_env_array at all > since it is defined and documented as an eclass internal function. > > I would like to know more about what the gallium-nine-standalone ebuild > is doing and why it needs to call a meson.eclass internal function. > > On the other hand, if _meson_env_array is meant to be called by ebuilds, > we need to rename it and improve the documentation for it in the eclass. I knew I spoke to someone about this on IRC and turns out it was you 2 years ago. :P The ebuild needs to render flags as a Meson array and this eclass function is the best way to do it. You did not know why it was private and said to go ahead anyway but file a bug so that this situation could be improved. I admittedly didn't get around to filing a bug but I was totally prepared to deal with the fall out if it broke. Now floppym is improving the situation anyway and fixing the ebuild too. I give my thanks to him. Job done? -- James Le Cuirot (chewi) Gentoo Linux Developer [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-12-17 21:14 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-12-11 23:17 [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script Mike Gilbert 2020-12-11 23:17 ` [gentoo-dev] [PATCH 2/3] meson.eclass: use " Mike Gilbert 2020-12-11 23:24 ` [gentoo-dev] " James Le Cuirot 2020-12-11 23:17 ` [gentoo-dev] [PATCH 3/3] app-emulation/gallium-nine-standalone: use meson-array Mike Gilbert 2020-12-12 21:07 ` William Hubbs 2020-12-12 20:48 ` [gentoo-dev] [PATCH 1/3] dev-util/meson: install meson-array script William Hubbs 2020-12-12 21:25 ` Mike Gilbert 2020-12-13 2:09 ` William Hubbs 2020-12-13 2:22 ` Mike Gilbert 2020-12-17 20:38 ` William Hubbs 2020-12-17 20:50 ` Mike Gilbert 2020-12-17 21:08 ` Mike Gilbert 2020-12-17 21:14 ` Michał Górny 2020-12-17 21:08 ` James Le Cuirot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox