User-Visible OpenAFS Changes
OpenAFS 1.6.17 (Security Release)
All server platforms
* Fix for OPENAFS-SA-2016-001: foreign users can create groups as
if they were an administrator (RT #132822) (CVE-2016-2860)
All client platforms
* Fix for OPENAFS-SA-2016-002: information leakage from sending
uninitialized memory over the network. Multiple call sites
were vulnerable, with potential for leaking both kernel and
userland stack data (RT #132847)
* Update to the GCO CellServDB update from 01 January 2016 (12188)
Linux clients
* Fix a crash when the root volume is not found and dynroot is not
in use, a regression introduced in 1.6.14.1 (12166)
* Avoid introducing a dependency on the kernel-devel package corresponding
to the currently running system while building the srpm (12195)
* Create systemd unit files with mode 0644 instead of 0755
(12196) (RT #132662)
OpenAFS 1.6.16
All platforms
* Documentation improvements (11932 12096 12100 12112 12120)
* Improved diagnostics and error messages (11586 11587)
* Distribute the contributor code of conduct with the stable release (12056)
All server platforms
* Create PID files in the right location when bosserver is started with
the "-pidfiles" argument and transarc paths are not being used (12086)
* Several fixes regarding volume dump creation and restore (11433 11553
11825 11826 12082)
* Avoid a reported bosserver crash, and potentially others, by replacing
fixed size buffers with dynamically allocated ones in some user handling
functions (11436) (RT #130719)
* Obey the "-toname" parameter in "vos clone" operations (11434)
* Avoid writing a loopback address into the server CellServDB - search
for a non-loopback one, and fail if none is found (12083 12105)
* Rebuild the vldb free list with "vldb_check -fix" (12084)
* Fixed and improved the "check_sysid" utility (12090)
* Fixed and improved the "prdb_check" utility (12101..04)
All client platforms
* Avoid a potential denial of service issue, by fixing a bug in pioctl
logic that allowed a local user to overrun a kernel buffer with a single
NUL byte (commit 2ef86372) (RT #132256) (CVE-2015-8312)
* Refuse to change multi-homed server entries with "vos changeaddr",
unless "-force" is given, to avoid corruption of those entries (12087)
* Provide a new vos subcommand "remaddrs" for removing server entries, to
replace the slightly confusing "vos changeaddr -remove" (12092 12094)
* Make "fs flushall" actually invalidate all cached data (11894)
* Prevent spurious call aborts due to erroneous idle timeouts (11594)
* Provide a "--disable-gtx" configure switch to avoid building and
installing libgtx and its header files as well as the depending
"scout" and "afsmonitor" applications (12095)
* Fixed building the gtx applications against newer ncurses (12125)
* Allow pioctls to work in environments where the syscall emulation
pseudo file is created in a read-only pseudo filesystem, like in
containers under recent versions of docker (12124)
Linux clients
* In Red Hat packaging, avoid following a symbolic link when writing
the client CellServDB, which could overwrite the server CellServDB,
by removing an existing symlink before writing the file (12081)
* In Red Hat packaging, avoid a conflict of openafs-debuginfo with
krb5-debuginfo by excluding our kpasswd executable from debuginfo
processing (12128) (RT #131771)
Upstream changes:
0.084 2016-03-04 07:17:49-05:00 America/New_York
[Fixes]
- Fixed relative() for the case with regex metacharacters in the path
0.082 2016-03-01 18:23:26-05:00 America/New_York
[!!! INCOMPATIBLE CHANGES !!!]
- (This warning repeated from 0.079-TRIAL) The relative() method no
longer uses File::Spec's buggy rel2bs method. The new Path::Tiny
algorithm should be comparable and passes File::Spec rel2abs test
cases, except that it correctly accounts for symlinks. For common
use, you are not likely to notice any difference. For uncommon use,
this should be an improvement. As a side benefit, this change drops
the minimum File::Spec version required, allowing Path::Tiny to be
fatpacked if desired.
[Changes]
- no other changes from 0.081
0.081 2016-02-18 16:55:37-05:00 America/New_York (TRIAL RELEASE)
[Fixed]
- Fixed lines_utf8+chomp and relative() bugs on Windows
0.079 2016-02-15 20:52:10-07:00 America/Mazatlan (TRIAL RELEASE)
[!!! INCOMPATIBLE CHANGES !!!]
- The relative() method no longer uses File::Spec's buggy rel2bs
method. The new Path::Tiny algorithm should be comparable and passes
File::Spec rel2abs test cases, except that it correctly accounts for
symlinks. For common use, you are not likely to notice any
difference. For uncommon use, this should be an improvement. As a
side benefit, this change drops the minimum File::Spec version
required, allowing Path::Tiny to be fatpacked if desired.
[FIXED]
- Fixed lines_utf8() with chomping for repeated empty lines.
[DOCS]
- Documented that subclassing is not supported
0.077 2016-02-10 14:17:32-07:00 America/Mazatlan (TRIAL RELEASE)
[ADDED]
- Added 'edit' and 'edit_lines' plus _utf8 and _raw variants; this
is similar to perl's -i flag (though without backups)
0.076 2015-11-16 10:47:24-05:00 America/New_York
- no changes from 0.075
0.075 2015-11-15 21:02:18-05:00 America/New_York (TRIAL RELEASE)
[FIXED]
- Tilde expansion on Windows was resulting in backslashes. Now they
are correctly normalized to forward slashes.
[DOCS]
- Typos fixed
0.073 2015-10-30 10:36:18-04:00 America/New_York (TRIAL RELEASE)
[FIXED]
- Fixed spewing to a symlink that crosses a filesystem boundary
[PREREQS]
- Add Test::MockRandom to META as an recommended test prerequisite.
* Integrated osxfuse's copy of sshfs, which means that sshfs now works
on OS X out of the box.
* Added -o cache_max_size=N option to let users tune the maximum size of
the cache in number of entries.
* Added -o cache_clean_interval=N and -o cache_min_clean_interval=N
options to let users tune the cleaning behavior of the cache.
This is a filesystem client based on the SSH File Transfer Protocol.
Since most SSH servers already support this protocol it is very easy to
set up: i.e. on the server side there's nothing to do. On the client
side mounting the filesystem is as easy as logging into the server with
ssh.
The idea of sshfs was taken from the SSHFS filesystem distributed with
LUFS. There were some limitations in that codebase, and this
implementation features:
- Based on FUSE
- Multithreading
- Large reads (max 64k)
- Caching directory contents
- Reconnect on failure
The FUSE-based pCacheFS file system provides a simple caching layer for
other filesystems. This makes slow, remote filesystems seem very fast
to access. Moreover, the cache does not disappear when you start or
stop pCacheFS or if you reboot your computer -- it is persistent.
pCacheFS is designed for caching large amounts of data on remote
filesystems that don't change very much, such as movie or music
libraries.
1.0
- add unionfsctl utility to control unionfs-fuse over ioctl
- better apple support
- dropped stats
- better test suite
- probably lots of other things, it's been a while since last release ;-)
0.26
- use BUILD_PATH instead of snprintf, which will
return -ENAMETOOLONG if the path is too long instead of simply
using a wrong path
- new options "-o relaxed_permissions" and "-o hide_meta_dir"
- included the debian directory
- Properly check on rmdir() if sub-branches are also empty
- Always compile with debug code, but only enable debugging on request
- New option -o debug_file
- Lots of bugs fixed in BUILD_PATH()
- Improved search of white-out files
- Properly fix Debian Bug#509516.
- More debug output.
- Add syslog support without the risk of possible dead locks
- Use fuse big-writes (and reads) if available
0.25
- Alternate way to specify branches
- Minor fixes
0.24
- Support for liveCDs / live USB sticks (-o chroot)
- Build-in support to change the maximum number of open files
- Added recursive directory COW.
- relative paths: Critical bug fix, had been completely broken in 0.23
0.23
- remove to_user() and to_root() calls for autorization and use fuse build-in
default_permissions checks
- bugfix: rename created wrong whiteout type
0.22
- Fix a bug reported by Jens Hoelldampf <jens@hoelldampf.net>, in 0.21 cow
didn't work for pathes.
0.21
- Fix a segmentation fault when COW was enabled, but no rw-branch was specified.
- Proper handling when ro-branches are on top of rw-branches.
- Disabled syslog entries for now, since it might cause deadlocks.
- Fixed a license issue with the elfhash, since the CPL is not compatible
with the BSD license.
- Fix a bug when stat() was called instead of lstat().
- Many internal code changes (renaming of "root" to "branch").
- Better directory structure.
- Add this NEWS file.
- Add a man page.
0.20
- Fix a critical bug introduced in 0.19 when we disabled threadding.
0.19
- Several copy-on-write fixes (readdir, unlink, rmdir, rename).
- Whiteout files are now located in branch/.unionfs/ subdirectories.
- Disable threadding, since our current permissions-model is not compatible
with the NPTL implementation and the Posix-Thread model in general.
- Add supplementary group support.
0.18
- First release with copy-on-write (COW) support.
- Many many internal code changes.
Changes to NTFS-3G:
-------------------
Fixed inserting a new ACL after wiping out by chkdsk
Fixed Windows-type inheritance
Fixed ignoring the umask mount option when permissions are used
Fixed checking permissions when Posix ACLs are compiled in but not enabled
Disabled option remove_hiberfile on read-only mounts
Implemented an extended attribute to get/set EAs
Avoid full runlist updating in more situations
Update ctime after setting an ACL
Use MFT record 15 for the first extent to MFT:DATA
Ignore the sloppy mount option (-s)
Implemented FITRIM (fstrim) ioctl
Reengineered the compression algorithm
Changes to ntfsprogs:
---------------------
Return success from ntfsprogs utilities with options –version and the like
Implemented configure option –enable-quarantined for non functional utilities
Added manuals for ntfsdecrypt, ntfswipe, ntfstruncate and ntfsfallocate
Existing SHA1 digests verified, all found to be the same on the
machine holding the existing distfiles (morden). Existing SHA1
digests retained for now as an audit trail.
OpenAFS 1.6.15 (Security Release)
All client and server platforms
* Fix for OPENAFS-SA-2015-007 "Tattletale"
When constructing an Rx acknowledgment (ACK) packet, Andrew-derived
Rx implementations do not initialize three octets of data that are
padding in the C language structure and were inadvertently included
in the wire protocol (CVE-2015-7762). Additionally, OpenAFS Rx in
versions 1.5.75 through 1.5.78, 1.6.0 through 1.6.14, and 1.7.0
through 1.7.32 include a variable-length padding at the end of the
ACK packet, in an attempt to detect the path MTU, but only four octets
of the additional padding are initialized (CVE-2015-7763).
User-Visible OpenAFS Changes
OpenAFS 1.6.10
All platforms
* Don't hide the "version" subcommand in help output (11214)
* Documentation improvements (11126 11216 11222 11223 11225 11226)
* Improved diagnostics and error messages (11154 11246 11247 11249 11181
11182 11183)
* Build system improvements (11158 11221 11224 11225 11227..11241 11282
11342 11350 11353 11242 11367 11392)
* Avoid potentially erratic behaviour under certain error conditions by
either avoiding or at least not ignoring them, in various places (11008
11010..11065 11112 11148 11196 11530)
FreeBSD
* Support releases 9.3 and 10.1 (11368 11369 11402 11403 11404)
* Makes a disk cache more likely to work on FreeBSD, though such
configurations remain not very tested (11448)
All server platforms
* Added volscan(8) (11252..11280 11387 11388)
* Fixed a bug causing subgroups not to function correctly if their
ptdb entry had more than one continuation entry (11352)
* Logging improvements (10946 11153)
* Allow log rotation via copy and truncate (11193)
* Avoid a server crash during startup only observed on a single platform
and when using a 3rd party library under certain circumstances, which is
a collateral effect of the security improvements introduced in OpenAFS
release 1.6.5 (11075) (RT #131852)
All client platforms
* Raised the free space reported for /afs to the maximum possible value of
just under 2 TiB - the old value was 9 GiB on most platforms (10984)
* Reduced the amount of stack space used (11162 11163 11203 11164..11167
11338 11339 11364..11366 11381)
* Sped up a periodic client task which could be problematically slow
on systems with a large number of PAGs and files in use (11307)
* Fixed failure of the up command with large ACLs (11111)
* Avoid a potential crash of aklog (11218)
* Avoid potential crashes of scout and xstat_fs_test (11155)
Linux clients
* Support kernels up to 3.16 (11308 11309)
* Fixed a regression introduced in OpenAFS release 1.6.6 that made
checking for existing write locks incorrectly fail on readonly volumes
(11361)
* Fixed a regression introduced in OpenAFS release 1.6.8 that could
cause VFS cache inconsistencies when a previously-accessed directory
entry was removed and recreated with the same name but pointing to a
different file on another client (11358)
* Use the right path to depmod in Red Hat packaging to avoid dependency
calculation incorrectly failing unless a link /sbin -> /usr/sbin is
present on the system performing it (11171) (RT #131860)
* Do not ignore kernel module build errors (11205)
User-Visible OpenAFS Changes
OpenAFS 1.6.11
All platforms
* Allow aklog to succeed creating native K5 tokens even when mapping
the K5 principal to a K4 one fails (11538)
* Build fixes (11435 11636)
All client platforms
* Avoid a potential kernel panic due to connection reference overcounts
(11645) (RT #131885)
* Avoid potential corruption of files written using memory mapped I/O
when the file is larger than the cache (11656) (RT #131976)
Linux clients
* Support kernels at least up to 3.19 (11549 11550 11569 11570 11595
11658..11662 11694 11752)
Note: By default this excludes kernels 3.17 to 3.17.2, which will leak
an inode reference when an error occurs in d_splice_alias(). The
module will build and work, but leak kernel memory, leading to
performance degradation and eventually system failure due to
memory exhaustion. Since it's impossible to detect this condition
automatically, the switch --enable-linux-d_splice_alias-extra-iput
must be passed to configure when building the module for those
kernels. The same would be necessary for any kernel with backports
of commit 908790fa3b779d37365e6b28e3aa0f6e833020c3 or commit
95ad5c291313b66a98a44dc92b57e0b37c1dd589 but not the fix in commit
51486b900ee92856b977eacfc5bfbe6565028070 in the linux-stable repo
(git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git) or
the corresponding changes on other branches.
* Fixed a regression introduced in OpenAFS release 1.6.10 which could
make the spurious "getcwd: cannot access parent directories" problem
return (11558 11568) (RT #131780)
* Avoid leaking memory when scanning a corrupt directory (11707)
OS X clients
* Support OS X 10.10 "Yosemite" (11571 11572 11611) (RT #131946)
Solaris clients
* Avoid reading random data rather than correct cache content when using
ZFS as the cache file system on Solaris >= 11, and fix potential similar
problems on other platforms (11713 11714)
FreeBSD
* Build fix for releases >= 11.0 (11610)
OpenBSD
* Support release 5.4 (11700)
User-Visible OpenAFS Changes
OpenAFS 1.6.11.1
Linux clients
* Support kernels up to 4.0 (11760 11761)
FreeBSD clients
* Fixed kernel module build on systems with an updated clang which no
longer accepts the -mno-align-long-strings as a no-op (11809)
User-Visible OpenAFS Changes
OpenAFS 1.6.12
All server platforms
* Avoid database corruption if a database server is shut down and then
brought up again quickly with an altered database (11773 11774)
(RT #131997)
All client platforms
* Fixed a potential buffer overflow in aklog (11808)
* Avoid a bogus warning regarding the checkserver daemon, which could be
logged during startup when the cache initialization was very fast (11680)
* Added documentation of the inaccuracy of the 'partition' field in
'fs listquota' output for partitions larger than 2 TiB (11626)
Linux clients
* Support kernels up to 4.1 (11872 11873)
* Avoid spurious EIO errors when writing large chunks of data to
mmapped files (11877)
OS X
* Build fixes required at least on OS X 10.10 Yosemite with the latest
XCode (11859 11876 11842..11845 11863 11878 11879)
User-Visible OpenAFS Changes
OpenAFS 1.6.13
All server platforms
* Fix for CVE-2015-3282: vos leaks stack data onto the wire in the
clear when creating vldb entries
* Workaround for CVE-2015-3283: bos commands can be spoofed, including
some which alter server state
* Disabled searching the VLDB by volume name regular expression to avoid
possible buffer overruns in the volume location server
All client platforms
* Fix for CVE-2015-3284: pioctls leak kernel memory
* Fix for CVE-2015-3285: kernel pioctl support for OSD command passing
can trigger a panic
Solaris clients
* Fix for CVE-2015-3286: Solaris grouplist modifications for PAGs can
panic or overwrite memory
User-Visible OpenAFS Changes
OpenAFS 1.6.14
All server platforms
* Prior to the OpenAFS security release 1.6.13, the Volume Location
Server (vlserver) RPC VL_ListAttributesN2() supported wildcard volume
name lookups via regular expression (regex) pattern matching. This
support was completely disabled in 1.6.13 because it was judged to be
a security risk due to buffer overruns in the implementation, as well
as the possibility of denial of service attacks where certain regular
expressions could cause excessive CPU usage in some regex
implementations.
Unfortunately, after 1.6.13 was released, it was discovered that
the native OpenAFS 'backup' system uses the VL_ListAttributesN2()
regex support to evaluate configured volume sets. If you use the
OpenAFS 'backup' system (or another backup system which relies on it,
such as Tivoli Storage Manager (TSM, aka Tivoli ADSM)), and are using
volume sets which require regular expressions for the volume name,
then those volume sets cannot be resolved by OpenAFS 1.6.13. The next
paragraph provides details on how to identify any affected volume sets.
OpenAFS backup volume sets may be described by fileserver, partition
name, and volume name. The fileserver and partition specifications
never require regular expression support. The volume name specification
always requires regular expression support except for when specifying
_all_ volumes via two special cases: the universal wildcard ".*", or "".
For example, volume name "proj" or "*.backup" or "homevol.*" all
require regex support - even if the specification contains no wildcard
characters and/or exactly matches an existing volume name.
As a result of this issue, OpenAFS 1.6.14 replaces the 1.6.13 changes
to VL_ListAttributesN2. 1.6.14 prevents the buffer overruns and
reenables the regex support, but restricts it to OpenAFS super-users
and -localauth only. This is sufficient to restore the OpenAFS 'backup'
system's ability to work correctly with any previously supported volume
set. The OpenAFS 'backup' commands are already documented to require
super-user authorization, so this restriction is moot for the backup
system.
There are no other direct consumers of the VL_ListAttributesN2() regex
support in the OpenAFS tree. However, the VL_ListAttributesN2 RPC is
publicly accessible and might be used by third party tools directly or
indirectly via OpenAFS's libadmin. Any such tools that issue
VL_ListAttributesN2 RPCs must now be executed using super-user or
-localauth tokens.
None of the other security fixes in OpenAFS 1.6.13 are known to have
any issues, and are still included unchanged in OpenAFS 1.6.14.
If there are any questions concerning the possible impact of OpenAFS
1.6.13 or 1.6.14 at your site, please contact your OpenAFS support
provider or the openafs-info@openafs.org mailing list for further
assistance.
Release 1.10.2 (2015-07-30)
'''''''''''''''''''''''''''
Packaging Changes
-----------------
This release no longer requires the ``mock`` library (which was previously
used in the unit test suite). Shortly after the Tahoe-LAFS 1.10.1 release, a
new version of ``mock`` was released (1.1.0) that proved to be incompatible
with Tahoe's fork of setuptools, preventing Tahoe-1.10.1 from building at
all. `#2465`_
The ``tahoe --version`` output is now less likely to include scary diagnostic
warnings that look deceptively like stack traces. `#2436`_
The pyasn1 requirement was increased to >= 0.1.8.
.. _`#2465`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2465
.. _`#2436`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2436
Other Fixes
-----------
A WebAPI ``GET`` would sometimes hang when using the HTTP Range header to
read just part of the file. `#2459`_
Using ``tahoe cp`` to copy two different files of the same name into the same
target directory now raises an error, rather than silently overwriting one of
them. `#2447`_
All tickets closed in this release: 2328 2436 2446 2447 2459 2460 2461 2462
2465 2470.
.. _`#2459`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2459
.. _`#2447`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2447
Upstream changes:
0.19 2015-03-16 NEILB
- Added [MetaJSON] to dist.ini, so META.json will go into the distribution,
as well as META.yml. Thanks to Lucas Kanashiro.
- Dropped the -r test on directories, as we only actually need -d and -x.
Thanks to Lucas Kanashiro.
Upstream changes:
0.072 2015-07-20 16:07:20-04:00 America/New_York
- No changes from 0.071
0.071 2015-07-17 13:40:08-04:00 America/New_York (TRIAL RELEASE)
[FIXED]
- Fixed incorrect error argument for File::Path functions
(mkpath and remove_tree)
0.070 2015-06-28 13:50:16-04:00 America/New_York
- No changes from 0.069
0.069 2015-06-18 18:09:44-04:00 America/New_York (TRIAL RELEASE)
[CHANGED]
- The 'copy' method now returns the object for the copied file
[FIXED]
- The 'visit' method only dereferences the callback return value
for scalar refs, avoiding some common bugs
{perl>=5.16.6,p5-ExtUtils-ParseXS>=3.15}:../../devel/p5-ExtUtils-ParseXS
since pkgsrc enforces the newest perl version anyway, so they
should always pick perl, but sometimes (pkg_add) don't due to the
design of the {,} syntax.
No effective change for the above reason.
Ok joerg
Release 1.10.1 (2015-06-15)
'''''''''''''''''''''''''''
User Interface / Configuration Changes
--------------------------------------
The "``tahoe cp``" CLI command's ``--recursive`` option is now more predictable,
but behaves slightly differently than before. See below for details. Tickets
`#712`_, `#2329`_.
The SFTP server can now use public-key authentication (instead of only
password-based auth). Public keys are configured through an "account file",
just like passwords. See docs/frontends/FTP-and-SFTP for examples of the
format. `#1411`_
The Tahoe node can now be configured to disable automatic IP-address
detection. Using "AUTO" in tahoe.cfg [node]tub.location= (which is now the
default) triggers autodetection. Omit "AUTO" to disable autodetection. "AUTO"
can be combined with static addresses to e.g. use both a stable
UPnP-configured tunneled address and a DHCP-assigned dynamic (local subnet
only) address. See `configuration.rst`_ for details. `#754`_
The web-based user interface ("WUI") Directory and Welcome pages have been
redesigned, with improved CSS for narrow windows and more-accessible icons
(using distinctive shapes instead of just colors). `#1931`_ `#1961`_ `#1966`_
`#1972`_ `#1901`_
.. _`#712`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/712
.. _`#754`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/754
.. _`#1411`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1411
.. _`#1901`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1901
.. _`#1931`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1931
.. _`#1961`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1961
.. _`#1966`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1966
.. _`#1972`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1972
.. _`#2329`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2329
.. _`configuration.rst`: docs/configuration.rst
"tahoe cp" changes
------------------
The many ``cp``-like tools in the Unix world (POSIX ``/bin/cp``, the ``scp``
provided by SSH, ``rsync``) all behave slightly differently in unusual
circumstances, especially when copying whole directories into a target that
may or may not already exist. The most common difference is whether the user
is referring to the source directory as a whole, or to its contents. For
example, should "``cp -r foodir bardir``" create a new directory named
"``bardir/foodir``"? Or should it behave more like "``cp -r foodir/* bardir``"?
Some tools use the presence of a trailing slash to indicate which behavior
you want. Others ignore trailing slashes.
"``tahoe cp``" is no exception to having exceptional cases. This release fixes
some bad behavior and attempts to establish a consistent rationale for its
behavior. The new rule is:
- If the thing being copied is a directory, and it has a name (e.g. it's not
a raw Tahoe-LAFS directorycap), then you are referring to the directory
itself.
- If the thing being copied is an unnamed directory (e.g. raw dircap or
alias), then you are referring to the contents.
- Trailing slashes do not affect the behavior of the copy (although putting
a trailing slash on a file-like target is an error).
- The "``-r``" (``--recursive``) flag does not affect the behavior of the
copy (although omitting ``-r`` when the source is a directory is an error).
- If the target refers to something that does not yet exist:
- and if the source is a single file, then create a new file;
- otherwise, create a directory.
There are two main cases where the behavior of Tahoe-LAFS v1.10.1 differs
from that of the previous v1.10.0 release:
- "``cp DIRCAP/file.txt ./local/missing``" , where "``./local``" is a
directory but "``./local/missing``" does not exist. The implication is
that you want Tahoe to create a new file named "``./local/missing``" and
fill it with the contents of the Tahoe-side ``DIRCAP/file.txt``. In
v1.10.0, a plain "``cp``" would do just this, but "``cp -r``" would do
"``mkdir ./local/missing``" and then create a file named
"``./local/missing/file.txt``". In v1.10.1, both "``cp``" and "``cp -r``"
create a file named "``./local/missing``".
- "``cp -r PARENTCAP/dir ./local/missing``", where ``PARENTCAP/dir/``
contains "``file.txt``", and again "``./local``" is a directory but
"``./local/missing``" does not exist. In both v1.10.0 and v1.10.1, this
first does "``mkdir ./local/missing``". In v1.10.0, it would then copy
the contents of the source directory into the new directory, resulting
in "``./local/missing/file.txt``". In v1.10.1, following the new rule
of "a named directory source refers to the directory itself", the tool
creates "``./local/missing/dir/file.txt``".
Compatibility and Dependency Updates
------------------------------------
Windows now requires Python 2.7. Unix/OS-X platforms can still use either
Python 2.6 or 2.7, however this is probably the last release that will
support 2.6 (it is no longer receiving security updates, and most OS
distributions have switched to 2.7). Tahoe-LAFS now has the following
dependencies:
- Twisted >= 13.0.0
- Nevow >= 0.11.1
- foolscap >= 0.8.0
- service-identity
- characteristic >= 14.0.0
- pyasn1 >= 0.1.4
- pyasn1-modules >= 0.0.5
On Windows, if pywin32 is not installed then the dependencies on Twisted
and Nevow become:
- Twisted >= 11.1.0, <= 12.1.0
- Nevow >= 0.9.33, <= 0.10
On all platforms, if pyOpenSSL >= 0.14 is installed, then it will be used,
but if not then only pyOpenSSL >= 0.13, <= 0.13.1 will be built when directly
invoking `setup.py build` or `setup.py install`.
We strongly advise OS packagers to take the option of making a tahoe-lafs
package depend on pyOpenSSL >= 0.14. In order for that to work, the following
additional Python dependencies are needed:
- cryptography
- cffi >= 0.8
- six >= 1.4.1
- enum34
- pycparser
as well as libffi (for Debian/Ubuntu, the name of the needed OS package is
`libffi6`).
Tahoe-LAFS is now compatible with Setuptools version 8 and Pip version 6 or
later, which should fix execution on Ubuntu 15.04 (it now tolerates PEP440
semantics in dependency specifications). `#2354`_ `#2242`_
Tahoe-LAFS now depends upon foolscap-0.8.0, which creates better private keys
and certificates than previous versions. To benefit from the improvements
(2048-bit RSA keys and SHA256-based certificates), you must re-generate your
Tahoe nodes (which changes their TubIDs and FURLs). `#2400`_
.. _`#2242`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2242
.. _`#2354`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2354
.. _`#2400`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2400
Packaging
---------
A preliminary OS-X package, named "``tahoe-lafs-VERSION-osx.pkg``", is now
being generated. It is a standard double-clickable installer, which creates
``/Applications/tahoe.app`` that embeds a complete runtime tree. However
launching the ``.app`` only brings up a notice on how to run tahoe from the
command line. A future release may turn this into a fully-fledged application
launcher. `#182`_ `#2393`_ `#2323`_
Preliminary Docker support was added. Tahoe container images may be available
on DockerHub. `PR#165`_ `#2419`_ `#2421`_
Old and obsolete Debian packaging tools have been removed. `#2282`_
.. _`#182`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/182
.. _`#2282`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2282
.. _`#2323`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2323
.. _`#2393`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2393
.. _`#2419`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2419
.. _`#2421`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2421
.. _`PR#165`: https://github.com/tahoe-lafs/tahoe-lafs/pull/165
Minor Changes
-------------
- Welcome page: add per-server "(space) Available" column. `#648`_
- check/deep-check learned to accept multiple location arguments. `#740`_
- Checker reports: remove needs-rebalancing, add count-happiness. `#1784`_ `#2105`_
- CLI ``--help``: cite (but don't list) global options on each command. `#2233`_
- Fix ftp "``ls``" to work with Twisted 15.0.0. `#2394`_
.. _`#648`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/648
.. _`#740`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/740
.. _`#1784`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1784
.. _`#2105`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2105
.. _`#2233`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2233
.. _`#2394`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2394
Roughly 75 tickets were closed in this release: 623 648 712 740 754 898 1146
1159 1336 1381 1411 1634 1674 1698 1707 1717 1737 1784 1800 1807 1842 1847
1901 1918 1953 1960 1961 1966 1969 1972 1974 1988 1992 2005 2008 2023 2027
2028 2034 2048 2067 2086 2105 2121 2128 2165 2193 2208 2209 2233 2235 2242
2245 2248 2249 2249 2280 2281 2282 2290 2305 2312 2323 2340 2354 2380 2393
2394 2398 2400 2415 2416 2417 2433. Another dozen were referenced but not
closed: 182 666 982 1064 1258 1531 1536 1742 1834 1931 1935 2286. Roughly 40
GitHub pull-requests were closed: 32 48 50 56 57 61 62 62 63 64 69 73 81 82
84 85 87 91 94 95 96 103 107 109 112 114 120 122 125 126 133 135 136 137 142
146 149 152 165.
For more information about any ticket, visit e.g.
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/754
Complete list of changes since 3.7.1:
- doc: add 1233044, 1232179 in 3.7.2 release-notes
- features/bitrot: fix fd leak in truncate (stub)
- doc: add release notes for 3.7.2
- libgfchangelog: Fix crash in gf_changelog_process
- glusterd: Fix snapshot of a volume with geo-rep
- cluster/ec: Avoid parallel executions of the same state machine
- quota: fix double accounting with rename operation
- cluster/dht: Prevent use after free bug
- cluster/ec: Wind unlock fops at all cost
- glusterd: Buffer overflow causing crash for glusterd
- NFS-Ganesha: Automatically export vol that was exported before vol restart
- common-ha: cluster HA setup sometimes fails
- cluster/ec: Prevent double unwind
- quota/glusterd: porting to new logging framework.
- bitrot/glusterd: gluster volume set command for bitrot should not supported
- tests: fix spurious failure in bug-857330/xml.t
- features/bitrot: tuanble object signing waiting time value for bitrot
- quota: don't log error when disk quota exceeded
- protocol/client : porting log messages to new framework
- cluster/afr: Do not attempt entry self-heal if the last lookup on entry
failed on src
- changetimerecorder : port log messages to a new framework
- tier/volume set: Validate volume set option for tier
- glusterd/tier: glusterd crashed with detach-tier commit force
- rebalance,store,glusterd/glusterd: porting to new logging framework.
- libglusterfs: Enabling the fini() in cleanup_and_exit()
- sm/glusterd: Porting messages to new logging framework
- nfs: Authentication performance improvements
- common-ha: cluster HA setup sometimes fails
- glusterd: subvol_count value for replicate volume should be calculate
correctly
- common-ha : Clean up cib state completely
- NFS-Ganesha : Return correct return value
- glusterd: Porting messages to new logging framework.
- glusterd: Stop tcp/ip listeners during glusterd exit
- storage/posix: Handle MAKE_INODE_HANDLE failures
- cluster/ec: Prevent Null dereference in dht-rename
- doc: fix markdown formatting
- upcall: prevent busy loop in reaper thread
- protocol/server : port log messages to a new framework
- nfs.c nfs3.c: port log messages to a new framework
- logging: log "Stale filehandle" on the client as Debug
- snapshot/scheduler: Modified main() function to take arguments.
- tools/glusterfind: print message for good cases
- geo-rep: ignore symlink and harlink errors in geo-rep
- tools/glusterfind: ignoring deleted files
- spec/geo-rep: Add rsync as dependency for georeplication rpm
- features/changelog: Do htime setxattr without XATTR_REPLACE flag
- tools/glusterfind: Cleanup glusterfind dir after a volume delete
- tools/glusterfind: Cleanup session dir after delete
- geo-rep: Validate use_meta_volume option
- spec: correct the vendor string in spec file
- tools/glusterfind: Fix GFID to Path conversion for dir
- libglusterfs: update glfs-message header for reserved segments
- features/qemu-block: Don't unref root inode
- features/changelog: Avoid setattr fop logging during rename
- common-ha: handle long node names and node names with '-' and '.' in them
- features/marker : Pass along xdata to lower translator
- tools/glusterfind: verifying volume is online
- build: fix compiling on older distributions
- snapshot/scheduler: Handle OSError in os. callbacks
- snapshot/scheduler: Check if GCRON_TASKS exists before
- features/quota: Fix ref-leak
- tools/glusterfind: verifying volume presence
- stripe: fix use-after-free
- Upcall/cache-invalidation: Ignore fops with frame->root->client not set
- rpm: correct date and order of entries in the %changelog
- nfs: allocate and return the hashkey for the auth_cache_entry
- doc: add release notes for 3.7.1
- snapshot: Fix finding brick mount path logic
- glusterd/snapshot: Return correct errno in events of failure - PATCH 2
- rpc: call transport_unref only on non-NULL transport
- heal : Do not invoke glfs_fini for glfs-heal commands
- Changing log level from Warning to Debug
- features/shard: Handle symlinks appropriately in fops
- cluster/ec: EC_XATTR_DIRTY doesn't come in response
- worm: Let lock, zero xattrop calls succeed
- bitrot/glusterd: scrub option should be disabled once bitrot option is
reset
- glusterd/shared_storage: Provide a volume set option to create and mount
the shared storage
- dht: Add lookup-optimize configuration option for DHT
- glusterfs.spec.in: move libgf{db,changelog}.pc from -api-devel to -devel
- fuse: squash 64-bit inodes in readdirp when enable-ino32 is set
- glusterd: do not show pid of brick in volume status if brick is down.
- cluster/dht: fix incorrect dst subvol info in inode_ctx
- common-ha: fix race between setting grace and virt IP fail-over
- heal: Do not call glfs_fini in final builds
- dht/rebalance : Fixed rebalance failure
- cluster/dht: Fix dht_setxattr to follow files under migration
- meta: implement fsync(dir)
- socket: throttle only connected transport
- contrib/timer-wheel: fix deadlock in del_timer()
- snapshot/scheduler: Return proper error code in case of failure
- quota: retry connecting to quotad on ENOTCONN error
- features/quota: prevent statfs frame loss when an error happens during
ancestry
- features/quota : Make "quota-deem-statfs" option "on" by default, when
quota is enabled
- cluster/dht: pass a destination subvol to fop2 variants to avoid races.
- cli: Fix incorrect parse logic for volume heal commands
- glusterd: Bump op version and max op version for 3.7.2
- cluster/dht: Don't rely on linkto xattr to find destination subvol
- afr: honour selfheal enable/disable volume set options
- features/shard: Fix incorrect parameter to get_lowest_block()
- libglusterfs: Copy d_len and dict as well into dst dirent
- features/quota : Do unwind if postbuf is NULL
- cluster/ec: Fix incorrect check for iatt differences
- features/shard: Fix issue with readdir(p) fop
- glusterfs.spec.in: python-gluster should be 'noarch'
- glusterd: Bump op version and max op version for 3.7.1
- glusterd: fix repeated connection to nfssvc failed msgs
Bitrot detection is a technique used to identify an ?insidious?
type of disk error where data is silently corrupted with no indication
from the disk to the storage software layer that an error has
occurred. When bitrot detection is enabled on a volume, gluster
performs signing of all files/objects in the volume and scrubs data
periodically for signature verification. All anomalies observed
will be noted in log files.
* Multi threaded epoll for performance improvements
Gluster 3.7 introduces multiple threads to dequeue and process more
requests from epoll queues. This improves performance by processing
more I/O requests. Workloads that involve read/write operations on
a lot of small files can benefit from this enhancement.
* Volume Tiering [Experimental]
Policy based tiering for placement of files. This feature will serve
as a foundational piece for building support for data classification.
Volume Tiering is marked as an experimental feature for this release.
It is expected to be fully supported in a 3.7.x minor release.
Trashcan
This feature will enable administrators to temporarily store deleted
files from Gluster volumes for a specified time period.
* Efficient Object Count and Inode Quota Support
This improvement enables an easy mechanism to retrieve the number
of objects per directory or volume. Count of objects/files within
a directory hierarchy is stored as an extended attribute of a
directory. The extended attribute can be queried to retrieve the
count.
This feature has been utilized to add support for inode quotas.
* Pro-active Self healing for Erasure Coding
Gluster 3.7 adds pro-active self healing support for erasure coded
volumes.
* Exports and Netgroups Authentication for NFS
This feature adds Linux-style exports & netgroups authentication
to the native NFS server. This enables administrators to restrict
access to specific clients & netgroups for volume/sub-directory
NFSv3 exports.
* GlusterFind
GlusterFind is a new tool that provides a mechanism to monitor data
events within a volume. Detection of events like modified files is
made easier without having to traverse the entire volume.
* Rebalance Performance Improvements
Rebalance and remove brick operations in Gluster get a performance
boost by speeding up identification of files needing movement and
a multi-threaded mechanism to move all such files.
* NFSv4 and pNFS support
Gluster 3.7 supports export of volumes through NFSv4, NFSv4.1 and
pNFS. This support is enabled via NFS Ganesha. Infrastructure changes
done in Gluster 3.7 to support this feature include:
- Addition of upcall infrastructure for cache invalidation.
- Support for lease locks and delegations.
- Support for enabling Ganesha through Gluster CLI.
- Corosync and pacemaker based implementation providing resource
monitoring and failover to accomplish NFS HA.
pNFS support for Gluster volumes and NFSv4 delegations are in beta
for this release. Infrastructure changes to support Lease locks and
NFSv4 delegations are targeted for a 3.7.x minor release.
* Snapshot Scheduling
With this enhancement, administrators can schedule volume snapshots.
* Snapshot Cloning
Volume snapshots can now be cloned to create a new writeable volume.
* Sharding [Experimental]
Sharding addresses the problem of fragmentation of space within a
volume. This feature adds support for files that are larger than
the size of an individual brick. Sharding works by chunking files
to blobs of a configurabe size.
Sharding is an experimental feature for this release. It is expected
to be fully supported in a 3.7.x minor release.
* RCU in glusterd
Thread synchronization and critical section access has been improved
by introducing userspace RCU in glusterd
* Arbiter Volumes
Arbiter volumes are 3 way replicated volumes where the 3rd brick
of the replica is automatically configured as an arbiter. The 3rd
brick contains only metadata which provides network partition
tolerance and prevents split-brains from happening.
Update to GlusterFS 3.7.1
* Better split-brain resolution
split-brain resolutions can now be also driven by users without
administrative intervention.
* Geo-replication improvements
There have been several improvements in geo-replication for stability
and performance.
* Minor Improvements
- Message ID based logging has been added for several translators.
- Quorum support for reads.
- Snapshot names contain timestamps by default.Subsequent access
to the snapshots should be done by the name listed in gluster
snapshot list
- Support for gluster volume get <volname> added.
- libgfapi has added handle based functions to get/set POSIX ACLs
based on common libacl structures.
Upstream changes:
0.068 2015-03-23 20:42:56-04:00 America/New_York
[META]
- Jumping to 0.068 to get to an even-version for a stable release
[DOCUMENTED]
- Noted that 0.66 changed the 'filehandle' method
0.066 2015-03-20 23:59:08-04:00 America/New_York (TRIAL RELEASE)
[ADDED]
- Added exclusive locking option to filehandle opens; spew now
exclusively locks tempfile used for atomic writes
0.065 2015-03-06 05:59:56-05:00 America/New_York
[ADDED]
- Added 'assert' method
- Added 'visit' method
- Added support for a negative count for 'lines' to get the
last lines of a file
[FIXED]
- Fixed tilde expansion if path has spaces
- Make realpath non-fatal if the parent path exists and only the final
path component does not. (Was fatal on Windows and some Unixes.)
- Removed rendundant locking on tempfile use for spewing
- Work around File::Temp bugs on older ActiveState Windows Perls
https://bugs.activestate.com/show_bug.cgi?id=104767
[DOCUMENTED]
- Fixed SYNOPSIS example
0.064 2015-03-05 03:58:42-05:00 America/New_York (TRIAL RELEASE)
0.063 2015-03-04 16:00:17-05:00 America/New_York (TRIAL RELEASE)
0.062 2015-03-04 13:59:31-05:00 America/New_York (TRIAL RELEASE)
---------------------
0.011 2014-08-30 03:17:07Z
- documentation amendments (thanks, Demian Riccardi!)
- add missing prereq declaration
0.010 2014-02-16 22:02:29Z
- fixed if eval problem in "use if" in 0.009
0.009 2014-02-16 21:57:00Z
- only clean namespaces when MooseX::Types is new enough that our declared
types are installed as methods
0.008 2014-02-16 21:20:46Z
- new Paths, AbsPaths types, for coercable ArrayRefs
0.007 2013-12-22 00:44:49Z
- add missing authority data to module and metadata
-------------------
0.18 2014-12-17
- RIBASUSHI++ reminded me that to be a usable directory in @INC we need
to check -d && -r && -x.
0.17 2014-12-17
- Fixed RT#96433: ignore directories in @INC which don't exist.
Apologies to ETHER++ for over-thinking this one,
and taking so long to fix it.
0.16 2014-12-13
- Added TODO.md with an initial todo list for the module
0.15 2014-10-14
- Doing a foreach $dir (@INC) and then resolving symblinks on $dir
was changing the entries in @INC. HAARG++ for pull request with fix.
- Changed author email address to be my CPAN email address.
0.14 2014-08-16
- Added Travis config, using cpanfile and cpanm to ensure all dependencies
are installed before running tests with prove.
Thanks to DAGOLDEN.
- Improved the first paragraph of DESCRIPTION, so search results give
a better summary of the module.
---------------------
2013-07-01 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.9.3
2013-06-20 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: fix multiple close of device fd. Reported by Dan
Greenfield
2013-03-19 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: fix thread cancel race. Exiting a worker my race with
cancelling that same worker. This caused a segmenation
fault. Reported and tested by Anatol Pomozov
2013-02-04 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: fix crash in unlock_path(). Patch by Ratna Manoj
* libfuse: fix the 'remember' option. The lru list was not
initialized for the "/" path. This resulted in remove_node_lru()
crashing on LOOKUP-DOTDOT. Patch by Madan Valluri
* libfuse: configure: detect new util-linux
* libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER.
Patch by Anatol Pomozov
* libfuse: rename ./configure.in to ./configure.ac. Patch by
Anatol Pomozov
2012-10-01 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.9.2
2012-10-01 Miklos Szeredi <miklos@szeredi.hu>
* Fix deadlock in libfuse. Running "svn update" on a fuse
filesystem could deadlock because of a bug in the way the paths
are locked. Reported by Kazuaki Anami
2012-08-23 Miklos Szeredi <miklos@szeredi.hu>
* Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee
2012-08-14 Miklos Szeredi <miklos@szeredi.hu>
* Not unhashing the name in forget (commit on 2011-12-09) broke
the forget logic in a subtle way, resulting in "fuse internal
error: node NNN not found" and causing the filesystem daemon to
abort. Fix by incrementing the node refcount if nlookup goes from
zero to one. Reported by Kyle Lippincott
2012-08-13 Miklos Szeredi <miklos@szeredi.hu>
* Fix linking against GNU libiconv. Patch by Natanael Copa
2012-07-19 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.9.1
2012-07-19 Miklos Szeredi <miklos@szeredi.hu>
* Fix crash caused by freeing a stack address. Reported by Itay
Perl
2012-07-04 Miklos Szeredi <miklos@szeredi.hu>
* Fix install of mount.fuse from out-of-tree build. Patch by
Olivier Blin
* Fix build with automake >= 1.12.1. Patch by Olivier Blin
2012-04-24 Miklos Szeredi <miklos@szeredi.hu>
* Add fallocate operation. Only works on linux kernels 3.5 or
later. Patch by Anatol Pomozov
2012-05-16 Miklos Szeredi <miklos@szeredi.hu>
* Linking to a library that uses threads requires the application
to be linked with -pthreads otherwise some pthread functions will
be linked to stubs in glibc. So move -pthread from Libs.private
to Libs in fuse.pc. Reported by Werner Fink
* Fix the compile command in the examples. Reported by Luciano
Dalle Ore
2012-04-20 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.9.0
2012-04-20 Miklos Szeredi <miklos@szeredi.hu>
* Add missing fuse_fs_flock to fuse_versionscript
2012-04-10 Miklos Szeredi <miklos@szeredi.hu>
* Check protocol version before sending notifications and return
-ENOSYS if a particular notification is not supported.
* Add 'flag_utime_omit_ok' flag to fuse_operations. If the
filesystem sets this flag then ->utimens() will receive UTIME_OMIT
and UTIME_NOW values as specified in utimensat(2).
2012-01-27 Miklos Szeredi <miklos@szeredi.hu>
* Interpret octal escape codes in options. Requested by Jan
Engelhardt
2012-01-26 Miklos Szeredi <miklos@szeredi.hu>
* Add man pages for fusermount, mount.fuse and ulockmgr_server.
Lifted from the Debian package. The man pages were written by
Daniel Baumann and Bastien Roucaries
2012-01-13 Miklos Szeredi <miklos@szeredi.hu>
* Disable symbol versions on MacOSX. Patch by Anatol Pomozov
2012-01-02 Miklos Szeredi <miklos@szeredi.hu>
* Remove unnecessary mutex unlock at the end of multithreaded
event loop.
2011-12-09 Miklos Szeredi <miklos@szeredi.hu>
* Fix hang in wait_on_path(). Reported by Ville Silventoinen
* Don't unhash name in FORGET. This resulted in ENOENT being
returned for unlinked but still open files if the kernel sent a
FORGET request for the parent directory.
* Free request in fuse_reply_data().
2011-12-08 Miklos Szeredi <miklos@szeredi.hu>
* Fix build if FUSE_NODE_SLAB is not defined. Patch by Emmanuel
Dreyfus
* Check for availability of utimensat() function. Patch by
Emmanuel Dreyfus
2011-12-07 Miklos Szeredi <miklos@szeredi.hu>
* Add fuse_lowlevel_notify_delete() which tells the kernel that a
file or directory is deleted. Patch by John Muir
2011-12-06 Miklos Szeredi <miklos@szeredi.hu>
* Update retrieve_reply() method
2011-12-05 Miklos Szeredi <miklos@szeredi.hu>
* Low level API: lock argument of fuse_reply_lock should have a
'const' qualifier. Reported by Shachar Sharon
* Add support for ioctl on directories. Reported by Antonio SJ
Musumeci
2011-10-13 Miklos Szeredi <miklos@szeredi.hu>
* Reply to request with ENOMEM in case of failure to allocate
request structure. Otherwise the task issuing the request will
just freeze up until the filesystem daemon is killed. Reported by
Stephan Kulow
2011-09-23 Miklos Szeredi <miklos@szeredi.hu>
* Replace daemon() function with fork(). Patch by Anatol Pomozov
2011-08-26 Miklos Szeredi <miklos@szeredi.hu>
* If configured with --disable-mtab then don't call mount(8) from
libfuse to update the mtab. Reported by: James Sierp
2011-08-24 Miklos Szeredi <miklos@szeredi.hu>
* Use LRU list for cleaning up the cache if the "remember=T"
option was given. Patch by therealneworld@gmail.com
2011-07-06 Miklos Szeredi <miklos@szeredi.hu>
* Add ->flock() operation to low and high level interfaces. This
fixes problems with emulating flock() with POSIX locking.
Reported by Sebastian Pipping. As with lock/setlk/getlk most
filesystems don't need to implement this, as the kernel takes care
of file locking. The only reason to implement locking operations
is for network filesystems which want file locking to work between
clients.
2011-07-02 Sebastian Pipping <sebastian@pipping.org>
* Make xmp_utimens of examples "fusexmp" and "fusexmp_fh"
not follow symlinks as other layers do that already.
2011-06-02 Miklos Szeredi <miklos@szeredi.hu>
* Add "remember" option. This works similar to "noforget" except
that eventually the node will be allowed to expire from the cache.
Patch by therealneworld@gmail.com
2011-05-27 Miklos Szeredi <miklos@szeredi.hu>
* Check if splice/vmsplice are supported
2011-05-26 Miklos Szeredi <miklos@szeredi.hu>
* Remove -lrt -ldl from fuse.pc for dynamic linking since
libfuse.so is already linked with these libraries. Reported by:
Nikolaus Rath
2011-05-20 Miklos Szeredi <miklos@szeredi.hu>
* Cleaner build output. Patch by Reuben Hawkins
2011-05-19 Miklos Szeredi <miklos@szeredi.hu>
* Disable splice by default, add "splice_read", "splice_write" and
"splice_move" options. Keep the "no_splice_*" variants, which can
disable splice even if the filesystem explicitly enables it.
2011-04-15 Max Krasnyansky <maxk@kernel.org>
* Added support for "auto_unmount" option which unmounts the
filesystem automatically on process exit (or crash).
2011-03-30 Miklos Szeredi <miklos@szeredi.hu>
* Patches by Laszlo Papp fixing various issues found by the
Coverity checker
2011-03-11 Miklos Szeredi <miklos@szeredi.hu>
* In case of failure to add to /etc/mtab don't umount. Reported
by Marc Deslauriers
2011-02-02 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: In fuse_session_loop_mt() don't pause when exiting the
worker threads. The pause() was added in 2.2.1 to prevent
segfault on pthread_cancel() on an exited, detached thread. Now
worker threads are not detached and pthread_cancel() should work
fine even after the thread exited. Reported by Boris Protopopov
2011-01-31 Miklos Szeredi <miklos@szeredi.hu>
* fusermount: chdir to / before performing mount/umount
* fusermount: only allow mount and umount if util-linux supports
--no-canonicalize
2010-12-16 Miklos Szeredi <miklos@szeredi.hu>
* Highlevel lib: allow hash tables to shrink
* Highlevel lib: add slab allocation for node cache. This will
allow the memory used by the filesystem to grow and shrink
depending on how many inodes are currently cached.
2010-12-13 Miklos Szeredi <miklos@szeredi.hu>
* Highlevel lib: use dynamically resized hash table for looking up
by name and node ID.
2010-12-07 Miklos Szeredi <miklos@szeredi.hu>
* Allow batching of forget requests. This allows forget requests
to be processed faster and doesn't require a modification to fuse
filesystems. Reported by Terje Malmedal
* Add ->forget_multi() operation to the lowlevel API. The
filesystem may implement this to process multiple forget requests
in one call
* Fix the ambiguity of ioctl ABI on the kernel/userspace boundary
for 32bit vs. 64bit userspace
2010-11-10 Miklos Szeredi <miklos@szeredi.hu>
* Add new write_buf() method to the highlevel API. Similarly to
the lowlevel write_buf() method, this allows implementing zero
copy writes.
* Add a new read_buf() method to the highlevel API. This allows
returning a generic buffer from the read method, which in turn
allows zero copy reads.
* In fusexmp_fh implement the ->read_buf() and ->write_buf()
methods. Leave the ->read() and ->write() implementations for
reference, even though they are not necessary.
2010-11-08 Miklos Szeredi <miklos@szeredi.hu>
* Fix check for read-only fs in mtab update
* Open /dev/null for write instead of read for redirecting stdout
and stderr
* If umount(8) supports --fake and --no-canonicalize (util-linux-ng
version 2.18 or later), and umount(2) supports the
UMOUNT_NOFOLLOW flag (linux kernel version 2.6.35 or later) then,
"fusermount -u" will call the umount(2) system call and use
"umount --fake ..." to update /etc/mtab
* Added --disable-legacy-umount option to configure. This
disables the runtime checking of umount(8) version. When built
with this option then "fusermount -u" will fail if umount(8)
doesn't support the --fake and --no-canonicalize options.
* Fix fuse_buf_copy() if already at the end of the buffers
* Add new ->write_buf() method to low level interface. This
allows passig a generic buffer, either containing a memory buffer
or a file descriptor. This allows implementing zero copy writes.
* Add fuse_session_receive_buf() and fuse_session_process_buf()
which may be used in event loop implementations to replace
fuse_chan_recv() and fuse_session_process() respectively.
* Remove unnecessary restoring of current working directory in
"fusermount -u"
* Add ctx->pid to debug output
* Fix st_nlink value in high level lib if file is unlinked but
still open
* libfuse: add store request. Request data to be stored in the
kernel buffers for a given inode.
* libfuse: add retrieve request. Retrieve data stored in the
kernel buffers for a given inode.
2010-10-14 Miklos Szeredi <miklos@szeredi.hu>
* Use LTLIBICONV when linking libfuse. This fixes building against
uclibc + libiconv. Patch by Natanael Copa
2010-10-05 Miklos Szeredi <miklos@szeredi.hu>
* Add missing argument check in ulockmgr.c to prevent calling
ulockmgr_server with illegal arguments. This would cause an ever
growing list of ulockmgr_server processes with an endless list of
open files which finally exceeds the open file handle limit.
Patch by Markus Ammer
2010-09-28 Miklos Szeredi <miklos@szeredi.hu>
* Fix ambiguous symbol version for fuse_chan_new.
fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
FUSE_2.6. Remove the FUSE_2.4, which is invalid.
2010-09-28 Miklos Szeredi <miklos@szeredi.hu>
* Fix option escaping for fusermount. If the "fsname=" option
contained a comma then the option parser in fusermount was
confused (Novell bugzilla #641480). Fix by escaping commas when
passing them over to fusermount. Reported by Jan Engelhardt
2010-08-27 Miklos Szeredi <miklos@szeredi.hu>
* Add NetBSD support. Patch from Emmanuel Dreyfus
2010-07-12 Miklos Szeredi <miklos@szeredi.hu>
* libfuse: add buffer interface. Add a generic buffer interface
for use with I/O. Buffer vectors are supplied and each buffer in
the vector may be a memory pointer or a file descriptor.
* The fuse_reply_fd() interface is converted to using buffers.
2010-06-23 Miklos Szeredi <miklos@szeredi.hu>
* Make the number of max background requests and congestion
threshold tunable. New options are "max_background" and
"congestion_threshold". Only effective on linux kernel versions
2.6.32 or greater. Patch by Csaba Henk
2010-06-17 Miklos Szeredi <miklos@szeredi.hu>
* Add fuse_reply_fd() reply function to the low level interface.
On linux version 2.6.35 or greater this will use splice() to move
data directly from a file descriptor to the fuse device without
needing to go though a userspace buffer. With the
FUSE_REPLY_FD_MOVE flag the kernel will attempt to move the data
directly into the filesystem's cache. On earlier kernels it will
fall back to an intermediate buffer. The options
"no_splice_write" and "no_splice_move" can be used to disable
splicing and moving respectively.
2010-06-15 Miklos Szeredi <miklos@szeredi.hu>
* Fix out-of-source build. Patch by Jörg Faschingbauer
* Add a "nopath" option and flag, indicating that path argument
need not be calculated for the following operations: read, write,
flush, release, fsync, readdir, releasedir, fsyncdir, ftruncate,
fgetattr, lock, ioctl and poll.
2010-05-10 Miklos Szeredi <miklos@szeredi.hu>
* Remove "chmod root" from install of fusermount. Reported by
Lucas C. Villa Real
Important changes in 0.91 (2014-05-14)
This is mainly bug fixes.
Changes in this release:
* Fixed a segfault caused by an overflow reading the list of available
decoders.
* A number of problems with the previous distribution tar are now fixed.
* The output of `mp3fs --version` has been made more complete.
Important changes in 0.9 (2014-04-06)
This is a major new release, and brings us very close to a 1.0 release!
Changes in this release:
* All transcoding code has been completely rewritten. Encoding and
decoding have been abstracted out into base classes defining interfaces
that can be implemented by different codec classes, with just a FLAC
decoder and MP3 encoder at the moment.
* The build system has been modified as well to support this usage.
* A number of small bugs or code inefficiencies have been fixed.
Important changes in 0.32 (2012-06-18)
This release has a lot of bug fixes and some code cleanup.
Changes in this release:
* The file size calculation should always be correct.
* A crash affecting programs like scp that might try to access past the
end of the file has been fixed.
* Too many other little fixes were made to list here. See the ChangeLog
for full details.
Important changes in 0.31 (2011-12-04)
This is a minor update, with bug fixes and a new feature.
Changes in this release:
* The ReplayGain support added earlier now can be configured through the
command line.
* Filename translation (from .flac to .mp3) is now fixed on filesystems
such as XFS that do not populate dirent.d_type.
* A couple other minor bugs fixes and changes were made.
Important changes in 0.30 (2010-12-01)
This is a major new release, and brings mp3fs much closer to an eventual
1.0 release.
Changes in this release:
* Support for additional metadata tags has been added. (From Gregor
Zurowski)
* Documentation improvements: the help message is more useful, and a man
page has been added.
* Choosing bitrate is now done with a command-line or mount option, rather
than the old comma syntax.
* A new option to select LAME encoding quality is now available. (From
Gregor Zurowski)
* Debug output can be enabled at runtime.
* Old external libraries included in distribution (StringIO, talloc) have
been removed and replaced.
* Numerous bug fixes have been made. (Some from Gregor Zurowski)
New features:
- Volume Snapshots
Distributed lvm thin-pool based snapshots for backing up volumes
in a Gluster Trusted Storage Pool. Apart from providing cluster
wide co-ordination to trigger a consistent snapshot, several
improvements have been performed through the GlusterFS stack to
make translators more crash consistent. Snapshotting of volumes is
tightly coupled with lvm today but one could also enhance the same
framework to integrate with a backend storage technology like btrfs
that can perform snapshots.
- Erasure Coding
Xavier Hernandez from Datalab added support to perform erasure
coding of data in a GlusterFS volume across nodes in a Trusted
Storage Pool. Erasure Coding requires fewer nodes to provide better
redundancy than a n-way replicated volume and can help in reducing
the overall deployment cost. We look forward to build on this
foundation and deliver more enhancememnts in upcoming releases.
- Better SSL support
Multiple improvements to SSL support in GlusterFS. The GlusterFS
driver in OpenStack Manila that provides certificate based access
to tenants relies on these improvements.
- Meta translator
This translator provides a /proc like view for examining internal
state of translators on the client stack of a GlusterFS volume and
certainly looks like an interface that I would be heavily consuming
for introspection of GlusterFS.
- Automatic File Replication (AFR) v2
A significant re-factor of the synchronous replication translator,
provides granular entry self-healing and reduced resource consumption
with entry self-heals.
- NetBSD, OSX and FreeBSD ports
Lot of fixes on the portability front. The NetBSD port passes most
regression tests as of 3.6.0. At this point, none of these ports
are ready to be deployed in production. However, with dedicated
maintainers for each of these ports, we expect to reach production
readiness on these platforms in a future release.
Complete releases notes are available at
https://github.com/gluster/glusterfs/blob/release-3.6/doc/release-notes/3.6.0.md
Upstream changes:
0.060 2014-11-04 17:33:39-05:00 America/New_York
[ADDED]
- Added 'truncate' option to append for in-place replacement of
file contents.
0.059 2014-10-14 12:45:46-04:00 America/New_York
[FIXED]
- Fixed precedence bug in the check for Unicode::UTF8
0.058 2014-09-23 11:00:24-04:00 America/New_York
[ADDED]
- Added a 'sibling' method as a more efficient form of
calling $path->parent->child(...).
[DOCUMENTED]
- Every method annotated with the version number of the
last API change.
0.057 2014-09-19 11:23:05-04:00 America/New_York
[FIXED]
- On AIX, reads that default to locking would fail without
write permissions, because locking needs write permissions.
The fix is only to lock reads if write permissions exist;
otherwise locking is skipped.
0.056 2014-08-07 15:08:41-04:00 America/New_York
[*** DEPRECATIONS ***]
- The 'dirname' method is deprecated due to exposing File::Spec
inconsistencies
[ADDED]
- The 'digest' method now takes a 'chunk_size' option to avoid
slurping files entirely into memory.
[FIXED]
- Fixed problem throwing errors from 'remove'
0.055 2014-06-30 10:29:28-04:00 America/New_York
[FIXED]
- tempfile/tempdir won't warn if used as functions without arguments
0.054 2014-05-04 13:56:11-04:00 America/New_York
[ADDED]
- The 'basename' method now takes a list of suffixes to remove before
returning the name
- FREEZE/THAW/TO_JSON serialization helpers
[CHANGED]
- When constructing a Path::Tiny object from another, the original
is returned unless it's a temp dir/file. This significantly
speeds up calling path($path) if $path is already a Path::Tiny
object. (Thanks to Michael Schwern for prompting such benchmarking.)
[FIXED]
- Constructing any path -- e.g. with child() -- with undef or
zero-length parts throws an error instead of constructing an
invalid path
0.053 2014-03-24 09:25:51-04:00 America/New_York (TRIAL RELEASE)
[INCOMPATIBLE CHANGES]
- The 'is_file' method now does -e && ! -d and not -f because -f
is often more restrictive than people intend or expect.
[ADDED]
- Added 'chmod' method with symbolic chmod support ("a=r,u+rx")
0.052 2014-01-14 15:58:03-05:00 America/New_York
[FIXED]
- Backslash-to-slash conversion now only happens on Windows
(since backslash is legal on Unix, we must allow it)
OpenAFS 1.6.9
All server platforms
* Fix for OPENAFS-SA-2014-002
OpenAFS 1.6.8
All platforms
* Documentation improvements (10751 10875 10931 10897 10883 10954 10955)
* Improved diagnostics and error messages (10756 10814 10949)
* Fixed a bug in RX that could make errors during packet reception go
unnoticed. (10733)
* Fixed a bug that made "vos size -dump" display the wrong size for
large volumes. (10933) (RT #131819)
All server platforms
* Change the default fileserver sync behavior from "delayed" to "onclose".
This means that explicit syncing only happens when a volume is detached.
(10809)
* Added the -offline-timeout and -offline-shutdown-timeout options to the
fileserver, to implement interrupting clients accessing volumes we are
trying to take offline. (6266 10799)
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
libntfs: added use of hd library to get the legacy BIOS geometry
libntfs: switched to /proc/mounts for checking existing mounts
libntfs: fixed usa checking by ntfsck on 4K sector disks
libntfs: fixed processing compressed data beyond file size (Windows 8 compliance)
libntfs: fixed expanding a resident attribute without inserting holes
libntfs: allow DACLs to not have any ACE
libntfs: ignore unmapped regions when checking whether sparse
libntfs: upgraded the Win32 interface for use with ntfsprogs
ntfsresize: enabled relocating the MFT when shrinking a volume
ntfsresize: fixed trying to update the MFT and Bitmap on a test run
ntfsresize: fixed updating all the MFT runs in a relocated MFT
ntfsresize: set the backup boot sector when the size is reliable
ntfsresize: reserved a single sector for the backup boot sector
ntfsundelete: output the modification time when scanning files
ntfsundelete: ported to Windows
ntfsclone: fixed wiping fragmented metadata when creating a metadata image
ntfsclone: allowed cloning a file system despite allocation errors
ntfsclone: fixed bad copying of the backup boot sector
ntfsclone: ported to Windows
ntfsdecrypt: made compatible with libgrypt-1.6
- Looks like in some rare circumstances, Cwd::abs_path() can croak,
so now we wrap that in eval { } and deal accordingly.
0.12 2014-02-19
- We now fully resolve symlinks in @INC paths. The previous 'fix'
for Debian broke the tests on FreeBSD.
Thanks to G茅raud Continsouzas, and Daniel Lintott for help testing.
0.11_03 2014-02-18
- Another place where we need to worry about getting undef.
0.11_02 2014-02-18
- Wasn't handling the case where abs_path() returns undef,
which it does if a symlink "goes nowhere".
0.11_01 2014-02-18
- The testsuite fix in 0.11 caused a breakage on FreeBSD,
where a directory path contains a symlink that wasn't
the final directory. So now module_path() fully resolves
all symlinks in the path, using Cwd::abs_path().
0.11 2014-02-17
- Testsuite now uses Cwd::abs_path() on paths from %INC,
to cope with synlinks in @INC directories.
This was causing test failures on Debian(-based) systems.
Thanks to Daniel Lintott and Erez Schatz for reporting
and testing proposed fix.
0.10_01 2014-02-16
- Developer release with the change that made it into
0.11, above.
0.10 2014-02-04
- mpath can display paths for multiple modules (Ahmad Syaltut)
- specified min perl version 5.6.0
0.09_01 2013-08-21
- If a directory in @INC is a symlink, return the linked-to directory
in the path. Problem report and patch from Sharl Morlaroll
https://github.com/neilbowers/Module-Path/issues/4
Remove unused options bos-new-config, fast-restart, & largefile.
Remove patches fixed upstream.
OpenAFS 1.6.6
All platforms
* As of this release, OpenAFS no longer ships uncompressed source tarballs.
Tarballs are still shipped with both compression formats, gzip and bzip2.
(10131)
* Documentation improvements (10136 10314 10601)
* Improved diagnostics and error messages (9412 10085 10274)
* Avoid redefining "assert" in our public header files, which could
cause failures when building some applications using them. (10096)
* Fixes for parallel builds (10005 10309 10337)
* Added a -s switch to afscp (not installed by default) to help simulate
a slow client. (9416 9417)
* Added a -probe switch to vlclient test program (not installed by default)
to ping all vlservers in a cell in parallel. (9570)
All server platforms
* The fileserver now ignores any vice partitions with a NeverAttach flag
file present in the root directory. (RT #130561) (9470 9471)
* Restrict forcing CPS ("Current Protection Subdomain") recalculation in
the fileserver to administrators. Also fixed a bug that could cause this
operation to be incomplete. (9485 9487)
* Allow non-DAFS fileservers to attach unusable volumes, restoring pre-1.6
behaviour. (RT #131505) (9499)
* Restored the pre-1.6 behaviour when running vos examine for a volume
currently in a transaction, showing the volume as busy again rather than
offline. (9685 9915 9916)
* Reduced the minimum time a bos salvage takes from 5 seconds to 1. (9476)
* Fixed buserver to not segfault when started with the -servers option.
(RT #131706) (10166)
* Salvager fixes, addressing a wide variety of possible problems from
unnecessary salvaging to aborts (9282 9283 9457 9458 9459 9461 9462 9480
9481 10165 10167)
* Fixed a bug that could cause saved state information to be discarded
when restarting a large or busy fileserver, which negatively impacted
performance. (9683)
* Fixed a bug that could have caused undefined behaviour in the vlserver
in rare cases when a fileserver registered its addresses in the VLDB.
(9429)
* Added the -preserve-vol-stats switch to volserver, allowing it to keep
the access statistics across volume restore and reclone operations
instead of resetting them. (9477)
* Inserted an exponential delay between retries when bosserver attempts to
restart a server process. (9571 10199)
* Improved vldb_check (not installed by default) to cope with broken
vlentry names and volids, and provide more output to aid debugging.
(10268)
* Releasing a volume after adding a new RO site no longer touches any of
the existing RO sites, if the RW data hasn't changed since the last
release. (10174)
* Make the copyDate field for RO clones have the same meaning as for
remote RO volumes. Previously, the copyDate field for clones was updated
every time we released. (9451)
* Fixed potentially undefined behaviour in ptserver when too many pts
ids are allocated. (10124)
* Note that the server side NAT pings feature present in the prereleases
was removed before the final release, since no positive feedback
was provided during prerelease testing. (9420 10135)
Linux servers
* Start bosserver with -nofork in the systemd unit file, to allow systemd
to track its state (10093)
All client platforms
* No longer track file locks on read-only volumes. Write locks can't
succeed, read locks always will. Avoids log messages about this kind
of lock. (8910)
* Added the "fs flushall" subcommand, which makes the client discard all
cached data. This was previously available on Windows only. (9065 9388
9389 9390)
* Fixed a bug that could make the client incorrectly believe its cache
is up to date. This change could negatively impact AFS <-> DFS
translators, should those still be running anywhere. (8898)
* Several changes to avoid panicing in certain error conditions.
(9131 9287 10354 10355 10356 10357) (partially addressing RT #131747)
* Added the -rxmaxfrags switch to afsd, allowing to limit the number
of UDP fragments sent or received per RX packet. (9430)
* Build fixes for aklog on several platforms (RT #131716) (9917 10107 10275)
* Require that the AFS mountpoint specified in the cacheinfo file is
an absolute path. Relative paths result in a client that basically
works but is not fully functional. (10253)
* Fixed a bug that could cause one of the afsd threads to enter an infinite
loop (10431 .. 10436)
Linux clients
* Support Linux kernels up to 3.13 (10241)
* Fixed a bug that made readv/writev calls in AFS space fail with Linux
kernels where generic_file_aio_read exists but those operations have
not been switched to using aio_read/aio_write. This was a regression
introduced with release 1.6.3 and affected at least RHEL 5.9 kernels.
(10248)
* Fixed a similar bug making core dumps fail in AFS space, affecting
a much wider range of kernels including the most recent ones.
(RT #131729) (10254)
* Enhanced the keyring code to make PAGs work correctly on kernels with a
distribution specific change to the Linux keyring code. This affected at
least SLES 11 SP3 kernels. (10252)
* Fixed a bug that could make failures during PAG instantiation go
unnoticed. (10255)
* Fixed a bug that made compilation fail for Linux kernels without
keyring support. This affected at least the SLE 10 SDK and an
OEM version of SLES 11 SP1. (10325)
* Fixed build for kernels with user namespace support enabled. Likely
to be required for Ubuntu 14.04 and eventually other distributions.
(10456 10457 10458 10518 10472)
* Support RHEL 6.5 kernels, and possibly others with changes backported
from recent mainline kernels that touch getname/putname, by no longer
using those functions. Previously, the client could cause a kernel
panic when syscall auditing was enabled. (10578)
* Make tmpfs usable as the cache filesystem again. This had been broken
since kernel 3.1 (9950 10193)
* When starting the client fails, clean up the backing device information
created in sysfs, to avoid error messages during a subsequent start
and possible system instability later on (10454)
* Update Red Hat packaging to support Fedora >= 20, RHEL >= 7 and
ELrepo kernels (10597 10619 10622 10703 10704)
OS X Clients
* Support OS X 10.9 "Mavericks" (10519 10541 10542 10543 10548 10549)
AIX clients
* Fixed a bug that caused the 1.6 AIX client to never receive any RX
packets in the kernel. (RT #131725)
FUSE client
* Support Solaris 11 (9454 9455)
* Allow other users to access filesystems mounted by root. (9452)
FreeBSD
* Build tvolser and dvolser on this platform (10122)
* Several fixes to catch up with newer releases (10374 .. 10381)
NetBSD
* Build tsalvaged, tvolser and dvolser on this platform (10121)
* Fixed build on NetBSD 5 and newer. (10138)
NetBSD's FUSE implementation is part of the base system, and
filesytems/fuse is the user-space implementation for systems with the
/dev/fuse interface. It might be possible to use filesytems/fuse and
perfused, but that's much harder than librefuse.
Now orifs runs on NetBSD 6.
Ori is a distributed file system built for offline operation and
empowers the user with control over synchronization operations and
conflict resolution. It provides history through light weight
snapshots and allows users to verify the history has not been
tampered with. Through the use of replication, instances can be
resilient and recover damaged data from other nodes.
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
Upstream changes:
0.051 2013-12-20 07:34:14 America/New_York
[FIXED]
- Fixed file order bug in the new test file
0.050 2013-12-20 07:27:20 America/New_York
[FIXED]
- Recursive iteration won't throw an exception if a directory is
removed or unreadable during iteration.
0.049 2013-12-12 00:48:01 America/New_York
[FIXED]
- Generates filename for atomic writes independent of thread-ID.
Fixes crashing bug on Win32 when fork() is called.
0.048 2013-12-11 21:56:23 America/New_York
[ADDED]
- Added 'subsumes' method
[CHANGED]
- The 'chomp' option for 'lines' will remove any end-of-line sequences
fully instead of just chomping the last character
- The 'flock' package will no longer indexed by PAUSE
[FIXED]
- Hides warnings and fixes possible fatal errors from pure-perl Cwd,
particularly on MSWin32
Upstream changes:
0.047 2013-11-26 15:11:13 America/New_York
[FIXED]
- Previous lock testing fixes broke on Windows (sigh); now fixed,
I hope.
0.046 2013-11-22 17:07:24 America/New_York
[FIXED]
- Revised locking tests for portability again: locks are now tested
from a separate process
0.045 2013-11-22 15:28:50 America/New_York
[FIXED]
- Fixed locking test on AIX
Upstream changes:
0.044 2013-10-17 17:00:41 America/New_York
[FIXED]
- Fixed child path construction against the root path.
- Fixed path construction when a relative volume is provided as the
first argument on Windows; e.g. path("C:", "lib") must be like
path("C:lib"), not path("C:/lib").
- On AIX, shared locking is replaced by exclusive locking on a R/W
filehandle, as locking read handles is not supported
0.043 2013-10-14 06:24:06 America/New_York
[CHANGED]
- Calling 'absolute' on Windows will add the volume if it is missing
(E.g. "/foo" will become "C:/foo"). This matches the behavior
of File::Spec->rel2abs.
[FIXED]
- Fixed t/00-report-prereqs.t for use with older versions of
CPAN::Meta::Requirements
0.042 2013-10-13 11:02:02 America/New_York
[FIXED]
- When 'realpath' can't be resolved (because intermediate directories
don't exist), the exception now explains the error clearly instead of
complaining about path() needing a defined, positive-length argument.
- On Windows, fixed resolution of relative paths with a volume.
E.g. "C:foo" is now correctly translated into getdcwd on "C:"
plus "foo".
0.041 2013-10-11 08:56:31 America/New_York
[FIXES]
- Removes duplicate test dependency on File::Spec that triggers
a CPAN.pm bug
0.040 2013-10-08 22:01:50 America/New_York
[FIXES]
- Fixed broken locking test on *bsd
- When using 'filehandle' to request a locked handle that truncates an
existing file and has a binmode starting with ":unix", this fixes a
bug where pseudo-layers weren't being cleared properly.
0.039 2013-10-08 16:39:23 America/New_York
[ADDITIONS]
- The 'filehandle' method now offers an option to return locked handles
based on the file mode. Input-output methods now rely on this
feature internally. Truncating file modes defer truncation until
after an exclusive lock is acquired.
[FIXES]
- The 'filehandle' method now respects default encoding set by
the caller's open pragma.
0.038 2013-10-01 18:20:05 America/New_York
[ADDITIONS]
- Added 'is_rootdir' method to simplify testing if a path is
the root directory
0.037 2013-09-25 13:00:25 America/New_York
[FIXES]
- Fixed for v5.8
0.036 2013-09-25 09:34:28 America/New_York
[PREREQS]
- No longer lists 'threads' as a prerequisite. If you have a threaded
perl, you have it and if you're not, Path::Tiny doesn't care.
0.035 2013-09-24 07:21:55 America/New_York
[FIXED]
- Fixed flock warning on BSD that was broken with the autodie
removal; now also applies to all BSD flavors
0.034 2013-09-23 16:16:36 America/New_York
[INCOMPATIBLE CHANGE]
- Exceptions are now Path::Tiny::Error objects, not autodie exceptions;
this removes the last dependency on autodie, which allows us to
support Perls as far back as v5.8.1
[FIXED]
- BSD/NFS flock fix was not backwards compatible before v5.14. This
fixes it harder.
[PREREQS]
- dropped autodie
- lowered ExtUtils::MakeMaker configure_requires version to 6.17
0.033 2013-09-12 08:54:30 America/New_York
[FIXED]
- Perl on BSD may not support locking on an NFS filesystem. If this is
detected, Path::Tiny warns and continues in an unsafe mode. The
'flock' warning category may be fatalized to die instead.
[DOCUMENTED]
- Added 'iterator' example showing defaults
0.032 2013-09-06 17:52:48 America/New_York
[PREREQS]
- Removed several test dependencies. Path::Tiny now only needs
core modules, though some must be upgraded on old Perls
Changes since 1.6.2:
OpenAFS 1.6.5
commit 5f5b02a57102af1a85fb9bdaaec31b6094d0c9c4
Author: Michael Meffie <mmeffie@sinenomine.net>
Date: Wed Jul 17 23:10:42 2013 +0100
ubik: Fix encryption selection in ugen
Make sure that we encrypt when requested to by the application
Change-Id: If4c2ba2257bf060d3e9169ccdbcae54f54dfe5d7
commit 0e41558190a5190dee3037c08e8df31e61e5134e
Author: Simon Wilkinson <sxw@your-file-system.com>
Date: Tue Jul 16 19:37:00 2013 +0100
Make OpenAFS 1.6.5
Change-Id: I693297ef6e20358966930cb29116d45b9151811f
commit 9e1c24a583634e6102091388dedc47745efce78a
Author: Ben Kaduk <kaduk@mit.edu>
Date: Sat Jul 13 10:49:27 2013 +0100
Add support for deriving DES keys to klog.krb5
(cherry picked from commit e79102e7918ce5196e870a806879135743ec3abb)
Change-Id: Ia7ebfdd10dcfd6cd164b10275016147630748bac
commit 4b7553600a7659d117df0bde7b1c1dfde031deb8
Author: Andrew Deason <adeason@sinenomine.net>
Date: Wed Jul 10 12:52:28 2013 -0500
Reload rxkad.keytab on CellServDB modification
Make the reloading of rxkad.keytab keys occur in the same way that
KeyFile keys are reloaded. That is, we only try to reload them if the
CellServDB mtime has changed. This is intended to have exactly the
same reloading behavior as KeyFile reloads.
I would have triggered this from afsconf_Check, but that approach
has annoyances. (Calling ticket5_keytab functions directly from
cellconfig pulls in libkrb5 dependencies for everything that uses
cellconfig, and we'd have to trigger an afsconf_Check call by calling
some other cellconfig function.)
9102f49a3bdc67ed74e254349eb55b529472f45c
commit d2024c158e3a879305ff17cf726d3958f20677f4
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Jun 10 17:49:12 2013 -0500
Avoid calling afsconf_GetLatestKey directly
Don't call afsconf_GetLatestKey to determine whether we can print our
own local tokens, since we may have keytab 'local' keys, but no DES
keys. Just try to construct them and see if it fails, using
afsconf_PickClientSecObj or afsconf_ClientAuth{,Secure} as
appropriate.
commit d4788f6e283b79a1b974dda1e8fae213efd34930
Author: Andrew Deason <adeason@sinenomine.net>
Date: Mon Jun 10 17:15:27 2013 -0500
auth: Do not always fallback to noauth
Make afsconf_PickClientSecObj error out if we can't construct
localauth tokens (unless the caller explicitly requested rxnull
fallback). afsconf_ClientAuth{,Secure} still falls back, as always.
commit 95d57c74476c5a02ce6d9ca913dcbf88ac5c1143
Author: Ben Kaduk <kaduk@mit.edu>
Date: Tue May 14 19:37:59 2013 -0400
Clean up akimpersonate and use for server-to-server
Since a6d7cacfd, aklog has been able to print a krb5 ticket to
itself for an arbitrary client principal, allowing a user with
access to the cell's krb5 key to get tokens as an arbitrary user.
Now that it is possible to use native krb5 tickets with non-DES
enctypes for authentication, and akimpersonate is available from libauth,
use printed native krb5 tickets for server-to-server communication (as well
as the -localauth versions of the client utilities).
Remove the early call to afsconf_GetLatestKey() in
afsconf_PickClientSecObj() so that we do not end up picking an old DES
key before we try to find a better key to use.
Before doing so, refactor the akimpersonate code to be more usable
and readable, and eliminate some dead code. For example, we always printed
addressless tickets, so that code could be removed. Other code had excessive
stack usage for a library routine, which is eliminated. Use a start time
of 0 instead of 300 so that the printed ticket will always be
detected as infinite-lifetime.
In order to ensure usability on all platforms (in particular Solaris),
provide a couple more compat shims to implement routines which are not
always available from the krb5 library, in particular encode_krb5_ticket
and encode_krb5_enc_tkt_part. Thanks to Andrew Deason for implementing
these compatability routines.
UKERNEL doesn't need this stuff.
commit 15b77552b22e3ff3e7478008673775a45047f600
Author: Alexander Chernyakhovsky <achernya@mit.edu>
Date: Tue May 14 18:12:08 2013 -0400
Move akimpersonate to libauth
Give it its own source file and header, install the header at
depinstall time, and have aklog get the akimpersonate functionality
from libauth.
Keep the linux box copyright from aklog_main.c (but strip the trailing
whitespace), as that block was added with the akimpersonate code.
Remove all calls to afs_com_err() as is fitting for library code,
to let it build. Do not bother removing curly braces which are
no longer needed; a future cleanup commit will catch that.
commit 1c7fa1405940a136a992d65023cc690b1111ab3e
Author: Chaskiel Grundman <cg2v@andrew.cmu.edu>
Date: Sun Mar 17 21:58:47 2013 -0400
Derive DES/fcrypt session key from other key types
If a kerberos 5 ticket has a session key with a non-DES enctype,
use the NIST SP800-108 KDF in counter mode with HMAC_MD5 as the PRF to
construct a DES key to be used by rxkad.
To satisfy the requirements of the KDF, DES3 keys are first compressed into a
168 bit form by reversing the RFC3961 random-to-key algorithm
Change-Id: I4dc8e83a641f9892b31c109fb9025251de3dcb27
commit 33eecea7db14d06c59e1081b970d4caf0af773ca
Author: Chaskiel Grundman <cg2v@andrew.cmu.edu>
Date: Sun Feb 10 13:27:03 2013 -0500
Integrate keytab-based decryption into afsconf_BuildServerSecurityObjects
Now all servers can have it.
authcon.o grows a krb5 dependency and needs to get KRB5_CPPFLAGS.
Change-Id: I95fecb3f88c19b3d5193ea8200fa20c86ec08ad7
commit 14db1a40e5be3b7325951d002885bbf288d570c1
Author: Chaskiel Grundman <cg2v@andrew.cmu.edu>
Date: Sat Feb 9 12:42:20 2013 -0500
New optional rxkad functionality for decypting krb5 tokens
An additional, optional mechanism for decrypting krb5-format tokens
is provided that uses the krb5 api with a key from a keytab
instead of using libdes and the AFS KeyFile.
The AIX compat stub for krb5_c_decrypt is contributed by Andrew Deason.
Change-Id: I97c08122c60482b84d602d6fa6482f1d5deef142
commit 5e0cbc930508a697331bad07cc201c1e1985ff84
Author: Chaskiel Grundman <cg2v@andrew.cmu.edu>
Date: Sat Feb 9 12:01:37 2013 -0500
Add rxkad server hook function to decrypt more types of tokens
Allow tokens to be encrypted with algorithms other than DES.
The security object owner must provide an implementation
by calling rxkad_SetAltDecryptProc.
Make sure plainsiz is initialized before calling the alternate decrypt
proc.
User-Visible OpenAFS Changes
OpenAFS 1.6.4
All platforms
* Obey the jumbo/nojumbo settings for ubik servers (the DB servers)
too. In previous releases, those servers may have used jumbograms
even if they were not configured to do so. This change corrects
the actual behaviour, and will improve performance and reliability
for sites where jumbograms are problematic. It could cause a decrease
in performance for sites where jumbograms work, but those can turn
them back on manually.
* Dozens of fixes for common coding problems like use after free,
use of possibly uninitialised memory, reading or writing past the
end of arrays and potential NULL pointer derefences. Spotted by
code analysis tools or human inspection.
* Documentation improvements.
* Fixes and improvements to the diagnostic or log messages printed by
vos, the fileserver and others.
* Build fixes, making parallel builds more reliable with certain
configuration options and helping various platforms including
recent releases of IRIX, Solaris and several flavours of Linux.
* Avoid sending a small amount of data over the wire unencrypted
under certain conditions, and emit the correct error message in
this case.
All server platforms
* Avoid generating duplicate IDs for readonly and backup volumes,
which could happen under certain conditions.
* Allow the fileserver to return volume data like quota or free space,
which is available publicly elsewhere, without the additional access
check for read permissions on a volume's root directory the fileserver
performed before.
* The fileserver now emits a log message when it ran out of memory for
callbacks.
* Avoid several potential fileserver problems, including memory
corruption and segmentation faults, due to client bookkeeping.
* Avoid known cases of silent data corruption due to background syncs
on the fileserver, especially during Copy on Write.
* Make the fileserver sync behaviour runtime configurable. Up to 1.4.5,
we had synchronous syncs which were safe but really slow. Since 1.4.5,
we've had asynchronous syncs which are much faster but believed to
be the cause of rare data corruption issues, and while all known cases
of these happening are believed to be fixed in the 1.6.3 release, doubts
remain. This change allows choosing between those, and in addition allows
to turn syncs by the fileserver off altogether, thus relying on the vice
partition's backend filesystem and the operating system, or to just
execute them when a volume is detached. The default behaviour is
unchanged from releases since 1.4.5, but it's highly recommended to
consider the additional options this change provides. Future OpenAFS
releases will default to "-sync=none".
* For dbservers, avoid a situation where misinterpreting transient
network errors causes long-term issues with achieving ubik quorum.
All UNIX client platforms
* Improvements to the detection of an aklog-specific krb5 configuration
file, for the purposes of turning on "weak crypto" for aklog.
* Fixed a regression introduced in release 1.6.2 which caused the
supposedly persistent disk cache to be discarded upon client start.
(RT #131655)
Linux clients
* Support Linux kernels up to 3.10
* Fixed two bugs making it impossible to unmount a disk cache filesystem
after it has been used by the client. (RT #131613)
* Fixed a bug that could cause an oops with kernels 3.6 and later
OpenBSD
* Improved support for OpenBSD 4.9 to 5.3
OpenAFS 1.6.3
This release number had to be skipped for technical reasons.
* Improvements for Virtual Machine Image Storage
A number of improvements have been performed to let Gluster volumes provide
storage for Virtual Machine Images. Some of them include:
- qemu / libgfapi integration.
- Causal ordering in write-behind translator.
- Tunables for a gluster volume in group-virt.example.
The above results in significant improvements in performance for VM image
hosting.
* Synchronous Replication Improvements
GlusterFS 3.4 features significant improvements in performance for
the replication (AFR) translator. This is in addition to bug fixes
for volumes that used replica 3.
* Open Cluster Framework compliant Resource Agents
Resource Agents (RA) plug glusterd into Open Cluster Framework
(OCF) compliant cluster resource managers, like Pacemaker.
The glusterd RA manages the glusterd daemon like any upstart or
systemd job would, except that Pacemaker can do it in a cluster-aware
fashion.
The volume RA starts a volume and monitors individual brick?s
daemons in a cluster aware fashion, recovering bricks when their
processes fail.
* POSIX ACL support over NFSv3
setfacl and getfacl commands now can be used on a nfs mount that
exports a gluster volume to set or read posix ACLs.
* 3.3.x compatibility
The new op-version infrastructure provides compatibility with 3.3.x
release of GlusterFS. 3.3.x clients can talk to 3.4.x servers and
the vice-versa is also possible.
If a volume option that corresponds to 3.4 is enabled, then 3.3
clients cannot mount the volume.
* Packaging changes
New RPMs for libgfapi and OCF RA are present with 3.4.0.
* Experimental Features
- RDMA-connection manager (RDMA-CM)
- New Block Device translator
- Support for NUFA
As experimental features, we don?t expect them to work perfectly
for this release, but you can expect them to improve dramatically
as we make successive 3.4.x releases.
* Minor Improvements:
- The Ext4 file system change which affected readdir workloads for
Gluster volumes has been addressed.
- More options for selecting read-child with afr available now.
- Custom layouts possible with distribute translator.
- No 32-aux-gid limit
- SSL support for socket connections.
- Known issues with replica count greater than 2 addressed.
- quick-read and md-cache translators have been refactored.
- open-behind translator introduced.
- Ability to avoid glusterfs bind to reserved ports.
- statedumps are now created in /var/run/gluster instead of /tmp by default.
Upstream changes:
0.031 2013-08-27 10:03:57 America/New_York
[FIXED]
- parent() on paths with internal double dots (e.g. /foo..bar.txt) now works
correctly
0.030 2013-08-20 16:10:04 America/New_York
[FIXED]
- t/zzz-spec.t used getcwd() instead of getdcwd(), which breaks
on Windows if the build directory isn't on the 'C' drive
0.029 2013-08-19 11:52:24 America/New_York
[FIXED]
- On Win32, "C:/" no longer is changed to "C:". Also, "C:" is
converted to the absolute path of cwd on the "C:" volume. UNC paths
("//server/share/") now retain their trailing slash to correctly
distinguish volume and directory paths when split
0.028 2013-08-14 13:12:49 America/New_York
[ADDED]
- The 'children()' method now takes an optional regular expression to
filter the results
Upstream changes:
0.027 2013-07-25 19:38:44 America/New_York
[ADDED]
- Added the 'digest' method to produce a hexadecimal SHA-256
(or user-specified) digest of a file
0.026 2013-07-14 21:25:22 America/New_York
[FIXED]
- Fixed bug where lines() with a count longer than the
file would return undef for the extra lines. Now returns
only the lines in the file if the count is greater than
the number of lines.
0.025 2013-07-10 09:32:13 America/New_York
[FIXED]
- Spew to an existing symlink now atomically replaces
the resolved destination, not the symlink
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
into filesystems/p5-MooseX-Types-Path-Tiny.
This module provides Path::Tiny types for Moose. It handles two important
types of coercion:
* coercing objects with overloaded stringification
* coercing to absolute paths
It also can check to ensure that files or directories exist.
filesystems/p5-Path-Tiny.
This module attempts to provide a small, fast utility for working with
file paths. It is friendlier to use than File::Spec and provides easy
access to functions from several other core file handling modules.
It doesn't attempt to be as full-featured as IO::All or Path::Class,
nor does it try to work for anything except Unix-like and Win32 platforms.
Even then, it might break if you try something particularly obscure or
tortuous. (Quick! What does this mean: ///../../..//./././a//b/.././c/././?
And how does it differ on Win32?)
All paths are forced to have Unix-style forward slashes. Stringifying the
object gives you back the path (after some clean up).
File input/output methods flock handles before reading or writing, as
appropriate.
The *_utf8 methods (slurp_utf8, lines_utf8, etc.) operate in raw mode
without CRLF translation. Installing Unicode::UTF8 0.58 or later will speed
up several of them and is highly recommended.
It uses autodie internally, so most failures will be thrown as exceptions.
filesystems/p5-Module-Path.
Module::Path provides a single function, module_path(), which will find
where a module is installed locally.
It works by looking in all the directories in @INC for an appropriately
named file:
* Foo::Bar becomes Foo/Bar.pm, using the correct directory path
separator for your operating system.
* Iterate over @INC, ignoring any references (see "require" in
"perlfunc" if you're surprised to hear that you might find references
in @INC).
* For each directory in @INC, append the partial path (Foo/Bar.pm),
again using the correct directory path separator. If the resulting
file exists, return this path.
* If no file was found, return undef.
I don't think we can assume that ufs headers will be included in all cases
when this file is included, so do it unconditionally. This will fail on
6.99 from before ROOTINO turned into UFS_ROOTINO; if anyone wants to
figure out how to make a more precise check, be my guest.
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Release 1.10.0 (2013-05-01)
'''''''''''''''''''''''''''
New Features
------------
- The Welcome page has been redesigned. This is a preview of the design style
that is likely to be used in other parts of the WUI in future Tahoe-LAFS
versions. (`#1713`_, `#1457`_, `#1735`_)
- A new extensible Introducer protocol has been added, as the basis for
future improvements such as accounting. Compatibility with older nodes is
not affected. When server, introducer, and client are all upgraded, the
welcome page will show node IDs that start with "v0-" instead of the old
tubid. See `<docs/nodekeys.rst>`__ for details. (`#466`_)
- The web-API has a new ``relink`` operation that supports directly moving
files between directories. (`#1579`_)
Security Improvements
---------------------
- The ``introducer.furl`` for new Introducers is now unguessable. In previous
releases, this FURL used a predictable swissnum, allowing a network
eavesdropper who observes any node connecting to the Introducer to access
the Introducer themselves, and thus use servers or offer storage service to
clients (i.e. "join the grid"). In the new code, the only way to join a
grid is to be told the ``introducer.furl`` by someone who already knew it.
Note that pre-existing introducers are not changed. To force an introducer
to generate a new FURL, delete the existing ``introducer.furl`` file and
restart it. After doing this, the ``[client]introducer.furl`` setting of
every client and server that should connect to that introducer must be
updated. Note that other users of a shared machine may be able to read
``introducer.furl`` from your ``tahoe.cfg`` file unless you configure the
file permissions to prevent them. (`#1802`_)
- Both ``introducer.furl`` and ``helper.furl`` are now censored from the
Welcome page, to prevent users of your gateway from learning enough to
create gateway nodes of their own. For existing guessable introducer
FURLs, the ``introducer`` swissnum is still displayed to show that a
guessable FURL is in use. (`#860`_)
Command-line Syntax Changes
---------------------------
- Global options to ``tahoe``, such as ``-d``/``--node-directory``, must now
come before rather than after the command name (for example,
``tahoe -d BASEDIR cp -r foo: bar:`` ). (`#166`_)
Notable Bugfixes
----------------
- In earlier versions, if a connection problem caused a download failure for
an immutable file, subsequent attempts to download the same file could also
fail. This is now fixed. (`#1679`_)
- Filenames in WUI directory pages are now displayed correctly when they
contain characters that require HTML escaping. (`#1143`_)
- Non-ASCII node nicknames no longer cause WUI errors. (`#1298`_)
- Checking a LIT file using ``tahoe check`` no longer results in an
exception. (`#1758`_)
- The SFTP frontend now works with recent versions of Twisted, rather than
giving errors or warnings about use of ``IFinishableConsumer``. (`#1926`_,
`#1564`_, `#1525`_)
- ``tahoe cp --verbose`` now counts the files being processed correctly.
(`#1805`_, `#1783`_)
- Exceptions no longer trigger an unhelpful crash reporter on Ubuntu 12.04
("Precise") or later. (`#1746`_)
- The error message displayed when a CLI tool cannot connect to a gateway has
been improved. (`#974`_)
- Other minor fixes: `#1781`_, `#1812`_, `#1915`_, `#1484`_, `#1525`_
Other Changes
-------------
- The provisioning/reliability pages were removed from the main client's web
interface, and moved into a standalone web-based tool. Use the ``run.py``
script in ``misc/operations_helpers/provisioning/`` to access them.
- Web clients can now cache (ETag) immutable directory pages. (`#443`_)
- `<docs/convergence_secret.rst>`__ was added to document the adminstration
of convergence secrets. (`#1761`_)