Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: sync with 9fans upstream #3

Merged
merged 323 commits into from
Jan 22, 2022
Merged

chore: sync with 9fans upstream #3

merged 323 commits into from
Jan 22, 2022

Conversation

katcipis
Copy link
Member

@katcipis katcipis commented Jan 22, 2022

There is some fixes like this: 7366140

Some commits mention support to linux 5.0+ on some tools, so seems like a good idea to update :-)

pocket7878 and others added 30 commits June 11, 2019 12:56
This supports non-live window resize.
The immediate display of the screen sometimes miss the update from
the CPU side memory.  No obvious synchronization mechanism is available.
In order to make sure the screen updates properly, we set needsDisplay
again after 16ms delay to ensure a second screen update.
According to <https://askubuntu.com/a/309146>, use of `/proc/acpi` to
get battery usage is deprecated. This commit replaces the two files from
this API with the single file `/sys/class/power_supply/BAT0/capacity`,
simultaneously removing the need to calculate battery percentage.
Instead of checking Fcall.data==nil, check Fcall.count==0.
The former check always fails after `gcc -O2` optimizations
(gcc version 8.3.0).

Also fix an out-of-bound read detected by valgrind:
```
==31162== Invalid read of size 1
==31162==    at 0x11005E: morerules (rules.c:739)
==31162==    by 0x110254: writerules (rules.c:775)
==31162==    by 0x10D2FE: fsyswrite (fsys.c:848)
==31162==    by 0x10C304: fsysproc (fsys.c:248)
==31162==    by 0x112E8C: threadstart (thread.c:96)
==31162==    by 0x4A682BF: ??? (in /usr/lib/libc-2.29.so)
==31162==  Address 0x4ea984a is 0 bytes after a block of size 250 alloc'd
==31162==    at 0x483AD7B: realloc (vg_replace_malloc.c:826)
==31162==    by 0x1196F3: p9realloc (malloc.c:53)
==31162==    by 0x10BDFD: erealloc (plumber.c:124)
==31162==    by 0x10FCD9: concat (rules.c:642)
==31162==    by 0x10FCD9: concat (rules.c:635)
==31162==    by 0x110230: writerules (rules.c:773)
==31162==    by 0x10D2FE: fsyswrite (fsys.c:848)
==31162==    by 0x10C304: fsysproc (fsys.c:248)
==31162==    by 0x112E8C: threadstart (thread.c:96)
==31162==    by 0x4A682BF: ??? (in /usr/lib/libc-2.29.so)
```

Fixes #256
When fetching, messages are sent to plumber as soon as the ENVELOPE part is read.
    The date field of the message is sent when the INTERNALDATE part is read and
    there is no guarantee that this will be read before the ENVELOPE.
    This bug can be observed when using faces(1) which will retrieve messages with
    a null date and then always display a 'Jan 1' date instead of the correct one.
    The fix is to simply send the message to plumber after having read all parts,
    thus ensuring the message is complete.
The code had a nested use of the follow() function that could cause +=+
and -=- to register as ++ and --.  The first follow() to execute could
consume a character and match and then the second follow() could consume
another character and match.  For example i-=-10 would result in a syntax
error and i-=- would decrement i.
Update 9l to support Linux 5.x.
awk was splitting records into bytes instead of runes for empty FS.
For example, this was printing only the first byte of the utf-8 encoding
of é:

	echo é | awk 'BEGIN{FS=""}{print $1}'

The change just copies how the `split` function handles runes.

Originally reported by kris on twitter:
https://twitter.com/p9luv/status/1180436083433201665
In MacOS, services run by launchd must run in the foreground, since
launchd manages forking and other resources.
NixOS sandboxed builds (at least on Mac) don't have access to /tmp,
and this should be better POSIX.
Page was hanging because ghostscript never closes the fd from which
we're reading BMP data. We close our end of the pipe so that ghostscript
will close its end.

Tested with ghostscript version 9.50.

Fixes #124
Temp file size is now declared in an enum; changing it from the
default introduces a subtle bug in putline(), which expects it to
be 32767.

