<div dir="ltr">> One thing that would worry me a bit about meson is the sheer number<br>> of dependencies involved.<div><br></div><div>I'm going to vote for "that freeBSD port is absolutely bonkers and probably deserves the behind-the-barn treatment", specially considering the debian dependency graph: <a href="https://ibb.co/YdXMHRZ">https://ibb.co/YdXMHRZ</a></div><div><br></div><div>I'm not fully against rolling out our own system, but for the love of all that is holy, let's not base it on Make.</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>-- <br></div>Guillaume Quintard<br></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 14, 2020 at 7:48 AM Poul-Henning Kamp <<a href="mailto:phk@phk.freebsd.dk">phk@phk.freebsd.dk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">--------<br>
In message <CAJ6ZYQy_tL8C7yWsyuxk-=<a href="mailto:gjsFy3Zy_U-wcbeGD63HsVkZ%2B3Zw@mail.gmail.com" target="_blank">gjsFy3Zy_U-wcbeGD63HsVkZ+3Zw@mail.gmail.com</a>><br>
, Guillaume Quintard writes:<br>
<br>
><br>
>We have been ranting at autotools for years now, and it's been a couple of<br>
>years since we tried to get rid of them, so, let's try again, this time<br>
>with the "new" kid on the block: meson (<a href="https://mesonbuild.com/" rel="noreferrer" target="_blank">https://mesonbuild.com/</a>)<br>
<br>
I'm all for improving our build system, but it has to be an improvement.<br>
<br>
One thing that would worry me a bit about meson is the sheer number<br>
of dependencies involved.<br>
<br>
To build it from scratch seems to involve at total of 238 ports on FreeBSD<br>
(list below), including both python2, python3, tcl86, mecurial and as far<br>
as I can tell anything anybody ever spotted on github.<br>
<br>
Meson is probably not directly to blame for all 238 ports, but blame<br>
or not:  They sit at the top of a very, *very* tall tower.<br>
<br>
Considering how seldom we do nontrivial changes to our build instructions,<br>
I would be far more tempted towards a python script which produces a bunch<br>
of powerful but tedious Makefiles with full dependency tracking.<br>
<br>
Poul-Henning<br>
<br>
    /freebsd/ports/archivers/libarchive<br>
    /freebsd/ports/archivers/liblz4<br>
    /freebsd/ports/archivers/lzo2<br>
    /freebsd/ports/converters/libiconv<br>
    /freebsd/ports/converters/p5-Text-Unidecode<br>
    /freebsd/ports/converters/py-webencodings<br>
    /freebsd/ports/databases/db5<br>
    /freebsd/ports/databases/gdbm<br>
    /freebsd/ports/databases/py-sqlite3<br>
    /freebsd/ports/databases/sqlite3<br>
    /freebsd/ports/devel/apr1<br>
    /freebsd/ports/devel/atf<br>
    /freebsd/ports/devel/autoconf<br>
    /freebsd/ports/devel/autoconf-wrapper<br>
    /freebsd/ports/devel/automake<br>
    /freebsd/ports/devel/bison<br>
    /freebsd/ports/devel/boehm-gc<br>
    /freebsd/ports/devel/bzr<br>
    /freebsd/ports/devel/check<br>
    /freebsd/ports/devel/cmake<br>
    /freebsd/ports/devel/cvsps<br>
    /freebsd/ports/devel/dbus<br>
    /freebsd/ports/devel/dbus-glib<br>
    /freebsd/ports/devel/gettext-runtime<br>
    /freebsd/ports/devel/gettext-tools<br>
    /freebsd/ports/devel/git<br>
    /freebsd/ports/devel/glib20<br>
    /freebsd/ports/devel/gmake<br>
    /freebsd/ports/devel/jsoncpp<br>
    /freebsd/ports/devel/kyua<br>
    /freebsd/ports/devel/libatomic_ops<br>
    /freebsd/ports/devel/libedit<br>
    /freebsd/ports/devel/libffi<br>
    /freebsd/ports/devel/libltdl<br>
    /freebsd/ports/devel/libpthread-stubs<br>
    /freebsd/ports/devel/libtextstyle<br>
    /freebsd/ports/devel/libtool<br>
    /freebsd/ports/devel/libunistring<br>
    /freebsd/ports/devel/libuv<br>
    /freebsd/ports/devel/lutok<br>
    /freebsd/ports/devel/m4<br>
    /freebsd/ports/devel/mercurial<br>
    /freebsd/ports/devel/meson<br>
    /freebsd/ports/devel/ninja<br>
    /freebsd/ports/devel/npth<br>
    /freebsd/ports/devel/p5-Locale-libintl<br>
    /freebsd/ports/devel/p5-Sub-Uplevel<br>
    /freebsd/ports/devel/p5-Term-ReadKey<br>
    /freebsd/ports/devel/p5-Test-Deep<br>
    /freebsd/ports/devel/p5-Test-Exception<br>
    /freebsd/ports/devel/p5-Test-NoWarnings<br>
    /freebsd/ports/devel/p5-Test-Warn<br>
    /freebsd/ports/devel/p5-subversion<br>
    /freebsd/ports/devel/pcre<br>
    /freebsd/ports/devel/pkgconf<br>
    /freebsd/ports/devel/py-Jinja2<br>
    /freebsd/ports/devel/py-apipkg<br>
    /freebsd/ports/devel/py-asn1crypto<br>
    /freebsd/ports/devel/py-atomicwrites<br>
    /freebsd/ports/devel/py-attrs<br>
    /freebsd/ports/devel/py-babel<br>
    /freebsd/ports/devel/py-cffi<br>
    /freebsd/ports/devel/py-click<br>
    /freebsd/ports/devel/py-coverage<br>
    /freebsd/ports/devel/py-dateutil<br>
    /freebsd/ports/devel/py-dbus<br>
    /freebsd/ports/devel/py-entrypoints<br>
    /freebsd/ports/devel/py-extras<br>
    /freebsd/ports/devel/py-flaky<br>
    /freebsd/ports/devel/py-freezegun<br>
    /freebsd/ports/devel/py-fs<br>
    /freebsd/ports/devel/py-genty<br>
    /freebsd/ports/devel/py-hypothesis<br>
    /freebsd/ports/devel/py-importlib-metadata<br>
    /freebsd/ports/devel/py-incremental<br>
    /freebsd/ports/devel/py-invoke<br>
    /freebsd/ports/devel/py-iso8601<br>
    /freebsd/ports/devel/py-linecache2<br>
    /freebsd/ports/devel/py-mock<br>
    /freebsd/ports/devel/py-more-itertools<br>
    /freebsd/ports/devel/py-nose<br>
    /freebsd/ports/devel/py-pbr<br>
    /freebsd/ports/devel/py-pip<br>
    /freebsd/ports/devel/py-pluggy<br>
    /freebsd/ports/devel/py-pretend<br>
    /freebsd/ports/devel/py-py<br>
    /freebsd/ports/devel/py-pyasn1<br>
    /freebsd/ports/devel/py-pycparser<br>
    /freebsd/ports/devel/py-pympler<br>
    /freebsd/ports/devel/py-pytest<br>
    /freebsd/ports/devel/py-pytest-capturelog<br>
    /freebsd/ports/devel/py-pytest-cov<br>
    /freebsd/ports/devel/py-pytest-forked<br>
    /freebsd/ports/devel/py-pytest-mock<br>
    /freebsd/ports/devel/py-pytest-rerunfailures<br>
    /freebsd/ports/devel/py-pytest-runner<br>
    /freebsd/ports/devel/py-pytest-timeout<br>
    /freebsd/ports/devel/py-pytest-xdist<br>
    /freebsd/ports/devel/py-python-mimeparse<br>
    /freebsd/ports/devel/py-pytz<br>
    /freebsd/ports/devel/py-readme_renderer<br>
    /freebsd/ports/devel/py-scripttest<br>
    /freebsd/ports/devel/py-semantic_version<br>
    /freebsd/ports/devel/py-setuptools<br>
    /freebsd/ports/devel/py-setuptools_scm<br>
    /freebsd/ports/devel/py-simplejson<br>
    /freebsd/ports/devel/py-six<br>
    /freebsd/ports/devel/py-sortedcontainers<br>
    /freebsd/ports/devel/py-testtools<br>
    /freebsd/ports/devel/py-tox<br>
    /freebsd/ports/devel/py-traceback2<br>
    /freebsd/ports/devel/py-twine<br>
    /freebsd/ports/devel/py-unittest2<br>
    /freebsd/ports/devel/py-virtualenv<br>
    /freebsd/ports/devel/py-wcwidth<br>
    /freebsd/ports/devel/py-wheel<br>
    /freebsd/ports/devel/py-yaml<br>
    /freebsd/ports/devel/py-zipp<br>
    /freebsd/ports/devel/py-zope.interface<br>
    /freebsd/ports/devel/pydbus-common<br>
    /freebsd/ports/devel/readline<br>
    /freebsd/ports/devel/scons<br>
    /freebsd/ports/devel/subversion<br>
    /freebsd/ports/devel/xorg-macros<br>
    /freebsd/ports/dns/libidn2<br>
    /freebsd/ports/dns/py-idna<br>
    /freebsd/ports/emulators/tpm-emulator<br>
    /freebsd/ports/ftp/curl<br>
    /freebsd/ports/graphics/py-imagesize<br>
    /freebsd/ports/lang/cython<br>
    /freebsd/ports/lang/expect<br>
    /freebsd/ports/lang/lua52<br>
    /freebsd/ports/lang/p5-Error<br>
    /freebsd/ports/lang/perl5.30<br>
    /freebsd/ports/lang/python27<br>
    /freebsd/ports/lang/python37<br>
    /freebsd/ports/lang/tcl86<br>
    /freebsd/ports/math/gmp<br>
    /freebsd/ports/misc/dejagnu<br>
    /freebsd/ports/misc/getopt<br>
    /freebsd/ports/misc/help2man<br>
    /freebsd/ports/misc/py-pexpect<br>
    /freebsd/ports/misc/py-tqdm<br>
    /freebsd/ports/net/p5-IO-Socket-INET6<br>
    /freebsd/ports/net/p5-Socket6<br>
    /freebsd/ports/net/py-pysocks<br>
    /freebsd/ports/net/py-urllib3<br>
    /freebsd/ports/ports-mgmt/pkg<br>
    /freebsd/ports/print/indexinfo<br>
    /freebsd/ports/print/libpaper<br>
    /freebsd/ports/print/texinfo<br>
    /freebsd/ports/security/ca_root_nss<br>
    /freebsd/ports/security/gnupg<br>
    /freebsd/ports/security/gnutls<br>
    /freebsd/ports/security/libassuan<br>
    /freebsd/ports/security/libgcrypt<br>
    /freebsd/ports/security/libgpg-error<br>
    /freebsd/ports/security/libksba<br>
    /freebsd/ports/security/libsodium<br>
    /freebsd/ports/security/libtasn1<br>
    /freebsd/ports/security/nettle<br>
    /freebsd/ports/security/p11-kit<br>
    /freebsd/ports/security/p5-Authen-SASL<br>
    /freebsd/ports/security/p5-Digest-HMAC<br>
    /freebsd/ports/security/p5-GSSAPI<br>
    /freebsd/ports/security/p5-IO-Socket-SSL<br>
    /freebsd/ports/security/p5-Net-SSLeay<br>
    /freebsd/ports/security/pinentry<br>
    /freebsd/ports/security/pinentry-tty<br>
    /freebsd/ports/security/py-SecretStorage<br>
    /freebsd/ports/security/py-bcrypt<br>
    /freebsd/ports/security/py-certifi<br>
    /freebsd/ports/security/py-cryptography<br>
    /freebsd/ports/security/py-cryptography-vectors<br>
    /freebsd/ports/security/py-keyring<br>
    /freebsd/ports/security/py-keyrings.alt<br>
    /freebsd/ports/security/py-openssl<br>
    /freebsd/ports/security/py-paramiko<br>
    /freebsd/ports/security/py-pycrypto<br>
    /freebsd/ports/security/py-pynacl<br>
    /freebsd/ports/security/rhash<br>
    /freebsd/ports/security/trousers<br>
    /freebsd/ports/shells/bash<br>
    /freebsd/ports/sysutils/py-execnet<br>
    /freebsd/ports/sysutils/py-filelock<br>
    /freebsd/ports/sysutils/py-pkginfo<br>
    /freebsd/ports/sysutils/py-ptyprocess<br>
    /freebsd/ports/textproc/asciidoc<br>
    /freebsd/ports/textproc/docbook<br>
    /freebsd/ports/textproc/docbook-sgml<br>
    /freebsd/ports/textproc/docbook-xml<br>
    /freebsd/ports/textproc/docbook-xsl<br>
    /freebsd/ports/textproc/expat2<br>
    /freebsd/ports/textproc/html2text<br>
    /freebsd/ports/textproc/iso8879<br>
    /freebsd/ports/textproc/libxml2<br>
    /freebsd/ports/textproc/libxslt<br>
    /freebsd/ports/textproc/minixmlto<br>
    /freebsd/ports/textproc/p5-Unicode-EastAsianWidth<br>
    /freebsd/ports/textproc/py-MarkupSafe<br>
    /freebsd/ports/textproc/py-alabaster<br>
    /freebsd/ports/textproc/py-chardet<br>
    /freebsd/ports/textproc/py-docutils<br>
    /freebsd/ports/textproc/py-pygments<br>
    /freebsd/ports/textproc/py-pystemmer<br>
    /freebsd/ports/textproc/py-snowballstemmer<br>
    /freebsd/ports/textproc/py-sphinx<br>
    /freebsd/ports/textproc/py-sphinx_rtd_theme<br>
    /freebsd/ports/textproc/py-sphinxcontrib-websupport<br>
    /freebsd/ports/textproc/py-toml<br>
    /freebsd/ports/textproc/py-towncrier<br>
    /freebsd/ports/textproc/sdocbook-xml<br>
    /freebsd/ports/textproc/utf8proc<br>
    /freebsd/ports/textproc/xmlcatmgr<br>
    /freebsd/ports/textproc/xmlcharent<br>
    /freebsd/ports/textproc/xmlto<br>
    /freebsd/ports/www/libnghttp2<br>
    /freebsd/ports/www/p5-CGI<br>
    /freebsd/ports/www/p5-HTML-Parser<br>
    /freebsd/ports/www/p5-HTML-Tagset<br>
    /freebsd/ports/www/p5-Mozilla-CA<br>
    /freebsd/ports/www/py-bleach<br>
    /freebsd/ports/www/py-django111<br>
    /freebsd/ports/www/py-html5lib<br>
    /freebsd/ports/www/py-requests<br>
    /freebsd/ports/www/py-requests-toolbelt<br>
    /freebsd/ports/www/py-tornado<br>
    /freebsd/ports/www/serf<br>
    /freebsd/ports/www/w3m<br>
    /freebsd/ports/x11/libICE<br>
    /freebsd/ports/x11/libSM<br>
    /freebsd/ports/x11/libX11<br>
    /freebsd/ports/x11/libXau<br>
    /freebsd/ports/x11/libXdmcp<br>
    /freebsd/ports/x11/libxcb<br>
    /freebsd/ports/x11/xcb-proto<br>
    /freebsd/ports/x11/xorgproto<br>
    /freebsd/ports/x11/xtrans<br>
<br>
-- <br>
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20<br>
phk@FreeBSD.ORG         | TCP/IP since RFC 956<br>
FreeBSD committer       | BSD since 4.3-tahoe    <br>
Never attribute to malice what can adequately be explained by incompetence.<br>
</blockquote></div>