Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quagga daemons don't run #234

Closed
bahamat opened this issue Jan 20, 2015 · 8 comments
Closed

Quagga daemons don't run #234

bahamat opened this issue Jan 20, 2015 · 8 comments

Comments

@bahamat
Copy link
Member

bahamat commented Jan 20, 2015

When running any of the quagga daemons an error similar to the following is returned:

vty_read_config: failed to open configuration file /opt/local/etc/zebra/zebra.conf: Permission denied
can't open configuration file [/opt/local/etc/zebra/zebra.conf]

Modifying the permissions of the config file or any/all directories in the path to the config file makes no difference.

@bahamat
Copy link
Member Author

bahamat commented Jan 20, 2015

The following patch clears it up. I'll be submitting a pull request momentarily.

diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 3ce636b..caad5c1 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -2,7 +2,7 @@
 #

 DISTNAME=      quagga-0.99.22.3
-PKGREVISION=   1
+PKGREVISION=   2
 CATEGORIES=    net
 MASTER_SITES=  http://download.savannah.gnu.org/releases/quagga/

@@ -22,6 +22,7 @@ CONFIGURE_ARGS+=      --sysconfdir=${PKG_SYSCONFDIR:Q}
 CONFIGURE_ARGS+=       --enable-exampledir=${PREFIX}/share/examples/quagga
 #CONFIGURE_ARGS+=      --enable-pkgsrcrcdir=${PREFIX}/${RCD_SCRIPTS_EXAMPLEDIR}
 CONFIGURE_ARGS+=       --localstatedir=${VARBASE}/run/zebra
+CONFIGURE_ARGS+=       --disable-capabilities

 CONFLICTS+=            zebra-[0-9]*

@mamash
Copy link

mamash commented Jan 21, 2015

Hi bahamat,

I've had a Joyent internal ticket for quagga for some time, just didn't get to it yet. I was planning to apply the patch from upstream Illumos:

https://github.com/illumos/illumos-userland/blob/master/components/quagga/patches/75-privs-basicprivset.patch

However, I just tested building quagga from pkgsrc trunk (the package was updated to 0.99.23.1 in December) and it seems to run just fine with no changes or patching whatsoever. E.g. I can start zebra or ospfd and use vtysh to connect to it, I didn't go much further.

I couldn't find anything relevant in the changelog, but I can't reproduce the problem. Could you test net/quagga as it shows in either trunk or pkgsrc_2014Q4 without your changes?

https://github.com/joyent/pkgsrc/tree/joyent/release/2014Q4/net/quagga

The problem that remains is that the package assumes /var/run/quagga for PID files, which is a poor choice on SunOS where /var/run goes away between reboots, so I need to fix that in our package.

@bahamat
Copy link
Member Author

bahamat commented Jan 22, 2015

Building from the joyent/release/2014Q4 branch I still get permission errors reading the config.

@mamash
Copy link

mamash commented Jan 22, 2015

Thanks. I tried again today and I can't reproduce what I saw with my eyes yesterday! In other words, breaking for me too. Mind boggling...

I'd rather patch the capabilities than disable though - would you mind testing with the patch I linked above? I can test launching the daemons, but you'll likely be more capable of checking if they work.

@bahamat
Copy link
Member Author

bahamat commented Jan 22, 2015

Yeah, that patch worked for me.

I dropped it in as patches/patch-lib-privs.c and set PKGREVISION=2 in the Makefile and made sure not to include --disable-capabilities.

After installing I don't get the permission errors anymore and I was able to establish full peering with OSPF to my router and successfully exchange routes.

So that patch looks good to me.

@mamash
Copy link

mamash commented Jan 23, 2015

Thanks for confirming, Brian. I'll integrate in upstream CVS and cherry-pick into at least 2014Q3 for a fixed package.

@mamash
Copy link

mamash commented Jan 23, 2015

I'd like to integrate the supplied SMF manifest and methods too, will bundle the update together.

@mamash
Copy link

mamash commented Jan 29, 2015

quagga-0.99.23.1nb1 in 2014Q3 has the fix (and SMF) now.

@mamash mamash closed this as completed Jan 29, 2015
jperkin pushed a commit that referenced this issue Apr 16, 2015
Release 2.5.6
=============

Bugs fixed
----------