Mask with NBLK-1 instead.
Ghostscript 9.27 removed GS_PDF_ProcSet and pdfdict due to a security
issue (see https://security-tracker.debian.org/tracker/CVE-2019-3839).

This fix was contributed by @onyxperidot (see #279).

Fixes #279
Just added a pair of parentheses. I also ran cb on cb.c to beautify the
code.

This is actually on Gerrit from 2016:
https://plan9port-review.googlesource.com/c/plan9/+/1574

Change-Id: I5e234adba0f95c13d6eecb121bf11bba4bf54566
Change-Id: If8fe1afecb9fe55f85e8e5af37521b83e787d718
The C standards disallow passing null pointers to memmove and memcmp.

Change-Id: I1c88c2adbc32a23ef742f206038b8f7c4e0540c7
Passing a null pointer to qsort is an error in C (GCC and Clang agree
with the standards there, so this is no joke).

Change-Id: Ia2b015793a75ea4e85ae8f47da6beead9c4290e6
This is actually from 2016:
https://plan9port-review.googlesource.com/c/plan9/+/1590

Change-Id: I6f2a3d71a9dd589eff7ab15b3c1d3997254b3c35
…321)

This should prevent the issues of dist/buildmk and src/mkhdr getting out
of synchronization yet again.

I also add a rule for arm64 to the OBJTYPE sed command.

Fixes #243
Fixes #320

Change-Id: I60f69a1f32b5ed5ae5ac8a1659c38e29debed005
Add a menu item which functions similar to acme's `Look` command.

This is copied from 9front. See:
https://code.9front.org/hg/plan9front/rev/1f1596dbca51
https://code.9front.org/hg/plan9front/rev/d2de1d2f7b48
Change-Id: I08cb7227c071c7fc2e30f43e07bcf599fc1d174a
Change-Id: Ia5c888db1f0ded2aa92238d994239e46bf52667a
These make no sense and are not really needed at all.
Add a best-effort attempt to get at the gcc/clang macro
in lib9.h, but if it fails, no big deal.

Fixes #324.
rsc and others added 27 commits January 14, 2021 10:30
This fixes the 'run stats from rc; exit rc; stats dies' problem.
It's unclear whether this is the right fix or whether rc should
be starting all its interactive commands in their own process
groups. But at least it does fix stats dying.
Commit d32deab renamed IM to MR but
these man pages were missed.
Use bio(3) to read at most one line of input per iteration, even
if there is more than one line available in the input buffer. This
makes it easier to interact with line-oriented ctl files like that of
factotum(4) from shell scripts, without the need to control when
and how much data is flushed to a pipe.
MacFUSE 4 removes support for passing device fd to the mount command. Adds
support for the receiving the fd over a socket instead, and updates command paths
and filesystem name.
The receiver of cerr takes ownership of s.
On March 23, 2021, Nokia transferred the copyrights in the Plan 9 software
to the Plan 9 Foundation, which relicensed them under the MIT license.

This commit updates the Plan 9 from User Space license to reflect the
new base license. The vast majority of the contributions beyond the
base Plan 9 set were by me, many of them explicitly under an MIT license.
Those are all under the new MIT license now as well.

The port of mk to Unix was taken from Inferno via Vita Nuova and had
been made available under GPL, but Vita Nuova has relicensed Inferno
under the MIT license as well, to match the new Plan 9 license.

Michael Teichgraber contributed src/lib9/zoneinfo.c explicitly under
the Lucent Public License but has agreed to change the contribution
to the MIT license now used in the rest of the distribution.

There remain a few exceptions, most notably fonts.
See the root LICENSE file for full details.

The only mention of the Lucent Public License in the whole tree now
is in the LICENSE file, explaining the history.
Without this fix, fspread is trusting the server to return as much
data as requested, or less. If a server responds with more data
though, fspread writes beyond the bounds of the buffer to fill, which
is passed in by the caller. It depends on the caller of fspread()
where that buffer is, so there are various possible attack vectors.

In the Plan9 kernel, I found this implemented in devmnt.c, where
overly large responses are truncated to the size requested before
copying, so I assume that this strategy works here too.

This also affects fsread() and fsreadn(), which are based on
fspread().
Also update install.txt, which mistakenly contained intro(1).

Pointed out by Nicholas Schwartz.
commit 385a6d5 removed src/lib9p/_post.c
from the code base, but overlooked removing a reference to the
_post.o object file from the src/lib9p/mkfile.

This results in lib9p failing to compile:

* Running on Darwin...
* Compiler version:
	Apple clang version 12.0.5 (clang-1205.0.22.11)
* Building mk...
* Building everything (be patient)...
>>> mk: don't know how to make '/Users/sasha/plan9port_fork/lib/lib9p.a(_post.o)' in /Users/sasha/plan9port_fork/src/lib9p
mk: for i in ...  : exit status=exit(1)

Remove _post.o from the list of dependent object files from
src/lib9p/mkfile to have lib9p compile.

Fixes: 385a6d5 ("lib9p: Remove postmountsrv (#505)")
Fixes:

% sam -d
 -.
w foo
foo: (new file) #0
w foo
?warning: write might change good version of `foo'
For cross-compiling plan9 from Unix, provide a way
to force `mk` to use `rc` instead of `sh` without
setting `MKSHELL` in individual `mkfile`s.

If the environment variable `FORCERCFORMK` is set,
`mk` will default to using `rc`, not `sh`.

Signed-off-by: Dan Cross <cross@gajendra.net>
It's sometimes useful to know whether there's been editing activity
in a window. This PR adds that information to the ctl file.

Change-Id: I21a342ac636dd5c7701b3ed560e3526867329c2c
@katcipis katcipis requested a review from i4ki January 22, 2022 16:32
@katcipis katcipis self-assigned this Jan 22, 2022
@katcipis katcipis merged commit 42623db into madlambda:master Jan 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.