Hello community, here is the log from the commit of package schily for openSUSE:Factory checked in at 2020-10-12 13:46:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/schily (Old) and /work/SRC/openSUSE:Factory/.schily.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "schily" Mon Oct 12 13:46:27 2020 rev:36 rq:840751 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/schily/schily.changes 2020-09-25 16:23:29.939463462 +0200 +++ /work/SRC/openSUSE:Factory/.schily.new.3486/schily.changes 2020-10-12 13:46:38.577904950 +0200 @@ -1,0 +2,12 @@ +Fri Oct 9 22:54:57 UTC 2020 - Jan Engelhardt <[email protected]> + +- Update to release 2020.10.09 + * 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. + * Bourne Shell: The exit code from background jobs is now kept + until the builtin wait(1) is called. + +------------------------------------------------------------------- Old: ---- schily-2020-09-22.tar.bz2 New: ---- schily-2020-10-09.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ schily.spec ++++++ --- /var/tmp/diff_new_pack.9ZsJkP/_old 2020-10-12 13:46:40.269905638 +0200 +++ /var/tmp/diff_new_pack.9ZsJkP/_new 2020-10-12 13:46:40.273905640 +0200 @@ -17,14 +17,14 @@ # grep -Pir 'define\s+VERSION|strvers' -%global box_version 2020.09.22 +%global box_version 2020.10.09 %global cdr_version 3.02~a10 %global sccs_version 5.09 %global smake_version 1.3 %global star_version 1.6.1 %global libfind_version 1.8 %global ved_version 1.7 -%define rver 2020-09-22 +%define rver 2020-10-09 Name: schily Version: %box_version ++++++ schily-2020-09-22.tar.bz2 -> schily-2020-10-09.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/AN-2020-10-09 new/schily-2020-10-09/AN-2020-10-09 --- old/schily-2020-09-22/AN-2020-10-09 1970-01-01 01:00:00.000000000 +0100 +++ new/schily-2020-10-09/AN-2020-10-09 2020-10-09 12:27:55.000000000 +0200 @@ -0,0 +1,389 @@ +New features with AN-2020-10-09: + +This is the first localization step for the schily source consolidation. Many +programs now (hopefully) call gettext() for all strings that need localization. + +- The next step will include dgettext() calls for the libraries and the + missing programs + +- The following step will include the extracted strings + +- The last step will include German translations and install support + for the resulting binary message object files. + +----------> Please test and report compilation problems! <--------- + +***** NOTE: As mentioned since 2004, frontends to the tools should ***** +***** call all programs in the "C" locale ***** +***** by e.g. calling: LC_ALL=C cdrecord .... ***** +***** unless these frontends support localized strings ***** +***** used by the cdrtools with NLS support. ***** + + *** WARNING *** + *** Need new smake *** + + *** Due to the fact that schily-tools 2014-04-03 introduced to use new macro + *** expansions and a related bug fix in smake, you need a newer smake + *** to compile this source. If your smake is too old and aborts, ensure to + *** use the recent smake by calling: + + cd ./psmake + ./MAKE-all + cd .. + psmake/smake + psmake/smake install + + The new smake version mentioned above is smake-1.2.4 + The recent smake version is smake-1.3 + + *** Due to the fact that schily-tools 2018-01-26 introduced + *** optimizations for the Schily version of SunPro Make, you + *** need at least the dmake version from 2018/01/11 with support + *** for the "export" directive to compile with this makefile system. + + + WARNING: the new version of the isoinfo program makes use of the + *at() series of functions that have been introduced by Sun + in August 2001 and added to POSIX.1-2008. For older platforms, + libschily now includes emulations for these functions but + these emulations have not yet been tested thoroughly. + Please report problems! + + BUG WARNING: Please never report bugs only to Linux distributions as + they usually do not forward these bug reports upstream and as + the Linux distributions typically do not let skilled people + check the bugs. We did not hear about a FIFO problem in star + for a long time. Then a problem on Linux occurred once + every 6000-10000 tries but it did not happen on Solaris after + even 10 million tries, so it was not known besides Linux. + + BUG WARNING: *** GNU make *** starts too early with parallel + execution (when reading Makefiles and evaluating rules for + "include" statements already). Since GNU make does not + support a concept for a correct ordering of such actions, + you need to be prepared to see gmake fail in parallel + mode. If you are interested in reliable parallel execution, + it is recommended to use the included "dmake" program with + a command line like: + + dmake -j10 -f SMakefile + + from the top level directory. Note that if you are on Linux, + you need a halfway recent kernel or the compile time will not + go down because of the low POSIX semaphore performance in + older Linux kernels. + + The "dmake" program included in the schilytools tarball is the + current version of the "new" SunOS make program that has been + introduced in January 1986 by Sun Microsystems. It also + introduced new features like the "include" directive that + 3 years later have been copied by gmake in a partially buggy + way. As gmake does not fix showstopper bugs, it cannot be + supported. Current showstoppers are: 1) gmake executes + "include" related rules in the inverse order, causing rules + to fail if they depend on files created by an "earlier" action + 2) gmake caches an outdated state of the directory and aborts + with a wrong complain about allegedly missing files that in + fact exist already. + +- autoconf: Added support for newer HP-UX versions on Itanium. + + Thanks to Rudi Blom for reporting and making a change proposal. + +- libschily: getdelim() now always allocates a new line buffer if + line_size is 0 at entry of getdelim(). + +- udiff: replaced a call to mmap() by an assignment to "" in case that + the the file size is 0. This avoids the need to call seek()/getdelim() + for zero sized files, which is documented to fai. + +- udiff: reset a common line buffer to NULL if it's size is listed as 0 + before fcalling getdelim(). + + On FreeBSD 12 and 13, udiff dumped core when calling "udiff file empty" + and getdelim() from the new FreeBSD libc triggers the core dump, because + a previous getgelim() emulation in udiff.c from a mmap()d file did set + the line buffer to a value != NULL without allocating space and without + setting the size because that was set to a pointer from the mmap()d + area. + + Thanks to Nico Sonack for reporting + +- udiff: no longer calls mmap() if the file is not a regular file + because in that case, statbuf.st_size may not be correct if the object + is not a plain file. Named pipes e.g. list statbuf.st_size as 0 but + read() returns data. + +- SCCS: libcomobj: sethome.c: If sethome was called from the project home + directory and not from a subdirectory inside the project home directory, + sethome() did try to access buf[strlen(buf)]. This did not yet cause + any problems on Solaris or Linux and this still did not cause problems + on FreeBSD older than FreeBSD-13. On FreeBSD-13, the buffer (which is + on the stack) seems to have non-nul content past the end of the string + and thus bulkprepare() fails. We now introduced a special condition that + handles this case and that sets cwdprefixlen to 0 and cwdprefix to "" + in such a case. + + Thanks to Nico Sonack for reporting + +- SCCS: a new version date has been created. + +- 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: trap2str() is only needed with DO_POSIX_TRAP, so + make it #ifdefd to avoid a warning when compiling obosh. + +- Bourne Shell: a new version date has been created. + +- SunPro Make: The man pages now include a "SOURCE DOWNLOAD" + section. + + + +- SCCS: The current idea for converting a historic SCCS project into + a project oriented SCCS history bundle is the following: + + - Create a user map file for "sccslog" by calling: + + mkdir $HOME/.sccs + $EDITOR $HOME/.sccs/usermap + + Enter the UNIX login names followed by a TAB, followed + by an E-mail notation. Use one line per user, e.g. + + joerg J. Schilling <[email protected]> + + - Create a copy of the whole project to work on for this test. + Do not do this conversion on the original project until + sccs-6.0 is ready. + + - chdir to the project home directory of the just created copy. + + - Call "sccs init -i ." to make the project using an in-tree + project oriented repository. + + - Call: + + find * -path '*SCCS/s.*' | /opt/schily/ccs/bin/sccscvt -NSCCS/s. -k -ooo -V6 - + + for the CSRG BSD project use: + + find * -path '*SCCS/s.*' | TZ=US/Pacific /opt/schily/ccs/bin/sccscvt -NSCCS/s. -k -ooo -V6 - + + to convert all history files into SCCSv6 history files. The + TZ=US/Pacific is important for the UCB conversion since SCCSv6 + uses timezones but SCCSv4 does not and we need to have the + correct timezone entries in the SCCSv6 history files. + + For the complete "schilytools" project with 4200 SCCS history + files in 55 Mbytes, this takes 12 seconds for the SCCS history + from 1984 .. 2020, but note that most of the edits from the + 1980s are lost, so there are few entries from the time + before 1989. + + An alternate example: the SCCS history from the BSD-4.4 project + from December 1979 up to June 1995 is in 12600 SCCS history + files that take up 125 MB. + The conversion time to the SCCSv6 history file format is + 18 seconds. + + - Call: + + find * -path '*SCCS/s.*' | /opt/schily/ccs/bin/sccslog -changeset - + + to populate the changeset file from the existing deltas. + + For the complete "schilytools" project with 19600 commits, + this takes 8 minutes. The resulting file .sccs/SCCS/s.changeset + has a size of approx. 7 MBytes. + + An alternate example: the SCCS history from the BSD-4.4 project + from December 1979 up to June 1995 has approx. 47000 commits. + The conversion time is approx. 40 minutes. + The size of the resulting changeset file is approx. 14 MBytes. + + - convert the in-tree repository into an off-tree repository. + This final step is not yet needed and there is currently no + code to do that automatically. + + - If you like to check the resulting changeset file, there is + currently only one way to look at it, by calling: + + sccs -O get -p -A -m .sccs/SCCS/s.changeset | more + + This prints an annotated version of the changeset file. + The next task is to develop an enhancement to "sccs log" + that prints the changeset in a way similar to what "hg log -v" + prints. + + - NOTE: Normal filesystems on Linux are slow, it is advised to + make the conversions on tmpfs for performance reasons in case + you are using Linux. + + Please however keep in mind that this is still experimental and there is + absolutely no grant that a changelog created with current experimental + software will work correctly with the final SCCS version. The procedure + is just an example to check how it may look like. + + The final conversion method will be more automated... most likely + by a command similar to "sccs import ..." + + IMPORTANT: This is not yet the time to finally convert a project into + the project mode, because the project would be stuck in the current + state. What we need to continue work in that repository state in the + project mode is at least a working "sccs commit". Be prepared to remove + the changeset history file once "sccs commit" works and to re-create + the changeset file for that time. + + + +- SCCS TODO: + + - Activate "fsdiff" as a "bdiff" replacement in delta(1) + to speed up delta(1) and to reduce the size of the SCCS + history files. + + - Implement something that outputs similar information from + the changeset file as printed with "hg log -v". + + This would be the next key feature. + + - verify whether sccs.c uses -NSCCS in the back end programs + correctly, instead of converting g-file names from the command + line into s.file names in the frontend in order to forward + s.file names to the backend programs. This is needed for an + off-tree repository. + + The related unit tests are already passed. + + - Add code to to sccs(1) to send a list of files to admin(1) and + delta(1) with new or modified files in order to have all + important code for a "sccs commit" in a single program that + does not need to deal with ARG_MAX limitations. + + - Add code to admin(1), delta(1), sccs-log(1) and get(1) to + maintain/understand the changeset file. + + This is mainly writing out the sccschangeset(4) entries to an + intermediate store if a single file has been treated + successfully. For sccs-log(1), see below. + + - Finish the work to allow normal line based diffs in SCCS even + for binary files. This are files that include nul bytes and + this needs to completely avoid fputs() and this needs an + initialized member p_line_length in struct packet even for + all content that does not result from a previous getline() call. + + - sccs -R tell (and probably other subcommands?) does not yet + work in NewMode + + - Add code to libcomobj to understand the changeset file. + This is needed in order to e.g. know the file names and file + specific SIDs/state that corresponds to a project global SID. + + - Find/verify a complete transactional model that allows to repair + complex changes to the set of files for a project that have + been aborted in the middle. The current idea is to create the + file $PROJECTHOME/.sccs/changeset with the deltas to the + changeset during a complex update operation. + + - Find a decision on how to deal with the admin flags that are + currently implemented as global flags and thus do not depend on + the SID (version) if the history file. + + - Aborting a transaction via ^C currently requires a manual + removal of the global lock file. Find a way to avoid this in + case that a commit has been aborted while being prompted for + a commit message (which is before any real action happened). + + - Implement a fully automated method to convert a SCCSv4 based + history with unrelated history files into a new SCCSv6 based + project mode history with a populated changeset history file. + + This will most likely be done as a variant of the to be defined + new command "sccs sccsimport" that imports a whole existing old + SCCS project. + + - Implement this "sccs sccsimport" based conversion in a way where + sccs(1) holds the global changeset lock for the whole time + of the conversion. + + + + +- 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. + +- 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. + + + +Author: + +Joerg Schilling +D-13353 Berlin +Germany + +Email: [email protected], [email protected] + +Please mail bugs and suggestions to me. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/autoconf/config.guess new/schily-2020-10-09/autoconf/config.guess --- old/schily-2020-09-22/autoconf/config.guess 2020-08-23 13:12:06.000000000 +0200 +++ new/schily-2020-10-09/autoconf/config.guess 2020-10-07 20:04:44.000000000 +0200 @@ -1,5 +1,5 @@ #! /bin/sh -# @(#)config.guess 1.21 20/08/23 Copyright 1999-2014 J. Schilling +# @(#)config.guess 1.22 20/10/07 Copyright 1999-2020 J. Schilling # # Attempt to guess a canonical system name. # Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. @@ -55,6 +55,7 @@ # # This command helps to debug the script via "sh -x" # +# uname -m uname -s uname -r uname -v : "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -379,6 +380,14 @@ DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; + ia64:HP-UX:B.11.23:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:B.11.31:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/libschily/stdio/getdelim.c new/schily-2020-10-09/libschily/stdio/getdelim.c --- old/schily-2020-09-22/libschily/stdio/getdelim.c 2018-10-10 22:19:27.000000000 +0200 +++ new/schily-2020-10-09/libschily/stdio/getdelim.c 2020-09-22 22:47:28.000000000 +0200 @@ -1,6 +1,6 @@ -/* @(#)getdelim.c 1.4 18/10/10 Copyright 2015-2018 J. Schilling */ +/* @(#)getdelim.c 1.5 20/09/22 Copyright 2015-2020 J. Schilling */ /* - * Copyright (c) 2015-2018 J. Schilling + * Copyright (c) 2015-2020 J. Schilling * */ /* @@ -54,8 +54,7 @@ if (line == NULL || line_size == 0) { if (line_size == 0) line_size = DEF_LINE_SIZE; - if (line == NULL) - line = (char *) malloc(line_size); + line = (char *) malloc(line_size); if (line == NULL) return (-1); *bufp = line; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/obosh/Makefile new/schily-2020-10-09/obosh/Makefile --- old/schily-2020-09-22/obosh/Makefile 2020-07-08 21:01:19.000000000 +0200 +++ new/schily-2020-10-09/obosh/Makefile 2020-09-28 21:20:39.000000000 +0200 @@ -1,4 +1,4 @@ -#ident "@(#)Makefile 1.107 20/07/08 Copyright (c) 2006-2020 J. Schilling" +#ident "@(#)Makefile 1.108 20/09/28 Copyright (c) 2006-2020 J. Schilling" ########################################################################### SRCROOT= .. RULESDIR= RULES @@ -85,6 +85,7 @@ #CPPOPTS += -DDO_EXPAND_LONG # expand() support more than PATH_MAX #CPPOPTS += -DDO_POSIX_RETURN # Allow "return" inside "dot" scripts #CPPOPTS += -DDO_POSIX_EXIT # Use POSIX exit codes 126/127 +#CPPOPTS += -DDO_POSIX_WAIT # Use POSIX exit code 127 for non-existent pid #CPPOPTS += -DDO_POSIX_E # Use POSIX rules for set -e, e.g. cmd subst #CPPOPTS += -DDO_POSIX_EXPORT # Support export/readonly -p name=value # and export prefix vars to "exec" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/pbosh/Makefile new/schily-2020-10-09/pbosh/Makefile --- old/schily-2020-09-22/pbosh/Makefile 2020-07-08 21:01:19.000000000 +0200 +++ new/schily-2020-10-09/pbosh/Makefile 2020-09-28 00:01:21.000000000 +0200 @@ -1,4 +1,4 @@ -#ident "@(#)Makefile 1.164 20/07/08 Copyright (c) 2006-2020 J. Schilling" +#ident "@(#)Makefile 1.165 20/09/28 Copyright (c) 2006-2020 J. Schilling" ########################################################################### SRCROOT= .. RULESDIR= RULES @@ -86,6 +86,7 @@ #CPPOPTS += -DDO_EXPAND_LONG # expand() support more than PATH_MAX CPPOPTS += -DDO_POSIX_RETURN # Allow "return" inside "dot" scripts CPPOPTS += -DDO_POSIX_EXIT # Use POSIX exit codes 126/127 +CPPOPTS += -DDO_POSIX_WAIT # Use POSIX exit code 127 for non-existent pid CPPOPTS += -DDO_POSIX_E # Use POSIX rules for set -e, e.g. cmd subst CPPOPTS += -DDO_POSIX_EXPORT # Support export/readonly -p name=value # and export prefix vars to "exec" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sccs/sccs/hdr/version.h new/schily-2020-10-09/sccs/sccs/hdr/version.h --- old/schily-2020-09-22/sccs/sccs/hdr/version.h 2020-09-16 22:01:24.000000000 +0200 +++ new/schily-2020-10-09/sccs/sccs/hdr/version.h 2020-10-07 22:42:01.000000000 +0200 @@ -1,4 +1,4 @@ -/* @(#)version.h 1.44 20/09/16 Copyright 2007-2019 J. Schilling */ +/* @(#)version.h 1.45 20/10/07 Copyright 2007-2019 J. Schilling */ /* * The version for sccs programs @@ -13,7 +13,7 @@ #endif #ifndef VDATE -#define VDATE "2020/09/16" +#define VDATE "2020/10/07" #endif #ifdef SCHILY_BUILD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sccs/sccs/lib/comobj/src/sethome.c new/schily-2020-10-09/sccs/sccs/lib/comobj/src/sethome.c --- old/schily-2020-09-22/sccs/sccs/lib/comobj/src/sethome.c 2020-06-25 20:56:12.000000000 +0200 +++ new/schily-2020-10-09/sccs/sccs/lib/comobj/src/sethome.c 2020-09-25 19:44:24.000000000 +0200 @@ -14,10 +14,10 @@ * * Search for $SET_HOME/.sccs * - * @(#)sethome.c 1.17 20/06/25 Copyright 2011-2020 J. Schilling + * @(#)sethome.c 1.18 20/09/25 Copyright 2011-2020 J. Schilling */ #if defined(sun) -#pragma ident "@(#)sethome.c 1.17 20/06/25 Copyright 2011-2020 J. Schilling" +#pragma ident "@(#)sethome.c 1.18 20/09/25 Copyright 2011-2020 J. Schilling" #endif #if defined(sun) @@ -127,6 +127,7 @@ { char buf[max(8192, PATH_MAX+1)]; int len; + int blen; if (shinit != 0) return (sethomestat & SETHOME_OK); @@ -154,6 +155,7 @@ * $SET_HOME/.sccs was found and len is the offset * in buf where we may append "/.sccs". */ + blen = strlen(buf); buf[len] = '\0'; if (len == 0) { setahome = strdup("/"); @@ -162,8 +164,13 @@ setahome = strdup(buf); setahomelen = len; } - cwdprefix = strdup(&buf[len+1]); - cwdprefixlen = strlen(&buf[len+1]); + if (len >= blen) { /* in project home */ + cwdprefix = strdup(""); + cwdprefixlen = 0; + } else { /* deeper in tree */ + cwdprefix = strdup(&buf[len+1]); + cwdprefixlen = strlen(&buf[len+1]); + } if (setahome == NULL || cwdprefix == NULL) { /* no mem */ setahomelen = 0; cwdprefixlen = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/Makefile new/schily-2020-10-09/sh/Makefile --- old/schily-2020-09-22/sh/Makefile 2020-08-14 20:40:01.000000000 +0200 +++ new/schily-2020-10-09/sh/Makefile 2020-09-28 21:23:46.000000000 +0200 @@ -1,4 +1,4 @@ -#ident "@(#)Makefile 1.165 20/08/14 Copyright (c) 2006-2020 J. Schilling" +#ident "@(#)Makefile 1.166 20/09/28 Copyright (c) 2006-2020 J. Schilling" ########################################################################### SRCROOT= .. RULESDIR= RULES @@ -86,6 +86,7 @@ CPPOPTS += -DDO_EXPAND_LONG # expand() support more than PATH_MAX CPPOPTS += -DDO_POSIX_RETURN # Allow "return" inside "dot" scripts CPPOPTS += -DDO_POSIX_EXIT # Use POSIX exit codes 126/127 +CPPOPTS += -DDO_POSIX_WAIT # Use POSIX exit code 127 for non-existent pid CPPOPTS += -DDO_POSIX_E # Use POSIX rules for set -e, e.g. cmd subst CPPOPTS += -DDO_POSIX_EXPORT # Support export/readonly -p name=value # and export prefix vars to "exec" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/bltin.c new/schily-2020-10-09/sh/bltin.c --- old/schily-2020-09-22/sh/bltin.c 2020-05-17 23:35:35.000000000 +0200 +++ new/schily-2020-10-09/sh/bltin.c 2020-09-27 23:46:47.000000000 +0200 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)bltin.c 1.147 20/05/17 2008-2020 J. Schilling + * @(#)bltin.c 1.148 20/09/27 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)bltin.c 1.147 20/05/17 2008-2020 J. Schilling"; + "@(#)bltin.c 1.148 20/09/27 2008-2020 J. Schilling"; #endif /* @@ -1249,15 +1249,16 @@ defined(DO_POSIX_CD) || defined(DO_POSIX_FAILURE) out: #endif - flushb(); /* Flush print buffer */ - restore(fdindex); /* Restore file descriptors */ - exval_set(exitval); /* Prepare ${.sh.*} parameters */ + flushb(); /* Flush print buffer */ + restore(fdindex); /* Restore file descriptors */ + if (type != SYSWAIT) /* Do not clobber $/ from wait */ + exval_set(exitval); /* Prepare ${.sh.*} parameters */ #ifdef DO_ERR_TRAP if ((trapnote & TRAPSET) || (exitval && (xflags & XEC_NOSTOP) == 0)) #endif - chktrap(); /* Run installed traps */ + chktrap(); /* Run installed traps */ } #ifdef DO_POSIX_CD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/defs.h new/schily-2020-10-09/sh/defs.h --- old/schily-2020-09-22/sh/defs.h 2020-04-21 22:39:40.000000000 +0200 +++ new/schily-2020-10-09/sh/defs.h 2020-10-08 23:17:08.000000000 +0200 @@ -39,7 +39,7 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)defs.h 1.209 20/04/21 2008-2020 J. Schilling + * @(#)defs.h 1.212 20/10/08 2008-2020 J. Schilling */ /* @@ -630,6 +630,7 @@ extern struct job * postjob __PR((pid_t pid, int fg, int blt)); extern void deallocjob __PR((struct job *jp)); +extern void clearcurjob __PR((void)); extern void *curjob __PR((void)); extern pid_t curpgid __PR((void)); extern void setjobpgid __PR((pid_t pgid)); @@ -1252,6 +1253,7 @@ /* fault handling */ extern unsigned brkincr; #define MINTRAP 0 +#define EXITTRAP 0 /* trap 0 == trap EXIT */ #ifdef DO_ERR_TRAP #define MAXTRAP (NSIG+1) #define ERRTRAP (MAXTRAP-1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/fault.c new/schily-2020-10-09/sh/fault.c --- old/schily-2020-09-22/sh/fault.c 2020-04-15 21:14:57.000000000 +0200 +++ new/schily-2020-10-09/sh/fault.c 2020-10-08 23:25:36.000000000 +0200 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)fault.c 1.50 20/04/15 2008-2020 J. Schilling + * @(#)fault.c 1.52 20/10/08 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)fault.c 1.50 20/04/15 2008-2020 J. Schilling"; + "@(#)fault.c 1.52 20/10/08 2008-2020 J. Schilling"; #endif /* @@ -122,7 +122,9 @@ #endif void chktrap __PR((void)); static int str2trap __PR((char *s, int *sig)); +#ifdef DO_POSIX_TRAP static int trap2str __PR((int sig, char *buf)); +#endif static void prtrap __PR((int sig)); void systrap __PR((int argc, char **argv)); void sh_sleep __PR((unsigned int ticks)); @@ -581,8 +583,12 @@ char *s; int *sig; { + if (strcmp("EXIT", s) == 0) { + *sig = EXITTRAP; + return (0); + } #ifdef DO_ERR_TRAP - if (strcmp("ERR", s) == 0) { + else if (strcmp("ERR", s) == 0) { *sig = ERRTRAP; return (0); } @@ -590,19 +596,25 @@ return (-1); } +#ifdef DO_POSIX_TRAP static int trap2str(sig, buf) int sig; char *buf; { + if (sig == EXITTRAP) { + strcpy(buf, "EXIT"); + return (0); + } #ifdef DO_ERR_TRAP - if (sig == ERRTRAP) { + else if (sig == ERRTRAP) { strcpy(buf, "ERR"); return (0); } #endif return (-1); } +#endif static void prtrap(sig) @@ -617,7 +629,7 @@ else if (!ignoring(sig)) prs_buff(UC "-"); prs_buff(UC "' "); - if (sig2str(sig, buf) < 0 && trap2str(sig, buf) < 0) + if (trap2str(sig, buf) < 0 && sig2str(sig, buf) < 0) prn_buff(sig); else prs_buff(UC buf); @@ -679,14 +691,14 @@ } else #endif { - noa1 = (str2sig(a1, &sig) == 0 || - str2trap(a1, &sig) == 0); + noa1 = (str2trap(a1, &sig) == 0 || + str2sig(a1, &sig) == 0); if (noa1 == 0) ++argv; } while (*++argv) { - if ((str2sig(*argv, &sig) < 0 && - str2trap(*argv, &sig) < 0) || + if ((str2trap(*argv, &sig) < 0 && + str2sig(*argv, &sig) < 0) || sig >= MAXTRAP || sig < MINTRAP || #ifndef DO_POSIX_TRAP sig == SIGSEGV) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/jobs.c new/schily-2020-10-09/sh/jobs.c --- old/schily-2020-09-22/sh/jobs.c 2020-07-25 13:35:49.000000000 +0200 +++ new/schily-2020-10-09/sh/jobs.c 2020-10-07 23:24:05.000000000 +0200 @@ -39,11 +39,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)jobs.c 1.116 20/07/25 2008-2020 J. Schilling + * @(#)jobs.c 1.119 20/10/07 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)jobs.c 1.116 20/07/25 2008-2020 J. Schilling"; + "@(#)jobs.c 1.119 20/10/07 2008-2020 J. Schilling"; #endif /* @@ -392,11 +392,11 @@ struct job **njp; struct job **cjp; - for (njp = &joblst; *njp != jp; njp = &(*njp)->j_nxtp) + for (njp = &joblst; *njp && *njp != jp; njp = &(*njp)->j_nxtp) /* LINTED */ ; - for (cjp = &jobcur; *cjp != jp; cjp = &(*cjp)->j_curp) + for (cjp = &jobcur; *cjp && *cjp != jp; cjp = &(*cjp)->j_curp) /* LINTED */ ; @@ -577,6 +577,8 @@ #else ex.ex_signo = 1000; /* Need to distinct this from builtin */ #endif + jp->j_xsig = ex.ex_signo; + if ((flags2 & fullexitcodeflg) == 0) exitval &= 0xFF; /* As dumb as with historic wait */ if (jp->j_flag & J_SIGNALED) @@ -660,8 +662,14 @@ for (jp = joblst; jp; jp = sjp) { sjp = jp->j_nxtp; +#ifdef DO_POSIX_WAIT + if ((jp->j_flag & (J_DONE|J_REPORTED)) == + (J_DONE|J_REPORTED)) + freejob(jp); +#else if (jp->j_flag & J_DONE) freejob(jp); +#endif } } } @@ -1086,6 +1094,14 @@ jobcnt--; } +void +clearcurjob() +{ +#ifdef DO_POSIX_WAIT + thisjob = NULL; +#endif +} + #ifdef DO_PIPE_PARENT void * curjob() @@ -1172,6 +1188,9 @@ jp->j_nxtp = jp->j_curp = NULL; jp->j_flag = 0; jp->j_pid = jp->j_pgid = jp->j_tgid = 0; + jp->j_xval = 0; + jp->j_xcode = 0; + jp->j_xsig = 0; jpp = &joblst; @@ -1205,7 +1224,11 @@ for (jp = joblst; jp; jp = sjp) { sjp = jp->j_nxtp; - free(jp); +#ifdef DO_POSIX_WAIT + if ((jp->j_flag & (J_DONE|J_REPORTED)) == + (J_DONE|J_REPORTED)) +#endif + free(jp); } joblst = NULL; jobcnt = 0; @@ -1477,19 +1500,59 @@ wflags = 0; wflags |= (WEXITED|WTRAPPED); /* Needed for waitid() */ - if (argc == 1) + if (argc == 1) { + struct job *sjp; + collectjobs(0); - else while (--argc) { - if ((jp = str2job(cmdp, *++argv, 0)) == 0) + + for (jp = joblst; jp; jp = sjp) { + sjp = jp->j_nxtp; + + if (jp->j_flag & J_DONE) + jp->j_flag |= J_REPORTED; + } + } else while (--argc) { + if ((jp = str2job(cmdp, *++argv, 0)) == 0) { +#ifdef DO_POSIX_WAIT + exitval = + ex.ex_status = + ex.ex_code = ERR_NOTFOUND; + exitset(); /* Set retval from exitval for $? */ +#endif + continue; + } +#ifdef DO_POSIX_WAIT + if ((jp->j_flag & J_REPORTED)) continue; + if ((jp->j_flag & J_DONE)) { + ex.ex_status = exitval = jp->j_xval; + ex.ex_code = jp->j_xcode; + ex.ex_pid = jp->j_pid; + ex.ex_signo = jp->j_xsig; + + if ((flags2 & fullexitcodeflg) == 0) + exitval &= 0xFF; /* As dumb as historic wait */ + if (jp->j_flag & J_SIGNALED) + exitval |= SIGFLG; +#ifdef DO_EXIT_MODFIX + else if (ex.ex_status != 0 && exitval == 0) + exitval = SIGFLG; /* Use special value 128 */ +#endif + exitset(); /* Set retval from exitval for $? */ + + jp->j_flag |= J_REPORTED; + continue; + } +#endif if (!(jp->j_flag & J_RUNNING)) continue; if (waitid(P_PID, jp->j_pid, &si, wflags) < 0) break; #ifdef DO_TRAP_FROM_WAITID - checksigs(&si); /* fault() with jobcontrol */ + checksigs(&si); /* fault() with jobcontrol */ #endif (void) statjob(jp, &si, 0, 1); + jp->j_flag |= J_REPORTED; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/jobs.h new/schily-2020-10-09/sh/jobs.h --- old/schily-2020-09-22/sh/jobs.h 2015-12-23 21:39:48.000000000 +0100 +++ new/schily-2020-10-09/sh/jobs.h 2020-10-06 00:14:58.000000000 +0200 @@ -37,9 +37,9 @@ #define _JOBS_H /* - * Copyright 2008-2015 J. Schilling + * Copyright 2008-2020 J. Schilling * - * @(#)jobs.h 1.1 15/12/23 2008-2015 J. Schilling + * @(#)jobs.h 1.2 20/10/06 2008-2020 J. Schilling */ /* @@ -81,6 +81,7 @@ UInt32_t j_jid; /* job ID */ Int32_t j_xval; /* exit code, or exit or stop signal */ Int16_t j_xcode; /* exit or stop reason */ + Int16_t j_xsig; /* exit signal, typicalle SIGCHLD */ UInt16_t j_flag; /* various status flags defined below */ char *j_pwd; /* job's working directory */ char *j_cmd; /* cmd used to invoke this job */ @@ -99,6 +100,7 @@ #define J_RUNNING 0100 /* job is currently running */ #define J_FOREGND 0200 /* job was put in foreground by shell */ #define J_BLTIN 0400 /* job was a shell builtin */ +#define J_REPORTED 01000 /* job was "reported" via wait(1) */ /* * From jobs.c: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/main.c new/schily-2020-10-09/sh/main.c --- old/schily-2020-09-22/sh/main.c 2019-10-05 16:20:16.000000000 +0200 +++ new/schily-2020-10-09/sh/main.c 2020-10-07 23:24:05.000000000 +0200 @@ -36,13 +36,13 @@ #include "defs.h" /* - * Copyright 2008-2019 J. Schilling + * Copyright 2008-2020 J. Schilling * - * @(#)main.c 1.79 19/10/05 2008-2019 J. Schilling + * @(#)main.c 1.80 20/10/07 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)main.c 1.79 19/10/05 2008-2019 J. Schilling"; + "@(#)main.c 1.80 20/10/07 2008-2020 J. Schilling"; #endif /* @@ -686,6 +686,7 @@ bosh.intrcnt = 0; /* Reset interrupt counter */ tdystak(0, 0); stakchk(); /* may reduce sbrk */ + clearcurjob(); /* clear thisjob */ exitset(); if ((flags & prompt) && standin->fstak == 0 && !eof) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/sh.1 new/schily-2020-10-09/sh/sh.1 --- old/schily-2020-09-22/sh/sh.1 2020-04-15 21:20:57.000000000 +0200 +++ new/schily-2020-10-09/sh/sh.1 2020-09-28 21:00:37.000000000 +0200 @@ -1,5 +1,5 @@ '\" te -.\" @(#)sh.1 1.254 20/04/15 Copyright 2012-2020 J. Schilling +.\" @(#)sh.1 1.256 20/09/28 Copyright 2012-2020 J. Schilling .\" Copyright 1989 AT&T .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved. .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved @@ -59,7 +59,7 @@ .if n .ds o oe .if n .ds u ue .if n .ds s sz -.TH sh 1 "2020/04/15" "Schily Bourne Shell" "User Commands" +.TH sh 1 "2020/09/28" "Schily Bourne Shell" "User Commands" .SH NAME sh, bosh, jsh \- standard and job control shell and command interpreter .SH SYNOPSIS @@ -1755,18 +1755,22 @@ .ne 3 .TP .B ? -The decimal value returned by the last synchronously executed command. +The decimal value returned by the last synchronously executed command or +a decimal number derived from the signal number that killed the process. +.sp Only the low 8 bits of the exit code from the command are visible unless exit code masking is switched off by .RB `` "set\ \-o\ fullexitcode" ''. -The ability to see all 32 bits from the exit code requires a -modern operating system with support for -.BR waitid (2) -in addition. +The ability to see all 32 bits from the exit code requires a modern +.B UNIX +compliant operating system with working support for +.BR waitid (2). +.sp If the executable file could not be found, the returned value is .BR 127 . If the file exists but could not be executed, the returned value is .BR 126 . +.sp If .B bosh has been compiled with @@ -1774,11 +1778,19 @@ (which is not the default and not recommended by POSIX) and if a command's exit code modulo 256 is zero and .RB `` "set\ \-o\ fullexitcode" '' -is not in effect, the returned value is 128 except when the operating +is not in effect, the returned value is 128, except when the operating system does not support -.BR waitid (2). +.BR waitid (2), +as the exit code then is masked by the kernel. +.sp If the command was killed by a signal, the returned value is 128 + the signal number. +As a result, apparent exit code values in the range 129..200 +may also have been caused by a signal. +.sp +If the shell itself or a sub shell catches a signal while preparing a job, +the exit code is 2000, or (when exit codes are masked to only the low +8 bits) 208. .br .ne 3 .TP @@ -1797,7 +1809,9 @@ .BR "decimal number" , this is (on a POSIX system) the 32 bit exit code from the last command that did normally exit. Older non-POSIX -systems like Linux return only the low 8 bits from the exit code. +systems like Linux or UNIX systems from before SVr4 return only the +low 8 bits from the exit code. +In any case, the number was a result from a normal program exit. .sp If .B $/ @@ -7488,15 +7502,42 @@ .br .ne 3 .TP -\fBwait\fR [ \fIn\fR ] +\fBwait\fR [ \fIn .\|.\|.\fR ] .sp .6 Wait for your background process whose process id is .I n and report its -termination status. If +termination status. +The process identifier +.I n +may either be a UNIX process id or a shell job id. See +.B "Job Control (jsh)" +section below for information on shell job ids. +.sp +The return code of +.B wait +is the exit code of the last process from the argument list that has +successfully been waited for, or +.BR 127 " / " NOTFOUND +in case that +the argument refers to a nonexisting process. +.sp +If .I n is omitted, all your shell's currently active background processes are waited for and the return code is zero. +.sp +See the shell variables +.BR $? , +.BR $/ , +.BR ${.sh.code} , +.BR ${.sh.codename} , +.BR ${.sh.pid} , +.BR ${.sh.status} , +.BR ${.sh.termsig} +in the section +.B Parameter Substitution +above. .SS "Job Control (jsh)" .sp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/version.h new/schily-2020-10-09/sh/version.h --- old/schily-2020-09-22/sh/version.h 2020-09-03 20:39:19.000000000 +0200 +++ new/schily-2020-10-09/sh/version.h 2020-10-07 22:12:44.000000000 +0200 @@ -1,4 +1,4 @@ -/* @(#)version.h 1.92 20/09/03 Copyright 2012-2020 J. Schilling */ +/* @(#)version.h 1.93 20/10/07 Copyright 2012-2020 J. Schilling */ /* * The version for the Bourne Shell @@ -17,5 +17,5 @@ * file and include the License file CDDL.Schily.txt from this distribution. */ -#define VERSION_DATE "2020/09/03" +#define VERSION_DATE "2020/10/07" #define VERSION_STR "a+" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sh/xec.c new/schily-2020-10-09/sh/xec.c --- old/schily-2020-09-22/sh/xec.c 2020-04-26 12:46:14.000000000 +0200 +++ new/schily-2020-10-09/sh/xec.c 2020-10-07 23:24:05.000000000 +0200 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)xec.c 1.122 20/04/26 2008-2020 J. Schilling + * @(#)xec.c 1.123 20/10/07 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)xec.c 1.122 20/04/26 2008-2020 J. Schilling"; + "@(#)xec.c 1.123 20/10/07 2008-2020 J. Schilling"; #endif /* @@ -571,12 +571,13 @@ * returns NULL. */ #ifdef DO_PIPE_PARENT - if (!curjob()) + if (!curjob()) { xflags &= ~XEC_ALLOCJOB; #endif - monitor = exallocjob(t, xflags); + monitor = exallocjob(t, xflags); #ifdef DO_PIPE_PARENT - xflags |= XEC_ALLOCJOB; + xflags |= XEC_ALLOCJOB; + } #endif } #ifdef DO_PIPE_PARENT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sunpro/Make/bin/make/common/dmake.1 new/schily-2020-10-09/sunpro/Make/bin/make/common/dmake.1 --- old/schily-2020-09-22/sunpro/Make/bin/make/common/dmake.1 2019-07-20 14:22:08.000000000 +0200 +++ new/schily-2020-10-09/sunpro/Make/bin/make/common/dmake.1 2020-10-08 20:41:57.000000000 +0200 @@ -1,4 +1,4 @@ -. \" @(#)dmake.1 1.7 19/07/20 Copyr 2017-2019 J. Schilling +. \" @(#)dmake.1 1.8 20/10/08 Copyr 2017-2020 J. Schilling . \" Manual Seite fuer dmake .\" .\" CDDL HEADER START @@ -35,7 +35,7 @@ .if n .ds U Ue .if n .ds s sz .ds S SS -.TH DMAKE 1 "2019/07/20" "SunOS 5.11" "SunOS Specific Commands" +.TH DMAKE 1 "2020/10/08" "SunOS 5.11" "SunOS Specific Commands" .SH NAME dmake \- parallel make from Distributed Make .SH SYNOPSIS @@ -298,3 +298,30 @@ .BR dmake (1) was originally written by Sun Microsystems in 1993. Since 2016, it is maintained by J\*org Schilling. +.br +.ne 8 +.SH "SOURCE DOWNLOAD" +The source code for the +.B SunPro Make +is included in the +.B schilytools +project and may be retrieved from the +.B schilytools +project at Sourceforge at: +.LP +.B + http://sourceforge.net/projects/schilytools/ +.LP +The download directory is: +.LP +.B + http://sourceforge.net/projects/schilytools/files/ +.LP +Check for the +.B schily\-*.tar.bz2 +archives. +.LP +Separate project informations for the Schily SunPro Make project may be retrieved from: +.LP +.B + http://schilytools.sourceforge.net/sunpromake.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sunpro/Make/bin/make/common/make.1s new/schily-2020-10-09/sunpro/Make/bin/make/common/make.1s --- old/schily-2020-09-22/sunpro/Make/bin/make/common/make.1s 2020-04-26 19:19:19.000000000 +0200 +++ new/schily-2020-10-09/sunpro/Make/bin/make/common/make.1s 2020-10-08 20:41:57.000000000 +0200 @@ -1,5 +1,5 @@ '\" te -. \" @(#)make.1s 1.32 20/04/26 Copyr 2012-2020 J. Schilling +. \" @(#)make.1s 1.33 20/10/08 Copyr 2012-2020 J. Schilling .\" Copyright 1989 AT&T .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved @@ -61,7 +61,7 @@ .if n .ds o oe .if n .ds u ue .if n .ds s sz -.TH make 1S "2020/04/26" "SunOS 5.11" "SunOS Specific Commands" +.TH make 1S "2020/10/08" "SunOS 5.11" "SunOS Specific Commands" .SH NAME make \- maintain, update, and regenerate related programs and files .SH SYNOPSIS @@ -4529,3 +4529,30 @@ .BR make (1) was originally written by Sun Microsystems in 1986. Since 2016, it is maintained by J\*org Schilling. +.br +.ne 8 +.SH "SOURCE DOWNLOAD" +The source code for the +.B SunPro Make +is included in the +.B schilytools +project and may be retrieved from the +.B schilytools +project at Sourceforge at: +.LP +.B + http://sourceforge.net/projects/schilytools/ +.LP +The download directory is: +.LP +.B + http://sourceforge.net/projects/schilytools/files/ +.LP +Check for the +.B schily\-*.tar.bz2 +archives. +.LP +Separate project informations for the Schily SunPro Make project may be retrieved from: +.LP +.B + http://schilytools.sourceforge.net/sunpromake.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/sunpro/Make/bin/make/common/sysV-make.1 new/schily-2020-10-09/sunpro/Make/bin/make/common/sysV-make.1 --- old/schily-2020-09-22/sunpro/Make/bin/make/common/sysV-make.1 2018-03-15 20:33:11.000000000 +0100 +++ new/schily-2020-10-09/sunpro/Make/bin/make/common/sysV-make.1 2020-10-08 20:43:45.000000000 +0200 @@ -1,5 +1,5 @@ '\" te -. \" @(#)sysV-make.1 1.4 18/03/15 Copyr 2012-2017 J. Schilling +. \" @(#)sysV-make.1 1.6 20/10/08 Copyr 2012-2020 J. Schilling .\" Copyright 1989 AT&T Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved .\" Copyright (c) 2012-2017, J. Schilling .\" Copyright (c) 2013, Andreas Roehler @@ -21,7 +21,22 @@ .\" information: Portions Copyright [yyyy] [name of copyright owner] .\" .\" CDDL HEADER END -.TH sysV-make 1 "2018/03/15" "SunOS 5.11" "User Commands" +.if t .ds a \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'a +.if t .ds o \v'-0.55m'\h'0.00n'\z.\h'0.45n'\z.\v'0.55m'\h'-0.45n'o +.if t .ds u \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'u +.if t .ds A \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'A +.if t .ds O \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'O +.if t .ds U \v'-0.77m'\h'0.30n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.75n'U +.if t .ds s \(*b +.if n .ds a ae +.if n .ds o oe +.if n .ds u ue +.if n .ds A Ae +.if n .ds O Oe +.if n .ds U Ue +.if n .ds s sz +.ds S SS +.TH sysV-make 1 "2020/10/08" "SunOS 5.11" "User Commands" .SH NAME sysV-make \- maintain, update, and regenerate groups of programs .SH SYNOPSIS @@ -935,3 +950,36 @@ .B lib(file.o) from .BR file.o . + +.SH AUTHORS +This version of +.BR sysV-make (1) +was originally written by Sun Microsystems in 1993. +Since 2016, it is maintained by J\*org Schilling. +.br +.ne 8 +.SH "SOURCE DOWNLOAD" +The source code for the +.B SunPro Make +is included in the +.B schilytools +project and may be retrieved from the +.B schilytools +project at Sourceforge at: +.LP +.B + http://sourceforge.net/projects/schilytools/ +.LP +The download directory is: +.LP +.B + http://sourceforge.net/projects/schilytools/files/ +.LP +Check for the +.B schily\-*.tar.bz2 +archives. +.LP +Separate project informations for the Schily SunPro Make project may be retrieved from: +.LP +.B + http://schilytools.sourceforge.net/sunpromake.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-09-22/udiff/udiff.c new/schily-2020-10-09/udiff/udiff.c --- old/schily-2020-09-22/udiff/udiff.c 2020-09-19 17:48:26.000000000 +0200 +++ new/schily-2020-10-09/udiff/udiff.c 2020-09-25 19:56:35.000000000 +0200 @@ -1,8 +1,8 @@ -/* @(#)udiff.c 1.34 20/09/19 Copyright 1985-2020 J. Schilling */ +/* @(#)udiff.c 1.38 20/09/25 Copyright 1985-2020 J. Schilling */ #include <schily/mconfig.h> #ifndef lint static UConst char sccsid[] = - "@(#)udiff.c 1.34 20/09/19 Copyright 1985-2020 J. Schilling"; + "@(#)udiff.c 1.38 20/09/25 Copyright 1985-2020 J. Schilling"; #endif /* * line by line diff for two files @@ -162,7 +162,7 @@ } if (prversion) { printf("Udiff release %s %s (%s-%s-%s) Copyright (C) 1985-2020 J�rg Schilling\n", - "1.34", "2020/09/19", + "1.38", "2020/09/25", HOST_CPU, HOST_VENDOR, HOST_OS); exit(0); } @@ -328,6 +328,8 @@ * This allows to correctly deal with files that do not end in a newline * and this allows to handle nul bytes in the line. */ + if (olsz == 0) /* If first file is mmap()d and 2nd is not */ + olbf = NULL; /* could be != NULL from mmap() space */ for (;;) { if ((len = xgetdelim(&olbf, &olsz, '\n', f == of ? 0:1)) < 0) { if (ferror(f)) @@ -775,7 +777,13 @@ if (sb.st_size > (64*1024*1024)) return (f); - mmbase[idx] = mmap((void *)0, mmsize[idx], + if (!S_ISREG(sb.st_mode)) /* FIFO has st_size == 0 */ + return (f); /* so cannot use mmap() */ + + if (sb.st_size == 0) + mmbase[idx] = ""; + else + mmbase[idx] = mmap((void *)0, mmsize[idx], PROT_READ, MAP_PRIVATE, fileno(f), (off_t)0); if (mmbase[idx] == MAP_FAILED) {