- Detection of the R version during setup on Win8 (issues #255 and #258)

- Segmentation fault when converting :mod:`pandas` :class:`Series` with
  elements of type object (issue #264)

- The default converter from Python (non-rpy2) objects to rinterface-level
  objects was producing robjects-level objects whenever the input was of
  type :class:`list` (discovered while fixing issue #264)

- Implemented suggested fix for issue with unlinking files on Windows
  (issue #191)

- Testing rpy2 in the absence of ipython no longer stops with an error
  (issue #266)


Release 2.5.5
=============

Bugs fixed
----------

- Crash (segfault) when querying an R object in an R environment triggers an
  error (symbol exists, but associated values resolves to an error - issue #251)

- Change in the signature of `rcall` was not updated in the documentation
  (issue #259)

- Minor update to the documentation (issue #257)


Release 2.5.4
=============

Bugs fixed
----------

- Filter PNG files on size, preventing empty files causing trouble to be
  ipython notebook rendering of graphics later on (slight modification of
  the pull request #39)

- Fix installation left unresolved with rpy2-2.5.3 (issue #248)

- Possible segfault with Python 3.4 (issue #249)


Release 2.5.3
=============

Changes
-------

- `setup.py` has `install_requires` in addition to `requires` in the hope to
   fix the missing dependency with Python 2 (:mod:`singledispatch` is required
   but not installed).

Bugs fixed
----------

- Extracting configuration information from should now work when R is emitting a warning (issue #247)

- On OS X the library discovery step can yield nothing (see issue #246). A tentative fix is to issue
  a warning and keep moving.


Release 2.5.2
=============

Bugs fixed
----------

- String representation of :class:`robjects.R` (issue #238)

- Check during `build_ext` if unsupported version of R (pull request #32)

- HTMl display of columns of factors in a DataFrame (issue #236)

- HTML display of factors (issue #242)


Release 2.5.1
=============

Bugs fixed
----------

- Require singledispatch if Python 3.3 (issue #232)

- Fixed bug when R spits out a warning when asked configuration information (issue #233)

- Restored printing of compilation information when running `setup.py`

- Fixed installation issue on some systems (issue #234)

- Workaround obscure failure message from unittest if Python < 3.4 and
  :mod:`singledispatch` cannot be imported (issue #235)


Release 2.5.0
=============

New features
------------

- Experimental alternative way to preserve R objects from garbage collection.
  This can be activated with `rinterface.initr(r_preservehash=True)` (default
  is `False`.

- :class:`GGPlot` object getting a method :meth:`save`
  mirroring R's `ggplot2::ggsave()`.

- The conversion system is now using generics/single dispatch.

- New module :mod:`rpy2.ipython.html` with HTML display for rpy2 objects

- [Experimental] New function :func:`robjects.methods.rs4instance_factory`
  to type RS4 objects with more specificity.

Changes
-------

- The script `setup.py` was rewritten for clarity and ease of maintenance.
  Now it only uses `setuptools`.


Release 2.4.4
=============

Bugs fixed
----------

- Use `input` rather than `raw_input` in the default console callback
  with Python 3 (fixes issue #222)

- Issues with conversions, pandas, and rmagic (fixes issue #218 and more)


Release 2.4.3
=============

Bugs fixed
----------

- `geom_raster` was missing from `rpy2.robjects.lib.ggplot2` (pull request #30)

- Fixed issue with SVG rendering in ipython notebook (issue #217)

- Regression with `rx2()` introduced with new conversion (issue #219)

- Fixed documentation (missing `import`) (issue #213)


Release 2.4.2
=============

Bugs fixed
----------

- Assigning an R `DataFrame` into an environment was failing if
  the conversion for Pandas was activated. (Issue #207)


Release 2.4.1
=============

Bugs fixed
----------

- :meth:`rpy2.ipython` fixed spurious output to notebook cells.



Release 2.4.0
=============

Changes
-------

- Conversion system slightly changed, with the optional
  conversions for :mod:`numpy` and :mod:`pandas` modified
  accordingly. The changes should only matter if using
  third-party conversion functions.

- The Python 3 version is now a first class citizen. `2to3`
  is no longer used, and the code base is made directly
  compatible with Python. This lowers significantly the
  installation time with Python 3
  (which matters when developping rpy2).

- The default options to initialize R (`rpy2.rinterface.initoptions') are no longer
  `('rpy2', '--quiet', '--vanilla', '--no-save')` but now
  `('rpy2', '--quiet', '--no-save')`.

- :class:`robjects.vectors.ListVector` can be instanciated from
  any objects with a method `items()` with the expectation that the method
  returns an iterable of (name, value) tuples, or even be an iterable
  of (name, value) tuples.

New features
------------

- For instances of :class:`rpy2.robjects.Function`,
  the `__doc__` is now a property fetching information
  about the parameters in the R signature.

- Convenience function :func:`rpy2.robjects.packages.data`
  to extract the datasets in an R pacakges

- :mod:`ipython`'s `rmagic` is now part of :mod:`rpy`. To use, `%load_ext
  rpy2.ipython` from within IPython.

- new method :meth:`rpy2.rinterface.SexpEnvironment.keys`, returnings
  the names in the environment as a tuple of Python strings.

- convenience class :class:`robjects.packages.InstalledPackages`, with a companion function
  :func:`robjects.packages.isinstalled`.

- new class :class:`rinterface.SexpSymbol` to represent R symbols

Bugs fixed
----------

- :meth:`rpy2.rinterface.Sexp.do_slot` was crashing when
  the parameter was an empty string (PR #155)



Release 2.3.10
==============

Bugs fixed
----------

- `setup.py build` was broken when new R compiled with OpenMP (Issue #183)

Release 2.3.9
=============

- Changes in pandas 0.13.0 broke the rpy2 conversion layer (Issue #173)


Release 2.3.8
=============

Bugs fixed
----------

- Crash with R-3.0.2. Changes in R-3.0.2's C API coupled to a strange behaviour
  with R promises caused the problem. (PR #150)


Release 2.3.7
=============

Bugs fixed
----------

- ggplot2's "guides" were missing

- ggplot2's "theme_classic" was missing (PR #143)

- ggplot2's "element_rect" was missing (PR #144)

- :func:`rpy2.interactive.packages` was broken (PR #142)


Release 2.3.6
=============

Bugs fixed
----------

- Several reports of segfault on OS X (since rpy2-2.3.1 - PR #109)

- More fixes in converting `DataFrames` with dates from `pandas`


Relase 2.3.5
============

Bugs fixed
----------

- Missing mapping to ggplot2's `scale_shape_discrete` function

- Better handling of dates in Pandas

- Constructor for POSIXct improved (and fixed)

Changes
-------

- The attribute :attr:`rclass` is no longer read-only and can be set
  (since R allows it)

- Importing the module :mod:`rpy2.interactive` no longer activates
  event processing by default (triggering concurrency errors
  when used with ipython).

New features
------------

- New module :mod:`rpy2.interactive.ipython` (so far plotting
  automatically a ggplot2 figure in the iPython's console)

- It is now possible to set the :attr:`rclass`.


Relase 2.3.4
============

Bugs fixed
----------

- Spurious error when running unit tests with Python 3 and numpy
  installed

- Missing mapping to ggplot2's `geom_dotplot` function

- Warnings are not longer printed (see Changes below)

Changes
-------

- Bumped target version of ggplot2 to 0.9.3.1

- Warnings are not longer printed. The C-level function in R became
  hidden in R-3.0, and the cost of an R-level check/print is relatively
  high if the R code called is very short. This might evolve into
  printing warnings only if interactive mode in Python (if this can
  be checked reliably).


Release 2.3.3
=============

Bugs fixed
----------

- Some of the data.frames converted from :mod:`pandas` were triggering
  a :class:`TypeError` when calling :func:`repr`

- In :mod:`rpy2.robjects.lib.ggplot2`, a mapping to `coord_fixed` was
  missing (PR #120)

- Using the parameter `lib_loc` in a call to
  :func:`rpy2.robjects.packages.importr` was resulting in an error (PR #119)

- Creating a `layer` through the `rpy2.robjects.lib.ggplot2` interface did
  not accept parameters (PR #122)

- Testing the Python version was crashing of a number of unsupported Python
  versions (<= 2.6) (PR #117)

New features
------------

- New module pandas2ri to convert from mod:`pandas` `DataFrame` objects

- New classes :class:`rpy2.robjects.lib.grid.Unit` and
  :class:`rpy2.robjects.lib.grid.Gpar` to model their counterparts in
  R's `grid` package as they were previously missing from rpy2.


Release 2.3.2
=============

Bug fixed
---------

- Building on Win64 (pull request #6)

- Fetching data from an R package through `importr` was masking
  any R object called `data` in that package. The data are now
  under the attribute name `__rdata__`. This is not completely
  safe either, although much less likely, a warning will
  be issued if still masking anything.


Changes
-------

- More informative error message when failing to build because `R CMD config`
  does not return what is expected

Release 2.3.1
=============

Bugs fixed
----------

- default console print callback with Python (issue #112 linked to it)

- deprecation warnings with ggplot2 (issue #111 and contributed patch)
jperkin pushed a commit that referenced this issue Dec 14, 2015
## 1.8.1

  * Change license to MIT, thanks to all the patient contributors who gave
    their permissions.

## 1.8.0

  * add SSHKit::Backend::ConnectionPool#close_connections
    [PR #285](capistrano/sshkit#285)
    @akm
  * Clean up rubocop lint warnings
    [PR #275](capistrano/sshkit#275)
    @cshaffer
    * Prepend unused parameter names with an underscore
    * Prefer “safe assignment in condition”
    * Disambiguate regexp literals with parens
    * Prefer `sprintf` over `String#%`
    * No longer shadow `caller_line` variable in `DeprecationLogger`
    * Rescue `StandardError` instead of `Exception`
    * Remove useless `private` access modifier in `TestAbstract`
    * Disambiguate block operator with parens
    * Disambiguate between grouped expression and method params
    * Remove assertion in `TestHost#test_assert_hosts_compare_equal` that compares something with itself
  * Export environment variables and execute command in a subshell.
    [PR #273](capistrano/sshkit#273)
    @kuon
  * Introduce `log_command_start`, `log_command_data`, `log_command_exit` methods on `Formatter`
    [PR #257](capistrano/sshkit#257)
    @robd
    * Deprecate `@stdout` and `@stderr` accessors on `Command`
  * Add support for deprecation logging options.
    [README](README.md#deprecation-warnings),
    [PR #258](capistrano/sshkit#258)
    @robd
  * Quote environment variable values.
    [PR #250](capistrano/sshkit#250)
    @Sinjo - Chris Sinjakli
  * Simplified formatter hierarchy.
    [PR #248](capistrano/sshkit#248)
    @robd
    * `SimpleText` formatter now extends `Pretty`, rather than duplicating.
  * Hide ANSI color escape sequences when outputting to a file.
    [README](README.md#output-colors),
    [Issue #245](capistrano/sshkit#245),
    [PR #246](capistrano/sshkit#246)
    @robd
    * Now only color the output if it is associated with a tty,
      or the `SSHKIT_COLOR` environment variable is set.
  * Removed broken support for assigning an `IO` to the `output` config option.
    [Issue #243](capistrano/sshkit#243),
    [PR #244](capistrano/sshkit#244)
    @robd
    * Use `SSHKit.config.output = SSHKit::Formatter::SimpleText.new($stdin)` instead
  * Added support for `:interaction_handler` option on commands.
    [PR #234](capistrano/sshkit#234),
    [PR #242](capistrano/sshkit#242)
    @robd
  * Removed partially supported `TRACE` log level.
    [2aa7890](capistrano/sshkit@2aa7890)
    @robd
  * Add support for the `:strip` option to the `capture` method and strip by default on the `Local` backend.
    [PR #239](capistrano/sshkit#239),
    [PR #249](capistrano/sshkit#249)
    @robd
    * The `Local` backend now strips by default to be consistent with the `Netssh` one.
    * This reverses change [7d15a9a](capistrano/sshkit@7d15a9a) to the `Local` capture API to remove stripping by default.
    * If you require the raw, unstripped output, pass the `strip: false` option: `capture(:ls, strip: false)`
  * Simplified backend hierarchy.
    [PR #235](capistrano/sshkit#235),
    [PR #237](capistrano/sshkit#237)
    @robd
    * Moved duplicate implementations of `make`, `rake`, `test`, `capture`, `background` on to `Abstract` backend.
    * Backend implementations now only need to implement `execute_command`, `upload!` and `download!`
    * Removed `Printer` from backend hierarchy for `Local` and `Netssh` backends (they now just extend `Abstract`)
    * Removed unused `Net::SSH:LogLevelShim`
  * Removed dependency on the `colorize` gem. SSHKit now implements its own ANSI color logic, with no external dependencies. Note that SSHKit now only supports the `:bold` or plain modes. Other modes will be gracefully ignored. [#263](capistrano/sshkit#263)
  * New API for setting the formatter: `use_format`. This differs from `format=` in that it accepts options or arguments that will be passed to the formatter's constructor. The `format=` syntax will be deprecated in a future release. [#295](capistrano/sshkit#295)
  * SSHKit now immediately raises a `NameError` if you try to set a formatter that does not exist. [#295](capistrano/sshkit#295)
jperkin pushed a commit that referenced this issue Dec 14, 2015
## 1.8.1

  * Change license to MIT, thanks to all the patient contributors who gave
    their permissions.

## 1.8.0

  * add SSHKit::Backend::ConnectionPool#close_connections
    [PR #285](capistrano/sshkit#285)
    @akm
  * Clean up rubocop lint warnings
    [PR #275](capistrano/sshkit#275)
    @cshaffer
    * Prepend unused parameter names with an underscore
    * Prefer “safe assignment in condition”
    * Disambiguate regexp literals with parens
    * Prefer `sprintf` over `String#%`
    * No longer shadow `caller_line` variable in `DeprecationLogger`
    * Rescue `StandardError` instead of `Exception`
    * Remove useless `private` access modifier in `TestAbstract`
    * Disambiguate block operator with parens
    * Disambiguate between grouped expression and method params
    * Remove assertion in `TestHost#test_assert_hosts_compare_equal` that compares something with itself
  * Export environment variables and execute command in a subshell.
    [PR #273](capistrano/sshkit#273)
    @kuon
  * Introduce `log_command_start`, `log_command_data`, `log_command_exit` methods on `Formatter`
    [PR #257](capistrano/sshkit#257)
    @robd
    * Deprecate `@stdout` and `@stderr` accessors on `Command`
  * Add support for deprecation logging options.
    [README](README.md#deprecation-warnings),
    [PR #258](capistrano/sshkit#258)
    @robd
  * Quote environment variable values.
    [PR #250](capistrano/sshkit#250)
    @Sinjo - Chris Sinjakli
  * Simplified formatter hierarchy.
    [PR #248](capistrano/sshkit#248)
    @robd
    * `SimpleText` formatter now extends `Pretty`, rather than duplicating.
  * Hide ANSI color escape sequences when outputting to a file.
    [README](README.md#output-colors),
    [Issue #245](capistrano/sshkit#245),
    [PR #246](capistrano/sshkit#246)
    @robd
    * Now only color the output if it is associated with a tty,
      or the `SSHKIT_COLOR` environment variable is set.
  * Removed broken support for assigning an `IO` to the `output` config option.
    [Issue #243](capistrano/sshkit#243),
    [PR #244](capistrano/sshkit#244)
    @robd
    * Use `SSHKit.config.output = SSHKit::Formatter::SimpleText.new($stdin)` instead
  * Added support for `:interaction_handler` option on commands.
    [PR #234](capistrano/sshkit#234),
    [PR #242](capistrano/sshkit#242)
    @robd
  * Removed partially supported `TRACE` log level.
    [2aa7890](capistrano/sshkit@2aa7890)
    @robd
  * Add support for the `:strip` option to the `capture` method and strip by default on the `Local` backend.
    [PR #239](capistrano/sshkit#239),
    [PR #249](capistrano/sshkit#249)
    @robd
    * The `Local` backend now strips by default to be consistent with the `Netssh` one.
    * This reverses change [7d15a9a](capistrano/sshkit@7d15a9a) to the `Local` capture API to remove stripping by default.
    * If you require the raw, unstripped output, pass the `strip: false` option: `capture(:ls, strip: false)`
  * Simplified backend hierarchy.
    [PR #235](capistrano/sshkit#235),
    [PR #237](capistrano/sshkit#237)
    @robd
    * Moved duplicate implementations of `make`, `rake`, `test`, `capture`, `background` on to `Abstract` backend.
    * Backend implementations now only need to implement `execute_command`, `upload!` and `download!`
    * Removed `Printer` from backend hierarchy for `Local` and `Netssh` backends (they now just extend `Abstract`)
    * Removed unused `Net::SSH:LogLevelShim`
  * Removed dependency on the `colorize` gem. SSHKit now implements its own ANSI color logic, with no external dependencies. Note that SSHKit now only supports the `:bold` or plain modes. Other modes will be gracefully ignored. [#263](capistrano/sshkit#263)
  * New API for setting the formatter: `use_format`. This differs from `format=` in that it accepts options or arguments that will be passed to the formatter's constructor. The `format=` syntax will be deprecated in a future release. [#295](capistrano/sshkit#295)
  * SSHKit now immediately raises a `NameError` if you try to set a formatter that does not exist. [#295](capistrano/sshkit#295)
jperkin pushed a commit that referenced this issue Dec 30, 2015
Ok MAINTAINER bsiegert.

While doing that, update to current release, 0.29.0.
Changes since 0.24.0:

Version 0.29.0
--------------

Compatibility notes:

- when upgrading to 0.29.0 you need to upgrade client as well as server
  installations due to the locking and commandline interface changes otherwise
  you'll get an error msg about a RPC protocol mismatch or a wrong commandline
  option.
  if you run a server that needs to support both old and new clients, it is
  suggested that you have a "borg-0.28.2" and a "borg-0.29.0" command.
  clients then can choose via e.g. "borg --remote-path=borg-0.29.0 ...".
- the default waiting time for a lock changed from infinity to 1 second for a
  better interactive user experience. if the repo you want to access is
  currently locked, borg will now terminate after 1s with an error message.
  if you have scripts that shall wait for the lock for a longer time, use
  --lock-wait N (with N being the maximum wait time in seconds).

Bug fixes:

- hash table tuning (better chosen hashtable load factor 0.75 and prime initial
  size of 1031 gave ~1000x speedup in some scenarios)
- avoid creation of an orphan lock for one case, #285
- --keep-tag-files: fix file mode and multiple tag files in one directory, #432
- fixes for "borg upgrade" (attic repo converter), #466
- remove --progress isatty magic (and also --no-progress option) again, #476
- borg init: display proper repo URL
- fix format of umask in help pages, #463

New features:

- implement --lock-wait, support timeout for UpgradableLock, #210
- implement borg break-lock command, #157
- include system info below traceback, #324
- sane remote logging, remote stderr, #461:

  - remote log output: intercept it and log it via local logging system,
    with "Remote: " prefixed to message. log remote tracebacks.
  - remote stderr: output it to local stderr with "Remote: " prefixed.
- add --debug and --info (same as --verbose) to set the log level of the
  builtin logging configuration (which otherwise defaults to warning), #426
  note: there are few messages emitted at DEBUG level currently.
- optionally configure logging via env var BORG_LOGGING_CONF
- add --filter option for status characters: e.g. to show only the added
  or modified files (and also errors), use "borg create -v --filter=AME ...".
- more progress indicators, #394
- use ISO-8601 date and time format, #375
- "borg check --prefix" to restrict archive checking to that name prefix, #206

Other changes:

- hashindex_add C implementation (speed up cache re-sync for new archives)
- increase FUSE read_size to 1024 (speed up metadata operations)
- check/delete/prune --save-space: free unused segments quickly, #239
- increase rpc protocol version to 2 (see also Compatibility notes), #458
- silence borg by default (via default log level WARNING)
- get rid of C compiler warnings, #391
- upgrade OS X FUSE to 3.0.9 on the OS X binary build system
- use python 3.5.1 to build binaries
- docs:

  - new mailing list [email protected], #468
  - readthedocs: color and logo improvements
  - load coverage icons over SSL (avoids mixed content)
  - more precise binary installation steps
  - update release procedure docs about OS X FUSE
  - FAQ entry about unexpected 'A' status for unchanged file(s), #403
  - add docs about 'E' file status
  - add "borg upgrade" docs, #464
  - add developer docs about output and logging
  - clarify encryption, add note about client-side encryption
  - add resources section, with videos, talks, presentations, #149
  - Borg moved to Arch Linux [community]
  - fix wrong installation instructions for archlinux


Version 0.28.2
--------------

New features:

- borg create --exclude-if-present TAGFILE - exclude directories that have the
  given file from the backup. You can additionally give --keep-tag-files to
  preserve just the directory roots and the tag-files (but not backup other
  directory contents), #395, attic #128, attic #142

Other changes:

- do not create docs sources at build time (just have them in the repo),
  completely remove have_cython() hack, do not use the "mock" library at build
  time, #384
- avoid hidden import, make it easier for PyInstaller, easier fix for #218
- docs:

  - add description of item flags / status output, fixes #402
  - explain how to regenerate usage and API files (build_api or
    build_usage) and when to commit usage files directly into git, #384
  - minor install docs improvements


Version 0.28.1
--------------

Bug fixes:

- do not try to build api / usage docs for production install,
  fixes unexpected "mock" build dependency, #384

Other changes:

- avoid using msgpack.packb at import time
- fix formatting issue in changes.rst
- fix build on readthedocs


Version 0.28.0
--------------

Compatibility notes:

- changed return codes (exit codes), see docs. in short:
  old: 0 = ok, 1 = error. now: 0 = ok, 1 = warning, 2 = error

New features:

- refactor return codes (exit codes), fixes #61
- add --show-rc option enable "terminating with X status, rc N" output, fixes 58, #351
- borg create backups atime and ctime additionally to mtime, fixes #317
  - extract: support atime additionally to mtime
  - FUSE: support ctime and atime additionally to mtime
- support borg --version
- emit a warning if we have a slow msgpack installed
- borg list --prefix=thishostname- REPO, fixes #205
- Debug commands (do not use except if you know what you do: debug-get-obj,
  debug-put-obj, debug-delete-obj, debug-dump-archive-items.

Bug fixes:

- setup.py: fix bug related to BORG_LZ4_PREFIX processing
- fix "check" for repos that have incomplete chunks, fixes #364
- borg mount: fix unlocking of repository at umount time, fixes #331
- fix reading files without touching their atime, #334
- non-ascii ACL fixes for Linux, FreeBSD and OS X, #277
- fix acl_use_local_uid_gid() and add a test for it, attic #359
- borg upgrade: do not upgrade repositories in place by default, #299
- fix cascading failure with the index conversion code, #269
- borg check: implement 'cmdline' archive metadata value decoding, #311
- fix RobustUnpacker, it missed some metadata keys (new atime and ctime keys
  were missing, but also bsdflags). add check for unknown metadata keys.
- create from stdin: also save atime, ctime (cosmetic)
- use default_notty=False for confirmations, fixes #345
- vagrant: fix msgpack installation on centos, fixes #342
- deal with unicode errors for symlinks in same way as for regular files and
  have a helpful warning message about how to fix wrong locale setup, fixes #382
- add ACL keys the RobustUnpacker must know about

Other changes:

- improve file size displays, more flexible size formatters
- explicitly commit to the units standard, #289
- archiver: add E status (means that an error occured when processing this
  (single) item
- do binary releases via "github releases", closes #214
- create: use -x and --one-file-system (was: --do-not-cross-mountpoints), #296
- a lot of changes related to using "logging" module and screen output, #233
- show progress display if on a tty, output more progress information, #303
- factor out status output so it is consistent, fix surrogates removal,
  maybe fixes #309
- move away from RawConfigParser to ConfigParser
- archive checker: better error logging, give chunk_id and sequence numbers
  (can be used together with borg debug-dump-archive-items).
- do not mention the deprecated passphrase mode
- emit a deprecation warning for --compression N (giving a just a number)
- misc .coverragerc fixes (and coverage measurement improvements), fixes #319
- refactor confirmation code, reduce code duplication, add tests
- prettier error messages, fixes #307, #57
- tests:

  - add a test to find disk-full issues, #327
  - travis: also run tests on Python 3.5
  - travis: use tox -r so it rebuilds the tox environments
  - test the generated pyinstaller-based binary by archiver unit tests, #215
  - vagrant: tests: announce whether fakeroot is used or not
  - vagrant: add vagrant user to fuse group for debianoid systems also
  - vagrant: llfuse install on darwin needs pkgconfig installed
  - vagrant: use pyinstaller from develop branch, fixes #336
  - benchmarks: test create, extract, list, delete, info, check, help, fixes #146
  - benchmarks: test with both the binary and the python code
  - archiver tests: test with both the binary and the python code, fixes #215
  - make basic test more robust
- docs:

  - moved docs to borgbackup.readthedocs.org, #155
  - a lot of fixes and improvements, use mobile-friendly RTD standard theme
  - use zlib,6 compression in some examples, fixes #275
  - add missing rename usage to docs, closes #279
  - include the help offered by borg help <topic> in the usage docs, fixes #293
  - include a list of major changes compared to attic into README, fixes #224
  - add OS X install instructions, #197
  - more details about the release process, #260
  - fix linux glibc requirement (binaries built on debian7 now)
  - build: move usage and API generation to setup.py
  - update docs about return codes, #61
  - remove api docs (too much breakage on rtd)
  - borgbackup install + basics presentation (asciinema)
  - describe the current style guide in documentation
  - add section about debug commands
  - warn about not running out of space
  - add example for rename
  - improve chunker params docs, fixes #362
  - minor development docs update


Version 0.27.0
--------------

New features:

- "borg upgrade" command - attic -> borg one time converter / migration, #21
- temporary hack to avoid using lots of disk space for chunks.archive.d, #235:
  To use it: rm -rf chunks.archive.d ; touch chunks.archive.d
- respect XDG_CACHE_HOME, attic #181
- add support for arbitrary SSH commands, attic #99
- borg delete --cache-only REPO (only delete cache, not REPO), attic #123


Bug fixes:

- use Debian 7 (wheezy) to build pyinstaller borgbackup binaries, fixes slow
  down observed when running the Centos6-built binary on Ubuntu, #222
- do not crash on empty lock.roster, fixes #232
- fix multiple issues with the cache config version check, #234
- fix segment entry header size check, attic #352
  plus other error handling improvements / code deduplication there.
- always give segment and offset in repo IntegrityErrors


Other changes:

- stop producing binary wheels, remove docs about it, #147
- docs:
  - add warning about prune
  - generate usage include files only as needed
  - development docs: add Vagrant section
  - update / improve / reformat FAQ
  - hint to single-file pyinstaller binaries from README


Version 0.26.1
--------------

This is a minor update, just docs and new pyinstaller binaries.

- docs update about python and binary requirements
- better docs for --read-special, fix #220
- re-built the binaries, fix #218 and #213 (glibc version issue)
- update web site about single-file pyinstaller binaries

Note: if you did a python-based installation, there is no need to upgrade.


Version 0.26.0
--------------

New features:

- Faster cache sync (do all in one pass, remove tar/compression stuff), #163
- BORG_REPO env var to specify the default repo, #168
- read special files as if they were regular files, #79
- implement borg create --dry-run, attic issue #267
- Normalize paths before pattern matching on OS X, #143
- support OpenBSD and NetBSD (except xattrs/ACLs)
- support / run tests on Python 3.5

Bug fixes:

- borg mount repo: use absolute path, attic #200, attic #137
- chunker: use off_t to get 64bit on 32bit platform, #178
- initialize chunker fd to -1, so it's not equal to STDIN_FILENO (0)
- fix reaction to "no" answer at delete repo prompt, #182
- setup.py: detect lz4.h header file location
- to support python < 3.2.4, add less buggy argparse lib from 3.2.6 (#194)
- fix for obtaining ``char *`` from temporary Python value (old code causes
  a compile error on Mint 17.2)
- llfuse 0.41 install troubles on some platforms, require < 0.41
  (UnicodeDecodeError exception due to non-ascii llfuse setup.py)
- cython code: add some int types to get rid of unspecific python add /
  subtract operations (avoid ``undefined symbol FPE_``... error on some platforms)
- fix verbose mode display of stdin backup
- extract: warn if a include pattern never matched, fixes #209,
  implement counters for Include/ExcludePatterns
- archive names with slashes are invalid, attic issue #180
- chunker: add a check whether the POSIX_FADV_DONTNEED constant is defined -
  fixes building on OpenBSD.

Other changes:

- detect inconsistency / corruption / hash collision, #170
- replace versioneer with setuptools_scm, #106
- docs:

  - pkg-config is needed for llfuse installation
  - be more clear about pruning, attic issue #132
- unit tests:

  - xattr: ignore security.selinux attribute showing up
  - ext3 seems to need a bit more space for a sparse file
  - do not test lzma level 9 compression (avoid MemoryError)
  - work around strange mtime granularity issue on netbsd, fixes #204
  - ignore st_rdev if file is not a block/char device, fixes #203
  - stay away from the setgid and sticky mode bits
- use Vagrant to do easy cross-platform testing (#196), currently:

  - Debian 7 "wheezy" 32bit, Debian 8 "jessie" 64bit
  - Ubuntu 12.04 32bit, Ubuntu 14.04 64bit
  - Centos 7 64bit
  - FreeBSD 10.2 64bit
  - OpenBSD 5.7 64bit
  - NetBSD 6.1.5 64bit
  - Darwin (OS X Yosemite)


Version 0.25.0
--------------

Compatibility notes:

- lz4 compression library (liblz4) is a new requirement (#156)
- the new compression code is very compatible: as long as you stay with zlib
  compression, older borg releases will still be able to read data from a
  repo/archive made with the new code (note: this is not the case for the
  default "none" compression, use "zlib,0" if you want a "no compression" mode
  that can be read by older borg). Also the new code is able to read repos and
  archives made with older borg versions (for all zlib levels  0..9).

Deprecations:

- --compression N (with N being a number, as in 0.24) is deprecated.
  We keep the --compression 0..9 for now to not break scripts, but it is
  deprecated and will be removed later, so better fix your scripts now:
  --compression 0 (as in 0.24) is the same as --compression zlib,0 (now).
  BUT: if you do not want compression, you rather want --compression none
  (which is the default).
  --compression 1 (in 0.24) is the same as --compression zlib,1 (now)
  --compression 9 (in 0.24) is the same as --compression zlib,9 (now)

New features:

- create --compression none (default, means: do not compress, just pass through
  data "as is". this is more efficient than zlib level 0 as used in borg 0.24)
- create --compression lz4 (super-fast, but not very high compression)
- create --compression zlib,N (slower, higher compression, default for N is 6)
- create --compression lzma,N (slowest, highest compression, default N is 6)
- honor the nodump flag (UF_NODUMP) and do not backup such items
- list --short just outputs a simple list of the files/directories in an archive

Bug fixes:

- fixed --chunker-params parameter order confusion / malfunction, fixes #154
- close fds of segments we delete (during compaction)
- close files which fell out the lrucache
- fadvise DONTNEED now is only called for the byte range actually read, not for
  the whole file, fixes #158.
- fix issue with negative "all archives" size, fixes #165
- restore_xattrs: ignore if setxattr fails with EACCES, fixes #162

Other changes:

- remove fakeroot requirement for tests, tests run faster without fakeroot
  (test setup does not fail any more without fakeroot, so you can run with or
  without fakeroot), fixes #151 and #91.
- more tests for archiver
- recover_segment(): don't assume we have an fd for segment
- lrucache refactoring / cleanup, add dispose function, py.test tests
- generalize hashindex code for any key length (less hardcoding)
- lock roster: catch file not found in remove() method and ignore it
- travis CI: use requirements file
- improved docs:

  - replace hack for llfuse with proper solution (install libfuse-dev)
  - update docs about compression
  - update development docs about fakeroot
  - internals: add some words about lock files / locking system
  - support: mention BountySource and for what it can be used
  - theme: use a lighter green
  - add pypi, wheel, dist package based install docs
  - split install docs into system-specific preparations and generic instructions
jperkin pushed a commit that referenced this issue Jan 9, 2016
Changes:
 * Fixes Github #194: Add source dialog visually broken
   (reported by k0377)
 * Fixes Github #195: Out-dated documentation on enclosure download
   (reported by brian-in-crawford)
 * Fixes Github #223: Search folder dialog don't show rules
   (reported by Guido Masella)
 * Fixes Github #227: Preference dialog fails to load with latest
   GtkBuilder (patch by Yanko Kaneti)
 * Fixes Github #234: Segmentation fault upon attempting to add an OPML
   (reported by GreenLunar)
 * Fixes compilation error when there is no libnotify
 * Added debugging for #258: Dialog loading issues
   (patch by glitsj16)
jperkin pushed a commit that referenced this issue Jan 15, 2016
=== Net::LDAP 0.13.0

* Set a connect_timeout for the creation of a socket
  {#243}[ruby-ldap/ruby-net-ldap#243]
* Update bundler before installing gems with bundler
  {#245}[ruby-ldap/ruby-net-ldap#245]
* Net::LDAP#encryption accepts string
  {#239}[ruby-ldap/ruby-net-ldap#239]
* Adds correct UTF-8 encoding to Net::BER::BerIdentifiedString
  {#242}[ruby-ldap/ruby-net-ldap#242]
* Remove 2.3.0-preview since ruby-head already is included
  {#241}[ruby-ldap/ruby-net-ldap#241]
* Drop support for ruby 1.9.3
  {#240}[ruby-ldap/ruby-net-ldap#240]
* Fixed capitalization of StartTLSError
  {#234}[ruby-ldap/ruby-net-ldap#234]
jperkin pushed a commit that referenced this issue Mar 18, 2016
kramdown 1.10.0 released

This release brings the usual bug fixes but also support for the strikethrough
syntax in the GFM parser as well as some enhancements regarding the
specification of language names for syntax highlighting purposes.

Changes

* 4 minor changes:

  o Support for the math-engine MathJax-Node was updated to use the new
    mathjax-node package (fixes #313, pull request by Tom Thorogood)

  o URL query parameters can now be appended to language names specified in
    fenced code blocks if the syntax highlighting engine accepts them (fixes
    #234)

  o Added strikethrough syntax to the GFM parser (fixes #184 and #307; initial
    pull request by Diego Galeota, updated by Parker Moore)

  o Allow almost all characters in class names that are defined via a special
    syntax (fixes #318, requested by cabo)

* 4 bug fixes:

  o Fixed a problem where Kramdown::Document.new would only accept the symbol
    :input but not the string ¡Æinput¡Ç as valid key (fixes #312, pull request
    by Sun Yaozhu)

  o Fixed inconsistent behavior: Empty link text is now also allowed for
    normal links, not just images (fixes #305, reported by cabo)

  o The HTML5 <mark> element is now recognized as span level element (fixes
    #298, reported by Niclas Darville)

  o Fixed problem where e-mail autolinks containing an underscore character
    were not correctly recognized (fixes #293, reported by erikse)

* 3 other fixes:

  o Fixed missing package update statement for Travis (by Parker Moore)

  o Add some more documentation regarding MathJax (fixes #296, pull request by
    Christopher Jefferson)

  o Fixed bad link in API documentation (fixes #315, reported by Tom MacWright)
jperkin pushed a commit that referenced this issue Apr 26, 2016
Changes:
16.0.0 (2016-03-19)
-------------------
This is the first release under full stewardship of PyCA.
We have made *many* changes to make local development more pleasing.
The test suite now passes both on Linux and OS X with OpenSSL 0.9.8,
1.0.1, and 1.0.2.  It has been moved to `py.test <https://pytest.org/>`_,
all CI test runs are part of `tox <https://testrun.org/tox/>`_ and
the source code has been made fully `flake8
<https://flake8.readthedocs.org/>`_ compliant.

We hope to have lowered the barrier for contributions significantly
but are open to hear about any remaining frustrations.

Backward-incompatible changes:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Python 3.2 support has been dropped.
  It never had significant real world usage and has been dropped
  by our main dependency ``cryptography``.  Affected users should
  upgrade to Python 3.3 or later.

Deprecations:
^^^^^^^^^^^^^
- The support for EGD has been removed.
  The only affected function ``OpenSSL.rand.egd()`` now uses
  ``os.urandom()`` to seed the internal PRNG instead.  Please see
  `pyca/cryptography#1636
  <https://github.com/pyca/cryptography/pull/1636>`_ for more
  background information on this decision.  In accordance with our
  backward compatibility policy ``OpenSSL.rand.egd()`` will be
  *removed* no sooner than a year from the release of 16.0.0.
  Please note that you should `use urandom
  <http://sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers/>`_
  for all your secure random number needs.
- Python 2.6 support has been deprecated.
  Our main dependency ``cryptography`` deprecated 2.6 in version
  0.9 (2015-05-14) with no time table for actually dropping it.
  pyOpenSSL will drop Python 2.6 support once ``cryptography``
  does.

Changes:
^^^^^^^^
- Fixed ``OpenSSL.SSL.Context.set_session_id``,
  ``OpenSSL.SSL.Connection.renegotiate``,
  ``OpenSSL.SSL.Connection.renegotiate_pending``, and
  ``OpenSSL.SSL.Context.load_client_ca``.
  They were lacking an implementation since 0.14.  `#422
  <https://github.com/pyca/pyopenssl/pull/422>`_
- Fixed segmentation fault when using keys larger than 4096-bit to sign data.
  `#428 <https://github.com/pyca/pyopenssl/pull/428>`_
- Fixed ``AttributeError`` when ``OpenSSL.SSL.Connection.get_app_data()``
  was called before setting any app data.
  `#304 <https://github.com/pyca/pyopenssl/pull/304>`_
- Added ``OpenSSL.crypto.dump_publickey()`` to dump ``OpenSSL.crypto.PKey``
  objects that represent public keys, and ``OpenSSL.crypto.load_publickey()``
  to load such objects from serialized representations.
  `#382 <https://github.com/pyca/pyopenssl/pull/382>`_
- Added ``OpenSSL.crypto.dump_crl()`` to dump a certificate revocation
  list out to a string buffer.
  `#368 <https://github.com/pyca/pyopenssl/pull/368>`_
- Added ``OpenSSL.SSL.Connection.get_state_string()`` using the
  OpenSSL binding ``state_string_long``.
  `#358 <https://github.com/pyca/pyopenssl/pull/358>`_
- Added support for the ``socket.MSG_PEEK`` flag to
  ``OpenSSL.SSL.Connection.recv()`` and
  ``OpenSSL.SSL.Connection.recv_into()``.
  `#294 <https://github.com/pyca/pyopenssl/pull/294>`_
- Added ``OpenSSL.SSL.Connection.get_protocol_version()`` and
  ``OpenSSL.SSL.Connection.get_protocol_version_name()``.
  `#244 <https://github.com/pyca/pyopenssl/pull/244>`_
- Switched to ``utf8string`` mask by default.
  OpenSSL formerly defaulted to a ``T61String`` if there were UTF-8
  characters present.  This was changed to default to ``UTF8String``
  in the config around 2005, but the actual code didn't change it
  until late last year.  This will default us to the setting that
  actually works.  To revert this you can call
  ``OpenSSL.crypto._lib.ASN1_STRING_set_default_mask_asc(b"default")``.
  `#234 <https://github.com/pyca/pyopenssl/pull/234>`_
jperkin pushed a commit that referenced this issue Aug 4, 2016
Upstream changes:
0.9995 2016-07-27T09:23:55Z
     - Taught the `add` command not to ignore the `--change` option.
     - The `add` command now emits a usage statement when no change name is
       passed to it.
     - The `add` command now helpfully suggests using the --change option when
       attempting to add a change with the same name as a target. Thanks to
       Ivan Nunes for the report!
     - The `tag` command now helpfully suggests using the --tag option when
       attempting to add a tag with the same name as a target.
     - Added `--global` as an alias for `--user` to the `config` command. This
       alias benefits the muscle memory of Git users.
     - Added a note for Git users to the `sqitch-revert` documentation, to
       head off potential confusion with `git revert`. Thanks to Eric
       Br矇chemier for the "time travel" analogy and wording.
     - Fixed an "uninitialized value" error when creating a registry database
       on Windows. Thanks to Steven C. Buttgereit for the report (Issue #289).
     - Fixed editor selection to prioritize the `core.editor` configuration
       variable over the `$EDITOR` environment variable. The `$SQITCH_EDITOR`
       environment variable still trumps all. Thanks to Jim Nasby for the pull
       request (#296).
     - Added detection of the `$VISUAL` environment variable to Editor
       selection, prioritzed after the `core.editor` configuration variable
       and before the `$EDITOR` environment variable. Thanks to Jim Nasby for
       the pull request (#296).
     - Updated the DateTime code to set the locale via `set_locale()` instead
       of `set()`, as the latter may actually change the local time
       unintentionally, and has been deprecated since DateTime v1.04. Thanks
       to Dave Rolsky for the pull request (#304).

0.9994 2016-01-08T19:46:43Z
     - Reduced minimum required MySQL engine from 5.1.0 to 5.0.0. Thanks to
       @dgc-wh for testing it (Issue #251).
     - Fixed floating-point rounding issue with SQLite registry versions on
       Perls with 16-byte doubles. Thanks to H. Merijn Brand for the report
       and testing.
     - Fixed an error when adding an engine with the `engine` command. Thanks
       to Victor Mours for the report and fix!
     - Updated the Oracle engine to support Oracle Wallet connection strings,
       where no username or host is in the connection URI. Thanks to Timothy
       Procter for the patch!
     - Improved the installer's selection of the prefix in which to install
       `etc` files to better match the `--installdirs` option, which defaults
       to the "site" directories. Thanks to @carragom for the pull request
       (#265).
     - Added missing dash to `-engine` in sample calls to `sqitch init` in the
       tutorials. Thanks to Andrew Dunstan for the spot (Issue #268).
     - Fixed broken Vertica documentation links.
     - Attempting to revert a database with no associated registry no longer
       reports the registry as version 0, but correctly reports that no
       registry can be found. Thanks to Arnaldo Piccinelli for the spot (Issue
       #271).
     - Fixed the search for change IDs in engines to match the search for
       changes. Specifically, change ID seaerch now properly handles the
       offset characters `~` and `^`. This bug mainly affected the `verify`
       command, but it's good to address the inconsistency, done mainly by
       adding the `find_change_id` and `change_id_offset_from_id` methods to
       complement the `find_change` and `change_offset_from_id` methods.
       Thanks to Andrew Dunstan for the spot (Issue #272).
     - Fixed the `flips` table example in the MySQL tutorial. It was
       inappropriately copied from the PostgreSQL tutorial at some point.
       Thanks to Jeff Carpenter for the spot (Issue #254)!

0.9993  2015-08-17T17:55:26Z
     [Bug Fixes]
     - Eliminated test failures due to warnings from DateTime::Locale when
       `LC_TIME` is set to C.UTF-8. Thanks to Shantanu Bhadoria for the report
       and Dave Rolsky for the workaround.
     - Fixed an error checking the registry version when the local uses a
       comma for decimal values. Thanks to Steffen M羹ller for the report
       (Issue #234).
     - Worked around an error setting the MySQL storage engine using versions
       of DBI prior to 1.631. Thanks to melon-babak for the report!
     - Fixed an error from the Oracle engine when deploying more than 1000
       changes. Thanks to Timothy Procter and Minh Hoang for the report and
       testing the fix.
     - Fixed a bunch of typos in error messages, comments, and documentation.
       Thanks to Dmitriy for the pull request!
     - Fixed test failures due to new warnings from File::Path on Perl
       5.23.1.
     - On Firebird, Looking up a change and tag in the database (via the
       `--onto` option to `rebase` or the `--to` option to `revert`, among
       others) would sometimes return the incorrect change if the change has
       been reworked two or more times. Was fixed for the other engines in
       v0.9991.
     - Fixed the `--all` option used to apply a command to all known targets
       so that it loads only targets specified by the local configuration.
       Otherwise, user and system configuration can get in the way when they
       specify engines and targets not used by the current project.
     [Improvements]
     - Added support for the `--set` option when deploying to MySQL. Thanks to
       Chris Bandy for figuring out how to do it!
     - Added support for a "reworked directory". By default, reworked change
       scripts live in the deploy, revert, and verify directories along with
       all the other change scripts. But if that starts to get too messy, or
       you simply don't want to see them, add a `reworked_dir` setting to the
       core, engine, or target config and reworked scripts will be stored
       there, instead. Also supported are `reworked_deploy_dir`,
       `reworked_revert_dir`, and `reworked_verify_dir`.
     - Added the `--dir` option to the `init`, `engine`, and `target`
       commands.
     - Copied the core configuration options (`--engine`, `--target`,
       `--plan-file`, `--registry`, etc.) to the `init`, `engine`, and
       `target` commands. This means that they can be specified after the
       command, which is a bit more natural. It also means that the
       `--registry` and `--client` options of the `target` are no longer
       deprecated.
     - The `init` command on longer writes out commented values for the
       `deploy_dir`, `revert_dir`, or `verify_dir` settings. I think these
       settings are not commonly used, and it would start to get crowded if we
       also added their "reworked" variants, which will be used still less.
     - Added the `alter` action to the `engine` and `target` commands to set
       engine and target properties.
     - Added support for setting reworked directories to the `engine` and
       `target` commands.
     - Reformatted the output of the `engine` and `target` command `show`
       actions to include reworked directories, and to bit a bit less flat.
     - Attempting to add or alter an engine with a target URI that connects to
       a different engine now triggers an error. For example, you can't set
       the target for engine `pg` to `db:sqlite:`.
     - The `add` and `alter` actions of the `engine` and `target` commands
       now create script directories if they don't already exist.
     - The `add` action of the `engine` and `target` commands now creates a
       plan file if one does not exist in the specified location for the
       engine or target.
     - Added the `deploy_dir`, `revert_dir`, and `verify_dir` methods to
       App::Sqitch::Plan::Change. Each points to the proper directory for the
       target depending on whether or not the change has been reworked.
     - In the MySQL engine, the following URI query params will be converted
       to options passed to the command-line client, if they're present:
       * mysql_compression=1   => --compress
       * mysql_ssl=1           => --ssl
       * mysql_connect_timeout => --connect_timeout
       * mysql_init_command    => --init-command
       * mysql_socket          => --socket
       * mysql_ssl_client_key  => --ssl-key
       * mysql_ssl_client_cert => --ssl-cert
       * mysql_ssl_ca_file     => --ssl-ca
       * mysql_ssl_ca_path     => --ssl-capath
       * mysql_ssl_cipher      => --ssl-cipher
     [Documentation]
     - Added the "Overworked" section to sqitch-configuration guide with an
       example of how to move reworked change scripts into a `reworked_dir`.
     [Deprecations]
     - Deprecated the `set-*` actions in the `engine` and `target` commands in
       favor of the new `alter` action.
     - The core `--deployed-dir`, `--revert-dir`, and `--verify-dir` options
       are deprecated in favor of the `--dir` option on the `init`, `engine`,
       and `target` command.

0.9992 2015-05-20T23:51:41Z
     - On PostgreSQL, Sqitch now sets the `client_encoding` parameter to
       `UTF8` for its own connection to the database. This ensures that data
       sent to and from the databse should always be properly encoded and
       decoded. Users should still set the proper encodings for change scripts
       as appropriate.
     - Fixed test failures due to path differences on Windows.
     - DateTime::TimeZone is now explicitly required in an attempt to head off
       "Cannot determine local time zone" errors.
     - Corrected some typos and thinkos in `sqitchtutorial-oracle`, thanks to
       George Hartzell.
     - Improved the script to upgrade an Oracle registry to v1.0 to support
       versions prior to Oracle 12, thanks to Timothy Procter.
     - Added missing closing parenthesis to the "Nothing to deploy" message.
       Thanks to George Hartzell for the pull request (Issue #226).
     - Replaced the unique constraint on the `script_hash` column in the
       `changes` registry table with a unique constraint on `project` and
       `script_hash`. This is to allow a deploy script to be used in more than
       one project in a single database. This change increments the registry
       version to v1.1. Thanks to Timothy Procter for the report.
     - Updated the registry check constraints to have consistent names on the
       engines that support them. This will make it easier to modify the
       constraints in the future.
     - Fixed precision issues with the registry version on MySQL and Firebird.
     - Added comment to sqitch-passwords guide that MySQL::Config is required
       to read passwords from the MySQL configuration files. Thanks to
       Sterling Hanenkamp for the patch!

0.9991 2015-04-03T23:14:39Z
     [Improvements]
     - Reduced minimum required MySQL engine from 5.6.4 to 5.1.0. Versions
       prior to 5.6.4 lose the following features:
       * Versions earlier than 5.6.4 is fractional second precision on
         registry `DATETIME` columns. Since the ordering of those timestamps
         is so important to the functioning of Sqitch, it will sleep in 100 ms
         increments between logging changes to the registry until the time has
         ticked over to the next second. Naturally, reverts and deploys will
         be a little slower on versions of MySQL before 5.6.4, but accurate.
       * Versions earlier than 5.5.0 lose the `checkit()` functions, which
         would otherwise be used to emulate CHECK constraints in the registry,
         as well as in user-created verify scripts, as recommended in the
         MySQL tutorial, `sqitchtutorial-mysql`.
     - Added a script to update the `DATETIME` columns in a MySQL Sqitch
       registry that was upgraded to MySQL 5.6.4 or higher. It will be
       installed as `tools/upgrade-registry-to-mysql-5.6.4.sql` in the
       directory returned by `sqitch --etc`.
     - Added a script to add the `checkit()` function and registry triggers to
       emulate CHECK constraints to a MySQL Sqitch registry that was upgraded
       to MySQL 5.5.0 or higher. It will be installed as
       `tools/upgrade-registry-to-mysql-5.5.0.sql` in the directory returned
       by `sqitch --etc`.
     - The `init` command now throws an error when the plan file already
       exists and is invalid or defined for a different project. Thanks to
       Gabriel Potk獺ny for the suggestion (Issue #214).
     - All commands that take target arguments can now specify them as engine
       names or plan file paths as well as target names and URIs.
     - Added the `--all` option and the `$command.all` configuration variable
       to the `add`, `rework`, `tag`, and `bundle` commands. This option tells
       the commands to do their thing for all plans known from the
       configuration, not just the default plan.
     - Pass engine, target, or plan file names to the `add`, `rework`, `tag`,
       and `bundle` commands` commands to specify specify one or more targets,
       engines, and plans to act on.
     - Added the `--change` option to the `add`, `rework`, and `tag` commands
       to distinguish the change to be added, reworked, or tagged from
       plan-specifying arguments, if necessary.
     - Added the `--tag` option to the `tag` command to distinguish the tag to
       be added from plan-specifying arguments, if necessary.
     - Changed the short variant of the `--conflicts` option to the `add` and
       `rework` commands from `-c` to `-x`. The `-c` option is now used as the
       short variant for `--change` (and `--conflicts` has almost certainly
       never been used, anyway).
     - Added the `engine` and `project` variables to the execution of script
       templates by the `add` command. The default templates now use it to
       make their first lines one of:
       * -- Deploy [% project %]:[% change %] to [% engine]
       * -- Revert [% project %]:[% change %] from [% engine]
       * -- Verify [% project %]:[% change %] on [% engine]
     [Bug Fixes]
     - DateTime::TimeZone::Local::Win32 is now required on Windows.
     - The MySQL engine no longer passes `--skip-pager` on Windows, since
       it is not supported there. Thanks to Gabriel Potk獺ny for the report
       (Issue #213).
     - Fixed "no such table: changes" error when upgrading the SQLite
       registry.
     - Fixed upgrade failure on PostgreSQL 8.4. Thanks to Phillip Smith for
       the report!
     - Fixed an error when the `status` command `show_changes` and `show_tags`
       configuration variables were set. Thanks to Adrian Klaver for the
       report (Issue #219).
     - Fixed `log` and `plan` usage statements to properly spell `--abbrev`.
       Thanks to Adrian Klaver for the report (Issue #220).
     - Fixed the formatting of change notes so that a space precedes the `#`
       character whether the note was added by the `--note` option or via an
       editor.
     - Fixed a bug when parsing plan files with DOS/Windows line endings.
       Thanks to Timothy Procter for the report (Issue #212).
     - Looking up a change and tag in the database (via the `--onto` option to
       `rebase` or the `--to` option to `revert`, among others) would
       sometimes return the incorrect change if the change has been reworked
       two or more times. Thanks to BryLo for the report!
     [Documentation]
     - Updated docs to be consistent in referring to the location of the system
       configuration and template location as `$(prefix)/etc/sqitch`. Also
       added notes pointing to the `--etc-dir` to find out exactly what that
       resolves to. Suggested by Joseph Anthony Pasquale Holsten (Issue #167).
     [Deprecations]
     - Reverted deprecation of the database connection options. Target URIs
       are still generally preferred, but sometimes you want to use a target
       but just change the user name or database name. Retaining the options
       is the easiest way to do this. Plus, a fair number of people have
       scripts that use these options, and it seems petty to break them. Sorry
       for the double-take here! The list of un-deprecated options is:
       * `--db-client`
       * `--db-host`
       * `--db-port`
       * `--db-username`
       * `--db-password`
       * `--db-name`

0.999  2015-02-12T19:43:45Z
     - Improved MySQL missing table error detection by relying on error codes
       instead of matching a (possibly localized) error string.
     - Made the registry upgrade more transparent when deploying. Sqitch is
       now is a little more vigilent in checking for things being out-of-date
       and updating them.
     - Fixed an issue where the `status` command would return an error when
       run against a an older version of the registry.
     - Fixed a Postgres test failure when DBD::Pg is installed but psql is not
       in the path.
     - Now require Config::GitLike 1.15 to build on Windows in order to avoid
       test failures when Cwd::abs_path dies on non-existant paths.
     - Clarified the behavior of each `deploy` reversion mode with regard to
       deploy script vs. verify script failures, and with the expectation that
       deploy scripts are atomic.
     - Target passwords can now be set via a single environment variable,
       `$SQITCH_PASSWORD`. Its value will override URI-specified password.
     - Added the sqitch-passwords and sqitch-environment guides.

0.998  2015-01-15T22:17:44Z
     - Fixed a bug in `sqitch engine update-config` where it would add data to
       config files that did not previously have them, or report that data was
       present in nonexistent config files.
     - Added the `releases` table to the databases. This table will keep track
       of releases of the Sqitch registry schema.
     - The Oracle `registry` variable is now always `DEFINE`d when Oracle
       scripts run.
     - Added the `upgrade` command, which upgrades the schema for the Sqitch
       registry for a target database.
     - Added the `script_hash` column to the `changes` registry table. This
       column contains a SHA-1 hash of the deploy script for the change at the
       time it was deployed. For existing registries, the upgrade script sets
       its value to be the same as the change ID. This value is update the
       next time a project is deployed to the database.
     - The error message when `deploy` cannot find the currently-deployed
       change ID in the plan now includes more contextual information,
       including the change name, associated tags, and the plan file name.
       Suggested by Curtis Poe (Issue #205).
     - Comments on Firebird registry objects are now created with the
       `COMMENT` command, rather than INSERTs into catalog tables.
     - Added support for "merge" events, though none are logged, yet.
jperkin pushed a commit that referenced this issue Aug 24, 2016
NEWS:
Version 2.5.3
-------------
- Updated zoneinfo to 2016d
- Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is
  set to true. (gh issue #233, pr #234)
- Bug in zoneinfo file on platforms such as Google App Engine which do not
  do not allow importing of subprocess.check_call was reported and fixed by
  @savraj (gh issue #239, gh pr #240)
- Fixed incorrect version in documentation (gh issue #235, pr #243)

Version 2.5.2
-------------
- Updated zoneinfo to 2016c
- Fixed parser bug where yearfirst and dayfirst parameters were not being
  respected when no separator was present. (gh issue #81 and #217, pr #229)

Version 2.5.1
-------------
- Updated zoneinfo to 2016b
- Changed MANIFEST.in to explicitly include test suite in source distributions,
  with help from @koobs (gh issue #193, pr #194, #201, #221)
- Explicitly set all line-endings to LF, except for the NEWS file, on a
  per-repository basis (gh pr #218)
- Fixed an issue with improper caching behavior in rruleset objects (gh issue
  #104, pr #207)
- Changed to an explicit error when rrulestr strings contain a missing BYDAY
  (gh issue #162, pr #211)
- tzfile now correctly handles files containing leapcnt (although the leapcnt
  information is not actually used). Contributed by @hjoukl (gh issue #146, pr
  #147)
- Fixed recursive import issue with tz module (gh pr #204)
- Added compatibility between tzwin objects and datetime.time objects (gh issue
  #216, gh pr #219)
- Refactored monolithic test suite by module (gh issue #61, pr #200 and #206)
- Improved test coverage in the relativedelta module (gh pr #215)
- Adjusted documentation to reflect possibly counter-intuitive properties of
  RFC-5545-compliant rrules, and other documentation improvements in the rrule
  module (gh issue #105, gh issue #149 - pointer to the solution by @phep,
  pr #213).


Version 2.5.0
-------------
- Updated zoneinfo to 2016a
- zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py
  script will work with older zoneinfo_metadata.json files, but new metadata
  files will not work with older updatezinfo.py versions. Additionally, we have
  started hosting our own mirror of the Olson databases on a github pages
  site (https://dateutil.github.io/tzdata/) (gh pr #183)
- dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used
  to generate them. (gh issue #27, gh pr #85)
- relativedelta can now be safely subclassed without derived objects reverting
  to base relativedelta objects as a result of arithmetic operations.
  (lp:1010199, gh issue #44, pr #49)
- relativedelta 'weeks' parameter can now be set and retrieved as a property of
  relativedelta instances. (lp: 727525, gh issue #45, pr #49)
- relativedelta now explicitly supports fractional relative weeks, days, hours,
  minutes and seconds. Fractional values in absolute parameters (year, day, etc)
  are now deprecated. (gh issue #40, pr #190)
- relativedelta objects previously did not use microseconds to determine of two
  relativedelta objects were equal. This oversight has been corrected.
  Contributed by @elprans (gh pr #113)
- rrule now has an xafter() method for retrieving multiple recurrences after a
  specified date. (gh pr #38)
- str(rrule) now returns an RFC2445-compliant rrule string, contributed by
  @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160)
- rrule performance under certain conditions has been significantly improved
  thanks to a patch contributed by @dekoza, based on an article by Brian Beck
  (@exogen) (gh pr #136)
- The use of both the 'until' and 'count' parameters is now deprecated as
  inconsistent with RFC2445 (gh pr #62, #185)
- Parsing an empty string will now raise a ValueError, rather than returning the
  datetime passed to the 'default' parameter. (gh issue #78, pr #187)
- tzwinlocal objects now have a meaningful repr() and str() implementation
  (gh issue #148, prs #184 and #186)
- Added equality logic for tzwin and tzwinlocal objects. (gh issue #151,
  pr #180, #184)
- Added some flexibility in subclassing timelex, and switched the default
  behavior over to using string methods rather than comparing against a fixed
  list. (gh pr #122, #139)
- An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576,
  gh issue #51, pr #55)
- An issue with string encoding causing exceptions under certain circumstances
  when tzname() is called was fixed. (gh issue #60, #74, pr #75)
- Parser issue where calling parse() on dates with no day specified when the
  day of the month in the default datetime (which is "today" if unspecified) is
  greater than the number of days in the parsed month was fixed (this issue
  tended to crop up between the 29th and 31st of the month, for obvious reasons)
  (canonical gh issue #25, pr #30, #191)
- Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception
  in certain circumstances. Contributed by @MichaelAquilina (gh pr #91)
- Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed
  by @Bachmann1234 (gh pr #130)
- Fixed parser issue where commas were not a valid separator between seconds
  and microseconds, preventing parsing of ISO 8601 dates. Contributed by
  @RyansS (gh issue #28, pr #106)
- Fixed issue with tzwin encoding in locales with non-Latin alphabets
  (gh issue #92, pr #98)
- Fixed an issue where tzwin was not being properly imported on Windows.
  Contributed by @labrys. (gh pr #134)
- Fixed a problem causing issues importing zoneinfo in certain circumstances.
  Issue and solution contributed by @alexxv (gh issue #97, pr #99)
- Fixed an issue where dateutil timezones were not compatible with basic time
  objects. One of many, many timezone related issues contributed and tested by
  @labrys. (gh issue #132, pr #181)
- Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135,
  pr #141, #142)
- Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly
  parsed from the registry. (gh issue #143, pr #178)
- updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv
  (gh pr #164)
- An issue that arose when timezone locale changes during runtime has been
  fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109)
- Python 3.5 was added to the supported platforms in the metadata (@tacaswell
  gh pr #159) and the test suites (@moreati gh pr #117).
- An issue with tox failing without unittest2 installed in Python 2.6 was fixed
  by @moreati (gh pr #115)
- Several deprecated functions were replaced in the tests by @moreati
  (gh pr #116)
- Improved the logic in Travis and Appveyor to alleviate issues where builds
  were failing due to connection issues when downloading the IANA timezone
  files. In addition to adding our own mirror for the files (gh pr #183), the
  download is now retried a number of times (with a delay) (gh pr #177)
- Many failing doctests were fixed by @moreati. (gh pr #120)
- Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere,
  gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits)
- Added a code coverage tool to the CI to help improve the library. (gh pr #182)
- We now have a mailing list - [email protected], graciously hosted by
  Python.org.


Version 2.4.2
-------------
- Updated zoneinfo to 2015b.
- Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded
  if not a unicode type. gh #51 (lp:1331576), gh pr #55.
- Fix a parser issue where AM and PM tokens were showing up in fuzzy date
  stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63.
- Missing function "setcachesize" removed from zoneinfo __all__ list by @RyansS,
  fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66).
- (PyPi only) Fix an issue with source distributions not including the test
  suite.


Version 2.4.1
-------------

- Added explicit check for valid hours if AM/PM is specified in parser.
  (gh pr #22, issue #21)
- Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not
  handled properly. (gh pr #35, issue #34)
- Fix error where parser allowed some invalid dates, overwriting existing hours
  with the last 2-digit number in the string. (gh pr #32, issue #31)
- Fix and add test for Python 2.x compatibility with boolean checking of
  relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cédric Krier
  (lp: 1035038)
- Replaced parse() calls with explicit datetime objects in unit tests unrelated
  to parser. (gh pr #36)
- Changed private _byxxx from sets to sorted tuples and fixed one currently
  unreachable bug in _construct_byset. (gh pr #54)
- Additional documentation for parser (gh pr #29, #33, #41) and rrule.
- Formatting fixes to documentation of rrule and README.rst.
- Updated zoneinfo to 2015a.
wiedi pushed a commit to wiedi/pkgsrc-legacy that referenced this issue Nov 17, 2016
omindex:

  + Also index leafname with _ and & replaced by spaces.  Literal spaces are
    often avoided in filenames, and "hello_world.txt" ought to be searchable for
    via "hello" and "world".  Partly addresses #618, reported by Julien
    Pfefferkorn.

  + Make named entity look-up (e.g. &eacute; -> 233) use the same keyword-lookup
    table approach we already use for HTML tags and built-in MIME content-types,
    rather than a std::map, which makes it faster while using less memory.

  + Avoid using the shell to run most external commands as it's unnecessary
    overhead.  For the built-in filters, the only cases which now use a shell
    are where we run two unzip commands.  For user-specified commands, a simple
    and slightly conservative test is used, which should avoid a shell in most
    common cases where it isn't needed.  Notably, environment variables set
    before the command are handled.

  + Track files which couldn't be indexed in the user metadata and skip them by
    default on subsequent runs to avoid the costs of repeatedly running a
    filter on a file it can't handle.  Run omindex with --retry-failed to retry
    such files.

  + Overhaul the "per-site" terms:
    - 'H' prefix is hostname as before, except that if the term would be > 240
      bytes (unlikely but possible) the end is hashed is the same way 'U'
      prefix terms are.
    - 'P' terms are now added for every directory level, not just the start
      URL's path.
    - A new 'J' prefix term is added with the start URL (less any trailing
      '/'), which means all files indexed from a particular "site" are now
      indexed by one term.  See TritonDataCenter#376.

  + Add 'skip' pseudo-mimetype which extensions can be mapped to, and they will
    then be reported and skipped (to complement the existing 'ignore'
    pseudo-mimetype which causes files with the specified extension to be
    quietly ignored).

  + Treat a command of 'true' specially as meaning make the text extraction a
    no-op (as actually running /bin/true effectively would).  This provides a
    way to index some file types by only meta-data.  Fixes TritonDataCenter#519, reported by
    Brian Burton.

  + Add support for wildcard mimetypes */* and *.  Combined with filter command
    ``true`` for indexing by meta-data only, you can specify a fall back case
    of indexing by meta-data only using ``--filter '*:true'``.  From a
    suggestion by Brian Burton on xapian-discuss.

  + Index message/rfc822 and message/news.  These are individually saved email
    messages and news articles.

  + Index archived web page formats MAFF and MHTML.

  + Handle .xla, yet another XL extension.

  + Handle metadata in LibreOffice HTML export (dcterms.subject,
    dcterms.description, dcterms.creator and dcterms.contributor).

  + Use zlib's gzopen() instead of invoking "gzip -dc" for compressed Abiword
    documents.

  + Add support for %f in command passed to --filter to allow specifying
    commands where the input file is not the final argument.  Fixed #570,
    reported by Charles Atkinson.

  + Allow --filter to handle commands which produce output in a temporary file
    rather than on stdout.

  + Allow --filter to specify the character set of the output the filter
    produces.

  + Handle application/vnd.ms-excel, text/x-perl and application/x-dvi via
    default --filter settings instead of hardcoded cases (now possible thanks
    to the new abilities that --filter has).

  + Add support for specifying a MIME subtype of '*' in --filter arguments.

  + Add -track-ctime option to allow omindex to pick up changes to file
    ownership and permissions.

  + Index terms from the leafname with an 'F' prefix, rather than treating them
    as more body text.  (Fixes #633, reported by Emmanuel Garette)

  + The starting URL wasn't previously URL encoded.  In 1.2.18, a minimally
    intrusive fix was implemented.  In 1.3.2, we now encode the starting URL
    as we do for the rest of the filename.

  + Don't assume .doc is application/msword but let libmagic decide, since .doc
    files may actually be RTF, and sometimes people use .doc for plain-text
    documentation.

  + Add support for indexing 'topic' and 'created date' meta-data for
    OpenDocument format and HTML.

  + Index "topic" for PDF documents.

  + Commit changes and exit, rather than skipping the current file on most
    unexpected errors reading directories or initialising libmagic - otherwise
    we can end up deleting a lot of database entries on errors like EHOSTDOWN
    when indexing network mounts.

  + Add --opendir-sleep=SECS option to allow working around problems with
    indexing files on Microsoft DFS shares.

  + If we get ENOTDIR trying to index a file, skip it quietly (unless in
    verbose mode) as we already do if we get ENOENT, since ENOTDIR is what we
    get if the file and the directory it was in got removed between us getting
    the filename and trying to open it.

  + Handle ENOENT, ENOTDIR and EACCES from readdir().

  + If we've already opened the file (as we often will have if using a modern
    libmagic with magic_descriptor() available), then use fstat() on that fd
    rather than stat()/lstat() on the pathname.

  + Pass error message string and errno value in ReadError exceptions.

  + Report strerror(errno) if we can't read a file.

  + Filtering via text/html now handles HTML documents which specify a charset.

  + Add support for indexing Microsoft Publisher files using pub2xhtml.

  + Restrict the length of what we consider to be an extension, currently to 7
    characters or whatever the longest extension in the mime_map is if it is
    longer.

  + Avoid '//' in temporary filenames (cosmetic only).

  + Extend --filter to handle commands which produce HTML on stdout.

  + Don't report an error if a file is deleted (or renamed) between us reading
    the directory entry for it and trying to read the file itself by default.
    In --verbose mode, the situation is still reported, but now with a
    specific message.

  + If omindex receives any of the signals SIGHUP, SIGINT, SIGQUIT or SIGTERM,
    then kill any active external filter child process, then handle the signal
    as we did before.  If setpgid() is available, put each external filter in
    its own process group and kill the whole process group when we get a
    signal.

  + Use magic_descriptor() if the version of libmagic we're building against
    is new enough to have it.  This eliminates an extra opening of a file
    being indexed in certain cases.

  + Use rst2html to handle .rst and .rest files.

  + Index title with an 'S' prefix rather than no prefix.

  + If the document with the highest existing docid before the run was updated,
    we were reporting it as "added", but now we correctly report it as
    "updated".

  + Catch and report std::exception explicitly, so failing to allocate memory
    is no longer reported as "Unknown exception".

omindex-list: New tool to list URLs of all the documents in a database
(or list of databases) indexed by omindex.

* The HTML parser now explicitly handles <APPLET>, <OBJECT> and <TR>.

* Use a generated compact and efficient table to convert HTML tag names
  to enum codes - this is both faster and smaller than the approach we were
  using, with the benefit that the table is auto-generated.

* Always use our built-in conversion code for the character sets it can handle
  (previously we'd use iconv if available; now we only use iconv for other
  character sets).  This gives us more consistent results, and in particular
  means we now handle BOMs better (at least when using GNU iconv).

* A lot of data labelled as "iso-8859-1" is actually "windows-1252".  The two
  only differ in characters which are control characters in iso-8859-1, so
  assume the latter when we see the former.


scriptindex:

  + Remove special error handling case noting that index=nopos was replaced
    with indexnopos - this was removed in 1.1.0 so there's been enough time to
    upgrade.


omega:

* Add support for sorting by more than one value - e.g. SORT=+1,-2

* Add $msizelower and $msizeupper which provide access to the lower and upper
  bounds on the number of matches.

* Add support for $set{weighting,coord}.

* Add weightingpurefilter option.  Normally a query consisting only of filter
  terms won't have relevance weights calculated.  This new option allows you to
  specify a weighting scheme to use for such queries, with the same values
  supported as for the existing weighting option.  For example,
  $set{weightingpurefilter,coord} will weight such queries by how many filter
  terms match each document.

* $filters now includes DATEVALUE, which means we'll force the first page when
  reloading or changing page starting from existing URLs upon upgrade to 1.4.1,
  but the exact same existing URL could be for a search without the date filter
  where we want to force the first page, so there's an inherent ambiguity
  there.  Forcing first page in this case seems the least problematic
  side-effect.

* Implement $match command for omegascript.  Patch from Richhiey Thomas.

* Add optional prefix argument to $terms.

* $snippet now uses MSet::snippet() instead of the Snipper class.

* Add $contains{STRING1,STRING2}.  Contributed by Ayush Gupta.

* Add support for negated boolean filter terms, specified by CGI parameter "N".

* Support a direction prefix on SORT: '+' for ascending, '-' for descending.
  SORTREVERSE set to non-0 now flips the direction.  Fixes #697, reported by
  Andy Chilton.

* Add options argument to $transform.

* Cache compiled regexps used in $transform.

* Add $ord OmegaScript command which returns the Unicode codepoint for the
  first character of a UTF-8 string.

* Add $chr OmegaScript command which returns the UTF-8 string for given Unicode
  codepoint.

* Add $csv OmegaScript command which escapes a string for use as a field in a
  CSV file ("always quote" mode inspired by patch from Gaurav Arora.)

* New $filters encoding which avoids collisions.  We also compare CGI parameter
  xFILTERS to what $filters would have returned in previous releases, so that
  on upgrades old format serialised filters are handled correctly.

* Fix $jsonarray not to prepend ']' to the first array element.

* Skip weighting scheme setup for a pure date range query - it won't be
  weighted anyway, so we can avoid having to parse weighting scheme parameters,
  etc.

* Use value ranges when date range filtering by value.  Should be more
  efficient than a MatchDecider, and will automatically take advantage of any
  future value range optimisations in xapian-core.

* Add default_db and default_template config options.  These allow the default
  template and default database name to be set via the config file, rather than
  being stuck with the respective defaults of "default" and "query".  Fixes
  TritonDataCenter#310, reported by Marco Hennigs.

* Add support for non-exclusive filters.  Fixes TritonDataCenter#234, reported by Thomas
  Viehmann.

* Fix handling of multiple P.<prefix> fields - previously only the first seen
  was used.  These fields are also now taken into account when deciding if the
  query has changed.  $query now returns an OmegaScript list with one entry for
  each CGI parameter passed.

* Allow setting query expansion scheme to "bo1".

* Make the $json and $jsonarray force the text to be valid UTF-8, since
  otherwise the output isn't valid JSON.

* Check parameters to $set{weighting,bm25 ...} and $set{weighting,trad ...}
  converted OK.  Based on patch from Aarsh Shah.

* Add support to $set{weighting,...} for bb2, dlh, dph, ifb2, ineb2, inl2, lm,
  pl2 when we're built against a xapian-core which is new enough to have these
  schemes.

* Add $snippet to generate a snippet of text tailored to the search.

* Add new $json and $jsonarray OmegaScript commands to support producing JSON
  output.

* Add $truncate command which truncates a string after a word.

* Add support for $set{weighting,tfidf} to allow the new TfIdfWeight weighting
  scheme to be used.

+ DEFAULTOP now defaults to AND rather than OR, since that matches what pretty
  much every search engine does these days.  Closes ticket#512.

* Allow mapping a query string prefix to more than one term prefix (which
  xapian-core has supported since 1.0.4).

* Add support for search inputs for multiple probabilistic prefixes, with
  support for per-prefix stemmers.

* Drop legacy support for handling '.' separated terms in xP - that changed in
  Omega 0.9.7, more than 5 years ago now.

* Remove support for OLDP CGI parameter which was superseded by xP
  approximately a decade ago, and isn't even documented!

* Drop special handling for R-prefixed terms in $prettyterm - we stopped
  generating these in Xapian 1.0.


templates:

* Lower case all HTML tags, attributes and values; explicitly close <option>
  tags.  Patches from Vivek Pal and Nirmal Singhania.

* Migrate Omega Templates to HTML5.  Patch from Nirmal Sighania.

* templates/query: Remove stray double quote from generated URL for spelling
  suggestion when THRESHOLD is set.  Patch from Nirmal Singhania.

* templates/opensearch: Change response feeds to support OpenSearch 1.1.
  Patch from Nirmal Singhania.

* templates/query: Fix setting setting of prefix map for P - in 1.3.2, this
  would failed to also search in the subject.  Now it also searches in the
  subject and topic.

* templates/query:

  + We now map unprefixed queries to include S-prefixed terms to match the
    change in omindex to prefixing terms from the title with S.  You may want
    to make the same update to your own templates.

  + Set up prefixes for 'author:' and 'title:'.
jperkin pushed a commit that referenced this issue Apr 27, 2017
This is a regularly scheduled stable release.

Resolved issues since v0.14.26:

    #219: Devices can now have a list of allowed subnets (advanced config)
    #234: The transfer rate units can now be changed by clicking on the value
    #1819: UI text explaining "Introducer" is improved
    #2267: Advanced config editor can now edit lists of things
    #2519: Directories created for new folders now obey the user umask setting (on Unixes)
    #4053: Incoming index updates are consistency checked better
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants