Version 1.0.2
- Add p1_time_compat module to ease support for both R17 and R18 Erlang
time features
Version 1.0.1
- Better Rebar3 support, remove warning about missing hex plugin when
building with rebar
Version 1.0.0
- Add build state
- Only looks for missing functions
- We do not need gcov support (No C code)
- Add initial travis file
- Switch deprecated hex.pm field
- Prepare hex.pm release
- This is a library. Switching to Apache v2 to make it widely usable.
- Revert "Do not check for generic_debug option"
- Attempt to unify Coveralls project configuration
- Fix setup code
- Add missing coveralls info
- Fix typo in configuration rewrite
- Attempt to debug travis / coverall link
- Use coveralls plugin
- Attempt to force coveralls upload
- Points to rebar plugin dir
- Preparing moving test to eunit
- Try sending to coveralls
- Preparing travis integration
- We can now use p1_utils 1.0.2
- Preparing release 1.0.1 on hex.pm
- Initial travis configuration
- Change license and rename main app name to match repository name
pkgsrc-users.
Also added copyright notices and installation of the license to make the
package compilant with it's license.
Changelog:
Changes that improve compatibility w/ the Sixth Edition (V6) UNIX
Thompson shell are marked w/ a `C:' in the details below.
-------------------------------------------------------------------------------
[osh-current] (development):
* Work In Progress ( see http://v6shell.org/src/current/ )
-------------------------------------------------------------------------------
[osh-20160108] (latest):
README:
* Updated supported systems to include FreeBSD 10.2,
Mac OS X 10.11 (El Capitan), NetBSD 7.0, OpenBSD 5.[78],
and Debian 8.2 (jessie).
Makefile:
* Changed `-W' to `-Wextra' (same warning, newer name). From gcc(1) -
This option used to be called -W. The older name is still supported,
but the newer name is more descriptive.
DEDICATIONS:
* Updated the URL for dmr's home page at Bell Labs.
*.h:
* Added a sh6-related comment to the top of the header files
since they are used by sh6 and its external utilities.
examples/dot.oshrc:
* Redirected diagnostics from leaks(1) (Mac OS X) to /dev/null.
-------------------------------------------------------------------------------
[osh-20150115]:
if.c, osh.c, strtoint.[hc], util.c:
* Changed the strtoint() function to convert string into a
long instead of an int, and ensured that numbers which might
be considered to have an octal form (valid or invalid) are
not treated as if they are decimal integers. For example:
`if 0[0-9] -eq [0-9]' and `if [0-9] -eq 0[0-9]' and similar
are always false, resulting in an error.
if.c, util.c:
* Changed how the built-in & external if(1) commands call
the strtoint() function.
err.h, strtoint.c:
* Changed the "not an integer" diagnostic for the strtoint()
function to "bad integer".
err.h, if.c, util.c:
* Changed the "not a digit" diagnostic for the built-in & external
if(1) commands to "bad digit".
err.h:
* Changed the order of the definitions for diagnostics to make finding
the "... expected" ones for if(1) a bit easier.
-------------------------------------------------------------------------------
[osh-20141024]:
README:
* Added OS X 10.10 (Yosemite) to supported systems.
* Added Debian 7.7 (wheezy) to supported systems.
examples/*.osh.login:
* Changed /usr/X11 to /opt/X11 in *PATH.
examples/dot.oshrc:
* Updated the sh6i alias to make it trap and untrap the 1 (HUP),
2 (INT), 3 (QUIT), 13 (PIPE), 14 (ALRM), 15 (TERM), 18 (TSTP),
21 (TTIN), and 22 (TTOU) signals accordingly for better behavior.
-------------------------------------------------------------------------------
[osh-20140820]:
* See CHANGES6 .
-------------------------------------------------------------------------------
[osh-20140410]:
Makefile:
* Changed MOXARCH to OSXCFLAGS & OSXLDFLAGS to play better w/ MacPorts.
Makefile.config:
* Added comment to celebrate 12 years of osh via osh-current.
osh.1:
* Added missing (+) to version in Special commands.
osh.c:
* Enable `.' and `source' special built-in command execution
to succeed when the user invokes the shell as `osh -c string'.
EG:
% osh -c '. file [arg1 ...]' [arg1 ...]
or:
% osh -c 'source file [arg1 ...]' [arg1 ...]
.
-------------------------------------------------------------------------------
[osh-20131109]:
osh.1:
* Changed `LICENSE' to LICENSE to match the other manual pages.
examples/FILEPREP:
* Changed `sigign' invocation to `trap'.
examples/dot.oshrc:
* Added two useful pwd-related aliases: `ocpwd' and `opwd'
* Added a `now' and a `sysinfo' alias.
-------------------------------------------------------------------------------
[osh-20130331]:
*sh.[ch]:
* Removed the deprecated $n and $s parameters.
Now, the user can `set' and `unset' n and s as shell variables.
The following command line is a simple way to replace
all instances of $n w/ $# and $s w/ $? in file:
% <file(rm -f file;sed 's/$n/$#/g;s/$s/$?/g'>file)
.
osh:
* Added code to print diagnostics w/ line numbers when possible.
When reporting error(s), if a diagnostic is to be printed, the
shell gets the line number of the file where the error happened,
adjusts the diagnostic (adding the name of the file and the line
number if the standard input from which the shell reads and
interprets commands lines is seekable), and prints it. EG:
% echo R* ; osh R* ; head -1 R*
README
osh: README: 1: syntax error
Welcome to Osh (V6Shell) - osh-20130331 !
.
* Renamed the `sigign' special built-in command to `trap'
to make osh signal-trapping behavior more sh-like. Granted,
trap is a misnomer since osh only ignores signals for now.
osh.1:
* Removed the documentation for the $n and $s parameters.
* Changed the documentation for `sigign' to `trap' as needed.
examples/*:
* Made stty(1) invocation conditional in .../etc.osh.login .
* Escaped $1 when setting hcount alias in .../dot.oshrc .
-------------------------------------------------------------------------------
[osh-20120604]:
* New file: Makefile.config (included from Makefile)
* New files: strtoint.[ch] (string to integer converter)
* New files: tests/* (regression test suite for osh/sh6)
Makefile:
* Added a "check" target to run the tests w/ osh and sh6.
* Added a "check-newlog" target to generate new test logs
for the osh and sh6 tests.
defs.h:
* Limited maximum PATHMAX definition to 1024.
pexec.c:
* Changed errno to ENAMETOOLONG for each `path too long' error.
osh:
C: Added missing `Command line overflow' diagnostic.
* Added $# (as a synonym for $n) parameter.
* Added $? (as a synonym for $s) parameter.
* Deprecated $n and $s parameters in favor of $# and $?.
$n and $s parameters will be removed after this release.
* Added simple shell variables. This allows the user to `set' and
`unset' shell variables. For compatibility, these variables are
limited to uppercase and lowercase ASCII alpha names that are
one character in length. For example: $A $B $C and $a $b $c
and so forth.
* Changed quoting to allow $ substitution within double (") quotes.
For example: "$$", "$*", "$1", and so forth. This makes parameter
and variable substitution much more flexible.
* Added `.' as a synonym for `source'.
* Enabled PATH search when opening file for `.' and `source'.
* Changed `setenv' built-in command usage and behavior. Now, name
requires value argument. Updated osh.1 manual page accordingly.
if:
* Added new operators to the built-in `if' command for osh
and to the external `if' command for sh6. Updated the if.1
manual page accordingly. The new operators include: <, >,
-eq, -ne, -gt, -ge, -lt, -le
osh.1:
* Flagged $n and $s parameters as deprecated.
* Added `set' and `unset' documentation to the
"Special commands" subsection.
* Added a new "Variable substitution (+)" subsection.
* Documented `.' as a synonym for `source', and added relevant
PATH search documentation.
* Simplified "SECURITY" section a bit.
* Updated "Quoting" subsection to describe double (") quotes handling.
examples/*:
* Made various changes to reflect current and future osh behavior.
-------------------------------------------------------------------------------
[osh-20120102]:
mkconfig:
* Changed _XOPEN_SOURCE definition from 600 to 600L .
err.h:
* Added DEBUG_ALIAS, DEBUG_GLOB, and DEBUG_PROC definitions
(undefined by default) for printf debugging in osh.c and
util.c if/when needed.
osh.c:
* Changed exit status for alias and unalias so that they exit w/ a
false (1) status when there are no aliases to print, set, or unset.
Otherwise, they exit w/ a true (0) status when there is no error.
* Added 'version' as special built-in command.
osh.1:
* Adjusted $v description in "Parameter substitution" subsection.
* Added version description to "Special commands" subsection.
* Added uname(1) to "SEE ALSO" section.
examples/dot.oshrc:
* Replaced the 'version' alias w/ alias 'v1' 'version'
to invoke the 'version' special built-in command.
-------------------------------------------------------------------------------
[osh-20111129-p1]:
examples/dot.oshrc:
* Re-added missing ';s/ \$//' that git ident removed from version alias.
This removes trailing ' $' as shown in example 1 and 2 below:
% : example 1 ; version
osh-20111129 (NetBSD 5.1 amd64) $
% : example 2 ; version
osh-20111129-p1 (NetBSD 5.1 amd64)
-------------------------------------------------------------------------------
[osh-20111129]:
mkconfig, v.c:
* Added useful build system info from `uname -srm'.
examples/dot.*:
* Removed code to replace osh w/ sh6 when invoked as
`osh [-i | -l] sh6'. Use sh6i alias instead.
* Changed sh6i alias for sake of simplicity.
* Removed sh6l alias.
* Changed from using kill(1) to kill current ssh-agent process
to using ssh-agent(1) and its `-k' flag instead.
* Added handy new v and version aliases. For example:
% v ; : Same as doing % echo $v
osh-20111129
% version
osh-20111129 (NetBSD 5.1 amd64)
-------------------------------------------------------------------------------
[osh-20111027]:
* New file: DEDICATIONS (in memory of Dennis M. Ritchie (dmr))
AUTHORS:
* Added reference to DEDICATIONS file.
LICENSE:
* Added two more OpenBSD license references.
mkconfig:
* Fixed a problem w/ the mkconfig script on OpenBSD, where which(1)
used to send a "newgrp: Command not found." diagnostic to standard
output, not standard error. It looks like the noted OpenBSD which(1)
problem has since been fixed though.
osh:
* Fixed a globbing problem caused by an unsigned-integer overflow.
* Added $# (as a synonym for $n) and $* parameters.
* Added a new, command-aliasing feature.
osh.1:
* Added `alias' and `unalias' documentation to the
"Special commands" subsection.
* Added a new "Aliases (+)" subsection.
* Added a new "Metacharacters" subsection.
*.1:
* Changed the visual style of the manual pages, regarding bold, italic,
and `literal' text. The intent was to make for easier reading.
if:
* Added `:' as if(1) special command. It is useful when debugging
scripts and helps when documenting them.
examples/dot.*:
* Documented by example how to turn alias arguments into a no-op.
* Added ssh-agent support. This allows the same ssh-agent process
to be used for shared ssh key(s) across multiple concurrent
login sessions. It also kills the ssh-agent process on
logout when appropriate.
Change Log for PCRE2
--------------------
Version 10.21 12-January-2016
-----------------------------
1. Improve matching speed of patterns starting with + or * in JIT.
2. Use memchr() to find the first character in an unanchored match in 8-bit
mode in the interpreter. This gives a significant speed improvement.
3. Removed a redundant copy of the opcode_possessify table in the
pcre2_auto_possessify.c source.
4. Fix typos in dftables.c for z/OS.
5. Change 36 for 10.20 broke the handling of [[:>:]] and [[:<:]] in that
processing them could involve a buffer overflow if the following character was
an opening parenthesis.
6. Change 36 for 10.20 also introduced a bug in processing this pattern:
/((?x)(*:0))#(?'/. Specifically: if a setting of (?x) was followed by a (*MARK)
setting (which (*:0) is), then (?x) did not get unset at the end of its group
during the scan for named groups, and hence the external # was incorrectly
treated as a comment and the invalid (?' at the end of the pattern was not
diagnosed. This caused a buffer overflow during the real compile. This bug was
discovered by Karl Skomski with the LLVM fuzzer.
7. Moved the pcre2_find_bracket() function from src/pcre2_compile.c into its
own source module to avoid a circular dependency between src/pcre2_compile.c
and src/pcre2_study.c
8. A callout with a string argument containing an opening square bracket, for
example /(?C$[$)(?<]/, was incorrectly processed and could provoke a buffer
overflow. This bug was discovered by Karl Skomski with the LLVM fuzzer.
9. The handling of callouts during the pre-pass for named group identification
has been tightened up.
10. The quantifier {1} can be ignored, whether greedy, non-greedy, or
possessive. This is a very minor optimization.
11. A possessively repeated conditional group that could match an empty string,
for example, /(?(R))*+/, was incorrectly compiled.
12. The Unicode tables have been updated to Unicode 8.0.0 (thanks to Christian
Persch).
13. An empty comment (?#) in a pattern was incorrectly processed and could
provoke a buffer overflow. This bug was discovered by Karl Skomski with the
LLVM fuzzer.
14. Fix infinite recursion in the JIT compiler when certain patterns such as
/(?:|a|){100}x/ are analysed.
15. Some patterns with character classes involving [: and \\ were incorrectly
compiled and could cause reading from uninitialized memory or an incorrect
error diagnosis. Examples are: /[[:\\](?<[::]/ and /[[:\\](?'abc')[a:]. The
first of these bugs was discovered by Karl Skomski with the LLVM fuzzer.
16. Pathological patterns containing many nested occurrences of [: caused
pcre2_compile() to run for a very long time. This bug was found by the LLVM
fuzzer.
17. A missing closing parenthesis for a callout with a string argument was not
being diagnosed, possibly leading to a buffer overflow. This bug was found by
the LLVM fuzzer.
18. A conditional group with only one branch has an implicit empty alternative
branch and must therefore be treated as potentially matching an empty string.
19. If (?R was followed by - or + incorrect behaviour happened instead of a
diagnostic. This bug was discovered by Karl Skomski with the LLVM fuzzer.
20. Another bug that was introduced by change 36 for 10.20: conditional groups
whose condition was an assertion preceded by an explicit callout with a string
argument might be incorrectly processed, especially if the string contained \Q.
This bug was discovered by Karl Skomski with the LLVM fuzzer.
21. Compiling PCRE2 with the sanitize options of clang showed up a number of
very pedantic coding infelicities and a buffer overflow while checking a UTF-8
string if the final multi-byte UTF-8 character was truncated.
22. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
class, where both values are literal letters in the same case, omit the
non-letter EBCDIC code points within the range.
23. Finding the minimum matching length of complex patterns with back
references and/or recursions can take a long time. There is now a cut-off that
gives up trying to find a minimum length when things get too complex.
24. An optimization has been added that speeds up finding the minimum matching
length for patterns containing repeated capturing groups or recursions.
25. If a pattern contained a back reference to a group whose number was
duplicated as a result of appearing in a (?|...) group, the computation of the
minimum matching length gave a wrong result, which could cause incorrect "no
match" errors. For such patterns, a minimum matching length cannot at present
be computed.
26. Added a check for integer overflow in conditions (?(<digits>) and
(?(R<digits>). This omission was discovered by Karl Skomski with the LLVM
fuzzer.
27. Fixed an issue when \p{Any} inside an xclass did not read the current
character.
28. If pcre2grep was given the -q option with -c or -l, or when handling a
binary file, it incorrectly wrote output to stdout.
29. The JIT compiler did not restore the control verb head in case of *THEN
control verbs. This issue was found by Karl Skomski with a custom LLVM fuzzer.
30. The way recursive references such as (?3) are compiled has been re-written
because the old way was the cause of many issues. Now, conversion of the group
number into a pattern offset does not happen until the pattern has been
completely compiled. This does mean that detection of all infinitely looping
recursions is postponed till match time. In the past, some easy ones were
detected at compile time. This re-writing was done in response to yet another
bug found by the LLVM fuzzer.
31. A test for a back reference to a non-existent group was missing for items
such as \987. This caused incorrect code to be compiled. This issue was found
by Karl Skomski with a custom LLVM fuzzer.
32. Error messages for syntax errors following \g and \k were giving inaccurate
offsets in the pattern.
33. Improve the performance of starting single character repetitions in JIT.
34. (*LIMIT_MATCH=) now gives an error instead of setting the value to 0.
35. Error messages for syntax errors in *LIMIT_MATCH and *LIMIT_RECURSION now
give the right offset instead of zero.
36. The JIT compiler should not check repeats after a {0,1} repeat byte code.
This issue was found by Karl Skomski with a custom LLVM fuzzer.
37. The JIT compiler should restore the control chain for empty possessive
repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer.
38. A bug which was introduced by the single character repetition optimization
was fixed.
39. Match limit check added to recursion. This issue was found by Karl Skomski
with a custom LLVM fuzzer.
40. Arrange for the UTF check in pcre2_match() and pcre2_dfa_match() to look
only at the part of the subject that is relevant when the starting offset is
non-zero.
41. Improve first character match in JIT with SSE2 on x86.
42. Fix two assertion fails in JIT. These issues were found by Karl Skomski
with a custom LLVM fuzzer.
43. Correct the setting of CMAKE_C_FLAGS in CMakeLists.txt (patch from Roy Ivy
III).
44. Fix bug in RunTest.bat for new test 14, and adjust the script for the added
test (there are now 20 in total).
45. Fixed a corner case of range optimization in JIT.
46. Add the ${*MARK} facility to pcre2_substitute().
47. Modifier lists in pcre2test were splitting at spaces without the required
commas.
48. Implemented PCRE2_ALT_VERBNAMES.
49. Fixed two issues in JIT. These were found by Karl Skomski with a custom
LLVM fuzzer.
50. The pcre2test program has been extended by adding the #newline_default
command. This has made it possible to run the standard tests when PCRE2 is
compiled with either CR or CRLF as the default newline convention. As part of
this work, the new command was added to several test files and the testing
scripts were modified. The pcre2grep tests can now also be run when there is no
LF in the default newline convention.
51. The RunTest script has been modified so that, when JIT is used and valgrind
is specified, a valgrind suppressions file is set up to ignore "Invalid read of
size 16" errors because these are false positives when the hardware supports
the SSE2 instruction set.
52. It is now possible to have comment lines amid the subject strings in
pcre2test (and perltest.sh) input.
53. Implemented PCRE2_USE_OFFSET_LIMIT and pcre2_set_offset_limit().
54. Add the null_context modifier to pcre2test so that calling pcre2_compile()
and the matching functions with NULL contexts can be tested.
55. Implemented PCRE2_SUBSTITUTE_EXTENDED.
56. In a character class such as [\W\p{Any}] where both a negative-type escape
("not a word character") and a property escape were present, the property
escape was being ignored.
57. Fixed integer overflow for patterns whose minimum matching length is very,
very large.
58. Implemented --never-backslash-C.
59. Change 55 above introduced a bug by which certain patterns provoked the
erroneous error "\ at end of pattern".
60. The special sequences [[:<:]] and [[:>:]] gave rise to incorrect compiling
errors or other strange effects if compiled in UCP mode. Found with libFuzzer
and AddressSanitizer.
61. Whitespace at the end of a pcre2test pattern line caused a spurious error
message if there were only single-character modifiers. It should be ignored.
62. The use of PCRE2_NO_AUTO_CAPTURE could cause incorrect compilation results
or segmentation errors for some patterns. Found with libFuzzer and
AddressSanitizer.
63. Very long names in (*MARK) or (*THEN) etc. items could provoke a buffer
overflow.
64. Improve error message for overly-complicated patterns.
65. Implemented an optional replication feature for patterns in pcre2test, to
make it easier to test long repetitive patterns. The tests for 63 above are
converted to use the new feature.
66. In the POSIX wrapper, if regerror() was given too small a buffer, it could
misbehave.
67. In pcre2_substitute() in UTF mode, the UTF validity check on the
replacement string was happening before the length setting when the replacement
string was zero-terminated.
68. In pcre2_substitute() in UTF mode, PCRE2_NO_UTF_CHECK can be set for the
second and subsequent calls to pcre2_match().
69. There was no check for integer overflow for a replacement group number in
pcre2_substitute(). An added check for a number greater than the largest group
number in the pattern means this is not now needed.
70. The PCRE2-specific VERSION condition didn't work correctly if only one
digit was given after the decimal point, or if more than two digits were given.
It now works with one or two digits, and gives a compile time error if more are
given.
71. In pcre2_substitute() there was the possibility of reading one code unit
beyond the end of the replacement string.
72. The code for checking a subject's UTF-32 validity for a pattern with a
lookbehind involved an out-of-bounds pointer, which could potentially cause
trouble in some environments.
73. The maximum lookbehind length was incorrectly calculated for patterns such
as /(?<=(a)(?-1))x/ which have a recursion within a backreference.
74. Give an error if a lookbehind assertion is longer than 65535 code units.
75. Give an error in pcre2_substitute() if a match ends before it starts (as a
result of the use of \K).
76. Check the length of subpattern names and the names in (*MARK:xx) etc.
dynamically to avoid the possibility of integer overflow.
77. Implement pcre2_set_max_pattern_length() so that programs can restrict the
size of patterns that they are prepared to handle.
78. (*NO_AUTO_POSSESS) was not working.
79. Adding group information caching improves the speed of compiling when
checking whether a group has a fixed length and/or could match an empty string,
especially when recursion or subroutine calls are involved. However, this
cannot be used when (?| is present in the pattern because the same number may
be used for groups of different sizes. To catch runaway patterns in this
situation, counts have been introduced to the functions that scan for empty
branches or compute fixed lengths.
80. Allow for the possibility of the size of the nest_save structure not being
a factor of the size of the compiling workspace (it currently is).
81. Check for integer overflow in minimum length calculation and cap it at
65535.
82. Small optimizations in code for finding the minimum matching length.
83. Lock out configuring for EBCDIC with non-8-bit libraries.
84. Test for error code <= 0 in regerror().
85. Check for too many replacements (more than INT_MAX) in pcre2_substitute().
86. Avoid the possibility of computing with an out-of-bounds pointer (though
not dereferencing it) while handling lookbehind assertions.
87. Failure to get memory for the match data in regcomp() is now given as a
regcomp() error instead of waiting for regexec() to pick it up.
88. In pcre2_substitute(), ensure that CRLF is not split when it is a valid
newline sequence.
89. Paranoid check in regcomp() for bad error code from pcre2_compile().
90. Run test 8 (internal offsets and code sizes) for link sizes 3 and 4 as well
as for link size 2.
91. Document that JIT has a limit on pattern size, and give more information
about JIT compile failures in pcre2test.
92. Implement PCRE2_INFO_HASBACKSLASHC.
93. Re-arrange valgrind support code in pcre2test to avoid spurious reports
with JIT (possibly caused by SSE2?).
94. Support offset_limit in JIT.
95. A sequence such as [[:punct:]b] that is, a POSIX character class followed
by a single ASCII character in a class item, was incorrectly compiled in UCP
mode. The POSIX class got lost, but only if the single character followed it.
96. [:punct:] in UCP mode was matching some characters in the range 128-255
that should not have been matched.
97. If [:^ascii:] or [:^xdigit:] are present in a non-negated class, all
characters with code points greater than 255 are in the class. When a Unicode
property was also in the class (if PCRE2_UCP is set, escapes such as \w are
turned into Unicode properties), wide characters were not correctly handled,
and could fail to match.
98. In pcre2test, make the "startoffset" modifier a synonym of "offset",
because it sets the "startoffset" parameter for pcre2_match().
99. If PCRE2_AUTO_CALLOUT was set on a pattern that had a (?# comment between
an item and its qualifier (for example, A(?#comment)?B) pcre2_compile()
misbehaved. This bug was found by the LLVM fuzzer.
100. The error for an invalid UTF pattern string always gave the code unit
offset as zero instead of where the invalidity was found.
101. Further to 97 above, negated classes such as [^[:^ascii:]\d] were also not
working correctly in UCP mode.
102. Similar to 99 above, if an isolated \E was present between an item and its
qualifier when PCRE2_AUTO_CALLOUT was set, pcre2_compile() misbehaved. This bug
was found by the LLVM fuzzer.
103. The POSIX wrapper function regexec() crashed if the option REG_STARTEND
was set when the pmatch argument was NULL. It now returns REG_INVARG.
104. Allow for up to 32-bit numbers in the ordin() function in pcre2grep.
105. An empty \Q\E sequence between an item and its qualifier caused
pcre2_compile() to misbehave when auto callouts were enabled. This bug
was found by the LLVM fuzzer.
106. If both PCRE2_ALT_VERBNAMES and PCRE2_EXTENDED were set, and a (*MARK) or
other verb "name" ended with whitespace immediately before the closing
parenthesis, pcre2_compile() misbehaved. Example: /(*:abc )/, but only when
both those options were set.
107. In a number of places pcre2_compile() was not handling NULL characters
correctly, and pcre2test with the "bincode" modifier was not always correctly
displaying fields containing NULLS:
(a) Within /x extended #-comments
(b) Within the "name" part of (*MARK) and other *verbs
(c) Within the text argument of a callout
108. If a pattern that was compiled with PCRE2_EXTENDED started with white
space or a #-type comment that was followed by (?-x), which turns off
PCRE2_EXTENDED, and there was no subsequent (?x) to turn it on again,
pcre2_compile() assumed that (?-x) applied to the whole pattern and
consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix
for this bug means that a setting of any of the (?imsxU) options at the start
of a pattern is no longer transferred to the options that are returned by
PCRE2_INFO_ALLOPTIONS. In fact, this was an anachronism that should have
changed when the effects of those options were all moved to compile time.
109. An escaped closing parenthesis in the "name" part of a (*verb) when
PCRE2_ALT_VERBNAMES was set caused pcre2_compile() to malfunction. This bug
was found by the LLVM fuzzer.
110. Implemented PCRE2_SUBSTITUTE_UNSET_EMPTY, and updated pcre2test to make it
possible to test it.
111. "Harden" pcre2test against ridiculously large values in modifiers and
command line arguments.
112. Implemented PCRE2_SUBSTITUTE_UNKNOWN_UNSET and PCRE2_SUBSTITUTE_OVERFLOW_
LENGTH.
113. Fix printing of *MARK names that contain binary zeroes in pcre2test.
Changes since 4.3.3
! Update the bounds checking when receiving a packet.
Thanks to Sebastian Poehn from Sophos for the bug report and a suggested
patch.
[ISC-Bugs #41267]
aha - Ansi HTML Adapter
aha takes SGR-colored Input and prints W3C conform HTML-Code.
aha reads the Input from a file or stdin and writes HTML-Code to stdout.
Originally packaged as wip/aha
More German Translation work from Mechtilde Stehmann.
New German illustrations from Mechtilde Stehmann.
Use letter size paper only in US or C locales. The rest of the
world uses metric A4 paper. The locale detection is done at configure.
Clarify that creating a postponed SX will use the original date.
Bug 759859 - Reconcilation does not convert transactions' currency
to the main one making reconcilation impossible.
Bug 760016 - 2.6.10 and master dump script error while running configure.
Bug 760407 - Note account separator isn't always a colon.
Between 2.6.10 and 2.6.11, the following bugfixes were accomplished:
Bug 680104 - Scheduled Tranaction formula not calculated when variables are mixed with constants.
Bug 756335 - When importing, date selection causes exit crash.
Bug 759570 - Postponing a repeating SX skips over the instance.
Bug 759674 - GNUCash crashes when importing invoices or bills with delimited import.
Bug 759859 - Reconcilation does not convert transactions' currency to the main one making reconcilation impossible.
Bug 760052 - missing flag translatable in Custom Report.
Bug 760079 - Translations comments: Remove translatable flag from placeholder labels in dialog date-close.
Bug 760398 - Cancelling the creation of a duplicate bill or invoice doesn't reset the invoice number counter
Some other fixes not associated with reported bugs:
Add Account.AssignLots to python bindings.
Allow panel that provides information about TXF categories to be adjusted by the user in the Income Tax Information dialog under Edit->Tax Report Options.
Minor improvement to information provided about TXF categories in the Income Tax Information dialog under Edit->Tax Report Options.
Translations Updated: German.
Roo implements read access for all common spreadsheet types. It can handle:
* Excel 2007 - 2013 formats (xlsx, xlsm)
* LibreOffice / OpenOffice.org formats (ods)
* CSV
* Excel 97, Excel 2002 XML, and Excel 2003 XML formats when using
the roo-xls gem (xls, xml)
* Google spreadsheets with read/write access when using roo-google
Untested, but packages fine.
Changes since 5.2.2.2:
* Makefile variables
The warnings about missing permissions sound more natural than before
and give a hint for alternative operators (e.g. set-default instead
of append), or an alternative file where setting this variable is
allowed instead (e.g. PKGREVISION may not be set in Makefile.common,
but in Makefile it is ok).
Warnings about "unknown" allowed permissions are not shown anymore,
since they didn't provide any benefit. To see them again, pkglint must
be run with the -Dunchecked option.
User-defined variables may be used by builtin.mk. They may also be
used during load time, not only during run time, under the assumption
that in most cases the bsd.prefs.mk has already been loaded.
Some individual variables may be defined or used in places where this
was not allowed before. CHECK_BUILTIN.*, BUILDLINK_TARGETS,
TOOLS_DEPENDS.*, BUILDLINK_DEPMETHOD.*, SUBST_CLASSES.
A new parser for Makefile expressions detects and reports more
mistakes than bmake itself. Currently it is only used to check the
basic syntax; more applications are possible.
* PLIST
In PLIST files, conditionals of the form ${PLIST.*} are recognized and
are not part of the pathname. This allows pkglint to better check for
missing manual pages and correctly sorted PLIST files.
In --autofix mode, pkglint can sort PLIST files, which makes these
rather annoying warnings easy to fix.
No more warnings for man pages whose filename doesn't match exactly
the section, e.g. man/man3/exit.3c.
* Patches
The code for checking patch files has been completely rewritten, so
that it is easier understandable and well-structured. As an additional
benefit, it also became faster. Support for context diffs has been
dropped to a minimum, since they are not popular anymore.
Pkglint no longer warns about missing trailing whitespace in a line,
since all patch programs can handle these lines. It also doesn't
request empty lines between multiple diffs in a single file, since
that is simply not necessary.
Pkglint is picky when a patch file continues after the diff with some
text that still looks like a diff, since that means the patch doesn't
do what it looks like on first sight
(example: audio/faad2/patches/patch-au).
* Distinfo
When a patch file listed in distinfo cannot be found in the
filesystem, this is reported clearly instead of complaining about
missing SHA512 hashes (example: audio/libopus).
The inter-package distinfo check that verifies whether a distfile has
different hashes has been enabled. It had been disabled before, but
unintentionally so.
* Misc
- The check for COMMENT has been updated to reflect the changed
default value from url2pkg.
- BUILDLINK_API_DEPENDS.* may be set in buildlink3.mk, even if the
package is not the current one. (The other variables may be only set
for the current package.)
- In shell commands, the escape sequence \. (and similar ones, which
are often seen in sed(1) commands) no longer produces a warning,
since the different shells handle these escape sequences
consistently. (It is the echo(1) implementations that actually
differ, therefore this warning was superfluous.)
- Compiler flags in backticks (typically `pkg-config --cflags`) are
properly recognized.
- Internal pkglint errors when parsing shell commands have been fixed.
- No more warnings about PKGCONFIG_FILE.* being defined but unused.
- Dependencies of the form pkgbase>=1.0<5.0 are recognized.
- Diagnostics use quotes more often to indicate the placeholders.
- The type of GENERATE_PLIST has been changed from List of ShellWord
to ShellCommands, since that is what the variable is really about.
- The type ShellCommand used to mean "a shell command line in a
Makefile", which was confusing. Now it means what the name says,
which reduces the wrong warnings for variables like CC (example:
x11/kdebase3/options.mk).
- Improved buildlink3.mk checks to generate more helpful diagnostics.
- Fixed the parsing of dependency patterns, so that all but the most
exotic ones are properly recognized.
- Fixed the parsing of shell variables of the form ${var%.c}.
- Updated the check for the default COMMENT from url2pkg.
- Many more small improvements.
- Performance has improved again, though only a little bit.
- Unit test coverage has increased from 64.2 % to 78.9 %.
This fixes most of the points mentioned in PR pkg/46570.
1.1.1 - Second Law of Nature
============================
* Fix the owner_write rights rule
1.1 - Law of Nature
===================
One feature in this release is **not backward compatible**:
* Use the first matching section for rights (inspired from daald)
Now, the first section matching the path and current user in your custom rights
file is used. In the previous versions, the most permissive rights of all the
matching sections were applied. This new behaviour gives a simple way to make
specific rules at the top of the file independant from the generic ones.
Many **improvements in this release are related to security**, you should
upgrade Radicale as soon as possible:
* Improve the regex used for well-known URIs (by Unrud)
* Prevent regex injection in rights management (by Unrud)
* Prevent crafted HTTP request from calling arbitrary functions (by Unrud)
* Improve URI sanitation and conversion to filesystem path (by Unrud)
* Decouple the daemon from its parent environment (by Unrud)
Some bugs have been fixed and little enhancements have been added:
* Assign new items to corret key (by Unrud)
* Avoid race condition in PID file creation (by Unrud)
* Improve the docker version (by cdpb)
* Encode message and commiter for git commits
* Test with Python 3.5