On 13/05/2026 07:25, Branko Čibej wrote:
On 12. 5. 26 22:43, Noel Butler wrote:
On 13/05/2026 02:08, Timofei Zhakov wrote:
I will be happy to try and extend cmake to work on Unix, if this
feature is wanted of course.
-1
cmake is a PITA on *nix for server admins
While I agree in principle that CMake is fundamentally broken and
wrong-headed, that case can be made for pretty much any generic build
system. So I would be grateful if you would expand on why server admins
in particular would be more affected than anyone else.
-- Brane
Its convoluted. Its messy.
Lets take sql as a horrid example (but its similar with the only other
forced cmake requirement that we use being clamav), what used to
configured and built with autotools could be done as such, clear simple
EASY for even the most junior and senior administrator alike to config
from memory -
./configure --prefix=/usr --localstatedir=/usr/mysql/data
--datadir=/var/lib/mysql
done...
BUT cmake to do same thing requires this crap (supplied my mariadb team
member to mimic our build requirements)
cmake -DCMAKE_C_FLAGS="-O2 -fPIC" -DCMAKE_CXX_FLAGS="-O2 -fPIC"
-DFEATURE_SET="community" -DCMAKE_INSTALL_PREFIX=/usr -D
INSTALL_LIBDIR="lib64" -DINSTALL_SBINDIR=libexec
-DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_MYSQLSHAREDIR=share/mysql
-DINSTALL_SQLBENCHDIR="" -DINSTALL_MYSQLTESTDIR=mysql-test
-DINSTALL_MANDIR=man -DINSTALL_PLUGINDIR="lib64/mysql/plugin"
-DINSTALL_SCRIPTDIR=bin -DINSTALL_SUPPORTFILESDIR=share/mysql
-DINSTALL_MYSQLDATADIR="/var/lib/mysql" -DMYSQL_DATADIR="
/var/lib/mysql" -DMYSQL_UNIX_ADDR="/var/run/mysql/mysql.sock"
-DWITH_EXTRA_CHARSETS=complex -DWITH_INNOBASE_STORAGE_ENGI
NE=1 -DENABLED_LOCAL_INFILE=ON -DWITH_LIBARCHIVE=ON -DWITH_READLINE=ON
-DWITH_JEMALLOC=system -DWITH_ZLIB=system -DWITH_
EXTERNAL_ZLIB=ON -DWITH_SSL=system -DCONC_WITH_SSL=ON
-DUSE_ARIA_FOR_TMP_TABLES=ON -DAWS_SDK_EXTERNAL_PROJECT=OFF
Then running make...
THEN to upgrade each version you have to screw around with garbage like
rm $(</root/install_manifest-MARIADB.txt)
make install
cp install_manifest.txt /root/install_manifest-MARIADB.txt
(Sure you don't need to cp and use /root/install_manifest but if someone
clears out the source code you will be left with pieces of older
versions, so you copy it, and lets not forget that file is not created
until the program is built and installed, its not something you can
pluck out of a tarball
all because there is no make uninstall....
And clamav as mentioned earlier, before it was just
./configure --prefix=
NOW it too requires all the manual rm BS as maria/mysql above, but at
least its CMAKE line is much shorter..
cmake .. -D CMAKE_INSTALL_PREFIX=/usr/local -D
CMAKE_INSTALL_LIBDIR=lib64 -D APP_CONFIG_DIRECTORY=/etc/clamav -D
DATABASE_DIRECTORY=/var/lib/clamav
you try remembering all that crap when you need to off the top of your
head, and using a cheatsheet (like we obviously are doing) is not an
excuse.
I reckon the same morons who are involved in systemd are involved in
cmake, 12 lines to do with what cron does in 1
/that completes this years rant
--
_Regards,_
_Noel Butler_