Hello community, here is the log from the commit of package schily for openSUSE:Factory checked in at 2020-03-30 22:51:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/schily (Old) and /work/SRC/openSUSE:Factory/.schily.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "schily" Mon Mar 30 22:51:27 2020 rev:25 rq:789350 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/schily/schily.changes 2020-03-19 19:49:38.280161207 +0100 +++ /work/SRC/openSUSE:Factory/.schily.new.3160/schily.changes 2020-03-30 22:51:28.399775312 +0200 @@ -1,0 +2,20 @@ +Sat Mar 28 11:03:52 UTC 2020 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 2020.03.27 + * mkisofs: A new option -noatime has been introduced in order + to use the modification time of the files instead of the last + access time. + * mkisofs: New options -creation-date, -effective-date, + -expiration-date have been introduced in order to use the + supplied time stamp instead of the current time in the PVD. + * mkisofs: A new option -reproducible-date has been added. This + option sets -creation-date, -modification-date, + -effective-date and -noatime at the same time and helps to + make usage easier. + * 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. + +------------------------------------------------------------------- Old: ---- schily-2020-03-11.tar.bz2 New: ---- schily-2020-03-27.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ schily.spec ++++++ --- /var/tmp/diff_new_pack.w4Lxoh/_old 2020-03-30 22:51:28.963775620 +0200 +++ /var/tmp/diff_new_pack.w4Lxoh/_new 2020-03-30 22:51:28.963775620 +0200 @@ -17,14 +17,14 @@ # grep -Pir 'define\s+VERSION|strvers' -%global box_version 2020.03.11 +%global box_version 2020.03.27 %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.7 %global ved_version 1.7 -%define rver 2020-03-11 +%define rver 2020-03-27 Name: schily Version: %box_version ++++++ schily-2020-03-11.tar.bz2 -> schily-2020-03-27.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/AN-2020-03-27 new/schily-2020-03-27/AN-2020-03-27 --- old/schily-2020-03-11/AN-2020-03-27 1970-01-01 01:00:00.000000000 +0100 +++ new/schily-2020-03-27/AN-2020-03-27 2020-03-27 13:15:59.000000000 +0100 @@ -0,0 +1,219 @@ +New features with AN-2020-03-27: + +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. + +- SunPro Make: The man page now mentions the file .make.state.lock since + that file may need manual removal if the system crashes at a bad time. + +- SunPro Make: The file Make/include/mksh/defs.h changed a comment to + avoid a warning from the IRIX compiler. + +- 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. + +- mkisofs: A new option -noatime has been introduced in order to use the + modification time of the files instead of the last access time. + + This allows to create reproducible ISO-90660 filesystem images. + +- mkisofs: A new option -creation-date has been introduced in order to + use the supplied time stamp instead of the current time in the PVD. + + This allows to create reproducible ISO-90660 filesystem images. + +- mkisofs: A new option -effective-date has been introduced in order to + use the supplied time stamp instead of the current time in the PVD. + + This allows to create reproducible ISO-90660 filesystem images. + +- mkisofs: A new option -expiration-date has been introduced in order to + use the supplied time stamp instead of a zeroed time in the PVD. + + This allows to create reproducible ISO-90660 filesystem images. + +- mkisofs: The option -modification-date=spec did not work if specified + as -modification-date=spec, but it worked if specified as + -modification-date spec. This was caused since it starts with + looking for the "-m" option, which is another option that takes a + string argument. + + We now moved the -m option past the -modification-date option to + first look for -modification-date. + +- mkisofs: The "current time" used by mkisofs for various places is + now derived from the -modification-date argument if present. This + gives predictable behavior. + +- mkisofs: The time stamp used for the ".rr_moved" directory is now + derived from the "current time" value that is derived from the + -modification-date argument if present. + +- mkisofs: The time stamp used for the "invented" directories is now + derived from the "current time" value that is derived from the + -modification-date argument if present. + +- mkisofs: The time stamp used for the debug information is now + derived from the "current time" value that is derived from the + -modification-date argument if present. + +- mkisofs: If you like to create ISO filesystem images, you should call + something like: + + mkisofs -creation-date=202003 -modification-date=202003 \ + -effective-date=202003 -noatime some-dir > image.iso + + Do not use the -o option since the -o argument is recorded inside + the ISO image. + +- mkisofs: A new option -reproducible-date has been added. This + option sets -creation-date, -modification-date, -effective-date + and -noatime at the same time and helps to make usage easier. + + +- SCCS TODO: + + - Convert sccs.c to use -NSCCS in the back end programs 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. Doing it this way allows us to have the SCCS + history files "off tree" in a separate directory tree starting + with ".sccs/" at the "project root" directory, as the related + code to convert path names is in libcomobj::bulkprepare(). + + - Add code to admin(1) and delta(1) to retrieve the list of + 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) and get(1) to maintain/understand + the changeset file. + + - Add code to libcomobj to understand the changeset file, + which is needed in order to e.g. know the file names and file + specific SIDs/state that correspond to a project global SID. + + - Add code to all programs to maintain a lock (for the file + $PROJECTHOME/.sccs/SCCS/s.changeset, that would be in the file + $PROJECTHOME/.sccs/SCCS/z.changeset) to maintain a project + global lock. + + - 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 way to decide when to use SCCS v6 type history files. + + For the project mode, this is needed in order to prevent + historic SCCS implementations to believe they could modify + files without knowing about project global locks. + + Currently, SCCS V67 needs to be anebale manually for every + history file using "admin". + + + + + +- 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: jo...@schily.net, joerg.schill...@fokus.fraunhofer.de + +Please mail bugs and suggestions to me. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/Schily.Copyright new/schily-2020-03-27/Schily.Copyright --- old/schily-2020-03-11/Schily.Copyright 2020-02-11 01:05:53.000000000 +0100 +++ new/schily-2020-03-27/Schily.Copyright 2020-03-25 00:38:46.000000000 +0100 @@ -462,7 +462,7 @@ Written by Eric Youngdale (1993). Copyright (c) 1993-1997 Eric Youngdale Copyright 1993 Yggdrasil Computing, Incorporated - Copyright (c) 1997-2019 J. Schilling + Copyright (c) 1997-2020 J. Schilling parts Copyright (c) 2002 Olaf Beck - olaf...@yahoo.com parts Copyright (c) 1997, 1998, 1999, 2000 James Pearson APPLE_HYB James Pearson j.pear...@ge.ucl.ac.uk 22/2/2000 @@ -646,7 +646,7 @@ ---------------------------------------------------------------------------- * sunpro Make - Copyright 2017-2019 J. Schilling + Copyright 2017-2020 J. Schilling Copyright 1987-2006 Sun Microsystems, Inc. License: CDDL @@ -677,7 +677,7 @@ ---------------------------------------------------------------------------- * ved - Copyright 1984-2019 J. Schilling + Copyright 1984-2020 J. Schilling License: CDDL ---------------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/cdrecord/version.h new/schily-2020-03-27/cdrecord/version.h --- old/schily-2020-03-11/cdrecord/version.h 2020-02-26 22:48:20.000000000 +0100 +++ new/schily-2020-03-27/cdrecord/version.h 2020-03-24 20:13:51.000000000 +0100 @@ -1,7 +1,7 @@ -/* @(#)version.h 1.99 20/02/26 Copyright 2007-20120 J. Schilling */ +/* @(#)version.h 1.100 20/03/24 Copyright 2007-20120 J. Schilling */ /* * The version for cdrtools programs */ #define VERSION "3.02a10" -#define VERSION_DATE "2020/02/26" +#define VERSION_DATE "2020/03/24" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/mkisofs/mkisofs.8 new/schily-2020-03-27/mkisofs/mkisofs.8 --- old/schily-2020-03-11/mkisofs/mkisofs.8 2019-03-05 21:08:10.000000000 +0100 +++ new/schily-2020-03-27/mkisofs/mkisofs.8 2020-03-27 01:47:28.000000000 +0100 @@ -1,7 +1,7 @@ '\" t .\" To print, first run through tbl .\" -*- nroff -*- -.\" @(#)mkisofs.8 1.167 19/03/05 Copyright 1997-2018 J. Schilling +.\" @(#)mkisofs.8 1.170 20/03/27 Copyright 1997-2020 J. Schilling .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License version 2 @@ -29,7 +29,7 @@ .if n .ds o oe .if n .ds u ue .if n .ds s sz -.TH MKISOFS 8 "2019/03/05" "Version 3.02" +.TH MKISOFS 8 "2020/03/27" "Version 3.02" .SH NAME mkisofs \- create an hybrid ISO-9660/JOLIET/HFS/UDF filesystem-image with optional Rock Ridge attributes. .SH SYNOPSIS @@ -357,6 +357,22 @@ .B "correct inode numbers for zero sized files. .TP +.BI \-creation\-date " date-spec +Set the +.B creation date +in the primary volume descriptor (PVD) to a value different from the current +time. +This allows e.g. to set up an intentional date in order to be able to create +reproducible ISO-9660 filesystem images. +.sp +See +.B \-modification\-date +for a description of the +.I date-spec +format and +.B \-reproducible\-date +for a simple way to create reproducible filesystem images. +.TP .B \-duplicates\-once Tells .B mkisofs @@ -368,6 +384,22 @@ non-POSIX platforms like .BR DOS . .TP +.BI \-effective\-date " date-spec +Set the +.B effective date +in the primary volume descriptor (PVD) to a value different from the current +time. +This allows e.g. to set up an intentional date in order to be able to create +reproducible ISO-9660 filesystem images. +.sp +See +.B \-modification\-date +for a description of the +.I date-spec +format and +.B \-reproducible\-date +for a simple way to create reproducible filesystem images. +.TP .BI \-b " eltorito_boot_image .TP .BI \-eltorito\-boot " eltorito_boot_image @@ -687,7 +719,22 @@ .BR SHRINK , are checked from .BR mkisofs . - +.TP +.BI \-expiration\-date " date-spec +Set the +.B expiration date +in the primary volume descriptor (PVD) to a value different from a zeroed out +time. +This allows e.g. to set up an intentional date in order to be able to create +reproducible ISO-9660 filesystem images. +.sp +See +.B \-modification\-date +for a description of the +.I date-spec +format and +.B \-reproducible\-date +for a simple way to create reproducible filesystem images. .TP .BI \-B " img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e .TP @@ -1522,6 +1569,14 @@ Note that the possible range for .I date-spec for 32 bit programs is limited to values up to 2038 Jan 19 04:14:07 GMT. +.sp +The PVD contains the following four date values: +.BR creation-date , +.BR expiration-date , +.B effective-date +and +.BR modification-date . +See the related option for a description. .TP .B \-N .TP @@ -1538,6 +1593,29 @@ .B \-dir\-mode option is 0555. .TP +.B \-noatime +Do not include the file last access time but rather use the modification time. +This allows e.g. to create reproducible ISO-9660 filesystem images. +.sp +See also the options: +.BR \-creation\-date , +.BR \-expiration\-date , +.BR \-effective\-date , +.B \-modification\-date +and +.B \-reproducible\-date +for other options to create reproducible ISO-9660 filesystem images. +.sp +To create reproducible ISO-9660 filesystem images, the options: +.BR \-creation\-date , +.BR \-effective\-date , +.B \-modification\-date +and +.B \-noatime +need to be specified and the +.B \-o +option must not be used. +.TP .B \-nobak .TP .B \-no\-bak @@ -1776,6 +1854,15 @@ This violates the ISO-9660 standard, but it happens to work on many systems. Use with caution. .TP +.BI \-reproducible\-date " date-spec +Is a macro for setting +.BR \-creation\-date , +.BR \-effective\-date , +.B \-modification\-date +and +.B \-noatime +in order to create reproducible ISI 9660 filesystem images. +.TP .BI \-root " dir Moves all files and directories into .I dir diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/mkisofs/mkisofs.c new/schily-2020-03-27/mkisofs/mkisofs.c --- old/schily-2020-03-11/mkisofs/mkisofs.c 2019-01-16 22:46:47.000000000 +0100 +++ new/schily-2020-03-27/mkisofs/mkisofs.c 2020-03-27 01:47:34.000000000 +0100 @@ -1,8 +1,8 @@ -/* @(#)mkisofs.c 1.296 19/01/16 joerg */ +/* @(#)mkisofs.c 1.299 20/03/27 joerg */ #include <schily/mconfig.h> #ifndef lint static UConst char sccsid[] = - "@(#)mkisofs.c 1.296 19/01/16 joerg"; + "@(#)mkisofs.c 1.299 20/03/27 joerg"; #endif /* * Program mkisofs.c - generate iso9660 filesystem based upon directory @@ -11,7 +11,7 @@ * Written by Eric Youngdale (1993). * * Copyright 1993 Yggdrasil Computing, Incorporated - * Copyright (c) 1997-2019 J. Schilling + * Copyright (c) 1997-2020 J. Schilling * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -194,7 +194,11 @@ int untranslated_filenames; /* CLI Parameter for -U option */ int pversion; /* CLI Parameter for -version option */ int rationalize_xa; /* CLI Parameter for -xa option */ +ldate creation_date; /* CLI Parameter for -creation-date */ ldate modification_date; /* CLI Parameter for -modification-date */ +ldate expiration_date; /* CLI Parameter for -expiration-date */ +ldate effective_date; /* CLI Parameter for -effective-date */ +ldate reproducible_date; /* CLI Parameter for -reproducible-date */ #ifdef APPLE_HYB char *afpfile = ""; /* CLI Parameter for -map option */ char *root_info; /* CLI Parameter for -root-info option */ @@ -324,6 +328,7 @@ BOOL correct_inodes = TRUE; /* TRUE: add a "correct inodes" fingerprint */ BOOL rrip112 = TRUE; /* TRUE: create Rock Ridge V 1.12 */ BOOL long_rr_time = FALSE; /* TRUE: use long (17 Byte) time format */ +BOOL noatime = FALSE; /* Whether not to include file access time */ #ifdef DUPLICATES_ONCE int duplicates_once = 0; /* encode duplicate files once */ @@ -1220,18 +1225,30 @@ __("\1LOG_FILE\1Re-direct messages to LOG_FILE")}, {{"long-rr-time%1", &long_rr_time }, __("Use long Rock Ridge time format")}, - {{"m& ,exclude& ", NULL, (getpargfun)add_match }, - __("\1GLOBFILE\1Exclude file name")}, - {{"exclude-list&", NULL, (getpargfun)add_list}, - __("\1FILE\1File with list of file names to exclude")}, {{"hide-ignorecase", &match_igncase }, __("Ignore case with -exclude-list and -hide* options")}, {{"exclude-ignorecase", &match_igncase }, NULL}, + {{"creation-date&", &creation_date, (getpargfun)get_ldate }, + __("\1DATE\1Set the creation date field of the PVD")}, {{"modification-date&", &modification_date, (getpargfun)get_ldate }, __("\1DATE\1Set the modification date field of the PVD")}, + {{"expiration-date&", &expiration_date, (getpargfun)get_ldate }, + __("\1DATE\1Set the expiration date field of the PVD")}, + {{"effective-date&", &effective_date, (getpargfun)get_ldate }, + __("\1DATE\1Set the effective date field of the PVD")}, + {{"reproducible-date&", &reproducible_date, (getpargfun)get_ldate }, + __("\1DATE\1Set reproducible date in the fields of the PVD")}, + + {{"m& ,exclude& ", NULL, (getpargfun)add_match }, + __("\1GLOBFILE\1Exclude file name")}, + {{"exclude-list&", NULL, (getpargfun)add_list}, + __("\1FILE\1File with list of file names to exclude")}, + + {{"noatime%1", &noatime }, + __("Do not include file access time")}, {{"nobak%0", &all_files }, __("Do not include backup files")}, {{"no-bak%0", &all_files}, @@ -2099,6 +2116,23 @@ cav[0], c, getargerror(c)); susage(EX_BAD); } + if (reproducible_date.l_sec) { + if (outfile) { + comerrno(EX_BAD, + _("Do not use -o outfile with -reproducible-date\n")); + } + noatime = TRUE; + if (modification_date.l_sec == tv_begun.tv_sec) + modification_date = reproducible_date; + if (creation_date.l_sec == 0) + creation_date = reproducible_date; + if (effective_date.l_sec == 0) + effective_date = reproducible_date; + } + begun = modification_date.l_sec; + tv_begun.tv_sec = modification_date.l_sec; + tv_begun.tv_usec = modification_date.l_usec; + args_ok: if (argind == 0) argind = argc - cac; @@ -2110,7 +2144,7 @@ if (pversion) { printf(_("mkisofs %s %s (%s-%s-%s)\n\n\ Copyright (C) 1993-1997 %s\n\ -Copyright (C) 1997-2019 %s\n"), +Copyright (C) 1997-2020 %s\n"), version_string, VERSION_DATE, HOST_CPU, HOST_VENDOR, HOST_OS, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/mkisofs/mkisofs.h new/schily-2020-03-27/mkisofs/mkisofs.h --- old/schily-2020-03-11/mkisofs/mkisofs.h 2016-12-13 22:39:34.000000000 +0100 +++ new/schily-2020-03-27/mkisofs/mkisofs.h 2020-03-24 20:13:06.000000000 +0100 @@ -1,11 +1,11 @@ -/* @(#)mkisofs.h 1.152 16/12/13 joerg */ +/* @(#)mkisofs.h 1.153 20/03/24 joerg */ /* * Header file mkisofs.h - assorted structure definitions and typecasts. * * Written by Eric Youngdale (1993). * * Copyright 1993 Yggdrasil Computing, Incorporated - * Copyright (c) 1999,2000-2016 J. Schilling + * Copyright (c) 1999,2000-2020 J. Schilling * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -725,6 +725,7 @@ extern BOOL correct_inodes; extern BOOL rrip112; extern BOOL long_rr_time; /* TRUE: use long (17 Byte) time format */ +extern BOOL noatime; /* Whether not to include file access time */ extern char *findgequal __PR((char *)); extern void *e_malloc __PR((size_t)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/mkisofs/tree.c new/schily-2020-03-27/mkisofs/tree.c --- old/schily-2020-03-11/mkisofs/tree.c 2018-05-20 13:11:03.000000000 +0200 +++ new/schily-2020-03-27/mkisofs/tree.c 2020-03-26 22:17:06.000000000 +0100 @@ -1,8 +1,8 @@ -/* @(#)tree.c 1.140 18/05/20 joerg */ +/* @(#)tree.c 1.142 20/03/26 joerg */ #include <schily/mconfig.h> #ifndef lint static UConst char sccsid[] = - "@(#)tree.c 1.140 18/05/20 joerg"; + "@(#)tree.c 1.142 20/03/26 joerg"; #endif /* * File tree.c - scan directory tree and build memory structures for iso9660 @@ -11,7 +11,7 @@ * Written by Eric Youngdale (1993). * * Copyright 1993 Yggdrasil Computing, Incorporated - * Copyright (c) 1999,2000-2018 J. Schilling + * Copyright (c) 1999,2000-2020 J. Schilling * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -235,8 +235,18 @@ { int result = stat(path, st); - if (result >= 0 && rationalize) + if (result < 0) + return (result); + + if (rationalize) stat_fix(st); + + if (noatime) { + int nsecs = stat_mnsecs(st); + + st->st_atime = st->st_mtime; + stat_set_ansecs(st, nsecs); + } return (result); } @@ -247,8 +257,19 @@ { int result = lstat(path, st); - if (result >= 0 && rationalize) + if (result < 0) + return (result); + + if (rationalize) stat_fix(st); + + if (noatime) { + int nsecs = stat_mnsecs(st); + + st->st_atime = st->st_mtime; + stat_set_ansecs(st, nsecs); + } + return (result); } @@ -826,11 +847,12 @@ { time_t current_time; struct directory_entry *s_entry; +extern time_t begun; /* * Create an entry for our internal tree */ - time(¤t_time); + current_time = begun; reloc_dir = (struct directory *) e_malloc(sizeof (struct directory)); memset(reloc_dir, 0, sizeof (struct directory)); @@ -2991,9 +3013,10 @@ init_fstatbuf() { struct timeval current_time; +extern struct timeval tv_begun; if (fstatbuf.st_ctime == 0) { - gettimeofday(¤t_time, NULL); + current_time = tv_begun; if (rationalize_uid) fstatbuf.st_uid = uid_to_use; else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/mkisofs/write.c new/schily-2020-03-27/mkisofs/write.c --- old/schily-2020-03-11/mkisofs/write.c 2016-12-13 22:39:34.000000000 +0100 +++ new/schily-2020-03-27/mkisofs/write.c 2020-03-26 22:09:35.000000000 +0100 @@ -1,8 +1,8 @@ -/* @(#)write.c 1.146 16/12/13 joerg */ +/* @(#)write.c 1.148 20/03/26 joerg */ #include <schily/mconfig.h> #ifndef lint static UConst char sccsid[] = - "@(#)write.c 1.146 16/12/13 joerg"; + "@(#)write.c 1.148 20/03/26 joerg"; #endif /* * Program write.c - dump memory structures to file for iso9660 filesystem. @@ -10,7 +10,7 @@ * Written by Eric Youngdale (1993). * * Copyright 1993 Yggdrasil Computing, Incorporated - * Copyright (c) 1999-2016 J. Schilling + * Copyright (c) 1999-2020 J. Schilling * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -2039,7 +2039,10 @@ int i; int s; Uchar *cp; +extern ldate creation_date; extern ldate modification_date; +extern ldate expiration_date; +extern ldate effective_date; iso9660_ldate(iso_time, tv_begun.tv_sec, tv_begun.tv_usec * 1000, -100); @@ -2127,6 +2130,24 @@ memcpy(vol_desc.expiration_date, "0000000000000000", 17); memcpy(vol_desc.effective_date, iso_time, 17); + if (creation_date.l_sec) + iso9660_ldate(vol_desc.creation_date, + creation_date.l_sec, + creation_date.l_usec * 1000, + creation_date.l_gmtoff); + + if (expiration_date.l_sec) + iso9660_ldate(vol_desc.expiration_date, + expiration_date.l_sec, + expiration_date.l_usec * 1000, + expiration_date.l_gmtoff); + + if (effective_date.l_sec) + iso9660_ldate(vol_desc.effective_date, + effective_date.l_sec, + effective_date.l_usec * 1000, + effective_date.l_gmtoff); + if (use_XA) { char *xap = &((char *)&vol_desc)[1024]; @@ -2209,6 +2230,7 @@ int len; extern char version_string[]; extern int path_ind; + extern ldate creation_date; /* Now write the version descriptor. */ memset(vers, 0, sizeof (vers)); @@ -2217,7 +2239,10 @@ cp = vers; X_ac = saved_ac(); X_av = saved_av(); - strlcpy(&cp[idx], ctime(&begun), 26); + if (creation_date.l_sec) + strlcpy(&cp[idx], ctime(&creation_date.l_sec), 26); + else + strlcpy(&cp[idx], ctime(&begun), 26); idx += 25; strlcpy(&cp[idx], version_string, SECTOR_SIZE - idx); idx += strlen(version_string); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/cmd.c new/schily-2020-03-27/sh/cmd.c --- old/schily-2020-03-11/sh/cmd.c 2020-03-05 21:02:28.000000000 +0100 +++ new/schily-2020-03-27/sh/cmd.c 2020-03-25 19:12:41.000000000 +0100 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)cmd.c 1.52 20/03/05 2008-2020 J. Schilling + * @(#)cmd.c 1.54 20/03/25 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)cmd.c 1.52 20/03/05 2008-2020 J. Schilling"; + "@(#)cmd.c 1.54 20/03/25 2008-2020 J. Schilling"; #endif /* @@ -350,12 +350,15 @@ } wdset &= ~IN_CASE; r->regcom = cmd(0, NLFLG | MTFLG); - if (wdval == ECSYM) { + if (wdval == ECSYM) { /* ;; */ r->regnxt = syncase(esym); -#ifdef DO_FALLTHR_CASE - } else if (wdval == ECASYM) { +#ifdef DO_FALLTHR_CASE + } else if (wdval == ECASYM) { /* ;& */ r->regnxt = syncase(esym); - r->regflag++; + r->regflag = 1; + } else if (wdval == ECARSYM) { /* ;;& */ + r->regnxt = syncase(esym); + r->regflag = 2; #endif } else { chksym(esym); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/func.c new/schily-2020-03-27/sh/func.c --- old/schily-2020-03-11/sh/func.c 2020-03-05 20:54:09.000000000 +0100 +++ new/schily-2020-03-27/sh/func.c 2020-03-23 22:59:49.000000000 +0100 @@ -37,11 +37,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)func.c 1.37 20/03/05 2008-2020 J. Schilling + * @(#)func.c 1.38 20/03/23 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)func.c 1.37 20/03/05 2008-2020 J. Schilling"; + "@(#)func.c 1.38 20/03/23 2008-2020 J. Schilling"; #endif /* @@ -642,7 +642,9 @@ prs_buff(UC ")"); prf(swl->regcom); - if (swl->regflag) + if (swl->regflag == 2) + prs_buff(UC ";;&"); + else if (swl->regflag) prs_buff(UC ";&"); else prs_buff(UC ";;"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/sh.1 new/schily-2020-03-27/sh/sh.1 --- old/schily-2020-03-11/sh/sh.1 2020-03-05 21:06:31.000000000 +0100 +++ new/schily-2020-03-27/sh/sh.1 2020-03-13 01:49:17.000000000 +0100 @@ -1,5 +1,5 @@ '\" te -.\" @(#)sh.1 1.250 20/03/05 Copyright 2012-2020 J. Schilling +.\" @(#)sh.1 1.251 20/03/13 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/03/05" "Schily Bourne Shell" "User Commands" +.TH sh 1 "2020/03/13" "Schily Bourne Shell" "User Commands" .SH NAME sh, bosh, jsh \- standard and job control shell and command interpreter .SH SYNOPSIS @@ -543,6 +543,12 @@ .B ;; the next subsequent list, if any, is executed. This causes a fall through to the next command list. +If +.B ;;& +is used in place of +.BR ;; , +the shell tests the next pattern list in the statement, if any, +and executes any associated list on a successful match. .sp When not in .B POSIX diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/sym.h new/schily-2020-03-27/sh/sym.h --- old/schily-2020-03-11/sh/sym.h 2020-03-05 20:52:10.000000000 +0100 +++ new/schily-2020-03-27/sh/sym.h 2020-03-13 01:49:17.000000000 +0100 @@ -28,7 +28,7 @@ #endif /* * Copyright 2009-2020 J. Schilling - * @(#)sym.h 1.12 20/03/05 2009-2020 J. Schilling + * @(#)sym.h 1.13 20/03/13 2009-2020 J. Schilling */ /* * UNIX shell @@ -62,7 +62,8 @@ #define APPSYM (SYMREP|'>') /* ">>" */ #define DOCSYM (SYMREP|'<') /* "<<" */ #define SYMALT 01000 /* additional symbols */ -#define ECASYM (SYMALT|'&') /* ";&" */ +#define ECASYM (SYMALT|'&') /* ";&" */ +#define ECARSYM (SYMALT|';') /* ";;&" */ #define EOFSYM 02000 #define SYMFLG 0400 /* reserved symbols (see above) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/version.h new/schily-2020-03-27/sh/version.h --- old/schily-2020-03-11/sh/version.h 2020-01-24 00:13:29.000000000 +0100 +++ new/schily-2020-03-27/sh/version.h 2020-03-25 11:46:04.000000000 +0100 @@ -1,4 +1,4 @@ -/* @(#)version.h 1.88 20/01/24 Copyright 2012-2020 J. Schilling */ +/* @(#)version.h 1.89 20/03/25 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/01/24" +#define VERSION_DATE "2020/03/25" #define VERSION_STR "a+" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/word.c new/schily-2020-03-27/sh/word.c --- old/schily-2020-03-11/sh/word.c 2020-03-05 21:01:19.000000000 +0100 +++ new/schily-2020-03-27/sh/word.c 2020-03-25 19:12:41.000000000 +0100 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)word.c 1.103 20/03/05 2008-2020 J. Schilling + * @(#)word.c 1.105 20/03/25 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)word.c 1.103 20/03/05 2008-2020 J. Schilling"; + "@(#)word.c 1.105 20/03/25 2008-2020 J. Schilling"; #endif /* @@ -213,9 +213,15 @@ else peekn = d | MARK; } -#ifdef DO_FALLTHR_CASE - } else if (c == ';' && d == '&') { - wdval = ECASYM; +#ifdef DO_FALLTHR_CASE + else if (wdval == ECSYM) { /* ;; */ + if ((d = nextwc()) == '&') /* ;;& */ + wdval = ECARSYM; /* ;;& */ + else + peekn = d | MARK; + } + } else if (c == ';' && d == '&') { /* ;& */ + wdval = ECASYM; /* ;& */ #endif } else { peekn = d | MARK; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sh/xec.c new/schily-2020-03-27/sh/xec.c --- old/schily-2020-03-11/sh/xec.c 2020-03-06 01:20:02.000000000 +0100 +++ new/schily-2020-03-27/sh/xec.c 2020-03-25 19:12:41.000000000 +0100 @@ -38,11 +38,11 @@ /* * Copyright 2008-2020 J. Schilling * - * @(#)xec.c 1.114 20/03/06 2008-2020 J. Schilling + * @(#)xec.c 1.116 20/03/25 2008-2020 J. Schilling */ #ifndef lint static UConst char sccsid[] = - "@(#)xec.c 1.114 20/03/06 2008-2020 J. Schilling"; + "@(#)xec.c 1.116 20/03/25 2008-2020 J. Schilling"; #endif /* @@ -1180,6 +1180,7 @@ cprint(UC "case", r, UC "in"); #endif regp = swptr(t)->swlst; +nextexpr: while (regp) { struct argnod *rex = regp->regptr; @@ -1204,12 +1205,21 @@ (char *)s) || ((flags2 & posixflg) == 0 && (trim(s), eq(r, s)))) { + /* + * regflag == 2 -> ;;& + * regflag == 1 -> ;& + * regflag == 0 -> ;; + */ do { execute(regp->regcom, XEC_NOSTOP, errorflg, no_pipe, no_pipe); + if (regp->regflag == 2 && + (regp = + regp->regnxt)) + goto nextexpr; } while (regp->regflag && (regp = regp->regnxt)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sunpro/Make/bin/make/common/make.1s new/schily-2020-03-27/sunpro/Make/bin/make/common/make.1s --- old/schily-2020-03-11/sunpro/Make/bin/make/common/make.1s 2019-07-22 19:22:30.000000000 +0200 +++ new/schily-2020-03-27/sunpro/Make/bin/make/common/make.1s 2020-03-14 15:07:40.000000000 +0100 @@ -1,5 +1,5 @@ '\" te -. \" @(#)make.1s 1.29 19/07/22 Copyr 2012-2019 J. Schilling +. \" @(#)make.1s 1.30 20/03/14 Copyr 2012-2019 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 "2019/07/22" "SunOS 5.11" "SunOS Specific Commands" +.TH make 1S "2020/03/14" "SunOS 5.11" "SunOS Specific Commands" .SH NAME make \- maintain, update, and regenerate related programs and files .SH SYNOPSIS @@ -3766,88 +3766,72 @@ .SH FILES .sp .ne 2 -.mk -.na +.PD 0 +.TP .B makefile -.ad -.br -.na +.TP .B Makefile -.ad +.PD .sp .6 -.RS 4n current version(s) of .B make description file -.RE .sp .ne 2 -.mk -.na +.PD 0 +.TP .B s.makefile -.ad -.br -.na +.TP .B s.Makefile -.ad +.PD .sp .6 -.RS 4n .B SCCS history files for the above makefile(s) in the current directory -.RE .sp .ne 2 -.mk -.na +.PD 0 +.TP .B SCCS/s.makefile -.ad -.br -.na +.TP .B SCCS/s.Makefile -.ad +.PD .sp .6 -.RS 4n .B SCCS history files for the above makefile(s) -.RE .sp .ne 2 -.mk -.na +.TP .B make.rules -.ad .sp .6 -.RS 4n default file for user-defined targets, macros, and implicit rules -.RE .sp .ne 2 -.mk -.na +.TP .B /usr/share/lib/make/make.rules -.ad .sp .6 -.RS 4n makefile for standard implicit rules and macros (not read if .B make.rules is) -.RE .sp .ne 2 -.mk -.na +.TP \fB\&.make.state\fR -.ad .sp .6 -.RS 4n state file in the local directory -.RE + +.sp +.ne 2 +.TP +\fB\&.make.state.lock\fR +.sp .6 +lock file for the state file in the local directory. +This file may need manual removal if the system crashed at a critical state. .SH ATTRIBUTES .sp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/schily-2020-03-11/sunpro/Make/include/mksh/defs.h new/schily-2020-03-27/sunpro/Make/include/mksh/defs.h --- old/schily-2020-03-11/sunpro/Make/include/mksh/defs.h 2019-10-19 11:15:22.000000000 +0200 +++ new/schily-2020-03-27/sunpro/Make/include/mksh/defs.h 2020-03-24 13:51:29.000000000 +0100 @@ -31,9 +31,9 @@ #pragma ident "@(#)defs.h 1.35 06/12/12" /* - * Copyright 2017-2019 J. Schilling + * Copyright 2017-2020 J. Schilling * - * @(#)defs.h 1.24 19/10/19 2017-2019 J. Schilling + * @(#)defs.h 1.25 20/03/24 2017-2020 J. Schilling */ #if defined(SCHILY_BUILD) || defined(SCHILY_INCLUDES) #include <schily/mconfig.h> @@ -480,7 +480,7 @@ /* * We don't need this typedef, since there is a * #define timestruc_t struct timespec - * in $(SRCROOT)/incs/*/xconfig.h that is created by "configure" in + * in $(SRCROOT)/incs/ * /xconfig.h that is created by "configure" in * case out current platform does not support that typedef. */ typedef struct timespec timestruc_t;