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