1Changes in 1.8.2 (October 2021)
2- Fixed bug in setqlim(), introduced in 1.8.1: Broken check for truncation
3  of limit value to 32-bit lead to rejecting limits >4TB with error EINVAL.
4  Thanks for Stephen Bee and Nicolas Rochelemagne for reporting the issue.
5
6Changes in 1.8.1 (April 2020)
7- correction to Q_XQUOTASYNC update done in 1.8.0: return value inverted
8- compile-fixes and enhancements for latest versions of the BSDs:
9  - compile fix: FreeBSD lacks define RQUOTA_USRQUOTA in rpcsvc/rquota.h
10  - NetBSD: map QUOTA_NOLIMIT to 0 for consistency with other platforms
11  - DragonFly support prepared (untested); obsolete BSD/OS removed
12  - getmntent(): decode numerical values of fs type and options to strings
13  - renamed compile-switch HAVE_STATVFS: too generic (conflict Python.h)
14- fixes for group quota support via RPC (i.e. v2 aka extended RPC):
15  - removed use of USE_EXT_RQUOTA in include/rquota.h: switch is
16    defined only later, thus extended quota was inadvertedly disabled
17  - Linux & OpenBSD: switched from rpcsvc/rquota.h to internal rquota.h,
18    as sys header lacks definition for extended RPC
19  - getnfsquota(): don't use v1 RPC for group quota if v2 fails;
20    return error instead
21  - adjusted order of elements in ext_getquota_args to match XDR encoding
22    (just to avoid confusion; no harm)
23- setqlim: raise error in case of truncation of given limits to 32-bit
24- test.pl:
25  - added smoke test: run automatically upon $ENV{AUTOMATED_TESTING}
26  - enhanced "forced RPC" test: ask for host:path, allow skipping
27
28Changes in 1.8.0 (April 2020)
29- revised "tirpc" change in 1.7.3: use "-ltirpc" only when SUN-RPC is
30  NOT included in libc; else we may compile against tirpc but linker
31  may resolved against libc; leads to memory corruption in auth_destroy()
32- cntd. attempt at fixing Makefile.PL for build on NetBSD release > 6
33- Backport of minor fixes & enhancements done while porting to Python
34  - extended test scripts (RPC test; read-back&verify limits after setqlim)
35  - RPC result handling: removed forced ESRCH error upon 0 limits
36    so that behavior matches that of local query (at least on Linux)
37  - corrected Quota::strerr() for errors caused in Sun-RPC library funcs
38  - updated include/quotaio_xfs.h to latest version in Linux headers
39    and use newer (~2004) interface Q_XQUOTASYNC for Quota::sync()
40
41Changes in 1.7.4 (March 2020)
42- Build fixes for NetBSD release > 6 and Apple/Darwin
43  based on failure reports of automated CPAN testing
44- Added support for group quotas in test.pl;
45  Corrections to documentation of group quota handling
46
47Changes in 1.7.3 (March 2020)
48- Added detection for missing header rpc/rpc.h;
49  automatically switch to using "tirpc", if present.
50  Issue reported by Michael Stauber via CPAN ticket 128302
51- Also fixed compiler warnings in ancient RPC code.
52
53Changes in 1.7.2 (May 2015)
54- Adapted platform detection for Linux 4.*
55  Thanks to C. Affolter for reporting the issue (CPAN ticket 104652)
56
57Changes in 1.7.1 (September 2013)
58- "make test" now aborts if STDOUT is not a terminal, same as already
59  for STDIN. Suggested by Alexandr Ciornii via CPAN ticket 82564.
60
61Changes in 1.7.0 (August 2013)
62- Added support for the new NetBSD 6.0 quota system (libquota)
63  Thanks to David Holland and Edgar Fuss
64- To support limits and usage >= 2^32 on 32-bit clients, Quota::setqlim
65  and Quota::query interfaces were changed to use double (NV) instead
66  of integer (IV). This should be transparent to users of the module.
67
68Changes in 1.6.7 (November 2011)
69- Added support to detect 3.x Linux kernels
70  Thanks to Salvatore Bonaccorso of the Debian Perl Group
71
72Changes in 1.6.6 (June 2011)
73- Ignore "rootfs" filesystem in Quota::getqcarg() on Linux, which always
74  is a duplicate.  Thanks to "abaturin" for providing this patch.
75- Made test.pl exit immediately when AUTOMATED_TESTING is set in the
76  environment (same as when called not from a tty), as all tests require
77  user interaction. Changed on request of TODDR of cpan.org
78
79Changes in 1.6.5 (January 2011)
80- Fixed syntax error and missing init for params to setqlim()
81  Thanks to Heinrich Mislik for reporting the bugs
82
83Changes in 1.6.4 (January 2010)
84- Fixed RPC quota block count truncation to 32bit (CPAN ticket 52813 )
85  Thanks to Lloyd Brown for reporting the bug
86
87Changes in 1.6.3 (December 2008)
88- Fixed SEG fault for 32-bit Linux clients on top of 64-bit kernels
89  Thanks to Jani Ollikainen (pronetko.fi) for reporting and debugging this.
90  Thanks to Thomas Rzipa for reporting this issue, too.
91- Fixed setqlim to allow setting limits exceeding 2^32 blocks or files.
92  The current solution will work only for perl executables which support
93  64-bit wide integers (e.g. x86-64)
94
95Changes in 1.6.2 (January 2008)
96- Fixed memory leak in RPC authentication
97  Thanks again to Kostik (koc at rol.ru)
98
99Changes in 1.6.1 (November 2007)
100- Adapted hints/bsd.h to use statvfs instead of statfs in NetBSD 3.0
101- Added support for extended quota RPC to allow querying group quotas.
102  Thanks to Kostik (koc AT rol.ru) for the suggestion.
103
104Changes in 1.6.0 (October 2007)
105- Work-around for different getmntent() semantics for linux loop mounts
106  Thanks Wouter de Jong (wouter@widexs.nl) for reporting this issue.
107- (late) version bump due to the interface change in 1.5.2
108
109Changes in 1.5.2 (October 2007)
110- Added support for new quotactl() parameters in JFS2 on AIX 5.3.
111  Thanks to Joshua Frigerio (joshua@uic.edu) for providing a development
112  account.  (Note: also prepared support for JFS2 quota classes; this is
113  yet unfinished and untested. See sub-directory contrib/aix_jfs2_class)
114- Added support for XFS project quotas on request of
115  Sten Spans (sten@blinkenlights.nl); received no feedback it if works.
116  Changed the "isgrp" param to Quota::query() and setqlim() from boolean
117  into an enum: 0:=user, 1:=group, 2:=project quotas.
118- Added a copyright notice to the main module and the manual page on
119  request of the Debian maintainer.
120
121Changes in 1.5.1 (July 2005)
122- Added new API function rpcauth: use non-default authentication for RPC
123  Patch submitted by Karol Lassak
124- Makefile fix for Linux: compile linuxapi.c with default CFLAGS
125  because for 64-bit systems -fPIC is required.  Patches submitted
126  by David Lee and James Olin Oden; used a different solution though.
127
128Changes in 1.5.0 (Nov 2004)
129- Added new API function rpcpeer: set port and protocol for RPC queries.
130  On request by Sten Spans (sten@blinkenlights.nl)
131
132Changes in 1.4.11 (Aug 2004)
133- Updated VxFS detection in Makefile.PL for recent Solaris/VxFS versions
134  Thanks to Joshua Frigerio for the info and to Keith Clay for verification.
135- tiny syntax cleanup in linuxapi.c
136
137Changes in 1.4.10 (Jan 2004)
138- Applied patch by Antti Tapaninen (aet at cc.hut.fi) to add support
139  for MacOS X (based on BSD config) and NFS3 support for AIX.
140- Applied patch by Chris Adams (cmadams at hiwaay.net) to avoid warning
141  in Quota::getqcarg() on systems where getmntent(3) may return invalid
142  mount points, e.g. Tru64 UNIX
143
144Changes in 1.4.9 (Aug 2003)
145- Applied patch by Wolfgang.Friebel@desy.de: Changed AFS quota support,
146  now based on OpenAFS instead of arla and Kerberos4.
147
148Changes in 1.4.8 (May 2003)
149- fixed bug in linuxapi.c, thanks to Shane DeRidder
150
151Changes in 1.4.7 (May 2003)
152- adapted for the latest fashion of Linux quota APIs (version 6.5.1)
153  Thanks to Jay R. Wren, Shane DeRidder, Roman "romke" and Geoffrey Pan
154  for your infos and feedback.
155- added quota threshold monitoring script to the contrib directory.
156  Thanks to Ziaur Rahman.
157
158Changes in 1.4.6 (August 2002)
159- changed the test script to exit if STDIN is not a terminal device.
160  This is an interactive script which cannot be run by CPANPLUS.
161
162Changes in 1.4.5 (July 2002)
163- replaced use of macro BCOPY with libc function memcpy() because of build
164  problems on Solaris 2.8 (bcopy is depreciated now anyways)
165  Thanks to Jost Krieger and Paul Sand for reporting this problem.
166
167Changes in 1.4.4 (June 2002)
168- bugfix in Quota::getqcarg(): the function failed if the device id returned
169  by stat(2) for the queried path was zero (e.g. for the root fs on NetBSD)
170  Thanks to Jake Fan (jake@chaogic.com) for reporting this bug.
171
172Changes in 1.4.3 (May 2002)
173- updated for new version of Solaris VxFS (Veritas Filesystem)
174  by David Lee (T.D.Lee@durham.ac.uk)
175
176Changes in 1.4.2 (Jan. - Mar. 2002)
177- fixed test.pl to allow uids with more than 5 digits.
178  Thanks to Neil Prockter (perl@iamafreeman.com) for the fix.
179- updated Linux quota version detection with quota-tools 3.04;
180  removed compile-time version detection because it caused problems;
181  added switch LINUX_API_VERSION to hints/linux.h to allow to hard-wire
182  the API in case the automatic version detection fails.
183
184Changes in 1.4.1 (Sep. 2001 - Jan. 2002)
185- added support for an older (intermediate?) version of the new Linux Quota
186  API which contains a mixture of v1 and v2 command ids (uses the old GETSTAT
187  id, however with the new and larger struct as argument). Required for
188  RedHat-7.1.  Thanks to Andy Choi (andy@ensim.com) for pointing this out.
189- enabled RPC in hints/bsd.h
190  Confirmed to work on FreeBSD by Alex Batko (abatko@cs.mcgill.ca)
191- fixed several glitches in the manual page.
192
193Changes in 1.4 (August 2001)
194- added support for the Alan Cox (ac) branch of the Linux kernel which uses a
195  new and completely backwards incompatible Quota API.  The API version is
196  determined dynamically by use of Q_GETSTATS/v2, i.e. the same module
197  binary will work on kernels with either API. Since the Linux quota API now
198  needs some very special handling, I moved it into a separate file called
199  linuxapi.c.  NOTE: internally the module still uses the old (v1) dqblk
200  structure, so any advantages the new struct mem_dqblk might have are not
201  present here.  Let me know if this is a problem for you.
202- commented out #define LINUX_RQUOTAD_BUG in hints/linux.h as this should
203  no longer be needed on most systems. Updated INSTALL and README accordingly.
204- removed the Linux syscall wrapper in quotactl.c as this is now in libc.
205- changed copyright from "none/public domain" to Artistic License (not to
206  restrict usage, but simply to include the legal disclaimers)
207- fixed bug in Quota::query() and setqlim(): when argument isgrp was present
208  but 0, the functions still did work on group quotas instead of user quotas.
209  Thanks to Szymon Juraszczyk (szymon@ssk.pl) for pointing this out.
210
211Changes in 1.3.4 (May 2001)
212- added support for SGI XFS on Linux.  Thanks to Brian Johnson
213  (brian@dev.brianj.com) for providing a development account.
214
215Changes in 1.3.3 (May 2001)
216- bugfix Quota::query, branch NO_RPC: forgot to set error flag, arbitrary
217  results were returned; Pointed out by Mahlon Smith <reich@internetcds.com>
218- fixed declaration of GQR_* macros for RPC in hints/bsd.h
219  RPC still untested for BSD though
220- fixed OpenBSD2.7 fix from last release: replaced macro OpenBSD2_7 with
221  __OpenBSD__ because the former is not defined in 2.8 anymore.
222  Reported by Lou Hevly (lou@visca.com)
223- fixed hints/linux.h for RedHat 7.1: use sys/quota.h instead of linux/quota.h
224  because the former has an incompatible definition of struct dqblk.
225  [NOTE: this change proved to be wrong and was undone in 1.4]
226  Reported by Waldemar Krotkiewicz (wk@brenet.de), Andy Choi (andy@ensim.com)
227  and Brian Johnson (brian@dev.brianj.com).
228
229Changes in 1.3.2 (February 2001)
230- fixed AFS detection in Makefile.PL for Perl 5.6
231  thanks to Wolfgang Friebel <friebel@ifh.de>
232- adapted getmntent for incompatible change of struct statfs in OpenBSD 2.7
233  thanks to andrew@ugh.net.au
234- adapted getqcarg for for OpenBSD and BSDi: define QCARG_MNTPT for all BSD os
235  as reported by andrew@ugh.net.au and Chee-Wai Yeung <cheewai@cs.ust.hk>
236- fixed block to kB conversion in Quota::query() for VxFS
237  as reported by Rui Monteiro <rmonteiro@whatevernet.pt>
238- renamed config.h symlink to myconfig.h to avoid conflict with Perl config
239
240Changes in 1.3.1 (October 2000)
241- added support for NetBSD, merged hints for BSD-based systems
242  by Jaromir Dolecek <jdolecek@NetBSD.org>
243- fixed include file name for vxquotactl.h
244  changed quota block factors Q_DIV/Q_MUL from 1 to 2 for Veritas fs
245  Thanks to David Lee (T.D.Lee@durham.ac.uk)
246- added automatic recognition of HPUX B.11 in Makefile.PL
247  by Albert Chin (china@thewrittenword.com)
248
249Changes in 1.3:  (January 2000)
250- bugfix/enhanced support for OSF/1 and Digital Unix:
251  getqcarg used wrong path to quotas file and
252  NFS file systems were not recognized when in "/path@host" format in mtab
253  provided by Victor Mora (Victor.Mora@ac.upc.es) and
254  Alessandro Miotto (Alessandro.Miotto@cern.ch)
255- added support for FreeBSD.
256  provided by Kurt Jaeger (pi@complx.LF.net)
257  and Jon Schewe (schewe@tcfreenet.org)
258- added support for Veritas file system (VxFS) on Solaris
259  provided by David Lee (T.D.Lee@durham.ac.uk),
260  Michael Gerdts (gerdts@cae.wisc.edu) and
261  Daniel Hagerty (hag@shore.net).
262  Beta-tested by John Randell Smith (jrsmith@eng.utah.edu).
263- added workaround for yet another bug in Linux rpc.rquotad:
264  rquotad reports grace times as absolute values instead of relative
265  bug found by Seth Vidal (skvidal@phy.duke.edu)
266- fixed grace time output for Y2K in test.pl
267- fixed bug in group-quota patch as pointed out by asun@cobaltnet.com
268  incorporated the patch into the distribution.
269- fixed possible integer overflow in RPC quota block size conversions for
270  very large quota limits; pointed out by Peter.Pickford (ppickfor@jaguar.com)
271- added warning to Makefile.PL if config.h symlink already exists
272
273Changes in 1.2.3:  (April 1999)
274- added patch-file "group-quota.patch" that provides optional
275  support for group-quotas (on some OS versions and localhost only)
276- added auto-detection for AFS by Wolfgang Friebel
277- fixed include path for AFS in Quota.xs
278
279Changes in 1.2.2:  (December 1998)
280- fixed 2 problems in getqcarg()
281  thanks to py@ecst.csuchico.edu for pointing those out.
282
283Changes in 1.2:  (November 1998)
284- added support for AIX 4.1 (thanks to Wolfgang Friebel (friebel@ifh.de)
285  for providing a development account)
286- added support for AFS (Andrew File System) by arla-0.13
287  on the following platforms: AIX, SunOS, Solaris, HP-UX, IRIX 6, Linux
288  with much help from Wolfgang Friebel.
289
290Changes in 1.1.2:  (August 1998)
291- changed names of tar archive and module directory
292- fixed message for getqcarg failure in test.pl
293- compatibility with sfio (moved fopen and fclose to seperate file)
294  suggested by Christoph Lupe (lupe@alanya.m.isar.de) - yet UNTESTED
295- fixed problems with Solaris automounter (ignore lofs mounts in getqcarg)
296
297Changes in 1.1:  (August 1998)
298- added support for Linux (thanks to Steve Nolan (nolansj@bookmark.com)
299  for providing a development account)
300- added OpenBSD 2.2 support, provided by James Shelburne (reilly@eramp.net)
301- added syntax fixes (2 additional #includes) for IRIX 6.4
302  provided by Subhendu Ghosh (sghosh@menger.eecs.stevens-tech.edu)
303- support for IRIX xfs filesystems (additional to the older efs fs)
304  provided by David Lloyd (cclloyd@monotreme.cc.missouri.edu)
305
306
307Changes in 1.0:
308(That's the version that's been released with O'Reillys Perl Resource Books)
309- improved documentation, now provided in pod format inside Quota.pm
310- finally fixed errno.h problem in Quota.pm
311  Thanks to Tobias Oetiker (oetiker@ee.ethz.ch)
312- added BSDI port by Jim Hribnak (hribnak@nucleus.com)
313  unfortunately without RPC support.
314- small fixes for OSF/1
315- more hints in hints/none.h
316- I've again received requests for Linux ports. However since I don't
317  have access to an installation with quota support, I can't do this
318  myself. I've included a config file that compiles without warnings
319  on our system ("Red Hat for Sparc" or something), but I can't run it.
320  If anyone gets it to work with or without RPC, please contact me.
321
322Changes in 0.3a:
323- started port for Linux 2.0; still needs some work.
324  Compiles correctly, but RPC call fails.
325- workarounds for HP-UX/10 bug in test script
326  (SYNC without arguments doesn't work)
327- some cleanup in Query.pm
328  fixes 0.2a's problems with the autoloader under perl-5.003
329
330Changes in 0.2a:
331- need generic getqcarg instead of getdev, because:
332- added support for Solaris, OSF/1 (which operate without access to
333  the according block device) Required extensive code changes.
334- getqcarg recognizes if path points into a NFS file system
335- query() may take NFS path as argument (in form host:/path)
336
337  Thanks to David Lee <T.D.Lee@durham.ac.uk> for alpha-testing on Solaris
338  and suggesting the two latter improvements.
339
340