61 Commits

Author SHA1 Message Date
Michael Forney
ea3cbbd89c Use our own pax for extracting archives
This reduces dependencies and variability in pax implementations.
2025-04-28 14:27:49 -07:00
Sertonix
f12aa67556 tree.sh: fix usage message 2024-08-09 21:51:46 -07:00
Michael Forney
4d42d8a3eb Only apply patches ending in .patch
This way you can rename them to skip application.
2022-10-30 15:31:37 -07:00
Michael Forney
68a178aeac sfeed: Update to 1.1 2021-11-29 10:45:03 -08:00
Michael Forney
a936fbebd1 Use --keep-non-patch when applying git patches
Some of our patches use bracketed tags.
2021-09-07 13:41:11 -07:00
Michael Forney
292fe11d11 scripts/outdated.py: Fix a couple package mappings 2020-12-14 17:58:47 -08:00
Michael Forney
1f05b9a1a0 bc: Switch back to GNU bc
The 1.07 release means we don't have to apply a bunch of patches,
and it is a smaller binary anyway.
2020-12-03 02:02:23 -08:00
Michael Forney
add900e7b0 Update scripts/outdated.py for wpa_supplicant directory rename 2020-11-04 15:33:23 -08:00
Michael Forney
b4ced98b9d Generate root.perms from fspec 2020-06-22 22:59:35 -07:00
Michael Forney
7a8d4491c8 probe: Create output when test fails
This was a regression in 785b495ba7.
2020-06-16 13:48:09 -07:00
Michael Forney
785b495ba7 Save stderr of probe commands 2020-06-04 19:42:34 -07:00
Michael Forney
714ee37eea Support checksum via sha256(1) 2020-05-10 17:08:40 -07:00
Michael Forney
91fc847d0c Fix extraction with pax 2020-05-10 13:44:30 -07:00
Michael Forney
6a6672c57e Detect sha256 tool automatically 2020-05-08 13:49:57 -07:00
Michael Forney
f74127556d Detect decompression tool automatically
This fixes cross-compilation from macOS, whose bsdtar does support
xz through liblzma, but does not have xz(1).
2020-05-08 13:05:22 -07:00
Michael Forney
0dbae24a86 Address some shellcheck warnings 2020-04-19 02:13:23 -07:00
Michael Forney
ea72d6bab9 Use main compression tool instead of *cat variants 2020-04-15 19:09:56 -07:00
Michael Forney
3c7d1aadfb Allow overriding sha256 command through SHA256SUM
This way, oasis can be bootstrapped on other operating systems by
setting SHA256SUM='shasum -a 256'.
2020-04-15 19:09:56 -07:00
Michael Forney
184f709930 Add sed script to prune config.h headers 2020-01-21 14:43:42 -08:00
Michael Forney
24c94be90c scripts: Check that we got the right number of parameters 2020-01-03 10:53:34 -08:00
Michael Forney
6ba1d3afa9 scripts/outdated.py: Fix some package names 2019-12-16 17:58:31 -08:00
Michael Forney
2a4f588105 scripts/outdated: Ignore directories with no ver file 2019-12-04 01:11:35 -08:00
Michael Forney
f4720910b9 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] 04d886b110
[1] 799bc5a471
2019-11-17 15:24:25 -08:00
Michael Forney
e2f71b89b0 Remove plan9port (at least for now)
We are now using Federico G. Benavento's UNIX rc port, and set the
default editor to ed.

