head 1.22; access; symbols pkgsrc-2026Q1:1.22.0.26 pkgsrc-2026Q1-base:1.22 pkgsrc-2025Q4:1.22.0.24 pkgsrc-2025Q4-base:1.22 pkgsrc-2025Q3:1.22.0.22 pkgsrc-2025Q3-base:1.22 pkgsrc-2025Q2:1.22.0.20 pkgsrc-2025Q2-base:1.22 pkgsrc-2025Q1:1.22.0.18 pkgsrc-2025Q1-base:1.22 pkgsrc-2024Q4:1.22.0.16 pkgsrc-2024Q4-base:1.22 pkgsrc-2024Q3:1.22.0.14 pkgsrc-2024Q3-base:1.22 pkgsrc-2024Q2:1.22.0.12 pkgsrc-2024Q2-base:1.22 pkgsrc-2024Q1:1.22.0.10 pkgsrc-2024Q1-base:1.22 pkgsrc-2023Q4:1.22.0.8 pkgsrc-2023Q4-base:1.22 pkgsrc-2023Q3:1.22.0.6 pkgsrc-2023Q3-base:1.22 pkgsrc-2023Q2:1.22.0.4 pkgsrc-2023Q2-base:1.22 pkgsrc-2023Q1:1.22.0.2 pkgsrc-2023Q1-base:1.22 pkgsrc-2022Q4:1.21.0.2 pkgsrc-2022Q4-base:1.21 pkgsrc-2022Q3:1.20.0.8 pkgsrc-2022Q3-base:1.20 pkgsrc-2022Q2:1.20.0.6 pkgsrc-2022Q2-base:1.20 pkgsrc-2022Q1:1.20.0.4 pkgsrc-2022Q1-base:1.20 pkgsrc-2021Q4:1.20.0.2 pkgsrc-2021Q4-base:1.20 pkgsrc-2021Q3:1.17.0.2 pkgsrc-2021Q3-base:1.17 pkgsrc-2021Q2:1.15.0.2 pkgsrc-2021Q2-base:1.15 pkgsrc-2021Q1:1.14.0.4 pkgsrc-2021Q1-base:1.14 pkgsrc-2020Q4:1.14.0.2 pkgsrc-2020Q4-base:1.14 pkgsrc-2020Q3:1.12.0.2 pkgsrc-2020Q3-base:1.12 pkgsrc-2020Q2:1.10.0.2 pkgsrc-2020Q2-base:1.10 pkgsrc-2020Q1:1.7.0.2 pkgsrc-2020Q1-base:1.7 pkgsrc-2019Q4:1.5.0.4 pkgsrc-2019Q4-base:1.5 pkgsrc-2019Q3:1.2.0.6 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.4 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.2 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.1.0.2 pkgsrc-2018Q4-base:1.1; locks; strict; comment @# @; 1.22 date 2023.01.25.16.40.38; author micha; state Exp; branches; next 1.21; commitid ePFEmdx4epLEwWaE; 1.21 date 2022.09.30.15.46.13; author micha; state Exp; branches; next 1.20; commitid tuEL5FgCp2XiZTVD; 1.20 date 2021.11.19.11.24.28; author micha; state Exp; branches; next 1.19; commitid tf06Sn1sHDqiFohD; 1.19 date 2021.10.26.11.18.38; author nia; state Exp; branches; next 1.18; commitid 0wBAeIYmdmT6pjeD; 1.18 date 2021.10.07.14.56.11; author nia; state Exp; branches; next 1.17; commitid XiritG7tOIzFdTbD; 1.17 date 2021.08.06.10.24.18; author micha; state Exp; branches; next 1.16; commitid aoA86sEZ1vZPHT3D; 1.16 date 2021.06.25.11.01.09; author micha; state Exp; branches; next 1.15; commitid qT1pRX52JPtbgvYC; 1.15 date 2021.04.26.10.52.42; author micha; state Exp; branches; next 1.14; commitid DIXIMY3rkMiT8NQC; 1.14 date 2020.11.25.16.00.09; author micha; state Exp; branches; next 1.13; commitid DotrLhwJIe7eJhxC; 1.13 date 2020.10.23.16.28.56; author micha; state Exp; branches; next 1.12; commitid IiFve4vf2f9SW2tC; 1.12 date 2020.08.26.14.22.36; author micha; state Exp; branches; next 1.11; commitid nX1d9Knysj3a7AlC; 1.11 date 2020.07.17.11.34.59; author micha; state Exp; branches; next 1.10; commitid LisskMwm9Z1htqgC; 1.10 date 2020.06.05.17.26.43; author micha; state Exp; branches; next 1.9; commitid KEOd0TSXQPnJL3bC; 1.9 date 2020.05.12.09.06.39; author micha; state Exp; branches; next 1.8; commitid l3Sxk8oGJksVLV7C; 1.8 date 2020.04.18.15.54.40; author kre; state Exp; branches; next 1.7; commitid XI4YOnBCYDGVNS4C; 1.7 date 2020.03.04.11.44.13; author micha; state Exp; branches; next 1.6; commitid nS4tfmnxgJ9jR4ZB; 1.6 date 2020.01.10.12.45.00; author micha; state Exp; branches; next 1.5; commitid 3oobtNDCPWi4W8SB; 1.5 date 2019.11.08.14.26.13; author micha; state Exp; branches; next 1.4; commitid 6Qrgh97ZasDkw3KB; 1.4 date 2019.10.24.17.08.02; author micha; state Exp; branches; next 1.3; commitid p17yJ8uP64tGT8IB; 1.3 date 2019.10.04.14.07.55; author micha; state Exp; branches; next 1.2; commitid NbKhx6Ku5wLLxyFB; 1.2 date 2019.03.19.14.24.46; author wiz; state Exp; branches; next 1.1; commitid Qk5c0YHAOh1d2ZfB; 1.1 date 2018.11.10.19.59.54; author wiz; state Exp; branches; next ; commitid N9E1yquP6c4l2rZA; desc @@ 1.22 log @shells/pbosh: Update to 20230112 New features with AN-2023-01-12: UPDATING: - Solaris 11.4: man pages are now installed according to BSD conventions. Users may need to manually remove the following old man pages on update: streamarchive.4, makefiles.4, makerules.4, changeset.4, sccschangeset.4, sccsfile.4, and star.4. NEW FEATURES: - libxtermcap/termcap: update to latest FreeBSD commit - libxtermcap/termcap.url: remove file containing outdated information about where to obtain a termcap file from. - RULES/os-sunos5.def: man pages will now be installed into BSD-style sections on Solaris >=11.4 and descendents. - RULES: add symlink for arm64 OpenBSD - Bourne Shell: Fix bug where set -o notify or set -b would cause the shell to exit when ^C was pressed. Submitted by Nico Sonack. @ text @$NetBSD: distinfo,v 1.21 2022/09/30 15:46:13 micha Exp $ BLAKE2s (schilytools/2023-01-12.tar.gz) = 14493310db8fe55fcb16f4b13cb6a4bb45ace541254c35e5b4d6d3fb178fc640 SHA512 (schilytools/2023-01-12.tar.gz) = a1eb37d5df8d2298ba4da6ccbf4bb937da13e8d9e4d7a8420b4d54a319c028c682e76a85c800d57a35d5f4b81a51b19600bbc2edb94641fa5e721ae23134ce15 Size (schilytools/2023-01-12.tar.gz) = 5895061 bytes @ 1.21 log @shells/pbosh: Update to 20220918 Changelog from AN-2022-09-18: With great sadness we report the death of schilytools main author and long time maintainer Jörg Schilling (1955-03-27--2021-10-10). Jörg, we miss you! After his passing, development has been picked up by a group of volunteers who would like to keep the project alive and well. Our goal is to carefully preserve the portability and compatibility of this project while extending it to new platforms and implementing new tools and features that fit the tool set. As a part of the change in management, the schilytools project has moved from Sourceforge to Codeberg. - general: Explain how to contribute and update README - general: Add list of contributors - all: Misc spelling fixes Submitted by Friedhelm Mehnert. - all: Update E-Mail address and project URL in many places. Jörg's old joerg@@schily.net address is defunct and so is his postal address. As a part of an ongoing documentation cleanup, these addresses have been replaced by our new project pages in many locations. Submitted by Nico Sonack. - man pages: work around buggy syntax highlighting by adding \" " comments into various places. Submitted by Nico Sonack. - RULES: Fix build on macOS 12.4 - RULES: add i386-openbsd-clang.rul This should permit compilation on modern OpenBSD using clang as the system compiler. - autoconf: Work around clang bug in #pragma weak detection. A clang compiler bug causing a crash in the configure test for #pragma weak has been worked around, permitting use of weak symbols when compiling with clang. - tests: fix arm64/aarch64 architecture confusion on OpenBSD Submitted by Nico Sonack. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.20 2021/11/19 11:24:28 micha Exp $ d3 3 a5 3 BLAKE2s (schilytools/2022-09-18.tar.gz) = b081f23ec688681a17d035a6b0a684affe36f41aa1594934755ba2972c2850af SHA512 (schilytools/2022-09-18.tar.gz) = 48550db10e428b1430094a18bfad4781d1f6614eb5c273df7d579fff3e062a8d7ff8ff782c97e6929aaa9ad96b9d0c4f9fde62be0a3ae7fdd99c3f8336e24bde Size (schilytools/2022-09-18.tar.gz) = 5904117 bytes @ 1.20 log @shells/pbosh: Update to 20210918 Rebase to the final Schily Tools release. The author Jörg Schilling passed away in October 2021. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.19 2021/10/26 11:18:38 nia Exp $ d3 3 a5 3 BLAKE2s (schily-2021-09-18.tar.bz2) = 1ee4b41d2f684e695d40cf03e4335ad0e699cbf0bb99b46e197e202d79ccc949 SHA512 (schily-2021-09-18.tar.bz2) = d25765074ac39ca2db63cb9841288dd4457f55588e0389a58ad78da62f745a766b4608d3d137a1908e2ca60511784d5f0af67bab1d1612478dbf120188ed5f31 Size (schily-2021-09-18.tar.bz2) = 4952788 bytes @ 1.19 log @shells: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.18 2021/10/07 14:56:11 nia Exp $ d3 3 a5 3 BLAKE2s (schily-2021-07-29.tar.bz2) = 19e70c3d4f724a51774a9e3d1eccfdcc79c7e0cee88a4f1df90aed24b2fc2830 SHA512 (schily-2021-07-29.tar.bz2) = 095740bf1190440d386145653763d74ad93abf996e6a1e56279b5441990898515356eda0f7b5d07386d2aac1ba1adf0e9dac423ce49ced4fdc13914857b6afc1 Size (schily-2021-07-29.tar.bz2) = 4927143 bytes @ 1.18 log @shells: Remove SHA1 hashes for distfiles @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.17 2021/08/06 10:24:18 micha Exp $ d3 1 a3 1 RMD160 (schily-2021-07-29.tar.bz2) = cde4b154b66cbb590faa32aae3448c62979e6c18 @ 1.17 log @shells/pbosh: Update to 20210729 Changelog from AN-2021-07-29: - Bourne Shell: "cd -" now prints the new directory. POSIX requires this. Thanks to a report from Robert Elz. - Bourne Shell: "make install" now works wit SuPro Make as well. Previously, the target /opt/schily/xpg4/bin/bosh (a symlink) was not installed because of a missing rule that caused SuPro Make to complain. about a target with no existing rule to make. - Bourne Shell: z/OS only supports the minimum fields from struct rusage that are required by POSIX. We need the same hack as for HAIKU to be able to compile. Thanks to a report from Matthew R. Wilson - Bourne Shell: z/OS does not #define MAXPATHLEN, so we #define it to be 1024 by default Thanks to a report from Matthew R. Wilson @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.16 2021/06/25 11:01:09 micha Exp $ a2 1 SHA1 (schily-2021-07-29.tar.bz2) = 6de3773faf2aa0418ac761c011736ea05c4a66a8 @ 1.16 log @shells/pbosh: Update to 20210607 Changelog from AN-2021-05-19: - Bourne Shell: the fc(1) builtin now handles "fc -l -0" the same way as ksh does and refers to the current command. Before only "fc -l -1" did work to select the previous command. Together with the "ERR" trap fix, this permits to install a "command not found" handler in the shell that could explain users how to install a missing command. This "missing command" handler could be implemented via: trap 'show-info-message-for-missing-command $(fc -l -0)' ERR Changelog from AN-2021-06-07: - Bourne Shell: the man page now uses a correct notation for "[]" for the arguments of the builtin "dosh" that has been introduced in May 2012. @ text @d1 1 a1 1 $NetBSD$ d3 4 a6 4 SHA1 (schily-2021-06-07.tar.bz2) = 355c162afdffb730e632902620397cc7851c3595 RMD160 (schily-2021-06-07.tar.bz2) = 8239c965ad9da0d7ce21c39ed28f3f367f929cbf SHA512 (schily-2021-06-07.tar.bz2) = f71fb7b521e1b39e87ec9e44b29576eb2e67f0783e24760590f4323243ee1df7e7bdc214aa95d9e3cde6d090c14cab85ddfeaa8ea93b3942997c72c257b53a60 Size (schily-2021-06-07.tar.bz2) = 4905609 bytes @ 1.15 log @shells/pbosh: Update to 20210421 Changelog from AN-2021-01-05: - Bourne Shell: When we introduced ${.sh.path} in February 2020, we did use the "new" and POSIX-only function realpath() that is not present on e.g. Ultrix. We now use abspath() from libschily if realpath() is missing. Note that abspath() is better than realpath(), as it supports path names longer than PATH_MAX, but since ${.sh.path} is only used to return the absolute pathname for the current shell binary, this is not a problem and on the other side, we can avoid linking against libschily this way, so shell scripting with lazy linking is faster since less libraries need to be linked at startup. Changelog from AN-2021-04-21: - Bourne Shell: gmatch.c: The new version no longer aborts with an illegal multi byte sequence as "no match". As a result, the "*" now again matches any filename - even if the filename contains an illegal multi-byte sequence. This is a problem that did not exist on the original Bourne Shell from Solaris that used gmatch() from the AT&T libgen, but since we added our private portable gmatch.c. to get better portability. Thanks to Stephane Chazelas for reporting the problem related to multi-byte to wide character conversion and illegal multi byte sequences in the case statement and filesystem globbing. - Bourne Shell: word.c::readwc() no longer uses prwc() but rather a loop on the original multi-byte stream to print the "set -v" output. This permits to output the original input data in any case instead of stumbling over illegal multi-byte sequences. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: struct fileblk now remembers lastwc and the related input string as fileblk->mbs[] in order to avoid incorrect conversions via wctomb() in case that the input wide char was a result from an EILSEQ conversion and thus has no related multi byte string. An important visible result of that change is that input read by the builtin command read(1) correctly forwards input that caused an EILSEQ error. It could not be verified whether this covers all possible similar cases, but it is at least very close to a completely correct solution. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: xec.c: Cstyle changes - Bourne Shell: the Copyright messages now mention 2021 @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.14 2020/11/25 16:00:09 micha Exp $ d3 4 a6 4 SHA1 (schily-2021-04-21.tar.bz2) = 81f87aba8f31caa9decbbe605aa40c9b631474c9 RMD160 (schily-2021-04-21.tar.bz2) = 0f35a4a9e4e464d7bbf40758c0d6fa314f7e4381 SHA512 (schily-2021-04-21.tar.bz2) = feb6150fbf79b9a12be58325eac328393c504635f461993b24edcfc18df53953b4c28390187c38c8eccc8cc905354b8fb2f50f5f60beb04363bb9ce32d8203e6 Size (schily-2021-04-21.tar.bz2) = 4919718 bytes @ 1.14 log @pbosh: Update to 20201125 Changelog from AN-2020-11-04: - Makefile system: include/schily/nlsdefs.h no longer by default defines the macro __() because this is in conflict with definitions that are present in the system include files from newer HP-UX versions. Thanks to Rudi Blom for reporting. - Bourne Shell: If a background job did finish during an implicit wait for a foreground job, the exit code for the background job was lost. This was caused by a forgotten call to statjob(jp, &si, 0, 0) in the function waitjob(); Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" in the job list, caused a command like cat /etc/termcap |more to stop after the first page of output because "more" died from trying to read the answer for continuing the output as it was not in the current foreground process group from the tty. This was the result of a forgotten call to monitor = ismonitor(xflags); in xec.c - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" could cause some wait commands to hang infinitely because the job list had an endless loop. The new code avoids to create the endless loop in the job list. Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could. cause bosh to dump core with the builtin fg(1) command because "thisjob". was a NULL pointer. We add a new lastthisjob variable to work around this problem. Thanks for Noci Sonack for reporting. - bsh/Bourne Shell: str2sig() has been enhanced to support e.g. RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals. Note that this currently only works on non-POSIX platforms like Linux where our private implementation is used. On Solaris, this would need to wait until compatibility to POSIX issue 8 has been implemented in the libc from Solaris. Changelog from AN-2020-11-25: - Makefile System: Added support for MacOS on arm64 Thanks to a hint from Ryan Schmidt from macports Note that due to outstanding replies to recent changes in configure, it could up to now not be verified that all configure tests now work in a way that results in correct overall results. See below for an in depth report on the changes. - Makefile System: autoconf (config.guess & config.sub) now supports the new arm64 Apple systems. Thanks to Ryan Schmidt from macports for provinding the needed uname(1) output. - Makefile System: Added a new shell script "autoconf/uname" that helps to create shell scrips that allow to emulate an alien host system in order to test the correct behavior of configure.guess and configure.sub on the main development platform. This helps to adapt configure.guess and configure.sub to new platforms in the future. - Makefile System: The new clang compiler as published with the upcomming ARM macs has been preconfigured with -Werror -Wimplicit-function-declaration as the default behavior and thus is in conflict with the existing base assumption of the autoconf system that minimalistic C-code used for compile/link allows to check for the existence of a specific function in libc without a need to know which system #include file is used to define a prototype for that function. This clang version, as a result of this default, behaves like a C++ compiler and aborts if a function is used with no previous function prototype. This caused most of the existing autoconf test to fail with error messages about missing prototypes. We implemented a workaround using these methods for the identified problems: - Most of the exit() calls in the various main() functions have been replaced by return() to avoid a need to #include in special since these test may be the case for layered tests that #include files from the higher level parts. - Many autoconf tests programs now #include more system include files, e.g. stdlib.h and unistd.h to avoid missing prototype errors. This cannot reliably be done in tests that are used as a base for higher level tests where the high level test #includes own system include files, since older platforms do not support to #include the same file twice. So this is tricky... - A test for a Linux glibc bug caused by incorect #pragma weak usage inside glibc that prevents one or more functions from ecvt()/fcvt()/gcvt() from being usable outside glibc now uses hand-written prototypes for some of the libc interface functions in order to avoid using the system includes. If we did not do that, we could not use ecvt()/fcvt()/gcvt() on MacOS anymore. Thanks to Ryan Schmidt from macports for reporting and for the given help that was needed for remote debugging. Please send the needed feedback on whether the current state of the configure script results on correct autoconf results on the M1 Macs. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.13 2020/10/23 16:28:56 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-11-25.tar.bz2) = 9ca25eb2a0c3d583e5ca6ef11d1670f8a79914d5 RMD160 (schily-2020-11-25.tar.bz2) = 61d0aa46cc485e220ae46b95a1d318e899a8638c SHA512 (schily-2020-11-25.tar.bz2) = 6592e34eb53ef83b1b15e91ac65e5dace88ee62dba3d4b24b7e4b01b052e235b682ab87af266bceeab8a0be796e6105328975e88b12e37c541797ee9786bb01e Size (schily-2020-11-25.tar.bz2) = 4899985 bytes @ 1.13 log @shells/pbosh: Update to 20201009 New features with AN-2020-09-04: - autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from uname -m; this was previously not supported and rejected by config.sub. We now convert "arm64" into "aarch64" in config.guess to get the usual expected results. - Makefile system: RULES/rules.env The environment variables FIGNORE, LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now unexported from the enviroment. In special FIGNORE is dangerous, as it is frequently used by bash users but tells ksh93 to modify it's behavior with "echo *" and this may cause strange things with our makefiles in case that /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and OpenSolaris. - Bourne Shell: added $(RM) -f $(DEST_DIR)$(INSBASE)/xpg4/bin/bosh to the Makefile in the commands before creating the symlink xpg4/bin/bosh to bosh to permit to call "make install" more than once without causing an error. - Bourne Shell: version.h now contains a new version date. New features with AN-2020-10-09: - autoconf: Added support for newer HP-UX versions on Itanium. Thanks to Rudi Blom for reporting and making a change proposal. - Bourne Shell: The "wait" builtin is now POSIX compliant and returns 127 in $? in case that a process id to be waited for does not exist. - Bourne Shell: The exit code retrieved by $/ no longer is masked by 0xFF when this code originates from a wait(1) call. Thanks to Koichi Nakashima for reporting - Bourne Shell: The man page has been enhanced for a better description of the exit code constraitns. Thanks to Koichi Nakashima for reporting - Bourne Shell: The exit code from background jobs is now kept until the builtin wait(1) is called. Note that this introduces the need to call "wait" from time to time in order to free shell job management resources. Thanks to Koichi Nakashima for reporting - Bourne Shell: The changes to keep exit codes for background jobs caused problems that triggered a SIGSEGV in the shell with jobs like: (sleep 10; exit 17)& This needed a restructuring in the job management implementation. - Bourne Shell: Since the next POSIX standard will make it optional whether sig2str() and str2sig() deal with entries for "EXIT" / 0, we enhanced the trap2str() and str2trap() interfaces to handle "EXIT" / 0 and now call these functions before sig2str() and str2sig(). - Bourne Shell: a new version date has been created. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.12 2020/08/26 14:22:36 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-10-09.tar.bz2) = e14d1dec1e476d40bd60ec35fa251ba45268ca8f RMD160 (schily-2020-10-09.tar.bz2) = 81ec46da6ef341f8a8340f389e96dbde2355d5af SHA512 (schily-2020-10-09.tar.bz2) = 3e64cb8d42749f1890e9f8e85de6571ec3f185f3c470078085494a52acb94018496d1b9a2a66b37091db55f08a7c4d4e8dc07cb40c3644aa76032bc7a2e2a74b Size (schily-2020-10-09.tar.bz2) = 4818571 bytes @ 1.12 log @shells/pbosh: Update to 20200812 New features with AN-2020-07-18: - Bourne Shell: A new symlink from /opt/schily/xpg4/bin/bosh to /opt/schily/xpg4/bin/sh is created when "smake install" is called. This helps people to call "bosh" in strict POSIX mode using the command line name "bosh" by putting /opt/schily/xpg4/bin in PATH before /opt/schily/bin, where the bosh implements better backwards cmpatibility to the Bourne Shell by default than a strictly POSIX compliant bosh would do. /opt/schily/xpg4/bin/bosh behaves the same as "/opt/schily/bin/bosh -o posix". Thanks to Koichi Nakashima for reporting. New features with AN-2020-08-12: - autoconf: added a new test for the existence of - autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info() - libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info() on FreeBSD. This was needed since readlink("/proc/curproc/file") on FreeBSD returns random values for hardlinked files, making it impossible to use the result in order to find out which behavior variant of a fat binary is requested. - Bourne Shell: Several #ifdef SIG* have been added to make it compile on older UNIX versions. Thanks to a hint from Albert Wik. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.11 2020/07/17 11:34:59 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-08-12.tar.bz2) = dbfff482d6c3f0cfbfaf3a43989cbf91f3e0402b RMD160 (schily-2020-08-12.tar.bz2) = 5e5f5e6ba8ba271c9b54e9eaf4eebf3e89b44dcf SHA512 (schily-2020-08-12.tar.bz2) = 2b86408107bcc0d928e9b3596be9da98f5e711df42b0d329f2bc91d35e191675ad3d297d8314ba2000ef6687f796b3115fd4de196da56314e7b5e452445ad3d3 Size (schily-2020-08-12.tar.bz2) = 4850267 bytes @ 1.11 log @shells/pbosh: Update to 20200701 Take maintainership. Changelog from AN-2020-07-01: - Bourne Shell: A command like bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var' Did not print "value" as expected, but rather bosh: 3: bad file number This is related to the fact that curly brackets do not have an own binary node type in the parsed output and the recursive parser from the $(cmd) execution needs to reconstruct the text form of a command tree. As a result, the command has been translated into: bosh -c 'var=$( echo value >&3 3>&1); echo $var' and this caused the observed problem. Note that this basic problem may not be finally fixed, so please report in case that other commands with curly brackets together with $(cmd) cause problems. Thanks to Koichi Nakashima for reporting. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.10 2020/06/05 17:26:43 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-07-01.tar.bz2) = 7653c8b99d1aebe85337df681aae8ec1352c1ac1 RMD160 (schily-2020-07-01.tar.bz2) = 4c7989eb95cff9a4bdd5f521b95135902912ab8d SHA512 (schily-2020-07-01.tar.bz2) = 512f0c3488bde5812d2011b2c1b1f308b9c139331a16c40fc0b61983fd8ff26d60845ddc8adc4d5bf651405cde786e63de61a473a1c658d08e5a8fdf949312d6 Size (schily-2020-07-01.tar.bz2) = 4828878 bytes @ 1.10 log @shells/pbosh: Update to 2020-05-25 - Use OS specific helper code from devel/smake/Makefile.common Changes from AN-2020-05-25: - libmdgest: Added a "defined(_M_ARM)" check for MSVC byte order definitions (byte_order.h). Thanks to "Excalibur" for reporting. - Bourne Shell: The support for the OLDPWD environment has been moved from DO_SYSPUSHD to DO_POSIX_CD and as a result, the minimal POSIX compile variant "pbosh" now supports "$OLDPWD" and "cd -". This was based on a bug in the POSIX standard that did not include OLDPWD in the overview of shell environment variables. See https://www.austingroupbugs.net/view.php?id=1343 Thanks to Koichi Nakashima for reporting @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.9 2020/05/12 09:06:39 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-05-25.tar.bz2) = ba4f353ab3c3ecded4c417e8601f6986717508a9 RMD160 (schily-2020-05-25.tar.bz2) = 56f9a9812f26ff80699bb1e5ed299e24a724ff18 SHA512 (schily-2020-05-25.tar.bz2) = 73079c7c9c724911af10e641dfd82fb900c434c59a1d30fa34ac69f7f3e31dfe050cf718621574ce54cf5eb7189f32a5894fe070115c7eabc13c65e00b010b3b Size (schily-2020-05-25.tar.bz2) = 4794851 bytes @ 1.9 log @pbosh: Update to 2020-05-11 tbl of NetBSD does not work, install man page with unprocessed tables as workaround. Changes from AN-2020-03-11: - configure: The autoconfiguration now has an enhanced test for waitid() that was needed since Mac OS is still not POSIX compliant and returns 0 instead of the signal number for a process that has been killed by a signal. MacOS did pass the POSIX certification as a result of a missing test for that problem. Since every vertified OS needs to run an annual refresh the certification with recent versions of the test, I guess that Mac OS (Catalina updates) may become more compliant witin a year. - psmake: The portable bootstrap compile environment for smake missed a symlink for unsetenv.c to libschily since the related code has been moved to libschily in 2018. This prevented compilation on IRIX. Thanks to Kazuo Kuroi for reporting - libshedit: mystdio.h now calls #undef sprintf and #undef snprintf before redefining the names. This avoids clang warnings on MacOS. - Bourne Shell: set -m now works in scripts as well. Before, bosh did never call startjobs() when the shell startup was done with a shell script. - Bourne Shell: The shell now supports the alternate ;& switch command limiter in addition to ;; where ;& implements a fallthrough to the next command list regardless on thether there is a match or not. - Bourne Shell: The file xec.c has been reindented for the "case" support code in the interpreter. The indentation is now one tab less so code becomes more readable. - ved/bsh/bosh: map.c now includes better command for the routines that implement fallback to some basic mapping when no user defined mapping has been set up. Changes from AN-2020-03-27: - Bourne Shell: The case statement now supports the alternate end case symbol ";;&" that has been introduced by bash. If ";;&" is used instead of ";;", the next pattern list is evaluated and if there is a match, the related command list is executed. Changes from AN-2020-04-18: - Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused some of our unit tests to fail. We now only check for "bin/ls" and no longer for "/bin/ls" in "type" return messages. - Bourne Shell/bsh: signames.c has been modified to work correctly if the number of statically defined realtime signals is odd. This applies to NetBSD and caused the shells to miss RTMIN+15 on NetBSD. Thanks to Robert Elz for reporting - Bourne Shell: A new trap code "ERR" as been introduced. This is modeled after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called whenever a command causes a non-zero exit code. The "cmd" is not called in case that with "set -e" the shell would not exit. This is not required by POSIX but helpful. - Bourne Shell: A new set of unit tests for the ERR trap has been added. - Bourne Shell: An attempt to fix the POSIX behavior for set -e from October 2018 has been identified to be wrong. If we kept that change, a list with "set -e; ..." and a failing command would not exit as expected. - Bourne Shell: A new piece of code has been added to handle set -e for function calls. - Bourne Shell: The man page now better explains the behavior, if in set -e mode. - Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with "unprintable" multi byte UNICODE characters that are printed as list of octal escape sequences. the buffer overflow happened because there was only redzone space for one such octal escape sequence. Thanks to Heiko Eißfeldt for reporting Changes from AN-2020-05-11: - Makefile system: A new version of the BSD make (bmake) program fixed a bug in pattern macro substitution, so we are now able to detect BSD make and to read BSD make program specific rules. This could in theory allow us to support BSD make in the future, but... Note that we on the other side discovered a new bug with pattern macro substitution in bsd make: The substitution: $(FOO:%=bar/%) is replaced by "bar/" with an empty "FOO", but of course, with an empty FOO, the substitution should be empty as well. This second bug (above) was fixed on May 6th, but we do not yet have all needed make rules and we do not know whether other bugs may still prevent the usability of BSD make. Supporting BSD make will be hard as BSD make does not support pattern matching default rules and this is important for placing the .o files into a sub-directory. Also note that the portable program source for "bmake" from "pkgsrc" is 2 years old and thus currently cannot be supported at all. If you like to experiment on your own, you need to get this version: http://crufty.net/help/sjg/bmake.html see http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz and replace the newer files from the netbsd.org CVS tree by hand in order to fix the first and second mentioned pattern macro substitution bug. - Makefile system: RULES/MKLINKS was enhanced to create a new symlink RULES/r-bsdmake.tag that points to RULES/r-make.tag - Makefile system: The archive makefiles.tar.bz2 has been added to the schilytools tree to allow easy reuse of the makefile system for own projects. - Bourne Shell: The unit tests for the new ERR trap did not work on Solaris because /bin/false on Solaris causes an exit code of 255. We now only check for an exit code != 0. - Bourne Shell: Some of the unit tests for the trap command are now only run in case that the SUT is "bosh". - Bourne Shell: set -- now checks the '\0' character at the end of the string "--". This fixes strange behavior with argument strings that start with "--". - Bourne Shell: Added a new flag XEC_INFUNC to the xflag parameter to mark the fact when inside a function. - Bourne Shell: set -e no longer causes commands with nonzero exit code to abort inside a function in case that the return code of that function is evaluated by e.g. an "if" statement. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: $- may no longer be partially wrong (and miss the state of the -e flag). Thanks to Koichi Nakashima for reporting - Bourne Shell: under some rare conditions, the syntax tree -> cmdline converter could omit a command delimiter. This was the result of the fact that a helper variable "didnl" (used for codeoutput beautifying) was not reset in func.c and thus could cause printf a ; printf b to print "aprintf b" instead of "ab" Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: A command like: command | while read name; do loopcmd; done did stop after the first loop because "read" did then read from stdin instead of using the pipe file descriptor. This happened only of "loopcmd" was not a shell builtin. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: When we added support for ${var+value with spaces} 4 years ago, we forgot to enhance the lexer the same way for things like "${var+value with spaces}" and "${var+"value with spaces"}". This has been forgotten, because a different part of the lexer is used to parse that kind of quoted strings. The lexer now supports looking for closing '}' in quoted text as well. Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: The expression "${var1#"$var2"}" has been introduced by ksh88 with strange rules for the way the double quotes past # are handled. We now support them.... Thanks to Koichi Nakashima for reporting - Bourne Shell: A unit test for the above bug has been added. - Bourne Shell: Some unit tests from "mksh" (that previously have been disabled) have been enabled, since the two changes above now make the Bourne Shell behave like "mksh" for these 6 additional tests. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.8 2020/04/18 15:54:40 kre Exp $ d3 4 a6 4 SHA1 (schily-2020-05-11.tar.bz2) = 1992e23344880fb58443c5b89b24fded4039f7a7 RMD160 (schily-2020-05-11.tar.bz2) = bdf3ac0349f00095d7e17f1b14a07f6dcb94a0e2 SHA512 (schily-2020-05-11.tar.bz2) = a12f0a3caa14c35af150afb4354fbe7c5b1d6ad301d24efbed6f0ec7c38919fe2bf863a117d46107178d11f60b9dd93f72f173c722e2e129d86d348b01fc56ee Size (schily-2020-05-11.tar.bz2) = 4783976 bytes @ 1.8 log @ Updated shells/{,p}bosh to 2020-04-18 (devel/smake and archives/star probably could do with an update). Bosh changes (we skipped 2 intermediate releases): New features with AN-2020-03-11: - Bourne Shell: set -m now works in scripts as well. Before, bosh did never call startjobs() when the shell startup was done with a shell script. - Bourne Shell: The shell now supports the alternate ;& switch command limiter in addition to ;; where ;& implements a fallthrough to the next command list regardless on thether there is a match or not. New features with AN-2020-03-27: - Bourne Shell: The case statement now supports the alternate end case symbol ";;&" that has been introduced by bash. If ";;&" is used instead of ";;", the next pattern list is evaluated and if there is a match, the related command list is executed. New features with AN-2020-04-18: - Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused some of our unit tests to fail. We now only check for "bin/ls" and no longer for "/bin/ls" in "type" return messages. - Bourne Shell/bsh: signames.c has been modified to work correctly if the number of statically defined realtime signals is odd. This applies to NetBSD and caused the shells to miss RTMIN+15 on NetBSD. Thanks to Robert Elz for reporting - Bourne Shell: A new trap code "ERR" as been introduced. This is modeled after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called whenever a command causes a non-zero exit code. The "cmd" is not called in case that with "set -e" the shell would not exit. This is not required by POSIX but helpful. - Bourne Shell: A new set of unit tests for the ERR trap has been added. - Bourne Shell: An attempt to fix the POSIX behavior for set -e from October 2018 has been identified to be wrong. If we kept that change, a list with "set -e; ..." and a failing command would not exit as expected. - Bourne Shell: A new piece of code has been added to handle set -e for function calls. - Bourne Shell: The man page now better explains the behavior, if in set -e mode. - Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with "unprintable" multi byte UNICODE characters that are printed as list of octal escape sequences. the buffer overflow happened because there was only redzone space for one such octal escape sequence. Thanks to Heiko Eißfeldt for reporting @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.7 2020/03/04 11:44:13 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-04-18.tar.bz2) = e03a271be57ff865cbf0a7a4c92f415b5e798072 RMD160 (schily-2020-04-18.tar.bz2) = a4f57485c9616ab4d59c9577b3ab9b0e9576b55e SHA512 (schily-2020-04-18.tar.bz2) = 3b86155d3166f5fba93d1a4ea9a8649677212979ce70fdeaa048d954fc30b72f8c87fbb95f022718df27049c51ea277eacac0a179da7c6652fff4038b0fe9f39 Size (schily-2020-04-18.tar.bz2) = 4457840 bytes @ 1.7 log @pbosh: Update to 20200211 New features with AN-2020-02-11: - Bourne Shell: now also using GETOPT_PLUS_FL - Bourne Shell: A new variable ${.sh.path} returns the absolute path of the binary associated to the exec() for this shell. - Bourne Shell: The definition of NUMBUFLEN was moved from print.c to defs.h to allow others to write into numbuf, knowing it's length. - Bourne Shell: The archive sh/dotfiles.tar.bz2 now contains an updated .shrc file that makes use of the new shell variable ${.sh.path} - Bourne Shell: "for i in; do cmd ...; done" is now valid syntax even though this is useless, since bosh did already accept: "for i in $emptyvar ; do cmd ...; done" But this is in the POSIX standard and other recent shells seem to accept it. Thanks to Robert Elz for reporting - Bourne Shell: Added a new conformance test for the for loop - Bourne Shell: The call "bosh -version" now prints 2020... - Bourne Shell Missing features for POSIX compliance: - Support for $'...' quoting (this is not needed for the current version of POSIX but for the next POSIX version that will be named SUSv8). The development of SUSv8 will start in late 2016. We are now expecting the Bourne Shell to be fully POSIX compliant. - libschily: new man pages starthandlecond.3 and unhandlecond.3 - libschily: handlecond.3 and raisecond.3 now correctly mention handlecond() & raisecond() instead of handle()/raise(). The old names from 1980 had to be renamed because os an unfriendly actt from the C standard commitee. Thanks to Eric Ackermann for reporting as a side effect of a code review for SchilliX-ON - libschily: various small fixes in various man pages from libschily. Thanks to Eric Ackermann for reporting as a side effect of a code review for SchilliX-ON [...] - Bourne Shell further TODO list: - Finish loadable builtin support. - POSIX does not allow us to implement ". -h", so we will add a "source" builtin to be able to implement "source -h" - The following builtins (that are available in bsh) are still missing in the Bourne Shell: err echo with output going to stderr glob echo with '\0' instead of ' ' between args env a builtin version of /usr/bin/env The following bsh intrinsics are still missing in the Bourne Shell: - the restricted bsh has restriction features that are missing in the Bourne shell. - source -h read file into history but do not execute and probably more features not yet identified to be bsh unique. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.6 2020/01/10 12:45:00 micha Exp $ d3 4 a6 4 SHA1 (schily-2020-02-11.tar.bz2) = da1dfe59c6b2a937b8dba2d4476db2ca8525a646 RMD160 (schily-2020-02-11.tar.bz2) = fe18d25ecdab9e2d7b587cce52cd745bd388ff6a SHA512 (schily-2020-02-11.tar.bz2) = 655a67cdc9387d79a077d44f11dacf2d5479da8b7bf4c59fb8a5fbf58ef23988f2a7aff23b3aec5ab7ac99541ea3439ddd55b53fc0e1d88efe601390161832c7 Size (schily-2020-02-11.tar.bz2) = 4360092 bytes @ 1.6 log @shells/pbosh: Update to 20191205 Based on Schily Tools Release 2019-12-05. AN-2019-11-11: - libschily: the new functions wcastoi wcastol wcastolb that have been added with the previous release have been forgotten in the linker map file. AN-2019-12-05: - include/schily/stdio.h: We no longer define getc_unlocked() on Solaris in case that it is defined already. This was needed since Oracle Solaris 11.4 compiles 64 bit by default and made stdio less opaque than before - this result in the same bahavior as for 32 bit programs. This means, we no longer need to use tricks to get fast access to stdio. Thanks to Rolf Dietze for reporting. - libschily: the function getargs() and similar (from the option parser group) fixed a bug that prevented the usability of the official method to include the char '+' inside option names by quoting the character in the option name used in the format string. This bug has been fixed in order to be able to support "star -dump+ ..." - libshedit: because of the changes in Oracle Solaris 11.4, we need to #undef FAST_GETC_PUTC in order to avoid to use getc_unlocked(). Thanks to Rolf Dietze for reporting. - Bourne Shell/bsh: */hashcmd.c did not handle a malloc()ed string correctly and could cause a memory leak with hash commands that do not add new aliases. We now create a copy using make()/makestr() before calling ab_push() or ab_insert() and always free "name" at the end of the function hashcmd() - Bourne Shell: The man page now documents that the command "set -o hashcmds" inside the file $HOME/.shrc makes a # on the fist column of that file and followed by a non-space character, no longer a comment.. It is thus recommended to have "set -o hashcmds" close to the. bottom of the file $HOME/.shrc @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.5 2019/11/08 14:26:13 micha Exp $ d3 4 a6 4 SHA1 (schily-2019-12-05.tar.bz2) = cb7ea1133284955cba7023e2f0a296c53567743e RMD160 (schily-2019-12-05.tar.bz2) = 112011d7fa6f912802fc4458095dbf37d402dcb4 SHA512 (schily-2019-12-05.tar.bz2) = af16031fcc6345135d29d2dad2d30b85621e9959886843f393bf1ee51387bdbce9319e305bd58173c040995e1ce1c3325d34f9630712ccb618daa69470c249ef Size (schily-2019-12-05.tar.bz2) = 4360719 bytes @ 1.5 log @shells/pbosh: Update to 20191025 Based on schilytools release from 2019-10-25. Changelog ========= - include/schily/wchar.h: Some fallback definitions for mbsinit() mbrtowc() wcrtomb() have been moved to make them always visible and not only in case that exists. - include/schily/wchar.h: Before, we checked for HAVE_ISWPRINT to catch the HP-UX-10.20 case where wchar_t is in stdlib.h. Now we check (SIZEOF_WCHAR == 0 || SIZEOF_WCHAR_T == 0) as this works on Ultrix as well. - libgetopt: The getopt() function now supports options in the form: +o, ++long-option or +long-option if the optstring starts with a '+'. A new exported variable "optflags" has the bit "OPT_PLUS" set, in case that an actual option starts with '+'. If more than one of the flag characters ':', '+' or "()" are used, "()" must be last. - Bourne Shell: The testsuite no longer tries to check ISO-8859-1 strings as we cannot set this up reliably on all platforms and as Mac OS does not allow to create the related filenames. - Bourne Shell: The getopts(1) builtin command now supports options in. the form: +o, ++long-option or +long-option if the optstring starts with a '+'. The shell variable "$NAME" has a leading '+' in case that an actual option starts with '+'. Note that this makes getopts(1) in the Bourne Shell compatible at shell script level to the extensions in the getopts(1) implementation in ksh93 for: -o/+o Short options with either a leading - or + --long GNU style long options as aliases to short -o options ++long GNU style long options as aliases to short +o options Our enhancements to support: -long UNIX style long options as aliases to short -o options +long UNIX style long options as aliases to short +o options - Long options the have no related short option Are not supported by ksh93. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.4 2019/10/24 17:08:02 micha Exp $ d3 4 a6 4 SHA1 (schily-2019-10-25.tar.bz2) = 2e32420f66700db63973414ba3b8cd1d1c4ba718 RMD160 (schily-2019-10-25.tar.bz2) = 17d5542ec62165dacf7a82e5bba8335f16508de0 SHA512 (schily-2019-10-25.tar.bz2) = c2f98bee65dc4c49a06f9a5795e11e17754c2869a18fc046d134ce83461fe3598ada1eae471a6b171542adddf2931d4d6e32b1d627a28f897e5e3dcc34b25149 Size (schily-2019-10-25.tar.bz2) = 4412486 bytes @ 1.4 log @shells/pbosh: Update to 20191007 Based on SchilyTools Release from 2019-10-07. Changelog ========= - configure: Some shells report a syntax error with "< file (cmd)" and need the redirection statement to be *after* the command. Our changes to support the V7 shell by adding round braces caused ash variants like "dash" to fail. Thanks to Harald van Dijk for reporting - cont/cc-config.sh: canged some :>some-file statements into (:)>some-file. they have meen missed when introducing work arounds for the V7 Shell on Ultrix that does not support I/O redirection for builtin commands. Thanks to Robert Clausecker for reporting - libschily/comerr.c: If the environment COMERR_EXCODE has been set to a value that starts with '0', the normal exit code mapping is switched off, but all potential exit code values != 0 that follow the rule (excode % 256) == 0 are mapped to -64. This helps to avoid unexpected behavior with historic shells that still use the old waitpid() and modern shells (using waitid() but in a backward compatible default mode) where a program that terminates with exit(256); is evaluated in conditional statements as if the exit code was 0. - Bourne Shell: Missing Makefile.dot added. - Bourne Shell / bsh / ved: The dotdiles TAR archives are now again named */dotfiles.tar.bz2 as the change in the previous release caused problems. Thanks for Gabriele Balducci balducci@@units.it and Robert Clausecker for reporting - Bourne Shell: Cstyle changes (long lines removed) in io.c & expand.c - Bourne Shell: Fixed a bug that prevented to forward the special exit cause (NOTFOUND or NOEXEC) to the vfork() parent process via. struct siginfo.si_code in some cases. These values are added beyond the POSIX CLD_* values in siginfo.si_code from the POSIX standard. They are passed back from the vfork()ed child to the parent via the shared memory from the vfork() implementation. - Bourne Shell: introduced shared memory to be able to forward the special exit cause (NOTFOUND or NOEXEC) to the parent even in case it used fork() instead of vfork(). - Bourne Shell: Added support for a new automatic parameter "$/" to complement the existing parameter "$?". This is a result from a discussion in a POSIX teleconference from April 2016. This new parameter returns *decimal numbers* for a normal command termination and *text* for abnormal command termination: number<>Exit code from normal termination. This is a signed 32 bit value from the exit() parameter on POSIX systems and a 8 bit value on pre-POSIX systems like Linux. signame>A signal name (see kill -l) if the command has been terminated by a signal. This is the signal name with the leading "SIG" stripped off. NOEXEC<>The command was found but could not be executed, e.g. as a result of missing permissions or because the name points to a directory. NOTFOUND The command could not be found. Note that currently, the strings "NOEXEC" and "NOTFOUND" are passed back reliably from vfork(2) childs or when the related state is already known by the cache. In other cases, the reliability of $/ with respect to "NOEXEC" and "NOTFOUND" has not yet been verified. It thus may return 126 or 127 as with $?. The string values "NOEXEC" and "NOTFOUND" cannot be passed back from a subshell, using only the waitid() mechanism. To circumvent that problem, from fork()ed subshells,. shared memory or non-fork()ed virtual subshells would work. If you detect a complex command where you get 126 or 127 instead of the exoected "NOEXEC" or "NOTFOUND", please send a report. We for now choose to use shared memory as this is easier to implement. Later versions will mosy likely implement virtual fork()less subshells. - Bourne Shell: minor Cstyle changes on word.c and macro.c - Bourne Shell: New version date @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.3 2019/10/04 14:07:55 micha Exp $ d3 4 a6 4 SHA1 (schily-2019-10-07.tar.bz2) = d9d901bb737bdeb3242aee92259955d7da17e684 RMD160 (schily-2019-10-07.tar.bz2) = 23c47c0e0d85ce051cb9946718fc6bb87de6977c SHA512 (schily-2019-10-07.tar.bz2) = 9d2ce93c104c1027fe96371929b7f78351248b2c73200b7762c7ce5b38ba680f0e8dae7d90d5ce83184a77a5d378890361f4b5c57383f601d0f11aafae5e430f Size (schily-2019-10-07.tar.bz2) = 4404621 bytes @ 1.3 log @pbosh: Switch to latest distfile. Changelog ========= Release 2019-03-29: - Bourne Shell: local(1), export(1) and readonly(1) now all support to. expand the '~' character in environment variables like e.g. PATH. - Bourne Shell: Added unit tests for the tilde expansion and the related changes. Release 2019-04-29: - libshedit/bsh/Bourne Shell: The TAB file name expansion now uses a new expansion funtion that is not based on pattern matching but on strstr() and thus is no longer fooled by file names that contain pattern matching meta characters. - Bourne Shell: "trap -- ..." now correctly handles "--" even if the next argument is "-". - Bourne Shell: trap now supports a new option -p that allows to restore the whole trap state using the following commands: old_traps=$(trap -p) trap "some commands" INT QUIT ... eval "$old_traps" This is possible because "trap -p" outputs the state for all signals and not only for those signals that are not in the default state. The new trap interfase was agreed on in the 2019-04-11 POSIX teleconference. Bourne Shell: The exception for "while true; do date; done | uniq -c" in job control handling that has been introduced in November 2015 has been refined to prevent it from causing "(bosh)" to stop from SIGTTIN. Thanks to Robert Elz for reporting. - Bourne Shell: A new #define JOB_DEBUG has been added. - Bourne Shell: The command: (trap '' SEGV; $SHELL -c 'kill -s SEGV $$; echo survived') caused the shell not to print "survived" because a previous exception for SIGSEGV from the 1977 Bourne Shell version had not been removed for the POSIX variant of the shell. The problem occured because it was possible to unignore an ignored (at startup) SIGSEGV. Thanks to Robert Elz for reporting. - Bourne Shell: The code now uses SIG2STR_MAX for the size of the sig2str() output buffer. - Bourne Shell: the behavior related to SIGINT on the command line in the case that the history editor is enabled has been changed to match the behavior of ksh. The Bourne Shell now calls trap commands for SIGINT when ^C is typed on the command line. Note that the classical Bourne Shell behavior (which is still active in case the history editor has been disabled via "set +o ved") is that the trap command is called after ^C is followed by a CR if both are typed on a PS1 prompt. Note: The behavior for "trap" in this area is currently not specified in POSIX. - Bourne Shell: After jobcontrol has been introduced into the Bourne Shell: When in jobcontrol mode, the shell could no longer get signals at the same time as foreground jobs because when using jobcontrol, the shell is in a different process group than the foreground job. The Bourne Shell now derives the information about a delivered signal from the waitid() return data and thus is now able to work the same way as it has been designed in 1977. This is the same way as ksh works. If a foreground program catches such signals, the shell is still not able to detect the signal, but it is now closer to the original behavior from 1977. - Bourne Shell: new version date 2019-04-17 Release 2019-05-28: - Bourne Shell: Similar to what ksh88 does, scripts are now checked before they are run. If there is a nul byte before a newline in the first 256 bytes, a file is rejected as alien binary instead of trying to interpret it as a script. Release 2019-06-13: - Bourne Shell: A new option "set -o globskipdot" has been added. If set, the entries "." and ".." are skipped and not shown in globbing results. If not set, the entries "." and ".." are always returned, even when they are not part of the readdir(3) results. - Bourne Shell: The option "set -o globskipdot" has been made the new dfault behavior for "bosh", but not for "pbosh" Note that this new shell option has been introduced as a result of a related BUG discussion in the Austin Group telephone conference. The background is to permit shell scripts to check whether a shell grants to hide the "." and ".." for all filesystems. Release 2019-07-15: - Bourne Shell: If OPTIND is set to a new value, the getopt() internal variable "_sp" is now reset to 1. This is needed in order to make sure that a combined option string can be parsed correctly. - Bourne Shell/libshedit/bsh: The TAB expander now again gives .. as a. result if the pattern is .. This is needed in order to let ..TAB result in ../ on the command line editor. Release 2019-09-22: - Bourne Shell: The new function isbinary() that has been introduced in May and that should prevent the shell from interpreting binary files as shell scripts had a problem: In case that a disconnected TCP/IP based remote login caused a SIGTERM followed by the read() function on stdin returning EIO, the shell could go into a complex endless loop as the failing read() with "trapnote" set caused a longjmp() before the next prompt without first clearing "trapnote". As a result, the shell did hang endlessly around while just consuming CPU time. The shell now avoids to call the read() routine inside isbinary() when "trapnote" is set and this way is able to avoid the longjmp() on error. - Bourne Shell: Fixed some typos in comment Thanks to Robert Clausecker for reporting - Bourne Shell: print.c: Changed err++ for a BOOL typed variable into err = TRUE. Thanks to Robert Clausecker for reporting - Bourne Shell, with obosh compilation type: Avoid an "unused" warning with word.c - Bourne Shell: defs.h now includes an "extern int optopt;" in order to support Ultrix where this delcaration is missing in unistd.h. Thanks to Robert Clausecker for reporting - bsh/Bourne Shell: test.c Now using a #if defined(S_IFPORT) && S_IFPORT != S_IFIFO to work around a strange definition on Ultrix Thanks to Robert Clausecker for reporting - Bourne Shell: New version date @ text @d1 1 a1 1 $NetBSD$ d3 4 a6 4 SHA1 (schily-2019-09-22.tar.bz2) = 5ab0f574cca9f89a225948b3df2918fccc7f06e2 RMD160 (schily-2019-09-22.tar.bz2) = 70fb7b2b66e85cac7cd94bb6ef92b5ed1cdce2c0 SHA512 (schily-2019-09-22.tar.bz2) = 83eecb7644ca720a3b1cae69481202a83ff8bf602bf6c0f8bab96f58402adc53fe142802c0d725c63f5109ec4875d99e8f93842fed7efa77d3e23c5cfc97d9e3 Size (schily-2019-09-22.tar.bz2) = 4460891 bytes @ 1.2 log @pbosh: update to 20190311. Update provided by Michael Bäuerle via pksrc-wip. Changelog ========= Release 2019-02-18: - libgetopt: The undocumented variable "_sp" from SVr4 has been renamed to "opt_sp" and (on platforms that support "#pragma weak") there is a weak reference _sp to that new variable, giving backwards compatibility. The reason for doing this is to make sure that people on Illumos or Oracle Solaris, who still have an outdated version of getopt() in their local libc, do not try to link the Bourne Shell only against their old getopt(). If they did this, they would not get the documented enhanced getopt() features from the Bourne Shell. - Bourne Shell: The shell now uses "opt_sp" as the name for the undocumented additional getopt() interface from AT&T. This has been done to avoid being able to link the Bourne Shell on Illumos or Oracle Solaris without using our libgetopt. If this was done, we could not support UNIX/MULTICS style long options and we could not support -help/--help, since the latter is implemented via long options that are not an alias to short options. - Bourne Shell: added a new timestamp to the Bourne Shell version. Release 2018-11-21: - Bourne Shell: make it exit the whole shell with set -e after a command substitution failed on the right side of a variable assignment that has no command. This is required by POSIX. - Bourne Shell: added a unit tests for the above case. - Bourne Shell: New version date set to 2018-12-08 the this change. Release 2019-01-22: - bsh / Bourne Shell / star: the function hop_dirs() no longer checks for p2 != NULL before calling *p2 = '/' as p2 has been granted to be != NULL from a break with strchr(p, '/') == NULL Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Added a missing /* FALLTHROUGH */ comment.. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: added a range check for $OPTIND to tge getopts(1) implementation Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Removed a nonsense variable in expand() that caused Coverity not to understand that a directory was correctly closed() Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Added a paranoia comparison to make Coverity quiet. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: avoid to call catpath() with a NULL pointer for path Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: check the write() return code in io.c Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Added a paranopia check for "test -o" to make Coperity quiet. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Added (void) before fcntl() in hope to make Coverity quiet. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Removed dead code from readwc() Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: Cstyle changes to xec.c - Bourne Shell: "builtin -d ..." did access free()d memory. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: expand.c: added a check for fd == -1 to avoid calling openat() with that fd. Thanks to Pavel Raiskup for poiting to a related Coverity message. -Bourne Shell: func.c: added a check for fd == -1 to avoid calling read()/close() with that fd. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: jobs.c: enlarged a buffer to be of same size as numbuf[] to avoid a potential buffer overflow. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: print.c::prt_cntl() had a very old (AT&T) bug with printing byte sequences that get an error with mbtowc() and it did not print byte sequences correctly that refer to legal but "nonprintable" multi byte characters. Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: xec.c: the reserved word "time" could cause to access uninitialized memory if the string in $TIMEFORMAT contains the format %J Thanks to Pavel Raiskup for poiting to a related Coverity message. - Bourne Shell: xec.c: added a paranoia check on whether findnam("funcname") returns NULL even though the existence of a function with that name already has been verified via the hash service. Thanks to Pavel Raiskup for poiting to a related Coverity message. Release 2019-02-18: - Bourne Shell: Another vfork() problem has been fixed. "trap cmd EXIT" has incorrectly called "cmd" after a non-existing command was. called by the shell. This was a result of the shared data from vfork(). Thanks to Martijn Dekker for reporting. - Bourne Shell: A unit test case for the above bug has been added. - Bourne Shell: __growstak() now always uses realloc() on modern platforms. This may speed up things up to 15%. Thanks to Jan Engelhardt for reporting. Release 2019-03-11: - libgetopt/Bourne Shell: added an #ifndef __CYGWIN__ in order to avoid overwriting non-standard definitions by standard definitions on Cygwin for the global getopt() variables. Thanks to Heiko Ei[eszett]feldt for proposing this fix. - Bourne Shell: better comment in bltin.c @ text @d3 4 a6 4 SHA1 (schily-2019-03-11.tar.bz2) = e3441506ec8bfaed1e55e09208d7054c728c8f57 RMD160 (schily-2019-03-11.tar.bz2) = 49a4d8dc73ab1c1a66db655470c37d29c77d24f1 SHA512 (schily-2019-03-11.tar.bz2) = 04f289c08b2cd6c1954600796798642ac6228dd61fbb37abeff400cbb3a30eeb481c8b6e51fa77dc506329947a4dd04021fe553516286055d586a31834e4cd98 Size (schily-2019-03-11.tar.bz2) = 4289082 bytes @ 1.1 log @shells/pbosh: import pbosh-20181030 Packaged for wip by Michael Bäuerle. The Schily Bourne Shell The Schily Bourne Shell was derived from the Bourne Shell sources from OpenSolaris. The Schily Bourne Shell is actively maintained and enhanced on a regular base. It can be compiled into three variants: - The non-POSIX SVr4/OpenSolaris variant (obosh) - The minimal POSIX compliant variant (pbosh) - The POSIX compliant extended variant (bosh) This package contains the second variant. @ text @d3 4 a6 4 SHA1 (schily-2018-10-30.tar.bz2) = 2c70cd99d732c70193577d61793c32399fcc7378 RMD160 (schily-2018-10-30.tar.bz2) = f5a843cde89f3e5d54b1925da288fab97990d3eb SHA512 (schily-2018-10-30.tar.bz2) = 72765d11eff52f744a707605a53365da69037c3d982c7b8f4cee98f109f856ee28af3420f63c3fe5a7890649c4eb0fa4dd69d367b7ec41026f288d6237c98d96 Size (schily-2018-10-30.tar.bz2) = 4311065 bytes @