diff options
-rw-r--r-- | .gitignore | 43 | ||||
-rw-r--r-- | Changelog | 956 | ||||
-rw-r--r-- | Makefile.am | 262 | ||||
-rw-r--r-- | Makefile.in | 165 | ||||
-rw-r--r-- | README.gettext | 21 | ||||
-rwxr-xr-x | autogen.sh | 2 | ||||
-rw-r--r-- | common.c | 2 | ||||
-rw-r--r-- | common.h | 2 | ||||
-rw-r--r-- | config.h.in | 34 | ||||
-rw-r--r-- | configure.ac | 273 | ||||
-rw-r--r-- | configure.in | 253 | ||||
-rw-r--r-- | convertquota.c | 2 | ||||
-rw-r--r-- | edquota.c | 2 | ||||
-rwxr-xr-x | install-sh | 251 | ||||
-rw-r--r-- | po/.gitignore | 13 | ||||
-rw-r--r-- | po/LINGUAS | 1 | ||||
-rw-r--r-- | po/Makevars | 41 | ||||
-rw-r--r-- | pot.c | 4 | ||||
-rw-r--r-- | quota.c | 2 | ||||
-rw-r--r-- | quotacheck.c | 4 | ||||
-rw-r--r-- | quotasync.c | 3 | ||||
-rw-r--r-- | repquota.c | 2 | ||||
-rw-r--r-- | setquota.c | 2 | ||||
-rw-r--r-- | warnquota.c | 34 |
24 files changed, 675 insertions, 1699 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..940fd41 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +m4/ +aclocal.m4 +ar-lib +autom4te.cache/ +compile +configure +install-sh +missing +*~ +*.bak +config.h +config.log +config.guess +config.rpath +config.sub +config.status +mkinstalldirs +ABOUT-NLS +depcomp +*.in +Makefile +stamp-h1 +.deps +ChangeLog +rquota.c +rquota.h +*.o +rquota_clnt.c +convertquota +edquota +quot +quota +quotacheck +quotaon +quotastats +quotasync +repquota +rpc.rquotad +setquota +warnquota +xqmstats +libquota.a +librpcclient.a diff --git a/Changelog b/Changelog deleted file mode 100644 index b4356b0..0000000 --- a/Changelog +++ /dev/null @@ -1,956 +0,0 @@ -Changes in quota-tools from 4.01 to 4.02 -* Remove KERN_KNOWN_QUOTA_VERSION (Jan Kara) -* Skip NFS mounts without rquotad RPC service silently (Petr Písař) -* Fix handling of space and inode values (Jan Kara) -* Update polish translation (Jakub Bogusz) -* warnquota: Use LDAP for looking up CC value as well (Jan Kara) -* Prevent from grace period overflow in RPC transport (Petr Písař) -* Do not document location of quotaon and quotaoff (Petr Písař) -* Properly handle signed space and inode values (Jan Kara) -* respect CFLAGS in linking command wrt #446281 (Julian Ospald) -* Explain in quota(1) manpage what 'blocks' in the output mean (Jan Kara) -* __cpu_to_le16 --> htole16 (Cristian Rodríguez) -* Use libc byteswapping routines not kernel ones (Cristian Rodríguez) -* quota_nld: Fix compilation warning (Jan Kara) -* quota_nld: Fix usage of netlink multicast groups (Jan Kara) -* Improve rpc.rquota(8) manual page (Petr Písař) -* Add warnquota.conf(5) manual page (Petr Písař) -* Add quotatab(5) manual page (Petr Písař) -* Add quotagrpadmins(5) manual page (Petr Písař) -* Silent a set-but-not-used warning about sbflags (Petr Písař) -* Add support for CVS and XML output formats to repquota(8) (Jan Kara) -* Remove installation of manpages into section 2 (Carsten Grohmann) -* Close FILE handles on error (Petr Písař) -* Add AC_PREREQ to configure.in (Theodore Ts'o) -* Fix various usage mistakes (Petr Písař) -* Correct quotasync exit code (Petr Písař) -* Complete quotasync usage (Petr Písař) -* Add quotasync(1) manual page (Petr Písař) -* quotacheck: Make sure -d provides at least as much information as -v (Jan Kara) -* Do not fiddle with quota files on XFS and GFS (Petr Písař) -* Recognize units at inode limits by edquota (Petr Písař) -* Recognize units at inode limits by setquota (Petr Písař) -* Recognize units at block limits by edquota (Petr Písař) -* Recognize block limit units on setquota standard input (Petr Písař) -* Recognize units at block limits by setquota (Petr Písař) -* Fix compilation without RPC support (Jan Kara) -* Make group warning message more official (Petr Písař) -* Updated Czech translation (Petr Písař) -* warnquota: Use current locale as default charset (Jan Kara) -* warnquota: Add MIME-Version header (Jan Kara) - -Changes in quota-tools from 4.00 to 4.01 -* fix compilation failure with --enable-bsd_behaviour=no (Jan Kara) -* fix quota(1) for NFS mountpoints (Jan Kara) -* fix reporting of huge quota limits over rpc (Jan Kara) -* fix repquota to report all users on XFS (Jan Kara) -* fixed edquota(8) for more users (Jan Kara) -* remove fixed limit on number of autofs mount points (Jan Kara) -* add quota type names to message catalogue (Jan Kara) -* typo fixes, message changes for easier i18n (Jan Kara) -* created Czech translation (Petr Pisar) -* store PID of quota_nld into lock file (Petr Pisar) -* warnquota: Fix manpage formatting (Jan Kara) -* warnquota: Allow specifying of filesystems to check (Jan Kara) -* add support for quotas on ext4 in system files (Jan Kara) -* quotaon: Remove duplicated check for hasquota() (Jan Kara) -* quotacheck: Fix warning about journaled quota for 3.0 and newer kernels (Jan Kara) -* edquota: Fix localication of time units (Jan Kara) -* rip out ALTFORMAT config option (Jan Kara) -* add support for dynamic RPC block to support larger quotas (Petr Pisar) -* check set limits fit into the range supported by RPC transport (Petr Pisar) -* do not report missing utmp record to syslog (Petr Pisar) - -Changes in quota-tools from 4.00-pre1 to 4.00 -* get_qf_name() does not check quota file presence (Petr Pisar) -* report quotacheck failures by return code (Petr Pisar) -* make global symbols static as possible (Petr Pisar) -* implement repquota for filesystems without quota files (Jan Kara) -* initialize v2r1 ddquot padding in dump (Jan Kara) -* fix ddquot buffer leak (Petr Pisar) -* fix check in setgraces() in setquota.c (Petr Pisar) -* forbid grace time setting over RPC (Jan Kara) -* fix synopsis and properly report errors during remote grace period setting (Jan Kara) -* do not use real domains in warnquota example (Petr Pisar) -* make RPC handle properly host names with colons (Jan Kara) -* explain meaning of the second column in repquota output (Jan Kara) -* initialize vfsold block and inode value boundaries for new quota file (Petr Pisar) -* setquota manpage typo fix (John Bradshaw) -* implement quotacheck for GFS2 (Abhijith Das) -* add quotasync tool (Abhijith Das) -* correct --no-mixed-pathnames documentation (Petr Pisar) -* allow admin to not strip quota binaries while installing them (Jan Kara) -* document --always-resolve at edquota and setquota (Petr Pisar) -* comment example quotatab to silent warnquota (Petr Pisar) -* improve comments in warnquota.conf (Ondrej Vasik) -* fix help text for quotaoff (Ondrej Vasik) -* make quota, setquota, and edquota recognize -h option (Ondrej Vasik) -* check whether set limits fit into range supported by quota format (Jan Kara) -* add next3 support (Amir G) -* remove checking of filesystem type from hasquota() (Jan Kara) -* create quota-nfs.sh script for nicer quota(1) output formatting on some NFS clients (Jan Kara) -* add options for quota(1) modifying formatting of filesystem identificaion (Jan Kara) -* minor updates of manpages (Jan Kara) -* quotactl manpage was moved to man-pages package (Jan Kara) -* fix quotaon to work properly with XFS filesystems (Eric Sandeen, Jan Kara) -* fix quotaon to print all informational messages only in verbose mode (Jan Kara) -* fix warnquota manpage to not speak about RPC (Jan Kara) -* fix repquota to get latest quota info header (Jan Kara) -* do not count system inodes into quota for ext[234] (Jan Kara) -* improve detection of XFS kernel quota interface (Jan Kara) -* support of GFS2 filesystem (Christoph Hellwig) -* avoid memory corruption of NULL address (Petr Pisar) -* fixup typos in manpages (Michael Meskes) -* added german translation (Michael Bunk) -* added --enable-static-link configure option (Jan Kara) - -Changes in quota-tools from 3.17 to 4.00-pre1 -* don't try to set inode flags when getting them failed (Michalski Wojciech) -* added liblber to the list of libraries needed for LDAP support (Michael Meskes) -* Rewritten configuration script to create config.h (Jan Kara) -* Use /proc/mounts for mountpoint scanning (Jan Kara) -* Removed use of reserved identifiers (Jan Kara) -* Improved manpage of quota_nld (Eddie Eyles) -* Fixed long option handling of quota_nld (Jan Kara) -* Fixed error reporting when rpc format specified on command line (Jan Kara) -* Convert quota limits using rq_bsize from RPC request (Jan Kara) -* Added noreturn attribute to die to avoid false warnings (Jan Kara) -* 64-bit quota support, rewritten some code to allow clean integration (Jan Kara) -* Improved header of quota an repquota output when -s option is used (Jan Kara) -* Fixed mountpoint scanning when NFS mountpoint is specified on command line (Jan Kara) -* Updated manpage of quotactl(2) (Jan Kara) - -Changes in quota-tools from 3.16 to 3.17 -* Updated quotactl(2) manpage to mention possible ERANGE error (Jan Kara) -* Fix hostname checking of rpc.rquotad. It could allow access even though hostname was in /etc/hosts.deny (Jan Kara) -* do not allow setting of user's grace time when softlimit is not exceeded (Jan Kara) -* fix reference to rpc manpage (anonymous reporter) -* add EXT4 (not only EXT4DEV) to the list of supported filesystems (Mingming Cao) -* fix setting of more than 31-bit block and inode limits (Gui Xiaohua) -* fixed bug in error reporting when quota reading fails (Jan Kara) -* added support for quota formats with hidden quota files (Jan Kara) -* remove IMMUTABLE flag from quota file in quotacheck (Jan Kara) -* fix bug in warnquota which could result in bogus hostname and domainname (anonymous reporter) -* implemented writing of messages that user got below hard/soft limits to quota_nld (Jan Kara) -* use PKG_CHECK_MODULES to check for DBUS (Ladislav Michnovic) -* Implement setting of charset for emails sent by warnquota (Michael Meskes) -* Added quota_nld to the list of installed programs (Jan Kara) -* some typos fixes (Matthew Boyle) -* fixed possible segfault when unpriviledged user run edquota (Matthew Boyle) -* fixed format strings to use "%llu" and "%lld" instead of "%Lu" and "%Ld" (Ladislav Michnovic) -* removed ssl, resolv, lber from the list of LDAP libraries since we don't need them directly (Jan Kara) -* added limits.h include to quota_nld (Jan Kara) -* fixed repquota to work with limits over 4 TB (Jan Kara, Michael Meier) - -Changes in quota-tools from 3.15 to 3.16 -* added information message about journaled quota to quotacheck (Jan Kara, Alex Tomas) -* added pointers to quota_nld and warnquota to some manpages (Jan Kara) -* ported quota_nld to libnl-1.1 (Jan Kara) -* let setquota batch mode accept comments and blank lines, add -c option (Jacky Bruno, Jan Kara) -* print more verbose list of compile options when --version specified (Jan Kara) -* quotaon(8) should work only on local filesystems (Ladislav Michnovic) -* made possible to use quota rpc in mixed NFSv3 and NFSv4 environments (Jan Kara) -* fixed compilation with openLDAP library versions 2.1 and 2.2 (Jan Kara) -* always define allow_severity and deny_severity for older versions of libwrap (Martin Jacobs) -* cleaned up host_access() handling (Jan Kara) -* configure script now correctly reports checking of libwrap (Jan Kara) -* added MPFS to the list of supported filesystems (Dave Boone) -* all binaries are now stripped during installation (Jan Kara) -* updated Polish translations (Jakub Bogusz) -* fixed typo in a quotaon message (Jakub Bogusz) -* fixed warnquota to check URI only if LDAP enabled (Michael Meskes) - -Changes in quota-tools from 3.14 to 3.15 -* added a wrapper script around setquota which also updates LDAP (Stefan Adams) -* implemented quota netlink daemon to listen to kernel netlink messages and send them - to DBUS and / or write them to the console (Jan Kara) -* modified configure scripts and warnquota to check for new LDAP library and allow use of URI (Jan Kara) -* fix LDAP scripts to set VISUAL instead of EDITOR (Michael Meskes) -* added ext4 filesystem to the list of supported filesystems (Jan Kara) -* pot.o is now compiled with CFLAGS (Ladislav Michnovic) -* use -fPIE for compilation when available (Jan Kara, Ladislav Michnovic) -* fixed some more problems XFS quotaon (Kouta Ooizumi, Jan Kara) -* fixed two mistakes in quotaon(8) manpage (Utako Kusaka) -* added option -A to quota(1) to report all NFS mountpoints (Jan Kara) -* fixed XFS handling to work with loopback mounted devices (Jan Kara) -* fixed mountpoints scanning to make XFS -x delete command work (Jan Kara) -* fixes of signed vs unsigned int issues (Jan Kara) -* fixed a format string bug in reporting of raw grace times in repquota (Jan Kara) -* added repquota(8) and quota(1) option for better parsable output (Jan Kara) -* fixed error handling in edquota(8) when creating tmp file (Jan Kara) - -Changes in quota-tools from 3.13 to 3.14 -* updated Polish translations (Jakub Bogusz) -* print user/group names in error messages when cannot get quota information (Michal Marek, Jan Kara) -* added option --always-resolve to force resolving even names with digits only (Jan Kara) -* minor language corrections in manpages (Jan Kara) -* implemented long options parsing for all quota tools (Jan Kara) -* quota(1) has -f option to specify filesystem list (Jan Kara) -* corrected some informal language in messages (Jan Kara) -* we cannot even stat NFS mounts in local mode as server may be unreachable (Jan Kara) -* fixed error messages in getprivs() (Jan Kara, Brian Morris) -* made UID/GID prints unsigned (Matthew Kent) -* fixed very verbose printing for quotacheck (Jan Kara) -* fixed off-by-one bug in mount options parsing (Jan Kara) -* implemented nicer message formatting for warnquota(8) (Jan Kara) -* quota(1) has -w option to supress line wrapping for long device names (Jan Kara) -* quota(1) prints grace time even if hard limit is reached (Jan Kara) -* fixed journaled quota format detection in quotacheck (Jan Kara) - -Changes in quota-tools from 3.12 to 3.13 -* fixed mistakes in several error messages, improved error reporting functions - (Dmitry V. Levin) -* volume label and UUID support for reiserfs (Jan Kara) -* support for LABEL= and UUID= on a command line (Jan Kara) -* parse NFSD export table to find pseudofilesystem root for NFSv4 (Jan Kara) -* handle better when quota file should become empty (Niu YaWei) -* minor manpage and help-text fixes (Jan Kara) -* fixed quotacheck(8) to check each block only once (Jan Kara) -* fixed quotacheck(8) messages about corrupted blocks (Jan Kara) -* fixed quotacheck(8) to rename quota files after turning quotas off (Jan Kara) -* added sanity check to quota reporting (Jan Kara) -* fixed check for illegal references in quotacheck(8) (Jan Kara) -* added NFSv4 to the list of supported fs types (Jan Kara) -* updating of progress is now less frequent - should speedup quotacheck -v a bit (Jan Kara) -* added printing of directories to quotacheck(8) (Jan Kara, Jan Engelhardt) -* added dynamic mountpoint array allocation (Jan Kara) -* made quotacheck(8) more friendly to journaled quota (Jan Kara) -* changed configure to detect whether nls is needed (Tomasz Kloczko, Jan Kara) -* added JFS into a set of supported filesystems (David Kleikamp) -* added French translation (Jerome Schell) -* fixed quota tools to set of grace time only after exceeding soft limit, not - at reaching (Jan Kara) -* fixed exit codes of setquota(8) and edquota(8) (Jan Kara) -* updated Polish translations (Jakub Bogusz) -* fixed "bashism" is Makefile (Michael Meskes) - -Changes in quota-tools from 3.11 to 3.12 -* fixed bug in quotaon(8) reporting (Paul Szabo) -* added manpages for xqmstats & quotastats (Max Vozeler) -* fixed a few memleaks (Jan Kara) -* fixed bug when root had no usage and limits (Jan Kara) -* added a few perl wrappers for LDAP (Stefan Adams) -* added note about availability of -r option to manpages (Jan Kara) -* maximal number of groups is now got via sysconf (Nathan Scott) -* added batch mode to the setquota(8) (Jan Kara) -* added reference to setquota(8) to manpages of other tools (Jan Kara) -* fixed bug in --port option of rquotad (Max Kalika) -* updated quota documentation (Jan Kara) -* disabling nls via configure (Jan Kara) -* fixed warning when gettext not used (Peter Breitenlohner) -* fixed typo in rquotad.8 (Peter Breitenlohner) -* fixed compiler warning in quotacheck.c (Peter Breitenlohner) -* added config option for putting some important binaries to /sbin regardless - $(prefix) (Jan Kara) -* added config option to warnquota(8) for CCing admin only specified amount of - time before grace time runs out (Jan Kara) - -Changes in quota-tools from 3.10 to 3.11 -* quota-tools should again use old RPC protocol when needed (Jan Kara) -* add FIOQSIZE for x84_64 architecture (Jan Kara) -* quotacheck(8) does not count quota files to usage (Jan Kara) -* tools now honor journalled quota mount options (Jan Kara) -* manpage of repquota(8) stated falsely that repquota works over RPC (Jan Kara) -* added -T flag to quot(8) to avoid truncation of names (Andre Nathan) -* added -q flag to quot(8) to avoid sorting of names (Andre Nathan) -* added #include <paths.h> in quotasys.c to avoid compile problems on some systems (Jan Kara) -* changed detection of filesystem to be able to parse comma separated list (Jan Kara) -* fixed bug in quotacheck(8) which counted wrongly files larger than 2GB (Posta Zoltan) -* fixed compile problem with quotacheck and new kernels (Michael Meskes, Jan Kara) -* fixed typo in quotacheck manpage (Noel Koethe) -* warnquota(8) can get mail addresses via LDAP (James Bourne) -* warnquota(8) can avoid sending e-mail when user is over quota on mail partition (James Bourne) -* fixed bug in quotacheck(8) which counted directories twice sometimes (Jan Kara) -* edquota(8) now allows parameters in VISUAL/EDITOR env. params (Jan Kara) -* reverted changes in detection of kernel from 3.10 - interface obsoleted in 2.6 kernel (Jan Kara) - -Changes in quota-tools from 3.09 to 3.10 -* alternative port can be specified to rpc.rquotad by -p option (Jan Kara) -* Fixed processing of device-backed loop mounts (Jari Ruusu) -* Fixed fake error messages from rpc.rquotad (Jan Kara) -* quota(1) now does not print info for NFS filesystems without quotas (Jan Kara) -* XFS roothack option disabled by default (Nathan Scott) -* added option to warnquota(8) to supress details of report (Marco van Wieringen) -* fixed problems with multiple lines values in warnquota(8) (F. Depke) -* changed detection of kernel interface so that it works even without /proc (Jan Kara, Johan Ekenberg) -* updated Polish messages (Jakub Bogusz) -* updated quotactl(2) manpage (Jan Kara) -* fixed bug in -f option of edquota(8) (Jan Kara) -* fixed formatting bug in warnquota(8) (Jan Kara) -* added option -s (choice of more appropriate units) to warnquota(8) (Jan Kara) - -Changes in quota-tools from 3.08 to 3.09 -* minor update of quota(1) manpage (Jan Kara) -* quotacheck(8) now remembers only hardlinked files and not all inodes with - n_link > 1 (Jan Kara, Jan Kasprzak) -* quotacheck(8) doesn't store structures for all users in old quota format (Jan Kasprzak) -* fixed minor bug in documentation (Jan Kara, Lucas Brasilino) -* repquota(8) handles multiple entries in /etc/passwd better (Jan Kara) -* made tools not to touch mountpoints mounted without quota options (Jan Kara) -* added option for ignoring autofs mountpoints to quota(1), quot(8), repquota(8) and rpc.rquotad(8) (Jan Kara, Paul Szabo) -* updated xqmstats (Nathan Scott) - -Changes in quota-tools from 3.07 to 3.08 -* Fixed infinite loop in quotacheck under RH7.1 (?) -* Made quota tools aware of /etc/services (H. J. Lu) -* Updated edquota(8) and setquota(8) to allow setting of individual grace time (Jan Kara) -* Fixed bug in convertquota(8) when quota was turned on during converting (Jan Kara) -* Add support for XFS filesystems without root special casing (Christoph Hellwig) -* XFS documentation updates (Nathan Scott) - -Changes in quota-tools from 3.06 to 3.07 -* Added creation of bin and sbin dir during make install; removed hardcoded - /sbin directory for some utilities. (Jan Kara) -* Add support for 32 bit uid's and gid's when using EXT2_DIRECT. (Michael Meskes) -* updated manpage of rpc.rquotad (Jan Kara) -* setquota is disabled by default in rpc.rquotad (Jan Kara) -* setquota using RPC is disabled by default in configure (Jan Kara) -* rised maximal number of mountpoint to 256 (Jan Kara) -* small fix in configure (Nathan Scott) -* small fix in quotacheck(8) docs (Jan Kara) -* fixed quotacheck(8) to continue when old quota files were not found (Jan Kara) -* quota(1) now doesn't report failure to connect to rpc.rquotad server when -Q specified (Jan Kara) -* add quota(1) option -l (report only local filesystems) (Jan Kara) -* warnquota(8) now also mails specified member of the group about violation of the group quotas - when -g option is specified (Jan Kara) -* added options by which user can specify whether repquota(8) should translate names in - big chunks by scanning all users or individually. Added automagic detection using nsswitch.conf - which behaviour should lead to faster translating. (Jan Kara) - -Changes in quota-tools from 3.05 to 3.06 -* fixed caching of libwrap configure result (Jan Kara) -* fixed copying of quotafile name from mtab (?) -* warnquota.conf is now installed in config dir (Jan Kara) -* updated format detection to reflect changes in kernel interface in 2.5.18 (Jan Kara) -* fixed scanning of non-mountpoint directories (Jan Kara) -* fixed detection of XFS format (Jan Kara) -* fixed printing of 'over softlimit sign' in quota(1) (Jan Kara) - -Changes in quota-tools from 3.04 to 3.05 -* quota tools should honour 'noquota' mount option (Jan Kara) -* fixes in manpages (Arkadiusz Miskiewicz) -* fixed detection of libwrap in configure (Arkadiusz Miskiewicz) -* added forgotten ROOTDIR to path to gettext catalogs (Arkadiusz Miskiewicz) -* quotacheck uses newest format supported by kernel when creating new quota files (Jan Kara) -* fixed bug in IO initialization when -F xfs was given (Jan Kara) -* added support for quota 6.5.1 (Jan Kara) -* quotaon(8) now can get format parameter (Jan Kara) -* fixed bad return value of quota(1) (Jan Kara) -* fixed bug in quota format format detection (Jan Kara) - -Changes in quota-tools from 3.03 to 3.04 -* added -D_FILE_OFFSET_BITS=64 to Makefile - fixes problems with large files with some libcs (Michael Meskes) -* added -p (print state) to quotaon (Vladimir Linek, Jan Kara) -* made quotaon(8) write better error messages (Jan Kara) -* make install now creates man directories (Jan Kara) -* added -q <quotatab> and -c <configfile> options to warnquota(8) (Jan Kara) -* added some notes about quotatab to warnquota manpage (Jan Kara) -* fixed bug in options parsing of warnquota(8) (Michael Meskes) -* ignore automount mountpoints (Philippe Troin) -* fixed minor bug in printing grace times (Jan Kara) -* fixed quotaon(8) behaviour when it sees newer kernel then it's able to handle (Jan Kara) -* minor formatting change in quotactl(2) manpage (Nathan Scott) -* init_io() is now more paranoid about quota turned on in kernel (Jan Kara) - -Changes in quota-tools from 3.02 to 3.03 - -* added -f <filesystem> option (perform operation only for given filesystem) for edquota (Jan Kara) -* quotacheck now skips quota file scanning when file not found (Jan Kara) -* repquota shouldn't show grace times when softlimit is not exceeded (Jan Kara) -* removed bogus error message in mountpoint scanning (Jan Kara) -* fixed mountpoint scanning initialization (solved rpc.rquotad SEGFAULT) (Jan Kara) -* rpc.rquotad now doesn't need mountpoint for quota operations (Jan Kara) -* fixed compilation on sparc (Michael Meskes, Jan Kara) - -Changes in quota-tools from 3.01 to 3.02 - -* added -n option (don't resolve names) to repquota (Jan Kara) -* quota tools now correctly handle zero grace times in old format (Jan Kara) -* edquota, setquota commit just grace times and flags - fixed possible races - when used on live filesystem (Jan Kara) -* another fix to quotastats (Jan Kara) -* added check to format detection for bad endianity (Jan Kara) -* implemented conversion of files with bad endianity (Jan Kara) -* fixes in warnquota, warnquota now allows line splitting by '\', text of mail - can be specified in config file (Jan Kara) - -Changes in quota-tools from 3.01-final to 3.01 - -* quotastats should now work better on old kernels (Jan Kara) -* quotacheck is more strict in checking it's arguments (Jan Kara) -* edquota and setquota should be now save to run for working user - (number of used blocks and inodes could be wrong in previous versions) - (Jan Kara) - -Changes in quota-tools from 3.01-pre9 to 3.01-final - -* quotacheck is using ext2_ino_t if defined (Jani Jaakkola, Jan Kara) -* rpc.rquotad now closes stdin, stdout unless run on foreground (Jani Jaakkola) -* setquota can be disabled in rpc.rquotad by commandline option (Jani Jaakkola) -* quota-tools should now work well also on RH 7.1 (Anders Blomdell, Jan Kara) -* quotacheck makes backup files only when told by option (Preston Brown) -* quotacheck now uses vfsv0 format when no quotafile is found (Jan Kara) -* fixed mountpoint scanning bug when bad mountpoint was specified (Jan Kara) -* fixed bug when device was specified instead of mountpoint (Preston Brown) -* fixed bug when scanning mountpoint NFS mounted filesystem (Jan Kara) -* repquota now resolves more names at once which makes it - a lot faster (Jan Kara) - - -Changes in quota-tools from 3.01-pre8 to 3.01-pre9 - -* Improved host access handling (Jan Kara) -* Improved RPC error reporting (Jan Kara) -* Fixed bug in quotaon when run of kernel with XFS (Jan Kara) -* Implemented new mtab scanning with fallback to fstab when mtab not - found (Jan Kara) -* Improved speed of repquota for old quota format (Jan Kara) -* New Makefile style (Jan Kara) -* Fixed bug in configure in detecting of e2fslib (Jan Kara) -* Implemented automatic choice of units in quota(1) and repquota(8) (Jan Kara) - - -Changes in quota-tools from 3.01-pre7 to 3.01-pre8 - -* Fixed typo in option in convertquota. (Jan Kara) -* Grace times are updated when quota limits are set. (Jan Kara) -* Fixed possible segfault in rpc.rquotad when no filesystems with quota - were found. (Jan Kara) - - -Changes in quota-tools from 3.01-pre6 to 3.01-pre7 - -* Fixed a bug in quotacheck (SEGFAULT on -aR) (Jan Kara) -* Fixed bug in rquota (grace times) (Jan Kara) - - -Changes in quota-tools from 3.01-pre5 to 3.01-pre6 - -* Fixed bug in quotacheck for new quota format (it created corrupted quota - files). (Jan Kara) -* Fixed bug in version reporting for quot. (Jan Kara) -* repquota now has -t option - when specified it will be truncating names so - output will be nicer (Jan Kara) - - -Changes in quota-tools from 3.01-pre2 to 3.01-pre5 - -* Fixed endian bug in the ext2 mount by LABEL or by UUID handling code, and - added XFS support to this code also. (Nathan Scott) - -* Fix bug in handling of multiple mount points sharing the same device. - (Jan Kara) - -* Fix warnquota output for devices with long names. (Jan Kara) - -* Updated man pages. (Jan Kara, Nathan Scott) - -* Added a port of the BSD quot(8) utility, with XFS support. (Nathan Scott) - -* Added xqmstats(8) utility for reporting activity statistics for the XFS - Quota Manager - XQM. (Nathan Scott) - -* Fix up numerous compiler warnings and all the minor problems that revealed - - package now compiled with -Wall by default. (Jan Kara, Nathan Scott) - -* Rewrote the error output handler (now uses errstr function) which also - displays the correct programname of the program issueing the error. - -* Additional configure option BSD_BEHAVIOUR for more the old BSD behaviour - as wanted by some people. - -* EOF -> -1, sprintf -> snprintf fixes - -* Don't turn quotas on on NFS - -* Fixed quota format detection, related bugs in quotaon - -* IO code now allows readonly access, doesn't open quotafile when not needed - -* Fixed bug in old quotaformat initialization - -* quota(1) now exits with nonzero exitcode when over quota - -* Manpage cleanup - - -Changes in quota-tools from 2.00 to 3.01-pre2 - -* This is a complete rewrite of the quota package, most importantly adding - support for the new Linux quota format and also support for XFS quota. - -* The internal data structures and algorithms were redesigned and rewritten by - Jan Kara (jack@ucw.cz) so that different versions and different types of - quota can be used with these tools. - -* Support for XFS quota has been added by Nathan Scott (nathans@sgi.com). - -* Add options like RPC, ALT_FORMAT, RPC_SETQUOTA, EXT2_DIRECT to configure. - (Jan Kara) - -* Fix atoi() -> strtol() and detect mistakes in numeric input. (Jan Kara) - -* Add '-V' option to all tools to display the version. (Jan Kara) - -* Reworked time conversion routines. (Jan Kara) - -* setquota - added -t parameter and allow variable number of filesystems to - be specified. (Jan Kara) - - -Changes in quota-tools from 1.70 to 2.00 - -* Added patches from Steven Walker <smw8923@cmsu2.cmsu.edu> for supporting - rpc_setquota call and tcp-wrappers check in rquotad. - -* Splited quota manipulation from setquota, edquota, quota etc. to quotaops.c - so things are coded only once. Also added support for remote quota editing - and setting using rquota extensions. - -* Fixed problems with parsing of /etc/fstab in hasquota.c (incorrectly - assumed that it was the only option followed by an '='). Patch by - Simon Huggins <huggie@earth.li>. - -* Extracted quota-io into quotaio.c so we only need to update repquota.c and - quotaio.c when we change the way quotas are stored in the quotafile for bigger - uids and gids. - -* Added prototype user copying to setquota ala edquota -p only this - time only for a specific filesystem. - -* Fixed quota tools for quotas bigger then 4 Gb. - Patch by Stephen C. Tweedie <sct@redhat.com> - -* Changed rpc.rquotad to scan all device entries in /dev to support also devfs - systems and systems with special hardware RAID controllers. - -* Added autoconf support to the quota-utils. - Patches by Andreas Gruenbacher <a.gruenbacher@bestbits.at> - -* Added extra filesystem types to mntent to reflect the current linux filesystems - -* Rewrote hasquota.c to check for the MNTOPT_QUOTA option. - (Request from Phil Stracchino <alaric@babcom.com>) - -* Removed searching of /dev dir from rquota_server. Only lookup mounted filesystems. - (Patch by Roman Kagan <Roman.Kagan@itep.ru>) - -* Added gettext NLS support all credits go to the guys named in the - README.gettext. - -* Added the redhat patches to the standard tree. - * blocksize patch - * fhs patch - * hjl patch - * label patch - * SPARC patch - -* Changed Q_SETQUOTA to Q_SETQLIM in quotaops.c for the putprivs function. This fixed - a problem where we restore bogos usage info by edquota etc. when a user resets its - quota usage while running for example edquota. We should only change the limits - because thats the only things we can change using these kind of tools. - (Bug report by Dr. Michael Meskes <michael@fam-meskes.de> from the Debian bug-archive) - -* Added numeric option to quota and setquota to allow to set quota for users/groups not - in the localy known through name-services. - (Modified the patches send by Oscar Martín <oscar@cdrtcampos.es>) - -Changes in quota-tools from 1.65 to 1.70 - -* Fixed problems when turning off one type of quota taking offline the - other type too. - -* Fixed bugs as reported on bugtraq for negative ids and problems - with usernames with only digits. - -* Added setquota (to se quotas from the commandline) as send to me by - Martin Bene <mb@sime.com> - -Changes in quota-tools from 1.60 to 1.65 - -* Created new diffs again for the newer kernel (2.1.[78]x). - -* Added sample program that copies quota-settings from one user - to an other. - -* Added /etc/quotatab support as developed by Jon Lewis - <jlewis@inorganic5.fdt.net> - -* Added some changes to /usr/src/linux/fs/nfsd/vfs.c to support quotas - for the kernel-nfsd too. (Most other filesystems are gone and the ones - remaining either don't need quotas or are not used by big groups of users.) - -Changes in quota-tools from 1.55 to 1.60 - -* Added new option to kernel root_squash which means when that option is - set the kernel system treats root as any normal user and he cannot - write to any file anymore without obeing the quota limits. - -* Added support for root_squash to quotaon and quotaoff using the new - rsquash option in mntent. In the run also rewrote the hasquota function. - -* Added patches to Makefile.std which should make it more FSSTND compliant. - -* Added extra check to rpc.rquotad to check the special device type when - scanning the /dev dir for the right device. - -Changes in quota-tools from 1.52 to 1.55 - -* Added all patches and enhancements I collected the last few months. - (As always some have undergone some rewriting and are only a special - option. But they are in) - -* Changed check on ruid in edquota to an access-check on the quota-files. - If you have write permissions on the quota-files as a group its probably - ok to allow you to change the quotas. If not the system operator should - take apropriate actions. Install edquota SUID-root if you want people - who are able to write to your quotafiles to change quotas. If you don't - install it SUID root it will only update the files which can give strange - problems with the kernel overwriting your updates. - -* Added the EPS-file of the sheets from Remy Card which he used at the - Berlin Linux seminar. And because they describe everything in detail - its a nice enhancement to the current HTML docs. - -Changes in quota-tools from 1.50 to 1.52 - -* Hopefully fixed some problems with makefiles and the like. - -* Did some rewrite on the mountlist handling, removed limit on number of - superblocks by allocating them within the mountlist. - (This code is not available within the standard kernel. Until I find the - time and feel like it I will put all my new enhancements in my very own - (just a bit different) kernel sourcetree back into the mainstream kernels.) - -Changes in quota-tools from 1.34 to 1.50 - -* Wrote some new docs, right into html use Mosaic, Netscape or lynx or - whatever HTML-browser to see whats in. Also did the manual-pages, - its just a quick hack hope this helps people using quota. - -* Added DIRECT EXT2 access to quotacheck which should make scanning ext2 - disks quite some faster. On the other hand you now need the ext2fs - libs to compile the quotacheck program. (Enhancement by Edvard Tuinder) - -* Added dquot_operations to include/linux/fs.h - -* Changed include/linux/quota.h according to new standard. - -* Changed fs/dquot.c according to new standard. - -* Added support to quotaon-systemcall for initializing the superblock - with a pointer to the dquot operations. - -* Remove fs/fileio.c and include/linux/fileio.h including all references to it. - -* Added support to the different filesystems to call the new dquot_alloc and - dquot_free functions on block/inode allocation or freeing. (currently ext2) - -* People can add support to any filesystem if they want, for now I have been - lazy and only implemented it for ext2-fs. Which by the way is probably - the most difficult of all the filesystems. If one feels up to it you can - try adding it to your favorit filesystem. I will accept patches, and - include them with or without changes. - -* Added some patches for dynamic allocation of quotafilenames in hasquota. - (patches by Remy Card) - -* Rewrote quota_transfer again, as a never ending story... - -* A new run off cleanups have been taking place, removed the QF_OPENING and - QF_CLOSING flags because we don't need them anymore. The new code uses dquot - pointers. If we initialize the dquot pointer after we have setup everything - we don't have do be afraid that we get dqget calls while we don't want them. - -* Fixed some bugs with not dropping dquot pointers which lead to memory leaks - in the long run because dquots kept being hold because the kernel thought - it was still being used. - -* Added some stats to the code which can be viewed with quotastats. Not real - interesting at the user level but quite handy debugging the quota system. - -Changes in quota-tooles from 1.33 to 1.34 - -* Changed hasquota.c to not insert a slash when the mnt->mnt_dir already ends - with a slash. So something like //quota.user shouldn't happen anymore. - -* Cleaned up fs/fileio.c, removed some unneeded dummy_inodes in unlink and - rmdir vfs functions. Now rely on incrementing i_count when deleting a - dir or file and release it when I iput the inode. Should work because when - a executable is running when it gets deleted this also happens. Also - renamed and cleanup the rest of the funtions. vfs_rename function should - now also work for a hardlinked file. - -* Changed vfs_chown functions to reset SUID and SGID on a chown because the - new kernel wants that. - -* Changed locking on I/O to use semaphores instead off the mnt_flags - used before. The old stuff could lock quota easily probably because - the operation wasn't atomic. This should now be fixed. - -* Fixed check_bdq to only give back a available blocks when the current - number of blocks are below the hardlimit. There was a bugfix for this - one so I applied that. - -* Changed has_quota funtion to use a static buffer instead of mallocing - one everytime it needs one. Hope this helps with the reported memory - leak on the rquotad. - -* Fixed some little bugs in dquot.c with the setting of the QF_OPENING - flag and not resseting it on failure of opening the quotafile. - -* Added changes needed because the VFS-layer changed to use iattr structs - for the notify_change function. - -* Fixed quota_transfer to work again with the new iattr structs, hopefully - it works ok now. It was brought to my attension that it wasn't working - the way it should in the old version. So I first checked out the fix that - I received, but that didn't solve the problem either so I fixed it myself. - -* Combined the new writeaccess stuff with the stuff I already had. Also - cleaned up vfs layer some more because of the use of the new - vfs_getwriteaccess and vfs_putwriteaccess functions. This also involved - the quotaon function that should now return a propper errno on failure and - not the standard EIO that it was in earlier versions. - -Changes in quota-tools from 1.32 to 1.33 - -* Ported the stuff back to the normal kernel to make a diff-file quite easy. - -* Fixed some typos that could trigger a kernel panic because the locking gets - killed when a quota is exeeded. - -* Fixed the stuff to work with the the new-tty-drivers. - -* This patches aren't that well tested on the machines I use because I use a - complete different kernel over here. But thats why this is called BETA - software. The bigfiles in this package are copies of the files used in my - kernel so some thing are tested more then others. - -* Fixed quotacheck not to memset the whole quota when there are no blocks - allocated by this user. - -Changes in quota-tools from 1.31 to 1.32 - -* Fixed diff-files, the are now made as unified diffs. - -* Checked the specifications for the rquota service, I was correct we only need - to respond to udp connections. - -Changes in quota-tools from 1.3 to 1.31 - -* Changed quotacheck program to stuff directories it encounters on a - directory stack and check them later on. This way there is at any - time one directory opened for reading. In the old situation it could - happen that more then one directory were open at the same time and - with nasty directory structures this could give to much open directories - at ones, leading to an error by the O.S. - -* Added some hooks for debugging the memory usage by the program, and make - the stdout used for the -v flag non-buffered for more speed. - -* Added variabele to mountstruct for flags, now we can mask when we are - opening or closeing a quotafile, when we are we may not give out - pointers with the dq_get function, otherwise we run into problems - later on. - -* Ok updated fs/*.c missed patch to fs/inode.c that solves a race condition. - -* Added vfs_rename function that takes care of renaming files on top of already - existing files. We were missing those ones, thanks to David Black for - reporting this. If there are still problems I will hear so and try to fix them - as soon as I can. - -Changes in quota-tools from 1.2 to 1.3 - -* We only reply to rpc_quota_request made to the udp port of the - rquotad, I just removed support for the TCP service, I don't - think it's needed to have the TCP service for just exchanging - about 40 bytes of data. Too much overhead setting up a TCP connection. - -* Changed vfs_write function within fileio.h to be a bit smarter. If - the fileposition + number of bytes to be written is less then the - current size of the file we should even bother checking it. And if - the number of wanted_blocks equals to 0 why even bother checking - the quota no changes are made anyway. - -* Rewrote the quota stuff to be much more flexible, we now use pointers - that are located within the inode for fast lookup. This is a bit more - to setup but is much faster when used over and over again. Its based - on the setup used for inode caching and is mostly rewritten code with - some extensions that were needed for the dquot structs. And of course - a lot extra because dquot aren't exactly inodes. - -* Ok file is called dquot.c again because it specific to diskquotas. If - we ever get process quota, we have to move the system-call interface to - the kernel dir. - -* splitted fileio header into fileio.c and fileio.h. Fileio.c contains - the code for all the functions, fileio.h contains the prototypes for - the functions when quota is enabled and defines to the the default - inode operations if it is disabled. - -* Moved device management code to the file fs/super.c and made it a - bit more general. The stuff now can also be used for other purposes. - For now it contains the devicename, the directory the filesystem is - mounted on, a pointer to the superblock and the quota expire times - and filepointers, this can be extended in the future and this can be - used for other purposes then only quota. Its in super.c because it - is related to mounting a filesystem. The rootfilesystem is a special - case for which I don't have a nice solution right now. - -* Cleaned up the file file_table.c and renamed it to file.c, otherwise - we should call inode.c inode_table.c etc. More is static now, the - file_table isn't accesable anymore from everywhere, and the functions - that need the info within file.c should be located within that file. - A good example is the function used by the vhangup code, it now calls - a routine within file.c and so we don't have export any data anymore. - -* changed decrement quota to reset the DQ_INODES and DQ_BLKS flag on - a decrement of a quota. It seems that we should bark again when one - goes over his quota after he removed something, ok should work this - way. - -* changed set_dqblk to set the grace period when a new usage is set - and one exceeds his softlimit by that operation. Better then just - setting the graceperiod when he allocates any more inodes or blocks. - Only can give surprises when logging in but who cares they can ask - the sysadmin to give them a hand with cleaning there dirs. - -* quotaoff is very simple now just reset all the pointers that point - to a dquot and trash the cache for all dquots that are related to - the device being turned of. This way the next time you put it on the - stuff get read again from disk and not from the cache. - -* changed most of the file structs to be a filepointer and request it - with get_empty_filp. This way we allocate it from the file_table which - is more the way it should be, Ok I know the dummy_inodes isn't that - nice either, but for that we don't have an other choice. Also it makes - live much easier this way. See the core dump stuff. - -* used some more constants for setting up the file pointers, this should - make it easier to read. So ok Edvard ? - -* rewrote most functions such as quota_alloc, quota_remove and quota_transfer - to use a for loop which counts from 0 to the number of quotas -1. This way - it should be easy to extend the quota stuff to maintain even more types of - quota. (At the moment I can think of one more, what about quotas for a - processgroups) :-) - -* rewrote quota_transfer, its still the most complicated function of the - three manipulate functions, but it looks much cleaner then the one we - had. - -* changed the system-call interface again this should be the last time, - hope to have it made more intelligent now, most of the calls are quite - the same, so just set flags and call one functions. Saves some functions. - -* And more cleanups to the vfs-layer. Did a kind of indent on all the sources - in the fs-dir by hand. All references to file pointers are now done by a - variable that is called filp. This is done to be a bit more consistent all - through the code. Before is was called file, filp, f etc. - -* As of the indent I changed all tabs to be 3 spaces this makes it a bit - larger but much better to read. - -* Someone reported that there are problems with fstab when you use something - like usrquota=/usr/adm/quota.user,grpquota=/usr/adm/quota.grp. I don't know - if the problems is also in the new libs, if so I have a replacement here for - the entire mntent stuff. I wrote this way back and it work ok so if you - have problems mail me and I will send you the sources. For now I didn't - include it yet in the standard mainline distribution. - -* Ok added hooks to the fork code forgot that, ok this has cost me some - searching. We must doe an vfs_open_filp when a process forks and the - filepointers are copied or incremented. - -Changes in quota-tools from 1.1 to 1.2 - -* Changed repquota.c to display at max 8 chars of username. - -* Changed rquota_svc.c and rquota_server.c to handle both version 1 - and 2 requests. Now we should be able to communicate with sun systems. - SUN systems send out version 1 request which we can handle now. - -* Changed quota.c to first send out a version 2 rquota request and if - that fails to try it with a version 1 request. Now we should be able to - query a rquotad on a sun-server exporting a NFS disk. - -* Changed kernel diffs, now use a header file fileio.h with vfs functions - for writing, truncating, creating files/nodes. This cleaned up the - kernel diffs quite a bit. (Should have done this way back, but it is - done now) - -* Fixed some small bugs with handling graceperiods again. Changed the code - in the systemcall interface all bugs should be gone now there. - -* Wrote a new program warnquota. No manpage yet but it has no flags so - that's simple. You can run this from your crontab just like you run - quotacheck every night from cron. This program mails a message to all - users that violated the quota system. - -* Changed fileio.h with unlinking and rmdir to make a copy of the inode. - Hope this fixes some problems we have seen with xiafs. It isn't to bad - either should have been this way from the beginning. A pointer to a - inode that is removed is a bit to tricky a copy in local memory is much - saver. - -* Changed fs/quota.c to not check if the quotafile is on the same device - as the device for which it contains info. Found that in a document but - it's silly and so it's removed now. Who cares where you put it as long - the kernel can find it and it is the right format. - (Now something like usrquota="/var/adm/quota_src.user" should work :-)) - -* Changed edquota behaviour with -p flag. It now copies the current - usage to the new situation. - -Changes in quota-tools from 1.0 to 1.1 - -* Moved check to test on quota on a certain filesystem to seperate file - hasquota.c - -* Changed hasquota.c to use quotafile given in fstab file instead - of the default name of a quotafile. We now can define ourself where - to put our quotafile. Something like "usrquota=/usr/adm/quotasrc.user" - -* Changed graceperiod counting was doing it the wrong way around. Now we - add the expiretime to the current time and that is the grace-period a user - has before we see a softlimit as a hardlimit. - -* Changed allocation when not enough blocks can be allocated from ones quota. - Now you get as many blocks as you can affort yourself and not as in the - earlier version, nothing. This was a bit of a bitch to tackle but it seems - to work ok now for regular files and core-files. - -* Changed the quota.h file to include a prototype for a new function - blocks_to_isize that calculates the maximum isize for a file when allocating - less blocks than requested. Also included macro's for min() and max(). - -* Added rquotad program for own convinience, this was build from scratch with - only the rquota.x file. It seems to work quite nice between LINUX machines - don't have the resources to test it with other then LINUX machines. - We probably need a new version number for this type of rquota. - Something like rquota version 2 or something like that. - -* Changed quota program to use a rpc-call to the rquotad on one of you - disk server machines. See #ifdef RPC in quota.c. Use small timeout because - I don't wanna wait to long when a machine is down. Increase it when you have - problems with slow hosts. - -* Rewrite of quotacheck program. This one is much faster, about 60%. Thanks - to Edvard for this big improvement. - -* Changed namei.c to iput the inode of a dir when doing a remove of a dir. - I never had problems with it but it seems that ext2 doesn't care to much when - you unlink a dir while you have the inode still open. Fixed it and it works - now ok also on xiafs which had problems with it, and of course the fragment - should have give this error because you have to iput the dir before you remove - it. - -* Changed source of quotacheck to create new quotafile with at least the - gracetimes. Now there should never be a problem when turning on quota with - the quotactl systemcall after one has run quotacheck to create the correct - quotafiles. - -* Changed code of quota.c to read MOUNTED(mtab) instead of FSTAB(fstab) when - showing quotainfo. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..f113562 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,262 @@ +ACLOCAL_AMFLAGS = -I m4 + +docdir = $(datadir)/doc/@PACKAGE@ +doc_DATA = \ + README.mailserver \ + README.ldap-support \ + doc/quotadoc.sgml \ + doc/quotas.ms \ + doc/quotas.preformated \ + doc/quotas-1.eps + +rpcsvcdir = $(includedir)/rpcsvc +rpcsvc_DATA = \ + rquota.h \ + rquota.x + +sysconf_DATA = \ + warnquota.conf \ + quotatab \ + quotagrpadmins + +man_MANS = \ + convertquota.8 \ + edquota.8 \ + quotagrpadmins.5 \ + quotacheck.8 \ + quota_nld.8 \ + quotaon.8 \ + quotastats.8 \ + quotasync.1 \ + quotatab.5 \ + quota.1 \ + quot.8 \ + repquota.8 \ + rpc.rquotad.8 \ + rquota.3 \ + setquota.8 \ + warnquota.conf.5 \ + warnquota.8 \ + xqmstats.8 + +CLEANFILES = rquota.c rquota.h rquota_clnt.c + +SUBDIRS = po + +EXTRA_DIST = \ + $(sysconf_DATA) \ + $(doc_DATA) \ + $(man_MANS) \ + $(rpcsvc_DATA) \ + autogen.sh + +noinst_LIBRARIES = \ + libquota.a \ + librpcclient.a + +librpcclient_a_SOURCES = \ + rquota.c \ + rquota.h \ + rquota_client.c \ + rquota_client.h \ + rquota_clnt.c +librpcclient_a_CFLAGS = -Wno-unused + +if WITH_RPC +RPCLIBS = librpcclient.a +endif + +libquota_a_SOURCES = \ + dqblk_rpc.h \ + dqblk_v1.h \ + dqblk_v2.h \ + dqblk_xfs.h \ + quotaio.c \ + quotaio.h \ + quotaio_v1.c \ + quotaio_v1.h \ + quotaio_v2.c \ + quotaio_v2.h \ + quotaio_tree.c \ + quotaio_rpc.c \ + quotaio_xfs.c \ + quotaio_xfs.h \ + quotaio_meta.c \ + quotaio_generic.c \ + quotaio_generic.h \ + bylabel.c \ + bylabel.h \ + common.c \ + config.h \ + common.h \ + quotasys.c \ + quotasys.h \ + mntopt.h \ + pot.c \ + pot.h +libquota_a_LIBADD = \ + $(RPCLIBS) + +bin_PROGRAMS = \ + quota \ + quotasync + +sbin_PROGRAMS = \ + quotacheck \ + quotaon \ + quot \ + repquota \ + warnquota \ + quotastats \ + xqmstats \ + edquota \ + setquota \ + convertquota \ + rpc.rquotad +if WITH_NETLINK +sbin_PROGRAMS += \ + quota_nld +endif + +quotaon_SOURCES = \ + quotaon.c \ + quotaon.h \ + quotaon_xfs.c +quotaon_LDADD = \ + libquota.a \ + $(RPCLIBS) + +quotacheck_SOURCES = \ + quotacheck.c \ + quotacheck.h \ + quotacheck_v1.c \ + quotacheck_v2.c \ + quota_tree.h \ + quotaops.c +quotacheck_CFLAGS = \ + $(EXT2FS_CFLAGS) \ + $(COM_ERR_CFLAGS) +quotacheck_LDADD = \ + libquota.a \ + $(EXT2FS_LIBS) \ + $(COM_ERR_LIBS) \ + $(RPCLIBS) + +quota_SOURCES = \ + quota.c \ + quota.h \ + quotaops.c \ + quotaops.h +quota_LDADD = \ + libquota.a \ + $(RPCLIBS) + +quotasync_SOURCES = quotasync.c +quotasync_LDADD = \ + libquota.a \ + $(RPCLIBS) + +quot_SOURCES = \ + quot.c \ + quot.h +quot_LDADD = \ + libquota.a \ + $(RPCLIBS) + +repquota_SOURCES = repquota.c +repquota_LDADD = \ + libquota.a \ + $(RPCLIBS) + +warnquota_SOURCES = warnquota.c +warnquota_LDADD = \ + libquota.a \ + $(LDAP_LIBS) \ + $(RPCLIBS) + +quotastats_SOURCES = \ + quotastats.c \ + common.c \ + common.h \ + pot.c \ + pot.h + +xqmstats_SOURCES = \ + xqmstats.c \ + common.c \ + common.h \ + pot.c \ + pot.h + +edquota_SOURCES = \ + edquota.c \ + quotaops.c \ + quotaops.h +edquota_LDADD = \ + libquota.a \ + $(RPCLIBS) + +setquota_SOURCES = \ + setquota.c \ + quotaops.c \ + quotaops.h +setquota_LDADD = \ + libquota.a \ + $(RPCLIBS) + +convertquota_SOURCES = convertquota.c +convertquota_LDADD = \ + libquota.a \ + $(RPCLIBS) + +rpc_rquotad_SOURCES = \ + rquota_server.c \ + rquota_svc.c \ + svc_socket.c +rpc_rquotad_LDADD = \ + libquota.a \ + $(WRAP_LIBS) \ + $(RPCLIBS) + +quota_nld_SOURCES = quota_nld.c +quota_nld_CFLAGS = \ + $(DBUS_CFLAGS) \ + $(LIBNL3_CFLAGS) +quota_nld_LDADD = \ + libquota.a + $(DBUS_LIBS) \ + $(LIBNL3_LIBS) + +# ------------------ +# Rpcgen conversions +# ------------------ +%.h: %.x + @rm -f $@ + @$(RPCGEN) -h -o $@ $^ + +%.c: %.x + @rm -f $@ + @$(RPCGEN) -c -o $@ $^ + +rquota_clnt.c: rquota.x + @rm -f $@ + @$(RPCGEN) -l -o $@ $< + +# -------- +# Quotaoff +# -------- + +install-exec-hook: + @$(LN_S) quotaon $(DESTDIR)$(sbindir)/quotaoff + +install-data-hook: + @$(LN_S) quotaon.8 $(DESTDIR)$(mandir)/man8/quotaoff.8 + +# ------------- +# Extra options +# ------------- +distclean-local: + rm -rf *.cache *~ + +dist-hook: + git log --date=short --pretty="format:@%cd %an <%ae> [%H]%n%n%s%n%n%e%b" | sed -e "s|^\([^@]\)|\t\1|" -e "s|^@||" >$(distdir)/ChangeLog diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 7d25930..0000000 --- a/Makefile.in +++ /dev/null @@ -1,165 +0,0 @@ -PROGS = quotacheck quotaon quota quot repquota warnquota quotastats xqmstats edquota setquota convertquota rpc.rquotad quotasync @QUOTA_NETLINK_PROG@ -SOURCES = bylabel.c common.c convertquota.c edquota.c pot.c quot.c quota.c quotacheck.c quotacheck_v1.c quotacheck_v2.c quotaio.c quotaio_rpc.c quotaio_v1.c quotaio_v2.c quotaio_tree.c quotaio_xfs.c quotaio_meta.c quotaio_generic.c quotaon.c quotaon_xfs.c quotaops.c quotastats.c quotasys.c repquota.c rquota_client.c rquota_server.c rquota_svc.c setquota.c warnquota.c xqmstats.c svc_socket.c quotasync.c -CFLAGS = @CFLAGS@ -D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -CPPFLAGS = @CPPFLAGS@ -EXT2LIBS = @EXT2LIBS@ -NETLINKLIBS = @NETLINKLIBS@ -RPCSRC = rquota.h rquota_xdr.c rquota_clnt.c -LIBS = @LIBS@ -LDFLAGS = @LDFLAGS@ -LDAPLIBS = @LDAPLIBS@ - -INSTALL = @INSTALL@ -STRIP = @STRIP@ -LN = ln -sf -ROOTDIR = -SUPER_OWNER = root -BIN_OWNER = bin -BIN_GROUP = bin -DEF_SUID_MODE = 4511 -DEF_BIN_MODE = 555 -DEF_SBIN_MODE = 555 -DEF_MAN_MODE = 444 -DEF_CONF_MODE = 644 -RPCGEN = rpcgen - -prefix = @prefix@ -bindir = $(prefix)/bin -sbindir = $(prefix)/sbin -root_sbindir = @ROOTSBIN@ -mandir = @mandir@ -includedir = $(prefix)/include -locale_dir = $(prefix)/share/locale -sysconfdir = @sysconfdir@ -datarootdir = @datarootdir@ - -RPCCLNTOBJS = rquota_xdr.o rquota_client.o rquota_clnt.o -IOOBJS = quotaio.o quotaio_v1.o quotaio_v2.o quotaio_tree.o quotaio_rpc.o quotaio_xfs.o quotaio_meta.o quotaio_generic.o -IOOBJS += $(RPCCLNTOBJS) -LIBOBJS = bylabel.o common.o quotasys.o pot.o $(IOOBJS) -LIBOBJS += @LIBMALLOC@ - -.PHONY: all clean clobber realclean pot mo inst_mo - -.%.d: %.c - set -e; $(CC) -MM -MG $(CPPFLAGS) $(CFLAGS) $< | \ - sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ - [ -s $@ ] || rm -f $@ - -all: $(PROGS) - -clean: - -rm -f core *.o .*.d - -clobber: clean - -rm -f $(PROGS) Makefile config.status config.cache config.log config.h - -realclean: clobber - -rm -f $(RPCSRC) po/*.mo *.rej *.orig *~ - -pot: - xgettext -k_ -kN_ -d pot *.c *.h - -mo: po - for n in $(shell ls po/*.po); do \ - msgfmt -o po/`basename $$n .po`.mo $$n; \ - done - -inst_mo: mo - mkdir -p $(ROOTDIR)$(locale_dir) - for n in $(shell ls po/*.po | sed 's/\.po/\.mo/'); do \ - l=`basename $$n .mo`; \ - $(INSTALL) -m 755 -d $(ROOTDIR)$(locale_dir)/$$l; \ - $(INSTALL) -m 755 -d $(ROOTDIR)$(locale_dir)/$$l/LC_MESSAGES; \ - $(INSTALL) -m 644 $$n $(ROOTDIR)$(locale_dir)/$$l/LC_MESSAGES/quota.mo; \ - done - -install: all @INSTMO@ - -mkdir -p $(ROOTDIR)$(sbindir) - -mkdir -p $(ROOTDIR)$(bindir) - -mkdir -p $(ROOTDIR)$(root_sbindir) - -$(INSTALL) $(STRIP) -m $(DEF_SBIN_MODE) \ - quotacheck quotaon $(ROOTDIR)$(root_sbindir) - -$(LN) quotaon $(ROOTDIR)$(root_sbindir)/quotaoff - -$(INSTALL) $(STRIP) -m $(DEF_SBIN_MODE) \ - edquota repquota warnquota quotastats setquota quot xqmstats \ - convertquota $(ROOTDIR)$(sbindir) - -mkdir -p $(ROOTDIR)$(sysconfdir) - -$(INSTALL) -m $(DEF_CONF_MODE) warnquota.conf $(ROOTDIR)$(sysconfdir) - -$(INSTALL) -m $(DEF_CONF_MODE) quotatab $(ROOTDIR)$(sysconfdir) - -$(INSTALL) -m $(DEF_CONF_MODE) quotagrpadmins $(ROOTDIR)$(sysconfdir) - -mkdir -p $(ROOTDIR)$(mandir)/man1 - -mkdir -p $(ROOTDIR)$(mandir)/man3 - -mkdir -p $(ROOTDIR)$(mandir)/man5 - -mkdir -p $(ROOTDIR)$(mandir)/man8 - -$(INSTALL) -m 755 -d $(ROOTDIR)$(includedir)/rpcsvc - -$(INSTALL) -m 644 rquota.h rquota.x $(ROOTDIR)$(includedir)/rpcsvc - -$(INSTALL) $(STRIP) -m $(DEF_SBIN_MODE) quota quotasync $(ROOTDIR)$(bindir) - -$(INSTALL) $(STRIP) -m $(DEF_SBIN_MODE) rpc.rquotad $(ROOTDIR)$(sbindir) -ifneq ($(NETLINKLIBS),) - -$(INSTALL) $(STRIP) -m $(DEF_SBIN_MODE) quota_nld $(ROOTDIR)$(sbindir) -endif - -$(INSTALL) -m $(DEF_MAN_MODE) *.1 $(ROOTDIR)$(mandir)/man1 - -$(INSTALL) -m $(DEF_MAN_MODE) *.3 $(ROOTDIR)$(mandir)/man3 - -$(INSTALL) -m $(DEF_MAN_MODE) *.5 $(ROOTDIR)$(mandir)/man5 - -$(INSTALL) -m $(DEF_MAN_MODE) *.8 $(ROOTDIR)$(mandir)/man8 - -quotaon: quotaon.o quotaon_xfs.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -quotacheck: quotacheck.o quotacheck_v1.o quotacheck_v2.o quotaops.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(EXT2LIBS) - -quota: quota.o quotaops.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -quotasync: quotasync.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -quot: quot.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -repquota: repquota.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -warnquota: warnquota.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDAPLIBS) - -quotastats: quotastats.o common.o pot.o - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -xqmstats: xqmstats.o common.o pot.o - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -edquota: edquota.o quotaops.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -setquota: setquota.o quotaops.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -convertquota: convertquota.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ - -rpc.rquotad: rquota_server.o rquota_svc.o svc_socket.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -ifneq ($(NETLINKLIBS),) -quota_nld: quota_nld.o $(LIBOBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(NETLINKLIBS) -endif - -pot.o: pot.c pot.h - -rquota.h: rquota.x - $(RPCGEN) -h -o $@ $< - -rquota_xdr.c: rquota.x - $(RPCGEN) -c -o $@ $< - -rquota_xdr.o: rquota_xdr.c rquota.h - $(CC) $(CFLAGS) -Wno-unused -c $< - -rquota_clnt.c: rquota.x - $(RPCGEN) -l -o $@ $< - --include $(SOURCES:%.c=.%.d) diff --git a/README.gettext b/README.gettext deleted file mode 100644 index 6bcb14f..0000000 --- a/README.gettext +++ /dev/null @@ -1,21 +0,0 @@ -If you want to generate new po file: "make pot" and look for a file named -pot.po. To generate mo files from po files: "make mo", it's also done when -you "make install", if you want to install only mo files ( no programs ) -"make inst_mo", mo files will be copied to: -/usr/share/locale/'languages names'/LC_MESSAGES/quota.mo. - -warnquota -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -this program was modifiated to be more configurable - you can now specify -new warning message ( also sender, cc, etc. ) without recompiling the -program. all you need is to edit pot.po ( make pot ), you will find -in it mail message, and etc. - create new strings, make mo with msgfmt, and copy -mo file to /usr/share/locale/'lang'/LC_MESSAGES/quota.mo. now you have new -warning mail message. - -gettext support was added by Paul Niewiadomski <lilo@free.poltronic.net>, any -questions, suggestions are welcome. - -thanks to -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Roman_Kaminski@saba.com.pl
\ No newline at end of file diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..3ebda42 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,2 @@ +#!/bin/sh +autoreconf -fvi @@ -123,5 +123,5 @@ void version(void) { printf(_("Quota utilities version %s.\n"), PACKAGE_VERSION); printf(_("Compiled with:%s\n"), COMPILE_OPTS); - printf(_("Bugs to %s\n"), MY_EMAIL); + printf(_("Bugs to %s\n"), PACKAGE_BUGREPORT); } @@ -13,8 +13,6 @@ # endif #endif -#define MY_EMAIL "jack@suse.cz" - /* Name of current program for error reporting */ extern char *progname; diff --git a/config.h.in b/config.h.in index 97e23f1..ec8ea74 100644 --- a/config.h.in +++ b/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ /* File with mounted filesystems */ #undef ALT_MTAB @@ -9,18 +9,35 @@ /* Configuration options */ #undef COMPILE_OPTS +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + /* Scanning of ext? filesystems using e2fslib */ #undef EXT2_DIRECT +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + /* Header files for e2fslib */ #undef HAVE_EXT2_INCLUDE /* ext2fs.h defines ext2_ino_t */ #undef HAVE_EXT2_INO_T +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function. */ +#undef HAVE_ICONV + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `ldap' library (-lldap). */ +#undef HAVE_LIBLDAP + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H @@ -48,12 +65,15 @@ /* Use hosts.allow and hosts.deny for access checking of rpc.rquotad */ #undef HOSTS_ACCESS -/* ldap_perror function not declared */ -#undef NEED_LDAP_PERROR +/* Name of package */ +#undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT +/* Locale-specific data directory */ +#undef PACKAGE_LOCALE_DIR + /* Define to the full name of this package. */ #undef PACKAGE_NAME @@ -66,7 +86,7 @@ /* Define to the home page for this package. */ #undef PACKAGE_URL -/* Version of quota tools */ +/* Define to the version of this package. */ #undef PACKAGE_VERSION /* Support for RPC */ @@ -81,12 +101,12 @@ /* Use gettext to translate messages */ #undef USE_GETTEXT -/* LDAP 2.3 or newer installed */ -#undef USE_LDAP_23 - /* Lookup email address using LDAP */ #undef USE_LDAP_MAIL_LOOKUP +/* Version number of package */ +#undef VERSION + /* Assume quota mount options for root filesystem */ #undef XFS_ROOTHACK diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a93cd9d --- /dev/null +++ b/configure.ac @@ -0,0 +1,273 @@ +# Process this file with autoconf to create configure. + +AC_PREREQ([2.60]) + +# ==================== +# Version informations +# ==================== +m4_define([quota_version_major],[4]) +m4_define([quota_version_minor],[1]) +m4_define([quota_version_micro],[0]) +m4_define([quota_version],[quota_version_major.quota_version_minor.quota_version_micro]) + +# ============= +# Automake init +# ============= +AC_INIT([quota],[quota_version], [jack@suse.cz]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([1.11 foreign dist-xz dist-bzip2]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_LANG([C]) + +# =========================== +# Find required base packages +# =========================== +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) +AC_PROG_CC([cc gcc clang]) +AC_PROG_RANLIB +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET +PKG_PROG_PKG_CONFIG([0.20]) + +AC_C_CONST +AC_C_INLINE + +# =============== +# Gettext support +# =============== +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.12.1]) + +AS_IF([test "$enable_nls" != "no"], [ + enable_nls="yes" + AC_DEFINE([USE_GETTEXT], 1, [Use gettext to translate messages]) +]) +AS_IF([test "x${prefix}" = "xNONE"], [ + AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/share/locale", [Locale-specific data directory]) +], [ + AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/share/locale", [Locale-specific data directory]) +]) + + +# ================ +# Check for cflags +# ================ +CFLAGS="-D_GNU_SOURCE -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +AC_ARG_ENABLE([werror], + [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, useful for development])], + [enable_werror="$enableval"], + [enable_werror=no] +) +AS_IF([test x"$enable_werror" != "xno"], [ + CFLAGS="$CFLAGS -Werror" +]) + +# ========= +# Find ldap +# ========= +AC_ARG_ENABLE([ldapmail], + [AS_HELP_STRING([--disable-ldapmail], [Do not use the ldap mail address lookups.])], + [enable_ldapmail="$enableval"], + [enable_ldapmail=auto] +) +AS_IF([test "x$enable_ldapmail" != "xno"], [ + build_ldap="yes" + AC_CHECK_LIB([ldap], [ldap_initialize], [], [ + build_ldap=no + AS_IF([test "x$enable_ldapmail" = "xyes"], [ + AC_MSG_ERROR([LDAP support required but library not found.]); + ]) + ]) + AS_IF([test "x$build_ldap" = "xyes"], [ + LDAP_LIBS="-lldap -llber" + AC_DEFINE([USE_LDAP_MAIL_LOOKUP], 1, [Lookup email address using LDAP]) + COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP" + ]) +]) +AC_SUBST(LDAP_LIBS) + +# =============== +# Find ext2direct +# =============== +AC_ARG_ENABLE([ext2direct], + [AS_HELP_STRING([--disable-ext2direct], [Disable scanning of EXT2/EXT3 filesystem using e2fslib.])], + [enable_ext2direct="$enableval"], + [enable_ext2direct=auto] +) +AS_IF([test "x$enable_ext2direct" != "xno"], [ + build_ext2direct="yes" + PKG_CHECK_MODULES([COM_ERR],[com_err], [], [ + build_ext2direct="no" + AS_IF([test "x$enable_ext2direct" = "xyes"], [ + AC_MSG_ERROR([Ext2direct requested but required com_err library not found]) + ]) + ]) + PKG_CHECK_MODULES([EXT2FS],[ext2fs], [], [ + build_ext2direct="no" + AS_IF([test "x$enable_ext2direct" = "xyes"], [ + AC_MSG_ERROR([Ext2direct requested but required ext2fs library not found]) + ]) + ]) + AS_IF([test "x$build_ext2direct" != "xno"], [ + AC_DEFINE([HAVE_EXT2_INO_T], 1, [ext2fs.h defines ext2_ino_t]) + AC_DEFINE([HAVE_EXT2_INCLUDE], 1, [Header files for e2fslib]) + AC_DEFINE([EXT2_DIRECT], 1, [Scanning of ext? filesystems using e2fslib]) + COMPILE_OPTS="$COMPILE_OPTS EXT2_DIRECT" + ]) +]) +AC_SUBST(EXT2FS_CFLAGS) +AC_SUBST(EXT2FS_LIBS) +AC_SUBST(COM_ERR_CFLAGS) +AC_SUBST(COM_ERR_LIBS) + +# ================== +# Netlink enablement +# ================== +AC_ARG_ENABLE([netlink], + [AS_HELP_STRING([--disable-netlink], [Do not compile daemon receiving quota messages via netlink.])], + [enable_netlink="$enableval"], + [enable_netlink=auto] +) +AS_IF([test "x$enable_netlink" != "xno"], [ + build_netlink="yes" + PKG_CHECK_MODULES([DBUS], [dbus-1], [], [ + build_netlink="no" + AS_IF([test "x$enable_netlink" = "xyes"] , [ + AC_MSG_ERROR([Required dbus libraries for quota netlink daemon not found.]) + ]) + ]) + PKG_CHECK_MODULES([LIBNL3], [libnl-3.0 >= 3.1 libnl-genl-3.0], [], [ + build_netlink="no" + AS_IF([test "x$enable_netlink" = "xyes"] , [ + AC_MSG_ERROR([Required libnl3 libraries for quota netlink daemon not found.]) + ]) + ]) +]) +AM_CONDITIONAL([WITH_NETLINK], [test "x$build_netlink" != "xno"]) +AC_SUBST(DBUS_CFLAGS) +AC_SUBST(DBUS_LIBS) +AC_SUBST(LIBNL3_CFLAGS) +AC_SUBST(LIBNL3_LIBS) + +# ============= +# libwrap usage +# ============= +AC_ARG_ENABLE([libwrap], + [AS_HELP_STRING([--disable-libwrap], [Do not use hosts.* for access checking on rpc.quotad.])], + [enable_libwrap="$enableval"], + [enable_libwrap=auto] +) +AS_IF([test "x$enable_libwrap" != "xno"], [ + build_libwrap="yes" + AC_CHECK_HEADER([tcpd.h],[], [ + build_libwrap="no" + AS_IF([test "x$enable_libwrap" = "xyes"] , [ + AC_MSG_ERROR([tcpd.h not found and requested]) + ], [ + AC_MSG_WARN([tcpd.h not found]) + ]) + ]) + AS_IF([test "x$build_libwrap" != "xno"], [ + WRAP_LIBS="-lwrap" + AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad]) + COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS" + ]) +]) +AC_SUBST(WRAP_LIBS) + +# ===================== +# various build options +# ===================== +AC_ARG_ENABLE([rpc], + [AS_HELP_STRING([--disable-rpc], [Disable RPC support])], + [enable_rpc="$enableval"], + [enable_rpc=auto] +) +AS_IF([test x"$enable_rpc" != "xno"], [ + AC_PATH_PROG([RPCGEN], [rpcgen]) + AC_ARG_VAR([RPCGEN], [RPC compiler command]) + build_rpc="yes" + AS_IF([test x"$RPCGEN" = "x"], [ + AS_IF([test x"$enable_rpc" = "xyes"], [ + AC_MSG_ERROR([could not locate required rpcgen]) + ], [ + AC_MSG_WARN([rpcgen not found]) + ]) + build_rpc="no" + ]) + + AS_IF([test x"$build_rpc" != "xno"], [ + AC_DEFINE([RPC], 1, [Support for RPC]) + COMPILE_OPTS="$COMPILE_OPTS RPC" + ]) +]) +AM_CONDITIONAL([WITH_RPC], [test x"$build_rpc" != "xno"]) + +AC_ARG_ENABLE([rpcsetquota], + [AS_HELP_STRING([--enable-rpcsetquota], [Use RPC for setting quotas])], + [enable_rpcsetquota="$enableval"], + [enable_rpcsetquota=no] +) +AS_IF([test x"$enable_rpcsetquota" = "xyes"], [ + AC_DEFINE([RPC_SETQUOTA], 1, [Allow setting of quotas over RPC]) + COMPILE_OPTS="$COMPILE_OPTS RPC_SETQUOTA" +]) + +AC_ARG_ENABLE([xfs-roothack], + [AS_HELP_STRING([--enable-xfs-roothack], [Support old XFS root filesystems.])], + [enable_xfs_roothack="$enableval"], + [enable_xfs_roothack=no] +) +AS_IF([test x"$enable_xfs_roothack" = "xyes"], [ + AC_DEFINE([XFS_ROOTHACK], 1, [Assume quota mount options for root filesystem]) + COMPILE_OPTS="$COMPILE_OPTS XFS_ROOTHACK" +]) + +AC_ARG_ENABLE([bsd-behaviour], + [AS_HELP_STRING([--disable-bsd-behaviour], [Mimic BSD behaviour])], + [enable_bsd_behaviour="$enableval"], + [enable_bsd_behaviour=yes] +) +AS_IF([test x"$enable_bsd_behaviour" != "xno"], [ + AC_DEFINE([BSD_BEHAVIOUR], 1, [Check rights to query / set quotas before calling quotactl]) + COMPILE_OPTS="$COMPILE_OPTS BSD_BEHAVIOUR" +]) + +AC_ARG_WITH([proc-mounts], + [AS_HELP_STRING([--with-proc-mounts], [Use alternate mtab file instead of /proc/mounts])], + [with_proc_mounts="$withval"], + [with_proc_mounts="/proc/mounts"] +) +AS_IF([test "$with_proc_mounts" != "no"], [ + AC_DEFINE_UNQUOTED([ALT_MTAB], ["$with_proc_mounts"], [File with mounted filesystems]) +]) + +AC_DEFINE_UNQUOTED([COMPILE_OPTS], ["$COMPILE_OPTS"], [Configuration options]) + +AC_CONFIG_FILES([ +Makefile +po/Makefile.in +]) +AC_OUTPUT + +# ============================================== +# Display final informations about configuration +# ============================================== +AC_MSG_NOTICE([ +============================================================================== +Build configuration: + bsd-behaviour: ${enable_bsd_behaviour} + ext2-direct: ${build_ext2direct} + ldap-mail: ${build_ldap} + libwrap: ${build_libwrap} + netlink: ${build_netlink} + nls: ${enable_nls} + proc-mounts: ${with_proc_mounts} + rpc: ${build_rpc} + rpcsetquota: ${enable_rpcsetquota} + xfs-roothack: ${enable_xfs_roothack} + werror: ${enable_werror} +============================================================================== +]) diff --git a/configure.in b/configure.in deleted file mode 100644 index a83c1e1..0000000 --- a/configure.in +++ /dev/null @@ -1,253 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(quota.c) -AC_PREREQ(2.50) -AC_CONFIG_HEADERS([config.h]) - -dnl Checks for programs. -AC_PROG_CC -AC_HEADER_STDC -AC_PROG_INSTALL - -dnl Check for compiler options -AC_ARG_ENABLE(static-link, [ --enable-static-link=[yes/no] Link all binaries statically [default=no].], - , - enable_static_link="no") -if test "x$enable_static_link" != "xyes"; then - AC_MSG_CHECKING(whether compiler supports PIE) - oldCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fPIE" - oldLDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -pie" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]])], compilepie="yes") - if test "x$compilepie" != "xyes"; then - CFLAGS="$oldCFLAGS" - LDFLAGS="$oldLDFLAGS" - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(yes) - fi -else - CFLAGS="$CFLAGS -static" - LDFLAGS="$LDFLAGS -static" -fi - -dnl Strip binaries before installation -AC_ARG_ENABLE(strip-binaries, [ --enable-strip-binaries=[yes/no] Strip binaries while installing them [default=yes].], - , - enable_strip="yes") -if test "x$enable_strip" = "xyes"; then - STRIP="-s" -else - STRIP="" -fi - -dnl Checks for libraries. -AC_ARG_ENABLE(ldapmail, [ --enable-ldapmail=[yes/no/try] Enable ldap mail address lookups [default=no].], - , - enable_ldapmail="no") -if test "x$enable_ldapmail" != "xno"; then - have_new_ldap="no" - have_old_ldap="no" - AC_CHECK_LIB(ldap, ldap_initialize, have_new_ldap="yes", AC_CHECK_LIB(ldap, ldap_init, have_old_ldap="yes")) - if test "x$have_new_ldap" != "xno" -o "x$have_old_ldap" != "xno"; then - LDAPLIBS="-L/usr/lib -lldap -llber" - AC_DEFINE([USE_LDAP_MAIL_LOOKUP], 1, [Lookup email address using LDAP]) - COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP" - if test "x$have_new_ldap" = "xyes"; then - AC_DEFINE([USE_LDAP_23], 1, [LDAP 2.3 or newer installed]) - AC_CHECK_DECL(ldap_perror, , - AC_DEFINE([NEED_LDAP_PERROR], 1, [ldap_perror function not declared]), - [#include <ldap.h>]) - fi - else - if test "x$enable_ldapmail" = "xyes"; then - AC_MSG_ERROR([LDAP support required but library not found.]); - fi - fi -fi -AC_SUBST(LDAPLIBS) - - -AC_CHECK_HEADER(ext2fs/ext2fs.h,ext2fshead="yes") -if test "x$ext2fshead" = "xyes"; then - AC_DEFINE([HAVE_EXT2_INCLUDE], 1, [Header files for e2fslib]) - AC_MSG_CHECKING([for ext2_ino_t]) - have_ext2_ino_t="no" - AC_EGREP_HEADER(ext2_ino_t, ext2fs/ext2fs.h, have_ext2_ino_t="yes") - if test "x$have_ext2_ino_t" != "xyes"; then - AC_MSG_RESULT([not found]) - else - AC_MSG_RESULT([found]) - AC_DEFINE([HAVE_EXT2_INO_T], 1, [ext2fs.h defines ext2_ino_t]) - fi -fi - -AC_ARG_ENABLE(ext2direct, - [ --enable-ext2direct=[yes/no/try] Enable scanning of EXT2/EXT3 filesystem using e2fslib [default=try].], - , - enable_ext2direct="try") -if test "x$enable_ext2direct" != "xno"; then - AC_CHECK_LIB(com_err, com_err, EXT2LIBS="-lcom_err $EXT2LIBS") - AC_CHECK_LIB(ext2fs, ext2fs_initialize, EXT2LIBS="-lext2fs $EXT2LIBS",, "-lcom_err") - if test "${ac_cv_lib_com_err_com_err}" != "yes" -o "${ac_cv_lib_ext2fs_ext2fs_initialize}" != "yes"; then - if test "x$enable_ext2direct" = "xyes"; then - AC_MSG_ERROR([Ext2 direct support required but libraries not found.]) - else - AC_MSG_WARN([Ext2 direct support won't be compiled. Libraries not found.]) - fi - enable_ext2direct="no" - EXT2LIBS="" - else - if test "x$ext2fshead" != "xyes"; then - if test "x$enable_ext2direct" = "xyes"; then - AC_MSG_ERROR([Ext2 direct support required but header files not found.]) - else - AC_MSG_WARN([Ext2 direct support won't be compiled. Header files not found.]) - fi - enable_ext2direct="no" - EXT2LIBS="" - else - enable_ext2direct="yes" - fi - fi - if test "x$enable_ext2direct" = "xyes"; then - AC_DEFINE([EXT2_DIRECT], 1, [Scanning of ext? filesystems using e2fslib]) - COMPILE_OPTS="$COMPILE_OPTS EXT2_DIRECT" - fi -fi -AC_SUBST(EXT2LIBS) - -AC_ARG_ENABLE(netlink, - [ --enable-netlink=[yes/no/try] Compile daemon receiving quota messages via netlink [default=no].], - , - enable_netlink="no") -if test "x$enable_netlink" != "xno"; then - PKG_CHECK_MODULES([DBUS], [dbus-1]) - - PKG_CHECK_MODULES([LIBNL3], [libnl-3.0 >= 3.1 libnl-genl-3.0]) - - if test -z "$LIBNL3_LIBS" -o -z "$DBUS_LIBS"; then - if test "x$enable_netlink" = "xyes"; then - AC_MSG_ERROR([Required libraries for quota netlink daemon not found.]) - else - AC_MSG_WARN([Quota netlink daemon won't be compiled. Required libraries not found.]) - fi - enable_netlink="no" - NETLINKLIBS="" - else - CPPFLAGS="$LIBNL3_CFLAGS $DBUS_CFLAGS $CPPFLAGS" - NETLINKLIBS="$DBUS_LIBS $LIBNL3_LIBS" - QUOTA_NETLINK_PROG=quota_nld - fi -fi -AC_SUBST(QUOTA_NETLINK_PROG) -AC_SUBST(NETLINKLIBS) - -AC_SEARCH_LIBS(gethostbyname, nsl) -AC_MSG_CHECKING(for host_access in -lwrap) -AC_CACHE_VAL(ac_cv_lib_wrap_main, - saved_LIBS="$LIBS" - LIBS="$LIBS -lwrap" - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ - #include <stdio.h> - #include <sys/types.h> - #include <sys/socket.h> - #include <netinet/in.h> - #include <tcpd.h> - struct request_info request; - int deny_severity, allow_severity;]],[[hosts_access(&request);]])], - dnl We always restore LIBS as we add -lwrap in the next check - [ac_cv_lib_wrap_main=yes; LIBS="$saved_LIBS"; AC_MSG_RESULT(yes)], - [ac_cv_lib_wrap_main=no; LIBS="$saved_LIBS"; AC_MSG_RESULT(no)]) - ]) - -if test ${ac_cv_lib_wrap_main} = yes; then - AC_CHECK_HEADER(tcpd.h,, [ - echo 'ERROR: could not find tcpd.h - missing TCP wrappers package' - exit 1 - ]) - LIBS="$LIBS -lwrap" - AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad]) - COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS" -fi - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_C_INLINE - -AC_ARG_ENABLE(rpc, - [ --enable-rpc=[yes/no] Enable RPC support [default=yes].], - , - enable_rpc="yes") -AC_ARG_ENABLE(rpcsetquota, - [ --enable-rpcsetquota=[yes/no] Use RPC for setting quotas [default=no].], - , - enable_rpcsetquota="no") -AC_ARG_ENABLE(xfs_roothack, - [ --enable-xfs_roothack=[yes/no] Support old XFS root filesystems [default=no].], - , - enable_xfs_roothack="no") -AC_ARG_ENABLE(bsd_behaviour, - [ --enable-bsd_behaviour=[yes/no] Mimic BSD behaviour [default=yes].], - , - enable_bsd_behaviour="yes") -AC_ARG_ENABLE(libefence, - [ --enable-libefence=[yes/no] Use Electric Fence memory checks [default=no].], - , - enable_libefence="no") - -AC_ARG_ENABLE(nls, - [ --enable-nls=[yes/no] Enable gettext [default=yes].], - , - enable_nls="yes") -AC_ARG_ENABLE(rootsbin, - [ --enable-rootsbin=[yes/no] Use /sbin for some important binaries regardless $prefix [default=no].], - , - enable_rootsbin="no") -AC_ARG_ENABLE(proc-mounts, - [ --enable-proc-mounts=[path] Use alternate file instead of /etc/mtab [default=/proc/mounts].], - , - enable_proc_mounts="/proc/mounts") - -if test "$enable_rpc" = "yes" ; then - AC_DEFINE([RPC], 1, [Support for RPC]) - COMPILE_OPTS="$COMPILE_OPTS RPC" -fi -if test "$enable_rpcsetquota" = "yes" ; then - AC_DEFINE([RPC_SETQUOTA], 1, [Allow setting of quotas over RPC]) - COMPILE_OPTS="$COMPILE_OPTS RPC_SETQUOTA" -fi -if test "$enable_xfs_roothack" = "yes" ; then - AC_DEFINE([XFS_ROOTHACK], 1, [Assume quota mount options for root filesystem]) - COMPILE_OPTS="$COMPILE_OPTS XFS_ROOTHACK" -fi -if test "$enable_bsd_behaviour" = "yes" ; then - AC_DEFINE([BSD_BEHAVIOUR], 1, [Check rights to query / set quotas before calling quotactl]) - COMPILE_OPTS="$COMPILE_OPTS BSD_BEHAVIOUR" -fi -if test "$enable_libefence" = "yes" ; then - LIBMALLOC="/usr/lib/libefence.a" -fi -if test "$enable_nls" = "yes" ; then - AC_DEFINE([USE_GETTEXT], 1, [Use gettext to translate messages]) - INSTMO="inst_mo" -fi -if test "$enable_proc_mounts" != "no"; then - AC_DEFINE_UNQUOTED([ALT_MTAB], ["$enable_proc_mounts"], [File with mounted filesystems]) -fi -if test "$enable_rootsbin" = "yes" ; then - ROOTSBIN="/sbin" -else - ROOTSBIN='$(prefix)/sbin' -fi - -AC_DEFINE_UNQUOTED([COMPILE_OPTS], ["$COMPILE_OPTS"], [Configuration options]) -AC_DEFINE([PACKAGE_VERSION], ["4.02"], [Version of quota tools]) - -AC_SUBST(LIBMALLOC) -AC_SUBST(INSTMO) -AC_SUBST(ROOTSBIN) -AC_SUBST(CPPFLAGS) -AC_SUBST(STRIP) - -AC_OUTPUT(Makefile) diff --git a/convertquota.c b/convertquota.c index 76bd1e8..d913e05 100644 --- a/convertquota.c +++ b/convertquota.c @@ -45,7 +45,7 @@ static void usage(void) -f, --convert-format oldfmt,newfmt convert from old to VFSv0 quota format\n\ -h, --help show this help text and exit\n\ -V, --version output version information and exit\n\n"), progname); - errstr(_("Bugs to %s\n"), MY_EMAIL); + errstr(_("Bugs to %s\n"), PACKAGE_BUGREPORT); exit(1); } @@ -98,7 +98,7 @@ static void usage(void) -T, --edit-times edit grace time of a user/group\n\ -h, --help display this help text and exit\n\ -V, --version display version information and exit\n\n"), stderr); - fprintf(stderr, _("Bugs to: %s\n"), MY_EMAIL); + fprintf(stderr, _("Bugs to: %s\n"), PACKAGE_BUGREPORT); exit(1); } diff --git a/install-sh b/install-sh deleted file mode 100755 index e9de238..0000000 --- a/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/po/.gitignore b/po/.gitignore new file mode 100644 index 0000000..9bc1415 --- /dev/null +++ b/po/.gitignore @@ -0,0 +1,13 @@ +POTFILES +Makevars.template +Rules-quot +boldquot.sed +en@boldquot.header +en@quot.header +insert-header.sin +quot.sed +remove-potcdate.sin +*.pot +*.gmo +remove-potcdate.sed +stamp-po diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..bcf2e83 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1 @@ +cs de fr pl diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 0000000..38237ed --- /dev/null +++ b/po/Makevars @@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = jack@suse.cz + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = @@ -10,7 +10,7 @@ void gettexton(void) { #ifdef USE_GETTEXT setlocale(LC_ALL, ""); - bindtextdomain("quota", "/usr/share/locale"); - textdomain("quota"); + bindtextdomain(PACKAGE, PACKAGE_LOCALE_DIR); + textdomain(PACKAGE); #endif } @@ -108,7 +108,7 @@ static void usage(void) --hide-device do not show file system device in output\n\ -h, --help display this help message and exit\n\ -V, --version display version information and exit\n\n")); - fprintf(stderr, _("Bugs to: %s\n"), MY_EMAIL); + fprintf(stderr, _("Bugs to: %s\n"), PACKAGE_BUGREPORT); exit(1); } diff --git a/quotacheck.c b/quotacheck.c index e62c3a7..3cf87e0 100644 --- a/quotacheck.c +++ b/quotacheck.c @@ -315,7 +315,7 @@ static void usage(void) -a, --all check all filesystems\n\ -h, --help display this message and exit\n\ -V, --version display version information and exit\n\n"), progname); - printf(_("Bugs to %s\n"), MY_EMAIL); + printf(_("Bugs to %s\n"), PACKAGE_BUGREPORT); exit(1); } @@ -736,7 +736,7 @@ static int rename_files(struct mount_entry *mnt, int type) /* Make backingup safe */ sstrncat(newfilename, "~", PATH_MAX); if (newfilename[strlen(newfilename) - 1] != '~') - die(8, _("Name of quota file too long. Contact %s.\n"), MY_EMAIL); + die(8, _("Name of quota file too long. Contact %s.\n"), PACKAGE_BUGREPORT); if (rename(filename, newfilename) < 0) { errstr(_("Cannot rename old quotafile %s to %s: %s\n"), filename, newfilename, strerror(errno)); diff --git a/quotasync.c b/quotasync.c index cfc3f2d..99bb3a0 100644 --- a/quotasync.c +++ b/quotasync.c @@ -7,6 +7,7 @@ #include <getopt.h> #include "pot.h" +#include "config.h" #include "common.h" #include "quotasys.h" #include "quotaio.h" @@ -38,7 +39,7 @@ static void usage(int status) "-V, --version display version information and exit\n" "\n" )); - printf(_("Report bugs to <%s>.\n"), MY_EMAIL); + printf(_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT); exit(status); } @@ -63,7 +63,7 @@ static void usage(void) -a, --all report information for all mount points with quotas\n\ -h, --help display this help message and exit\n\ -V, --version display version information and exit\n\n"), progname); - fprintf(stderr, _("Bugs to %s\n"), MY_EMAIL); + fprintf(stderr, _("Bugs to %s\n"), PACKAGE_BUGREPORT); exit(1); } @@ -76,7 +76,7 @@ static void usage(void) -T, --edit-times edit grace times for user/group\n\ -h, --help display this help text and exit\n\ -V, --version display version information and exit\n\n"), stderr); - fprintf(stderr, _("Bugs to: %s\n"), MY_EMAIL); + fprintf(stderr, _("Bugs to: %s\n"), PACKAGE_BUGREPORT); exit(1); } diff --git a/warnquota.c b/warnquota.c index 009d9e9..7ce61cc 100644 --- a/warnquota.c +++ b/warnquota.c @@ -165,50 +165,26 @@ static void wc_exit(int ex_stat) { #ifdef USE_LDAP_MAIL_LOOKUP if(ldapconn != NULL) -#ifdef USE_LDAP_23 ldap_unbind_ext(ldapconn, NULL, NULL); -#else - ldap_unbind(ldapconn); -#endif #endif exit(ex_stat); } #ifdef USE_LDAP_MAIL_LOOKUP -#ifdef NEED_LDAP_PERROR -static void ldap_perror(LDAP *ld, LDAP_CONST char *s) -{ - int err; - - ldap_get_option(ld, LDAP_OPT_RESULT_CODE, &err); - errstr(_("%s: %s\n"), s, ldap_err2string(err)); -} -#endif - static int setup_ldap(struct configparams *config) { int ret; -#ifdef USE_LDAP_23 struct berval cred = { .bv_val = config->ldap_bindpw, .bv_len = strlen(config->ldap_bindpw) }; -#endif -#ifdef USE_LDAP_23 ldap_initialize(&ldapconn, config->ldap_uri); -#else - ldapconn = ldap_init(config->ldap_host, config->ldap_port); -#endif if(ldapconn == NULL) { ldap_perror(ldapconn, "ldap_init"); return -1; } -#ifdef USE_LDAP_23 ret = ldap_sasl_bind_s(ldapconn, config->ldap_binddn, LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL); -#else - ret = ldap_bind_s(ldapconn, config->ldap_binddn, config->ldap_bindpw, LDAP_AUTH_SIMPLE); -#endif if(ret < 0) { ldap_perror(ldapconn, "ldap_bind"); return -1; @@ -424,9 +400,6 @@ static char *lookup_user(struct configparams *config, char *user) searchbuf, NULL, 0, NULL, NULL, NULL, 0, &result); - ret = ldap_search_s(ldapconn, config->ldap_basedn, LDAP_SCOPE_SUBTREE, - searchbuf, NULL, 0, &result); - if (ret < 0) { errstr(_("Error with %s.\n"), user); ldap_perror(ldapconn, "ldap_search"); @@ -872,15 +845,10 @@ cc_parse_err: #ifdef USE_LDAP_MAIL_LOOKUP if (config->use_ldap_mail) { -#ifdef USE_LDAP_23 if (!config->ldap_uri[0]) { snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port); errstr(_("LDAP library version >= 2.3 detected. Please use LDAP_URI instead of hostname and port.\nGenerated URI %s\n"), config->ldap_uri); } -#else - if (config->ldap_uri[0]) - die(1, _("LDAP library does not support ldap_initialize() but URI is specified.")); -#endif } #endif fclose(fp); @@ -1010,7 +978,7 @@ static void usage(void) -a, --admins-file=admins-file non-default admins file\n\ -h, --help display this help message and exit\n\ -v, --version display version information and exit\n\n")); - fprintf(stderr, _("Bugs to %s\n"), MY_EMAIL); + fprintf(stderr, _("Bugs to %s\n"), PACKAGE_BUGREPORT); wc_exit(1); } |