Received: from mail-yw1-f65.google.com (mail-yw1-f65.google.com [209.85.161.65]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id A29A9782B27 for <~alpine/devel@lists.alpinelinux.org>; Fri, 20 Dec 2019 05:56:20 +0000 (UTC) Received: by mail-yw1-f65.google.com with SMTP id x138so3155007ywd.9 for <~alpine/devel@lists.alpinelinux.org>; Thu, 19 Dec 2019 21:56:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mforney-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=73FTP7wbjM7ymkagqvN85hAPiGQzfGe6WgBXcE8TZ+M=; b=sRzQGibM9qeMPtRhZffVhm5W02KhrmW/8NxgmRp/h10VTPoTf0h6JVe1/v41T2inHv EHRnNLXScnC0JXpc/9LMxxDebIvEVHbTNt6kaa0AxJqZndmz7u7tFLXHpkKoANCSfm3j pVhC+Zdpj+cB58ykNlzGPMmFrsAqhnz9mQrC53SNKLjcphmInbms90srXSSNkAC6B7Jm CLvMDvZVX59UcQ85r/ZKQff508Eia+tMsGojJp9x8YPEZjZPWyGY7OObvamRgX8YE47w YoaPpDTH++2XA8FFbq33Zd5NMvx8v4XR58LQnt2Gp9mZ9VG81NbJtGBHzRpkoMpGnazW 93ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=73FTP7wbjM7ymkagqvN85hAPiGQzfGe6WgBXcE8TZ+M=; b=uPsYr3yHzOI8n94c0V5sszW1nZZVv2chaRwxXNG35hiSusC3kumhEOBBOqBtzQ+Lj6 T4PS5m2sQFsFev5h61HRT/E3kL56JwOheusmTzHEnSxhvMxb1e8KSS+MlwtONU3Ahoce z4fiQFRlHakJJbd+8iJbEYBangjTchJc77iQeqGquKQ0gLkahnWB7Ch8OQcUN7x6SjKO hvg0AjPNhb715jmg7KRLLn2mIEBnSERVhSHbcmIh/+IZQkqElhOn4b2ofcqSv8BSQZjh rkezPI0s5W4ztWQm7Y0+3MPqA5Ib2JHn94N3pWbNbG2MWSEBvMWD7pyoGsu8+0u5hXtq U4jg== X-Gm-Message-State: APjAAAVoHsqT850H1xZ8c0TH6VFRmyD/hGsoENCziv18gkOKq/BBZk+Y j8NnI0SWCDUvKK6DePFg0wY2d5Xghg/2S46aapSa4w== X-Google-Smtp-Source: APXvYqx2BPR7HJY00qGHg8G8G8W4UhNOEfth4BAIzXvLEO+CIcnka/N/xSBVZbIpyKUxZ4RMT9UGgMRMeSP6l1HzM1c= X-Received: by 2002:a81:3e12:: with SMTP id l18mr3665788ywa.210.1576821379042; Thu, 19 Dec 2019 21:56:19 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a81:4b56:0:0:0:0:0 with HTTP; Thu, 19 Dec 2019 21:56:18 -0800 (PST) X-Originating-IP: [2601:647:5180:4570::62ba] In-Reply-To: References: From: Michael Forney Date: Thu, 19 Dec 2019 21:56:18 -0800 Message-ID: Subject: Re: Proposal: replace ninja with samurai To: Drew DeVault Cc: ~alpine/devel@lists.alpinelinux.org Content-Type: text/plain; charset="UTF-8" On 2019-12-07, Drew DeVault wrote: > 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. In my testing, samurai is slightly faster than ninja and uses less memory. Of course, this is a negligible part of complete builds, but it is nice during development for incremental builds. In preparation for releasing samurai 1.0, I built all Alpine packages that used ninja. The aports branch I used is at [0]. Here are the results: ## community/chromium The tools/gn/bootstrap/bootstrap.py script hardcoded `ninja`, and it passed options to ninja after the build target. samurai doesn't do GNU-style argument permutation, so this failed. I submitted a CL to fix this, which is now submitted at [1]. I wasn't patient enough to let the build finish after fixing this, but I've built chromium multiple times in the past from the git repository, so I don't expect any other issues. ## community/fwupd The coreboot module was missing a dependency on the generated fu-hash.h. This is now fixed upstream in [2]. ## community/grilo The APKBUILD had $source containing a patch auto-generated by gitlab, which doesn't appear to be stable, so the checksum failed. This is unrelated to samurai, but I submitted a patch to fix this at [3]. The build succeeded after this. ## community/knot-resolver The APKBUILD invoked ninja with options (`-C build`) following the build target (`install`). As explained above, samurai doesn't do argument permutation, so the arguments needed to be switched around. ## community/qt5-qtwebengine Similar to chromium, this package hard-coded 'ninja', and needed some changes to allow 'samu' instead. This should not be a problem if you provide a compatibility symlink /usr/bin/ninja -> samu. I submitted a change to make the ninja command configurable at [8]. ## community/weston The presentation-shm demo client was missing a dependency on the generated xdg-shell-client-protocol.h. This is now fixed upstream in [4]. ## testing/wob This package was missing dependencies on the generated wlr-layer-shell-unstable-v1.h. I submitted a pull request to fix this at [5]. ## community/gtk4.0 The build failed because the linker used too much memory and was killed, but the build was progressing smoothly up until that point. ## main/libinput This package failed its test due to missing /dev/fd, presumably because I wasn't running udev. I created a symlink /dev/fd -> ../proc/self/fd, and the tests succeeded. ## community/libhandy, testing/libzim These packages failed their tests (logs at [6][7]). I don't believe this is related to samurai. ## community/gom The tests hang for me. I don't believe this is related to samurai. Note that any instance of missing dependencies can also affect ninja depending on the maximum number of jobs and how long they take to run. -Michael [0] https://github.com/alpinelinux/aports/compare/master...michaelforney:samurai [1] https://chromium-review.googlesource.com/c/chromium/src/+/1975453 [2] https://github.com/fwupd/fwupd/commit/9bdb96f768f1318ccaac4ecbcac68200a36ee1be [3] https://lists.alpinelinux.org/~alpine/aports/patches/3179 [4] https://gitlab.freedesktop.org/wayland/weston/commit/ba3b384b930f9ab40f94d125d4d26bc4b636821f [5] https://github.com/francma/wob/pull/23 [6] http://ix.io/24Qr [7] http://ix.io/24Qq [8] https://codereview.qt-project.org/c/qt/qtwebengine/+/285134