Let's look at another build system

Poul-Henning Kamp phk at phk.freebsd.dk
Thu May 14 14:48:52 UTC 2020


--------
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.


More information about the varnish-misc mailing list