Received: from mail.cmpwn.com (mail.cmpwn.com [45.56.77.53]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 13271781D6C for <~alpine/devel@lists.alpinelinux.org>; Sat, 7 Dec 2019 17:38:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=cmpwn.com; s=cmpwn; t=1575740278; bh=3iSUbCVVGJoabcUp2QGmZUIVUUIqwBg6Kpb5jk31PNA=; h=Date:To:Subject:From; b=t3JZbUHcKA96eJLTOEmYI+R4lkJhak8Islg1T8u7PaRoo/MIvA+vAnrsggqO+wHbA 05HxPVxWm148tsi00qjSYZXVe2GXkuC1UBu6f52bBfsOzq/4mxKV/ZqlTHVCD7NgFQ M4CeBKULI6IQer8fi5zBblfNmmvlhACfKki9SeqA= Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Sat, 07 Dec 2019 12:37:56 -0500 To: <~alpine/devel@lists.alpinelinux.org> Subject: Proposal: replace ninja with samurai From: "Drew DeVault" Message-Id: Ninja is a build tool which fills the same niche as Make, and samurai is a third-party implementation on of Ninja. https://github.com/ninja-build/ninja https://github.com/michaelforney/samurai samu is much simpler than ninja, clocking in at around ~3,000 lines of C, compared to Ninja's ~20,000 lines of C++. samu also supports a SAMUFLAGS environment variable which we can use to tune the -j flag in abuild, similar to Make. Samurai is a drop-in replacement, but is not bug-for-bug compatible with Ninja. Ninja upstream has been hostile to appeals from distros and users alike to add a similar environment variable. Their argument seems to boil down to being proud to only support one environment variable, which can change the format string their progress meter is printed with. Their attitude is non-cooperative towards distros, and I would rather use an implementation which plays more nicely with others. I've been using samu as my daily driver for a few years now, and I've yet to meet a project it couldn't compile. Its performance is also comparable to ninja. A samurai package is available in community on edge if you would like to try it for yourself. I propose dropping the ninja package and adding provides=3Dreplaces=3Dninja to the samurai package, as well as a symlink from /usr/bin/ninja to /usr/bin/samu.