| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
PR: 294832
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56723
(cherry picked from commit 0733afdb4dad58cfe7ad7f5994e26bf148d78199)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When operating on a file descriptor, acquire_lock() would ignore the
flags argument and always operate in non-blocking mode, resulting in
unnecessary busy-looping.
PR: 294832
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D56722
(cherry picked from commit d90513ea85693da0ca5955173609f4e81e38ae16)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libarchive 3.8.7
Important bugfixes:
#2871 libarchive: fix handling of option failures
#2897 iso9660: fix undefined behavior
#2898 RAR: fix LZSS window size mismatch after PPMd block
#2900 CAB: fix NULL pointer dereference during skip
#2911 libarchive: do not continue with truncated numbers
#2919 CAB: Fix Heap OOB Write in CAB LZX decoder
#2934 iso9660: fix posibble heap buffer overflow on 32-bit systems
#2939 cpio: Fix -R memory leak
#2947 libarchive: lzop and grzip filter support
Important bugfixes between 3.8.5 and 3.8.6:
#2860 bsdunzip: fix ISO week year and Gregorian year confusion
#2864 7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation
#2875 7zip: fix out-of-bounds access on ELF 64-bit header
#2877 RAR5 reader: fix infinite loop in rar5 decompression
#2878 mtree reader: Fix file descriptor leak in mtree parser cleanup
(CWE-775)
#2892 RAR5 reader: fix potential memory leak
#2893 RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called
twice
#2895 CAB reader: fix memory leak on repeated calls to
archive_read_support_format_cab
Obtained from: libarchive
Vendor commit: ded82291ab41d5e355831b96b0e1ff49e24d8939
MFC after: 1 week
(cherry picked from commit eb5165bb491138f60d9004bc4c781490016d9288)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Several testcases assume BLOCKSIZE=K, so set it at the top of the
script. This fixes an issue where the tests would sometimes fail
when run under sudo.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D56476
(cherry picked from commit d618ba314d1452c1cb4360e15ae1c80adac48306)
|
| |
|
|
|
|
|
|
|
| |
MFC after: 1 week
Reviewed by: fuz
Differential Revision: https://reviews.freebsd.org/D55794
(cherry picked from commit 41474e78c493184f023723d1f86539e07bb01b92)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Stop abbreviating macro names half-randomly to 8 chars, this is no
longer 1990.
* Likewise for function names (in particular use doindex for a function
that is notably different from the classic index function).
* Rename a few things for more fidelity: eval is the builtin name, not
expr and your maketemp/mkstemp conform to mkstemp semantics for better
security.
* Rewrap a few comments that were ludicrously short.
No functional changes except improved accuracy of some error messages.
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D55793
(cherry picked from commit f8f6f1cbd576ab5f15cef178cc05251365652f74)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to POSIX, the optional third argument is the minimum number
of digits to print regardless of sign. We interpreted it as the minimum
width of the output including the sign. Additionally, the variable used
to hold this value was confusingly named “maxdigits”.
PR: 293214
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D55311
(cherry picked from commit 507c611aeac7ca9aed12353b1044bb21ab00afae)
|
| |
|
|
|
|
| |
Sponsored by: Klara, Inc.
(cherry picked from commit 28d9586cde8dc783f7b698b10c2b564fde14ae74)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The -r flag is not required to compare two directories; it is only
required to compare them recursively, i.e. descend into their common
subdirectories. Adjust tests that use -r needlessly, and adjust the
dirloop test to verify that these two cases remain distinct.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D55262
(cherry picked from commit b2532432971fbd9339a9a49eca1b532978bb6d48)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
POSIX uses the terms “positive decimal integer” for -C and “non-negative
decimal integer” for -U, which translates into lower bounds of 1 for -C
and 0 for -U.
POSIX does not specify a minimum upper bound for either mode, but as of
5fc739eb5949 both our backends support context sizes up to and including
INT_MAX, so use that.
Having had the opportunity to consult the Unix System Test Suite, the
diff test cases found therein happen to precisely match these bounds.
While here, switch to using strtonum() to parse numerical arguments, and
try to be more consistent in how we report usage errors.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D55261
(cherry picked from commit 790f1d1cc5fa892ba59fd7f239b22064c8ab14c7)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we're done processing a directory, remove its entry from the tree
of visited inodes, ensuring that we only report a loop when we encounter
a descendant-to-ancestor link, not when we encounter a cousin-to-cousin
or sibling-to-sibling link.
MFC after: 1 week
Reported by: Bakul Shah <bakul@iitbombay.org>
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D55248
(cherry picked from commit 71569594d860a59d8362770a56d806e1d31fb946)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both copy_file_range() and read() / write() in our fallback loop can be
interrupted before copying anything at all, in which case it returns -1
and sets errno to EINTR. If that happens, we should retry, not fail.
While here, drop the size argument from copy() (we always want to copy
the entire file anyway) and add test cases which exercise the metalog
and digest functionality.
PR: 293028
MFC after: 1 week
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D55168
(cherry picked from commit 0fb940fd63dd9b6d6b848421c53b1e9ac8387265)
|
| |
|
|
|
|
|
|
|
| |
Sponsored by: Klara, Inc.
Fixes: 5fc739eb5949 ("diff: Fix integer overflows in Stone algorithm")
Fixes: 270492602b9b ("diff: Add test case for pagination resource leak")
Fixes: 590126789c84 ("diff: Don't compare a file or directory to itself")
(cherry picked from commit 157d6664aeb815db3b758bd3038fd1512a0f4e2c)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While here, stop abusing struct dirent for something we don't even need
to store.
PR: 254455
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: thj, kevans
Differential Revision: https://reviews.freebsd.org/D55113
(cherry picked from commit 590126789c841d80655869bc075c8980c173dd1c)
diff: Fix build
rc must be defined first.
Fixes: 590126789c84
MFC after: 1 week
X-MFC with: 590126789c84
(cherry picked from commit ee44ab936e84bacaa49847d36aabdf280f9fecce)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Drop an unnecessary variable and rename pidfd to procd.
* Rewinding stdout serves no purpose, so stop doing it.
* Don't bother freeing memory or setting the global status right
before erroring out.
* Error out if dup(2) or dup2(2) fail.
* In the unlikely case that our pipe is equal to stdout, we need to
record that information so we don't close it when cleaning up.
* Don't bother closing a descriptor before dup2(2)ing to it.
* Don't forget to close the the process descriptor after reaping the
child process.
PR: 266592
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: kevans, markj
Differential Revision: https://reviews.freebsd.org/D55112
(cherry picked from commit c3904a7de78ca1ca15fcdf4c09f9d4be7f6fe6f5)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The pagination code leaks either processes or descriptors or both,
depending on the exact version of the code you have. Add a test case
which exercises this leak to facilitate fixing it.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: thj, kevans
Differential Revision: https://reviews.freebsd.org/D55111
(cherry picked from commit 270492602b9bd8b8fce4f021f055804978bf3f23)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the legacy Stone algorithm, we do a first pass over the files to
check if they're identical before we start diffing them. That code
would correctly set the exit status if an I/O error was encountered,
but would not emit an error message. Do so.
PR: 292198
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: thj
Differential Revision: https://reviews.freebsd.org/D55125
(cherry picked from commit f8c12e6e3874cdd353fb16785da6f4e7eb134cd9)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fix integer overflows that may occur when the context window is very
large and add tests to exercise those conditions.
PR: 267032
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: thj, kevans
Differential Revision: https://reviews.freebsd.org/D55110
(cherry picked from commit 5fc739eb5949620da911db2f87ca8faedc549d3a)
|
| |
|
|
|
|
|
|
| |
Sponsored by: Klara, Inc.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D50936
(cherry picked from commit 42092e1b6625b8226de5f34d22b9a96c713626cb)
|
| |
|
|
|
|
|
|
|
| |
PR: 254611
Approved by: otis, tuexen, des
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D54375
(cherry picked from commit fe81e3944c085e765c83c4f78941d7529ceb556e)
|
| |
|
|
|
|
|
|
| |
Reviewed by: des
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D54412
(cherry picked from commit f89f7e58ba1d54c6a683e3cc899938895496c088)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into
private shared libraries. This allowed clang, lld, lldb, and other llvm
tools to be linked against these shared libraries, which makes them
smaller and avoids duplication.
However, this also comes at the cost of some performance, since the
dynamic libraries are quite large, and contain lots of long symbols
(mangled C++ identifiers).
Add a WITH_LLVM_LINK_STATIC_LIBRARIES build knob that can be used to go
back to the previous behavior: libllvm, libclang and liblldb are built
as internal static libraries, i.e. only available during buildworld, and
fully linked into the various executables such as clang, lld, etc.
PR: 287447
Reviewed by: emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D50956
(cherry picked from commit 8d5a11cd0137d3ad70f6b06e063ea91a776d510a)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Mark `digits` as `__non_string`, to avoid warnings from clang 21 similar
to:
usr.bin/m4/misc.c:123:27: error: initializer-string for character array is too long, array size is 36 but initializer has size 37 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
123 | static char digits[36] = "0123456789abcdefghijklmnopqrstuvwxyz";
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MFC after: 3 days
(cherry picked from commit a3394b6a23fb66ccb7e588129d2465ef8ea26d30)
|
| |
|
|
|
|
|
|
|
|
| |
Previously displaying INT_MIN resulted in an out of bounds access to
digits[-8]. In twos-complement -INT_MIN is still negative.
PR: 287013
Reviewed by: emaste
(cherry picked from commit ab4edcd552c967a400e85afc0fd3e6729fa9ee2c)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Stop adding contrib/sqlite3 into the include path for usr.bin/kyua, take
headers from the install sysroot env. sqilte3 now has the VERSION file,
which clashes with c++ include <version>.
Submitted by: jrtc27 (see https://reviews.freebsd.org/D51217)
Tested by: kib
Fixes: 17f0f75308f2 ("sqlite3: Vendor import of sqlite3 3.50.2")
(cherry picked from commit 09d28419c646650a77721e168ef43bc1bac96b67)
|
| |
|
|
|
|
|
|
|
|
| |
This avoids blocking forever when invoked on a fifo.
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D54084
(cherry picked from commit 69e041521a80a0b8950f6ec25269a9c3949d6590)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Sort usage and man page options, mention possible minimum and maximum
values, fix punctuation marks, and cleanup the man page.
PR: 291092
Reviewed by: pauamma_gundo.com, christos
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D53827
(cherry picked from commit 55d98b024f25403f60efe04f90a391014b6bc388)
|
| |
|
|
|
|
| |
MFC after: 1 week
(cherry picked from commit fa9ac741d03342c33a0e8f85114949625ba4901f)
|
| |
|
|
|
|
|
|
|
|
|
| |
The first argument to nmount(2) is an nvlist in the form of an iovec,
which truss already knows how to decode. Set the correct flag so
this happens automatically.
MFC after: 1 week
PR: 290667
(cherry picked from commit b9f848ecbafce4e56ba9c8b7993b85347e83484a)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This update fixes a few bugs:
- Improper response to double SIGINT with editline.
- Not letting libedit handle terminal size changes.
- A dc crash from improperly handling an error.
- A duplicate check for reference arrays.
- Build failures with GCC 15.
Add extra defines required for bc-7.1.0 to the Makefiles.
The “all.sh” script in version 7.1.0 accepts one less parameter for
selecting the tests to be run.
(cherry picked from commit 4c178fe36e01f84f3c65f6953cbe8dbe5b3fc908)
(cherry picked from commit ab36487a79cd0093d76ec3cdc8eb8c0e114835db)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update libarchive to 3.8.2
Important bugfixes:
#2477 tar writer: fix replacing a regular file with a dir for
ARCHIVE_EXTRACT_SAFE_WRITES
#2659 lib: improve filter process handling
#2664 zip writer: fix a memory leak if write callback error early
#2665 lib: archive_read_data: handle sparse holes at end of file correctly
#2668 7zip: Fix out of boundary access
#2670 zip writer: fix writing with ZSTD compression
#2672 lib: fix error checking in writing files
#2678 zstd write filter: enable Zstandard's checksum feature
#2679 lib: handle possible errors from system calls
#2707 lib: avoid leaking file descriptors into subprocesses
#2713 RAR5 reader: fix multiple issues in extra field parsing function
#2716 RAR5 reader: early fail when file declares data for a dir entry
#2717 bsdtar: Allow filename to have CRLF endings
#2719 tar reader: fix checking the result of the strftime (CVE-2025-25724)
#2737 tar reader: fix an infinite loop when parsing V headers
#2742 lib: parse_date: handle dates in 2038 and beyond if time_t is big
enough
Obtained from: libarchive
Vendor commit: 7f53fce04e4e672230f4eb80b219af17975e4f83
Security: CVE-2025-25724
PR: 290303 (exp-run, main)
(cherry picked from commit 401026e4825a05abba6f945cf1b74b3328876fa2)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When producing formatted output, trim leading whitespace and trailing
commas from the human-readable time and uptime before emitting them.
The text output remains unchanged.
PR: 290089
Fixes: 6e6febb54da9 ("w: Fix idle time in json output, add login/idle times to json output")
Reviewed by: marius.h_lden.org
Differential Revision: https://reviews.freebsd.org/D53167
(cherry picked from commit 4d5789532a940144c869d66505e756ce816f8a50)
|
| |
|
|
|
|
|
|
|
| |
PR: 240378
Reviewed by: otis (mentor), glebius (src committer)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D52991
(cherry picked from commit 4835fc45efe8b593fa49786ec4bfb6ce5050756c)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add a brief sleep to give tail time to start following the file before
we rename it.
PR: 289902
MFC after: 1 week
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D52887
(cherry picked from commit a9c72543d287afa8dd30bec0f49873e88057c192)
|
| |
|
|
|
|
|
|
|
| |
While here, use Ev for TMPDIR consistently.
MFC after: 3 days
Event: EuroBSDCon 2025
(cherry picked from commit 6b164f18118d0e8dbf9826d7117e0e757f7eb727)
|
| |
|
|
|
|
|
|
|
| |
I didn't compile test the prior code before committing.
MFC after: 1 week
MFC with: dcf5d5603b3af831002caa7b2f64aec8bda14071
(cherry picked from commit 27234ad6999b760041fc53326268ac86e9fd2e80)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change creates a static inline function, BN_check_prime, for
pre-3.0 use which is implemented with the previous (1.1) compatible call
under the covers, `BN_is_prime_ex`.
The `nchecks` parameter value is maintained, even though it has no
noticable behavior change, given that the documentation clearly states
that at least 64 or 128 rounds are executed on the backend, depending on
how many bits there are in the given number being factored out.
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D40305
(cherry picked from commit dcf5d5603b3af831002caa7b2f64aec8bda14071)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This change ports the BN APIs to an OpenSSL 3 compatible set of APIs.
This removes the need for requesting OpenSSL 1.1 compatible APIs.
MFC after: 1 week
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D40298
(cherry picked from commit 537cd766435c80e61e72bb9369f77aa9630a1537)
|
| |
|
|
|
|
|
|
|
|
|
| |
This will help ensure that the change following this
one to support OpenSSL 3 is sane.
MFC after: 1 week
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D40297
(cherry picked from commit c60be9ea6b1ecef6e77096601660f9573ec59a26)
|
| |
|
|
|
|
|
|
|
|
|
| |
OpenSSL's BN_zero API has had a void return value since 1.1.x: chase the
change to unbreak the build on OpenSSL 3.x with MK_GH_BC == no.
MFC after: 2 weeks
Reviewed by: emaste, kevans
Differential Revision: https://reviews.freebsd.org/D41410
(cherry picked from commit c45e66dca3e4f3073132b6f3e94623c2314f679c)
|
| |
|
|
|
|
| |
PR: 289245
Fixes: 14b61b2e9317 ("man: Add -l option")
(cherry picked from commit dc38cf116c820df0be341ec5e359de0012b2d58a)
|
| |
|
|
|
|
|
|
|
| |
MFC after: 3 days
Sponsored by: Klara, Inc.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D52489
(cherry picked from commit 55bd607b9930e5f61219007ad0a81801c8cfdbf3)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a -l option which causes man to interpret all arguments as paths to
open directly rather than man pages to search for in MANPATH. See the
PR for a detailed rationale.
PR: 289245
MFC after: 1 week
Reviewed by: ziaee, emaste
Differential Revision: https://reviews.freebsd.org/D52385
(cherry picked from commit 14b61b2e931741281d0bfef426e9809f16006504)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the idle time will show as `true` part of the time in the json
output and quoting depends on what is being printed. Make sure it's
always printed correctly and for consistency treated as a string in the
json output.
Login time delta and since times are currently exposed in the xml
output, expose these times in the json output as well.
In the json and xml outputs expose the number of seconds idle as a new
field or attribute respectively.
MFC after: 1 week
Sponsored by: Modirum MDPay
Event: Oslo Hackathon 202508
Differential Revision: https://reviews.freebsd.org/D52237
(cherry picked from commit 6e6febb54da91bf5e13007c3d8f4a54495273969)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Pom uses localtime() so needs tzdata available.
PR: 278574
Reported by: Tatsuki Makino
Reviewed by: ivy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51521
(cherry picked from commit 0fde36fe04b2b656a2215f7dad07a52884e8dcfd)
(cherry picked from commit 05459c1b860c086ada0cacb398fa5d61a240e0ca)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The function used to create a backup of the input before starting work
used a static buffer and did not check that the file name it constructed
did not overflow. Switch to using asprintf(), clean up the rest of the
function, and update some comments that still referred to an earlier
version of the code.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: bnovkov
Differential Revision: https://reviews.freebsd.org/D51796
(cherry picked from commit eb41613d22977798f41dd979e4e4ec0965711916)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Much of the test script was concerned with working around RCS tags and
dealing with cases which don't apply to indent.
MFC after: 1 week
Sponsored by: Klara, Inc.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D51795
(cherry picked from commit 0ecc679fd3da0720d6ba331ebcceca8e0760fa22)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since it's not possible to pass more than {ARG_MAX} bytes on the command
line, it's also not possible to pass more than {ARG_MAX} individual
arguments. Therefore, {ARG_MAX} is a reasonable upper bound for the -n
option. This resolves both the arithmetic overflow issue and the CI OOM
issue, so we can safely re-enable the test.
Fixes: eab91d008165
Fixes: 2682a1552724
MFC after: 1 week
Reviewed by: jlduran, emaste
Differential Revision: https://reviews.freebsd.org/D51536
(cherry picked from commit a7fa987abe1fb0b25a7dd83dc81f14f64a82efc9)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
${.ALLSRC} can include the dependency OptParser.td, which causes
llvm-tblgen to fail since it only accepts a single input argument.
Use ${TDFILE} directly instead, which matches the other invocations
of tblgen in the LLVM Makefiles.
Fixes: d3c06bed2c16 ("clang: install clang-scan-deps")
MFC after: 3 days
Reviewed by: dim
Differential Revision: https://reviews.freebsd.org/D51569
(cherry picked from commit ad023bc26e106e28e1b4845f991b52b533bd0802)
|
| |
|
|
|
|
|
| |
Source: Wikipedia
<https://en.wikipedia.org/wiki/Practical_Astronomy_with_Your_Calculator>
(cherry picked from commit bf0ee5f2175a3c6eb52f9fc74b93b445d37a6086)
|