pkgsrc/shells/osh/Makefile

24 lines
546 B
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.19 2007/05/12 16:18:55 heinz Exp $
Update osh to version 20070324. This is for PR 36080 from upstream developer. pkgsrc changes include: Use BUILD_TARGET=oshall as request in PR. And make it work with PKGMANDIR. CHANGES file includes: Changes that improve compatibility w/ the Sixth Edition Unix shell are marked w/ a `C:' in the details below. ------------------------------------------------------------------------------- [osh-20070324]: osh.c: * In main(), changed when fdfree() is called so that it is in a more ideal sequence with other operations according to how the shell is invoked (e.g., interactive shell vs. non-interactive shell). ------------------------------------------------------------------------------- [osh-20070321]: * Imported the project into a local subversion repository. * Changed the all of the code to "#include <stdbool.h>" and to use the "bool" data-type macro where appropriate. Makefile: * Added SYSCONFDIR and a new `man' target. osh.c: * Defined _PATH_SYSTEM_LOGIN as `SYSCONFDIR/**/"/osh.login"' instead of "/etc/osh.login" so that the user can use SYSCONFDIR (/etc by default) at build-time to specify the directory where the shell shall search for its system-wide initialization file. * Added a new special parameter, $v, which makes the version of the osh package available as a read-only string. The format is `osh-YYYYMMDD' for official releases and `osh-current (YYYYMMDD)' (interpreted as one word) for development snapshots. * Fixed a bug where interactive shells were no longer ignoring SIGTERM when invoked, as they are supposed to. Now, SIGTERM is being ignored again upon invocation of all interactive shells. * Fixed the output from doing a `sigign' so that it matches its documentation in osh.1: "..., a list is printed of those signals which are ignored by sigign in the current shell." Previously, the output from a `sigign' could be a little confusing. Now, its output only indicates those cases where a given signal is being ignored w/ the possibility that it can then be unignored (reset) in the current shell context. if.c: * Added 3 new primaries: -ef (equal files - same device, same inode), -nt (newer than), -ot (older than). See the if(1) manual page for full details. ------------------------------------------------------------------------------- [osh-20070131]: osh.1: * Made a few minimal changes to synchronize the manual w/ the code. osh.c 1.2 (jneitzel) 2007/01/14: * Changed the `chdir: No old directory' diagnostic to `chdir: No previous directory' to match the manual. ------------------------------------------------------------------------------- [osh-20061230]: The following files have been removed in this release: examples/*: These files are now available at: http://jneitzel.sdf1.org/osh/initialization_files/ tests/*: ... until I have a chance to rewrite them ... *.1: * Changed all instances of `UNIX' to `Unix' since the name of the Unix operating system is not an acronym. pexec.c: * Fixed a possible, but very unlikely, memory leak. osh.c: C: Rewrote the shell! It is now a combination of the ports of the original source code from sh6.c and glob6.c (see CHANGES_sh-to-sh6) w/ the prior enhancements which were found in osh-060124/osh*.[ch] . fd2.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). goto.c: * Fixed a bug which interfered w/ finding a requested label when its first character had the high-order bit set. The value of the first character is now passed to getlabel() as an unsigned char converted to an int to allow correct comparison in such a case. if.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the method used to build the argument list for all commands executed by this utility, and removed the `Too many args' diagnostic. The maximum length of the argument list for a command is now limited only by the maximum length that the invoker can pass and by any system-imposed limit for execve(2) (see E2BIG in errno(2)). * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). * Changed the diagnostic used for `!', `-a', `-o', and `(' operator errors from `: argument expected' to `: expression expected'.
2007-03-26 18:43:34 +02:00
DISTNAME= osh-20070324
PKGREVISION= 1
CATEGORIES= shells
MASTER_SITES= http://jneitzel.sdf1.org/osh/src/
MAINTAINER= pkgsrc-users@NetBSD.org
2004-06-11 12:01:35 +02:00
HOMEPAGE= http://jneitzel.sdf1.org/osh/
COMMENT= Implementation of the UNIX 6th Edition shell
PKG_DESTDIR_SUPPORT= user-destdir
Update osh to 040216 and enable pkgviews installation. This closes PR pkg/25314. Changes: * Made various changes to hopefully improve the clarity. Added COMPATIBILITY, HISTORY, and NOTES sections. * Made changes to how the shell handles terminating `\' characters w/ the `-c' and `-t' flags. This is a simple extension of the same behaviour exhibited when the shell is interactive or when it executes a command file, the only difference being that where a terminating `\' character causes the shell to read the next line of input in an interactive shell or command file, w/ the `-c' and `-t' flags the shell terminates w/o executing the command line. * Allow parameter substitution w/ the `-c' and `-t' flags. This feature is not documented. For example, invoking the shell as follows allows parameter substitution to take place: % osh -t one two three echo $0 $1 $2 $3 -t one two three * The shell now ignores SIGINT and SIGQUIT when the `-c' or `-t' flag is used. Thus, asynchronous commands invoked in this way ignore interrupts as they should. * Ignore SIGINT and SIGQUIT for all commands started from asynchronous subshells. For example, `( sleep 300; some_command ) >outfile&' now ignores `^C' and `^\' as it should. * Don't ignore SIGINT and SIGQUIT for asynchronous commands started in command files. If a command file is terminated by one of these signals, the asynchronous commands should also terminate. * Reverted a change made to termination reporting in osh-040216 that was not actually compatible w/ the V6 shell. * Always terminate the shell when read(2) fails. This fixes a possible infinite loop. * Fixed a bug in the parser that caused syntactically incorrect subshell commands not to be detected as such when preceded by redirection arguments (e.g., `<infile >outfile ( | )'). This bug was introduced in osh-040216. * Fixed possible buffer overflows in substparm(); added a new error message, "Too many characters", and made other changes necessary to properly deal w/ the new error condition. This problem had been present since at least osh-020214. * Made some changes to how globbing is handled by the shell. Specifically, glob(3) should only be called when an argument contains unquoted occurrences of any of the glob characters `*', `?', or `['. Previously, it was being called for every argument of an external command. This change improves run-time performance slightly as judged by time(1) and information returned by getrusage(2). * The above-mentioned change also allows the following compatibility feature. Added globbing compatibility when the shell is compiled w/ -DCLONE so that when no matches are found a diagnostic, "No match", is printed.
2004-04-25 17:49:57 +02:00
PKG_INSTALLATION_TYPES= overwrite pkgviews
PKG_SHELL= bin/osh
Update osh to version 20070324. This is for PR 36080 from upstream developer. pkgsrc changes include: Use BUILD_TARGET=oshall as request in PR. And make it work with PKGMANDIR. CHANGES file includes: Changes that improve compatibility w/ the Sixth Edition Unix shell are marked w/ a `C:' in the details below. ------------------------------------------------------------------------------- [osh-20070324]: osh.c: * In main(), changed when fdfree() is called so that it is in a more ideal sequence with other operations according to how the shell is invoked (e.g., interactive shell vs. non-interactive shell). ------------------------------------------------------------------------------- [osh-20070321]: * Imported the project into a local subversion repository. * Changed the all of the code to "#include <stdbool.h>" and to use the "bool" data-type macro where appropriate. Makefile: * Added SYSCONFDIR and a new `man' target. osh.c: * Defined _PATH_SYSTEM_LOGIN as `SYSCONFDIR/**/"/osh.login"' instead of "/etc/osh.login" so that the user can use SYSCONFDIR (/etc by default) at build-time to specify the directory where the shell shall search for its system-wide initialization file. * Added a new special parameter, $v, which makes the version of the osh package available as a read-only string. The format is `osh-YYYYMMDD' for official releases and `osh-current (YYYYMMDD)' (interpreted as one word) for development snapshots. * Fixed a bug where interactive shells were no longer ignoring SIGTERM when invoked, as they are supposed to. Now, SIGTERM is being ignored again upon invocation of all interactive shells. * Fixed the output from doing a `sigign' so that it matches its documentation in osh.1: "..., a list is printed of those signals which are ignored by sigign in the current shell." Previously, the output from a `sigign' could be a little confusing. Now, its output only indicates those cases where a given signal is being ignored w/ the possibility that it can then be unignored (reset) in the current shell context. if.c: * Added 3 new primaries: -ef (equal files - same device, same inode), -nt (newer than), -ot (older than). See the if(1) manual page for full details. ------------------------------------------------------------------------------- [osh-20070131]: osh.1: * Made a few minimal changes to synchronize the manual w/ the code. osh.c 1.2 (jneitzel) 2007/01/14: * Changed the `chdir: No old directory' diagnostic to `chdir: No previous directory' to match the manual. ------------------------------------------------------------------------------- [osh-20061230]: The following files have been removed in this release: examples/*: These files are now available at: http://jneitzel.sdf1.org/osh/initialization_files/ tests/*: ... until I have a chance to rewrite them ... *.1: * Changed all instances of `UNIX' to `Unix' since the name of the Unix operating system is not an acronym. pexec.c: * Fixed a possible, but very unlikely, memory leak. osh.c: C: Rewrote the shell! It is now a combination of the ports of the original source code from sh6.c and glob6.c (see CHANGES_sh-to-sh6) w/ the prior enhancements which were found in osh-060124/osh*.[ch] . fd2.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). goto.c: * Fixed a bug which interfered w/ finding a requested label when its first character had the high-order bit set. The value of the first character is now passed to getlabel() as an unsigned char converted to an int to allow correct comparison in such a case. if.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the method used to build the argument list for all commands executed by this utility, and removed the `Too many args' diagnostic. The maximum length of the argument list for a command is now limited only by the maximum length that the invoker can pass and by any system-imposed limit for execve(2) (see E2BIG in errno(2)). * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). * Changed the diagnostic used for `!', `-a', `-o', and `(' operator errors from `: argument expected' to `: expression expected'.
2007-03-26 18:43:34 +02:00
BUILD_TARGET= oshall
INSTALL_TARGET= install-oshall
TEST_TARGET= check
Update osh to version 20070324. This is for PR 36080 from upstream developer. pkgsrc changes include: Use BUILD_TARGET=oshall as request in PR. And make it work with PKGMANDIR. CHANGES file includes: Changes that improve compatibility w/ the Sixth Edition Unix shell are marked w/ a `C:' in the details below. ------------------------------------------------------------------------------- [osh-20070324]: osh.c: * In main(), changed when fdfree() is called so that it is in a more ideal sequence with other operations according to how the shell is invoked (e.g., interactive shell vs. non-interactive shell). ------------------------------------------------------------------------------- [osh-20070321]: * Imported the project into a local subversion repository. * Changed the all of the code to "#include <stdbool.h>" and to use the "bool" data-type macro where appropriate. Makefile: * Added SYSCONFDIR and a new `man' target. osh.c: * Defined _PATH_SYSTEM_LOGIN as `SYSCONFDIR/**/"/osh.login"' instead of "/etc/osh.login" so that the user can use SYSCONFDIR (/etc by default) at build-time to specify the directory where the shell shall search for its system-wide initialization file. * Added a new special parameter, $v, which makes the version of the osh package available as a read-only string. The format is `osh-YYYYMMDD' for official releases and `osh-current (YYYYMMDD)' (interpreted as one word) for development snapshots. * Fixed a bug where interactive shells were no longer ignoring SIGTERM when invoked, as they are supposed to. Now, SIGTERM is being ignored again upon invocation of all interactive shells. * Fixed the output from doing a `sigign' so that it matches its documentation in osh.1: "..., a list is printed of those signals which are ignored by sigign in the current shell." Previously, the output from a `sigign' could be a little confusing. Now, its output only indicates those cases where a given signal is being ignored w/ the possibility that it can then be unignored (reset) in the current shell context. if.c: * Added 3 new primaries: -ef (equal files - same device, same inode), -nt (newer than), -ot (older than). See the if(1) manual page for full details. ------------------------------------------------------------------------------- [osh-20070131]: osh.1: * Made a few minimal changes to synchronize the manual w/ the code. osh.c 1.2 (jneitzel) 2007/01/14: * Changed the `chdir: No old directory' diagnostic to `chdir: No previous directory' to match the manual. ------------------------------------------------------------------------------- [osh-20061230]: The following files have been removed in this release: examples/*: These files are now available at: http://jneitzel.sdf1.org/osh/initialization_files/ tests/*: ... until I have a chance to rewrite them ... *.1: * Changed all instances of `UNIX' to `Unix' since the name of the Unix operating system is not an acronym. pexec.c: * Fixed a possible, but very unlikely, memory leak. osh.c: C: Rewrote the shell! It is now a combination of the ports of the original source code from sh6.c and glob6.c (see CHANGES_sh-to-sh6) w/ the prior enhancements which were found in osh-060124/osh*.[ch] . fd2.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). goto.c: * Fixed a bug which interfered w/ finding a requested label when its first character had the high-order bit set. The value of the first character is now passed to getlabel() as an unsigned char converted to an int to allow correct comparison in such a case. if.c: * Removed the call to lseek(2) to end-of-file for errors. The shell determines when this is necessary. * Changed the method used to build the argument list for all commands executed by this utility, and removed the `Too many args' diagnostic. The maximum length of the argument list for a command is now limited only by the maximum length that the invoker can pass and by any system-imposed limit for execve(2) (see E2BIG in errno(2)). * Changed the `: no shell' diagnostic to `: No shell!' in the spirit of sh6(1). * Changed the diagnostic used for `!', `-a', `-o', and `(' operator errors from `: argument expected' to `: expression expected'.
2007-03-26 18:43:34 +02:00
MAKE_ENV+= MANDIR=${PREFIX}/${PKGMANDIR}/man1
.include "../../mk/bsd.pkg.mk"