Maybe in the future, plan9port will be re-added for the plumber,
acme, or something else.
2019-11-04 23:52:01 -08:00
Michael Forney
4d2a791d56 Skip some packages in scripts/outdated.py 2019-09-20 14:06:38 -07:00
Michael Forney
10b83649e9 Use source revision in commit message 2019-06-19 12:20:18 -07:00
Michael Forney
b745c9ac80 Update lpeg package name in repology 2019-05-04 13:12:03 -07:00
Michael Forney
680d4261df scripts/commit.sh: Fix when branch doesn't already exist 2019-04-09 23:02:46 -07:00
Michael Forney
86f67d71e0 scripts/commit.sh: Only commit if tree changed 2019-04-09 20:09:25 -07:00
Michael Forney
020a443e3b Add script to check for out-of-date packages 2019-03-19 11:35:56 -07:00
Michael Forney
e5bb6756c1 Allow overriding pax command with PAXREAD
Most systems do not have pax installed by default, or it is not available
at all. However, since we are relying on the -s flag for member name
substitution, we can't just use a tar command that works everywhere.

Instead, support the environment variable PAXREAD to specify the command
to use in place of `pax -r`. Since bsdtar from libarchive supports -s,
we can set PAXREAD='bsdtar -xf -'.
2019-03-11 12:20:37 -07:00
Michael Forney
96bcd25021 Add mechanism to probe for size of type 2018-10-18 12:58:46 -07:00
Michael Forney
741d252822 Port build scripts to POSIX shell
Since we are now using Lua to generate ninja files, use of rc in build scripts
seems unnecessary and adds an additional bootstrap dependency. None of them are
too fancy, so just port to POSIX sh instead.
2018-02-16 02:52:34 -08:00
Michael Forney
224b5fdbf9 Add mechanism to probe for toolchain features 2017-10-23 21:43:52 -07:00
Michael Forney
8bfb60a368 fetch-curl: Allow overriding substitutions 2017-10-10 03:22:25 -07:00
Michael Forney
986c031e1c Add texi2mdoc 0.1.2 2017-09-25 19:23:07 -07:00
Michael Forney
5915e9ccc6 fetch-*.rc does not need to be executable
We always call it with rc explicitly.
2017-09-01 17:59:36 -07:00
Michael Forney
6172f9ace7 scripts/tree.rc: Write index in $outdir 2017-02-25 14:50:33 -08:00
Michael Forney
a0b389e9f3 scripts/tree.rc: Don't clobber repository index
The repository index should be preserved if writing directly to the /
repository.
2017-02-10 19:34:52 -08:00
Michael Forney
38d0eb124d fetch-curl: If not specified use */* as extraction pattern
Some pax implementations will fail otherwise if src already exists.
2017-01-03 22:49:57 -08:00
Michael Forney
d29f7e5d53 fetch-curl: Specify -O at the end in case we want to specify an output name 2016-12-29 23:29:18 -08:00
Michael Forney
36c037effc Allow using /.git as output repository 2016-12-29 23:29:07 -08:00
Michael Forney
92751409f7 Provide mechanism to track library dependencies
Now, ar/lib rules can list static libraries or other .d files. These (as well as
the target library) are written to a file called $lib.d. link/exe rules can list
these .d files, causing them to be flattened into an RSP file and appear on the
command line as @$rsp.

The rule to generate the dependency list files depends on the libraries they
contain, so they also act as a stamp file for the dependencies. This gives us
dependency management for free.
2016-10-30 13:44:58 -07:00
Michael Forney
78c4cc0023 Don't list git repository files as outputs
This way, ninja -t clean will work as expected.
2016-07-16 14:23:20 -07:00
Michael Forney
51e359b2f8 tzdata: Fix gen.rc to not require contents of source files
This also fixes a symlink target calculation bug.
2016-07-04 21:47:29 -07:00
Michael Forney
98f6b74513 fetch-curl: Support specifying a pattern of files to extract 2016-06-28 00:35:03 -07:00
Michael Forney
153ac63e5c fetch-curl: Match archives more strictly 2016-06-28 00:33:08 -07:00
Michael Forney
698113c957 Don't warn about whitespace errors when applying patches 2016-06-27 23:54:20 -07:00
Michael Forney
f732e53f58 Integrate source fetching into ninja files 2016-06-27 20:30:15 -07:00
Michael Forney
cd95be727e Add global fetch.rc script 2016-06-07 00:43:30 -07:00