logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: f4720910b9b72bd1fe2aaa82cf6a38e226d5e149
parent 564557663b9c36612df603e36e4c7a679e82c51b
Author: Michael Forney <mforney@mforney.org>
Date:   Sun, 17 Nov 2019 14:48:05 -0800

Update ninja requirement to 1.8.0 and don't bother with atomic outputs

Since ninja 1.8.0[0] and samurai 0.2[1], output mtime is always
recorded after a job succeeds, and outputs are considered dirty if
the recorded mtime is older than any input. This means that even
if a command partially writes its output then fails (for example,
if run with stdout redirected to a file), it will still get re-run
during the next build.

This means that outputs no longer have to be written atomically
(i.e. renamed into place) in order to ensure a correct build, and
we can drop the idiom `command >$out.tmp && mv $out.tmp $out`.

[0] https://github.com/ninja-build/ninja/commit/04d886b11041bb59d01df794cce7a1e8cad2250d
[1] https://github.com/michaelforney/samurai/commit/799bc5a4719b90a1026c129b55b92c0bccf97eeb

Diffstat:

Mgen.lua2+-
Mpkg/awk/gen.lua2+-
Mpkg/bc/gen.lua2+-
Mpkg/e2fsprogs/gen.lua2+-
Mpkg/elftoolchain/gen.lua2+-
Mpkg/ffmpeg/gen.lua4++--
Mpkg/fribidi/gen.lua2+-
Mpkg/git/gen.lua4++--
Mpkg/mpv/gen.lua2+-
Mpkg/mupdf/gen.lua2+-
Mpkg/ncurses/gen.lua20++++++++++----------
Mpkg/perp/gen.lua6+++---
Mpkg/python/gen.lua2+-
Mpkg/sbase/gen.lua2+-
Mpkg/strace/gen.lua2+-
Mpkg/swc/gen.lua2+-
Mpkg/syslinux/gen.lua2+-
Mpkg/xkeyboard-config/gen.lua2+-
Mrules.ninja20++++++++++----------
Mscripts/commit.sh2+-
20 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/gen.lua b/gen.lua @@ -1,4 +1,4 @@ -set('ninja_required_version', '1.7') +set('ninja_required_version', '1.8') set('builddir', config.builddir) set('outdir', '$builddir') diff --git a/pkg/awk/gen.lua b/pkg/awk/gen.lua @@ -16,7 +16,7 @@ sub('tools.ninja', function() exe('maketab', {'maketab.c'}) end) -rule('maketab', '$outdir/maketab $in >$out.tmp && mv $out.tmp $out') +rule('maketab', '$outdir/maketab $in >$out') build('maketab', '$outdir/proctab.c', {'$outdir/ytab.h', '|', '$outdir/maketab'}) exe('awk', [[ diff --git a/pkg/bc/gen.lua b/pkg/bc/gen.lua @@ -8,7 +8,7 @@ cflags{ sub('tools.ninja', function() exe('strgen', {'gen/strgen.c'}) - rule('strgen', [[$outdir/strgen $in $out.tmp $name $header '$label' '$define' $removetabs && mv $out.tmp $out]]) + rule('strgen', [[$outdir/strgen $in $out $name $header '$label' '$define' $removetabs]]) build('strgen', '$outdir/bc_help.c', {'$srcdir/gen/bc_help.txt', '|', '$outdir/strgen'}, { name='bc_help', header='bc.h', label='', define='BC_ENABLED', removetabs='', }) diff --git a/pkg/e2fsprogs/gen.lua b/pkg/e2fsprogs/gen.lua @@ -61,7 +61,7 @@ sub('tools.ninja', function() toolchain 'host' exe('gen_crc32ctable', {'lib/ext2fs/gen_crc32ctable.c'}) end) -rule('gen_crc32ctable', '$outdir/gen_crc32ctable >$out.tmp && mv $out.tmp $out') +rule('gen_crc32ctable', '$outdir/gen_crc32ctable >$out') build('gen_crc32ctable', '$outdir/internal/crc32c_table.h', {'|', '$outdir/gen_crc32ctable'}) pkg.hdrs = { diff --git a/pkg/elftoolchain/gen.lua b/pkg/elftoolchain/gen.lua @@ -12,7 +12,7 @@ pkg.hdrs = { install=true, } -rule('m4', 'm4 -D SRCDIR=$srcdir/libelf $in >$out.tmp && mv $out.tmp $out') +rule('m4', 'm4 -D SRCDIR=$srcdir/libelf $in >$out') build('m4', '$outdir/libelf_convert.c', {'$srcdir/libelf/libelf_convert.m4', '|', '$srcdir/libelf/elf_types.m4'}) build('m4', '$outdir/libelf_fsize.c', {'$srcdir/libelf/libelf_fsize.m4', '|', '$srcdir/libelf/elf_types.m4'}) build('m4', '$outdir/libelf_msize.c', {'$srcdir/libelf/libelf_msize.m4', '|', '$srcdir/libelf/elf_types.m4'}) diff --git a/pkg/ffmpeg/gen.lua b/pkg/ffmpeg/gen.lua @@ -46,7 +46,7 @@ build('awk', '$outdir/include/libavutil/avconfig.h', {'$dir/options.h', '|', '$d expr='-f $dir/avconfig.awk', }) -rule('genlist', 'lua5.2 $dir/list.lua $dir/options.h $type $var <$in >$out.tmp && mv $out.tmp $out') +rule('genlist', 'lua5.2 $dir/list.lua $dir/options.h $type $var <$in >$out') local function genlist(out, src, type, var) build('genlist', out, {src, '|', '$dir/list.lua', '$dir/options.h'}, {type=type, var=var}) table.insert(pkg.deps, out) @@ -360,7 +360,7 @@ file('bin/ffprobe', '755', '$outdir/ffprobe') exe('ffmpeg', {paths[[fftools/(ffmpeg.c ffmpeg_opt.c ffmpeg_filter.c ffmpeg_hw.c cmdutils.c.o)]], libs}) file('bin/ffmpeg', '755', '$outdir/ffmpeg') -rule('texi2mdoc', [[texi2mdoc -d 'November 7, 2018' -I $outdir $in >$out.tmp && mv $out.tmp $out]]) +rule('texi2mdoc', [[texi2mdoc -d 'November 7, 2018' -I $outdir $in >$out]]) build('texi2mdoc', '$outdir/ffprobe.1', {'$srcdir/doc/ffprobe.texi', '|', '$outdir/config.texi'}) build('texi2mdoc', '$outdir/ffmpeg.1', {'$srcdir/doc/ffmpeg.texi', '|', '$outdir/config.texi'}) man{'$outdir/ffprobe.1', '$outdir/ffmpeg.1'} diff --git a/pkg/fribidi/gen.lua b/pkg/fribidi/gen.lua @@ -30,7 +30,7 @@ end) set('compression', '2') -rule('gentool', '$outdir/$tool $args $in >$out.tmp && mv $out.tmp $out') +rule('gentool', '$outdir/$tool $args $in >$out') local function gentool(tool, out, srcs, args) build('gentool', '$outdir/'..out, {expand{'$srcdir/gen.tab/unidata/', srcs}, '|', '$outdir/gen-'..tool}, { tool='gen-'..tool, diff --git a/pkg/git/gen.lua b/pkg/git/gen.lua @@ -7,7 +7,7 @@ cflags{ '-I $builddir/pkg/zlib/include', } -rule('cmdlist', 'wd=$$PWD && cd $srcdir && ./generate-cmdlist.sh $$wd/$in >$$wd/$out.tmp && mv $$wd/$out.tmp $$wd/$out') +rule('cmdlist', 'wd=$$PWD && cd $srcdir && ./generate-cmdlist.sh $$wd/$in >$$wd/$out') build('cmdlist', '$outdir/command-list.h', { '$srcdir/command-list.txt', '|', expand{'$srcdir/Documentation/', lines('commands.txt')}, }) @@ -438,7 +438,7 @@ local scripts = { {'sh-i18n', '644'}, } -rule('sh_gen', 'sed -f $dir/sh_gen.sed $in >$out.tmp && mv $out.tmp $out') +rule('sh_gen', 'sed -f $dir/sh_gen.sed $in >$out') for _, script in ipairs(scripts) do local name, mode = table.unpack(script) build('sh_gen', '$outdir/git-'..name, {'$srcdir/git-'..name..'.sh', '|', '$dir/sh_gen.sed'}) diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua @@ -39,7 +39,7 @@ build('copy', '$outdir/video/out/wayland/presentation-time.h', '$builddir/pkg/wa build('copy', '$outdir/video/out/wayland/xdg-decoration-v1.h', '$builddir/pkg/wayland-protocols/include/xdg-decoration-unstable-v1-client-protocol.h') build('copy', '$outdir/video/out/wayland/xdg-shell.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-client-protocol.h') -rule('file2string', '$outdir/file2string $in >$out.tmp && mv $out.tmp $out') +rule('file2string', '$outdir/file2string $in >$out') local function file2string(out, inp) build('file2string', '$outdir/'..out, {'$srcdir/'..inp, '|', '$outdir/file2string'}) table.insert(pkg.deps, '$outdir/'..out) diff --git a/pkg/mupdf/gen.lua b/pkg/mupdf/gen.lua @@ -29,7 +29,7 @@ sub('tools.ninja', function() exe('hexdump', {'scripts/hexdump.c'}) end) -rule('hexdump', '$outdir/hexdump -s $out.tmp $in && mv $out.tmp $out') +rule('hexdump', '$outdir/hexdump -s $out $in') local fonts = lines('fonts.txt') for _, font in ipairs(fonts) do build('hexdump', '$outdir/'..font..'.c', {'$srcdir/resources/fonts/'..font, '|', '$outdir/hexdump'}) diff --git a/pkg/ncurses/gen.lua b/pkg/ncurses/gen.lua @@ -19,7 +19,7 @@ end) build('sed', '$outdir/curses.head', {'$srcdir/include/curses.h.in', '|', '$dir/subst.sed'}, { expr='-f $dir/subst.sed', }) -rule('mkkeydefs', '{ cat $outdir/curses.head && sh $srcdir/include/MKkey_defs.sh $in && cat $srcdir/include/curses.wide $srcdir/include/curses.tail; } >$out.tmp && mv $out.tmp $out') +rule('mkkeydefs', '{ cat $outdir/curses.head && sh $srcdir/include/MKkey_defs.sh $in && cat $srcdir/include/curses.wide $srcdir/include/curses.tail; } >$out') build('mkkeydefs', '$outdir/include/curses.h', {'$srcdir/include/Caps', '|', '$outdir/curses.head', '$srcdir/include/curses.wide', @@ -27,19 +27,19 @@ build('mkkeydefs', '$outdir/include/curses.h', {'$srcdir/include/Caps', '|', '$srcdir/include/MKkey_defs.sh', }) -rule('mkhashsize', 'sh $srcdir/include/MKhashsize.sh $in >$out.tmp && mv $out.tmp $out') +rule('mkhashsize', 'sh $srcdir/include/MKhashsize.sh $in >$out') build('mkhashsize', '$outdir/hashsize.h', {'$srcdir/include/Caps', '|', '$srcdir/include/MKhashsize.sh'}) -rule('mkkeyslist', 'sh $srcdir/ncurses/tinfo/MKkeys_list.sh $in | LC_ALL=C sort >$out.tmp && mv $out.tmp $out') +rule('mkkeyslist', 'sh $srcdir/ncurses/tinfo/MKkeys_list.sh $in | LC_ALL=C sort >$out') build('mkkeyslist', '$outdir/keys.list', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/tinfo/MKkeys_list.sh'}) -rule('mkkeys', '$outdir/make_keys $in >$out.tmp && mv $out.tmp $out') +rule('mkkeys', '$outdir/make_keys $in >$out') build('mkkeys', '$outdir/init_keytry.h', {'$outdir/keys.list', '|', '$outdir/make_keys'}) -rule('mkdefs', 'sh $srcdir/include/MKncurses_def.sh $in >$out.tmp && mv $out.tmp $out') +rule('mkdefs', 'sh $srcdir/include/MKncurses_def.sh $in >$out') build('mkdefs', '$outdir/ncurses_def.h', {'$srcdir/include/ncurses_defs', '|', '$srcdir/include/MKncurses_def.sh'}) -rule('mkparam', '$srcdir/include/MKparametrized.sh $in >$out.tmp && mv $out.tmp $out') +rule('mkparam', '$srcdir/include/MKparametrized.sh $in >$out') build('mkparam', '$outdir/parametrized.h', {'$srcdir/include/Caps', '|', '$srcdir/include/MKparametrized.sh'}) build('sed', '$outdir/MKterm.h.awk', {'$srcdir/include/MKterm.h.awk.in', '|', '$dir/subst.sed'}, { @@ -52,21 +52,21 @@ for _, f in ipairs{'ncurses_dll.h', 'termcap.h', 'unctrl.h'} do }) end -rule('mkterm', 'awk -f $outdir/MKterm.h.awk $in >$out.tmp && mv $out.tmp $out') +rule('mkterm', 'awk -f $outdir/MKterm.h.awk $in >$out') build('mkterm', '$outdir/include/term.h', {'$srcdir/include/Caps', '|', '$outdir/MKterm.h.awk'}) build('awk', '$outdir/codes.c', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/tinfo/MKcodes.awk'}, { expr='-f $srcdir/ncurses/tinfo/MKcodes.awk bigstrings=1', }) -rule('mkcaptab', '(cd $outdir && $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.sh awk 1 $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.awk $$OLDPWD/$in) >$out.tmp && mv $out.tmp $out') +rule('mkcaptab', '(cd $outdir && $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.sh awk 1 $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.awk $$OLDPWD/$in) >$out') build('mkcaptab', '$outdir/comp_captab.c', {'$srcdir/include/Caps', '|', '$outdir/make_hash', '$srcdir/tinfo/MKcaptab.awk', '$srcdir/tinfo/MKcaptab.sh', }) -rule('mkfallback', 'sh $srcdir/ncurses/tinfo/MKfallback.sh /dev/null /dev/null /dev/null >$out.tmp && mv $out.tmp $out') +rule('mkfallback', 'sh $srcdir/ncurses/tinfo/MKfallback.sh /dev/null /dev/null /dev/null >$out') build('mkfallback', '$outdir/fallback.c', {'|', '$srcdir/ncurses/tinfo/MKfallback.sh'}) build('awk', '$outdir/lib_keyname.c', '$outdir/keys.list', { @@ -77,7 +77,7 @@ build('awk', '$outdir/names.c', {'$srcdir/include/Caps', '|', '$srcdir/ncurses/t expr='-f $srcdir/ncurses/tinfo/MKnames.awk bigstrings=1', }) -rule('mktermsort', 'sh $srcdir/progs/MKtermsort.sh awk $in >$out.tmp && mv $out.tmp $out') +rule('mktermsort', 'sh $srcdir/progs/MKtermsort.sh awk $in >$out') build('mktermsort', '$outdir/termsort.c', {'$srcdir/include/Caps', '|', '$srcdir/progs/MKtermsort.sh'}) build('awk', '$outdir/unctrl.c', {'/dev/null', '|', '$srcdir/ncurses/base/MKunctrl.awk'}, { diff --git a/pkg/perp/gen.lua b/pkg/perp/gen.lua @@ -10,13 +10,13 @@ sub('tools.ninja', function() exe('mksysstr', {'lasagna/sysstr/mksysstr.c'}) end) -rule('outvec', '$outdir/mk_outvec >$out.tmp && mv $out.tmp $out') +rule('outvec', '$outdir/mk_outvec >$out') build('outvec', '$outdir/outvec_STDOUT.h', {'|', '$outdir/mk_outvec'}) -rule('rlimit', '$outdir/mk_rlimit >$out.tmp && mv $out.tmp $out') +rule('rlimit', '$outdir/mk_rlimit >$out') build('rlimit', '$outdir/rlimit_defs.c.in', {'|', '$outdir/mk_rlimit'}) -rule('sysstr', '$outdir/mksysstr $type >$out.tmp && mv $out.tmp $out') +rule('sysstr', '$outdir/mksysstr $type >$out') build('sysstr', '$outdir/sysstr_errno.c.in', {'|', '$outdir/mksysstr'}, {type='errno'}) build('sysstr', '$outdir/sysstr_signo.c.in', {'|', '$outdir/mksysstr'}, {type='signo'}) diff --git a/pkg/python/gen.lua b/pkg/python/gen.lua @@ -51,7 +51,7 @@ sources = table.keys(sources) cflags{'-D Py_BUILD_CORE'} -rule('makesetup', 'lua5.2 $dir/makesetup.lua $dir/modules.lua <$in >$out.tmp && mv $out.tmp $out') +rule('makesetup', 'lua5.2 $dir/makesetup.lua $dir/modules.lua <$in >$out') build('makesetup', '$outdir/config.c', {'$srcdir/Modules/config.c.in', '|', '$dir/makesetup.lua', '$dir/modules.lua'}) cc('Modules/getbuildinfo.c', nil, { diff --git a/pkg/sbase/gen.lua b/pkg/sbase/gen.lua @@ -67,7 +67,7 @@ lib('libutf.a', [[libutf/( utftorunestr.c )]]) -rule('getconf', '$srcdir/getconf.sh >$out.tmp && mv $out.tmp $out') +rule('getconf', '$srcdir/getconf.sh >$out') build('getconf', '$outdir/getconf.h', {'|', '$srcdir/getconf.sh'}) local cmds = { diff --git a/pkg/strace/gen.lua b/pkg/strace/gen.lua @@ -36,7 +36,7 @@ sub('tools.ninja', function() '|', '$outdir/ioctl_iocdef.h', '$outdir/ioctls_all'..i..'.h', }, {cflags=string.format([[$cflags -D 'IOCTLSORT_INC="ioctls_all%d.h"']], i)}) exe('ioctlsort'..i, {'ioctlsort'..i..'.c.o'}) - rule('ioctlsort'..i, '$outdir/ioctlsort'..i..' >$out.tmp && mv $out.tmp $out') + rule('ioctlsort'..i, '$outdir/ioctlsort'..i..' >$out') build('ioctlsort'..i, '$outdir/ioctlent'..i..'.h', {'|', '$outdir/ioctlsort'..i}) end end) diff --git a/pkg/swc/gen.lua b/pkg/swc/gen.lua @@ -39,7 +39,7 @@ sub('tools.ninja', function() exe('convert_font', {'cursor/convert_font.c'}) end) -rule('convert_font', '$outdir/convert_font $in $out.tmp 2>/dev/null && mv $out.tmp $out') +rule('convert_font', '$outdir/convert_font $in $out 2>/dev/null') build('convert_font', '$outdir/cursor/cursor_data.h', {'$srcdir/cursor/cursor.pcf', '|', '$outdir/convert_font'}) pkg.deps = { diff --git a/pkg/syslinux/gen.lua b/pkg/syslinux/gen.lua @@ -20,7 +20,7 @@ sub('tools.ninja', function() exe('bin2c', {'bin2c.c'}) end) -rule('bin2c', '$outdir/bin2c $args <$in >$out.tmp && mv $out.tmp $out') +rule('bin2c', '$outdir/bin2c $args <$in >$out') function bin2c(bin, args) local name = args[1] build('bin2c', '$outdir/'..name..'.c', { diff --git a/pkg/xkeyboard-config/gen.lua b/pkg/xkeyboard-config/gen.lua @@ -117,7 +117,7 @@ for f in iterpaths(data) do file('share/xkb/'..f, '644', '$srcdir/'..f) end -rule('merge', 'HDR=$srcdir/rules/HDR ./$srcdir/rules/merge.sh $out.tmp $in && mv $out.tmp $out') +rule('merge', 'HDR=$srcdir/rules/HDR ./$srcdir/rules/merge.sh $out $in') function merge(out, srcs) build('merge', '$outdir/'..out, { expand{'$srcdir/rules/', paths(srcs)}, diff --git a/rules.ninja b/rules.ninja @@ -47,10 +47,10 @@ rule muse command = muse $museflags -o $out $in rule probe - command = sh ./scripts/probe.sh $var $cc $cflags $ldflags -o /dev/null -x c $in >$out.tmp && mv $out.tmp $out + command = sh ./scripts/probe.sh $var $cc $cflags $ldflags -o /dev/null -x c $in >$out rule probesize - command = sh ./scripts/probe-size.sh $var $cc $cflags -c -o /dev/null -x c $in >$out.tmp && mv $out.tmp $out + command = sh ./scripts/probe-size.sh $var $cc $cflags -c -o /dev/null -x c $in >$out # misc tools rule touch @@ -63,34 +63,34 @@ rule copy command = ln -f $in $out rule cat - command = cat $in >$out.tmp && mv $out.tmp $out + command = cat $in >$out rule mergeperms - command = sort -k 2 -m $in >$out.tmp && mv $out.tmp $out + command = sort -k 2 -m $in >$out rule gzip - command = gzip -c -9 -n <$in >$out.tmp && mv $out.tmp $out + command = gzip -c -9 -n <$in >$out rule yacc command = yacc $yaccflags $in rule sed - command = sed $expr $in >$out.tmp && mv $out.tmp $out + command = sed $expr $in >$out rule awk - command = awk $expr $in >$out.tmp && mv $out.tmp $out + command = awk $expr $in >$out rule grep - command = grep $expr $in >$out.tmp && mv $out.tmp $out + command = grep $expr $in >$out rule tic command = tic $ticflags $in rule waylandproto - command = wayland-scanner $type <$in >$out.tmp && mv $out.tmp $out + command = wayland-scanner $type <$in >$out rule githash - command = sh ./scripts/hash.sh $repo $args $in >$out.tmp && mv $out.tmp $out + command = sh ./scripts/hash.sh $repo $args $in >$out rule gittree command = sh ./scripts/tree.sh $repo $repo_tag $in $out diff --git a/scripts/commit.sh b/scripts/commit.sh @@ -21,4 +21,4 @@ if [ -z "${commit+set}" ] ; then commit=$(git -C "$repo" commit-tree -m "oasis $(git rev-parse --short=10 HEAD)" "$@" "$tag") git -C "$repo" update-ref "refs/heads/$branch" "$commit" fi -echo "$commit" >"$out.tmp" && mv "$out.tmp" "$out" +echo "$commit" >"$out"