Let's look at another build system

Guillaume Quintard guillaume at varnish-software.com
Thu May 14 16:00:50 UTC 2020


> One thing that would worry me a bit about meson is the sheer number
> of dependencies involved.

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: https://ibb.co/YdXMHRZ

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.

-- 
Guillaume Quintard


On Thu, May 14, 2020 at 7:48 AM Poul-Henning Kamp <phk at phk.freebsd.dk>
wrote:

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


More information about the varnish-misc mailing list